Bank Reconciliation

Bank Reconciliation closes the last gap in the revenue lifecycle: a deposit has landed in your bank, and something in Fours says it should have. This page matches the two, automatically where it is confident enough and through a human review queue where it is not.


Overview

Open Revenue → Bank Reconciliation, under Operations in the sidebar. The page has four summary cards above a transaction list with three tabs — All Transactions, Review Queue, and Unmatched. The workspace Channel filter does not narrow this page.

It reads the bank accounts you connected on the Bank Accounts tab of Revenue Settings. Until at least one account is linked there, there is nothing here to reconcile.

Approving, rejecting, and matching need revenue write access. In the Insulin Revenue app, Review Match and Match appear only if your role has it; the console shows them to every role and rejects the action for a role without it.

How a bank transaction gets matched

Matching runs in three tiers. Only the rule-based tier settles a transaction on its own; whatever the AI-assisted tier proposes waits for a person:

These are the values Fours applies; none of them can be changed in the console:

ControlValueWhat it governs
AI confidence threshold0.94 by defaultThe minimum score at which the AI-assisted tier links a transaction to its best candidate. The link still waits in the Review Queue; below the threshold, the candidates are kept as suggestions only.
Amount tolerancethe larger of 0.5% or $1.00How far a deposit may differ from the expected amount and still be treated as the same money by the automatic tiers. The fixed $1.00 floor stops tiny transactions from being rejected over rounding. When you approve or match by hand, a difference of more than 0.01 marks the match as a variance.
Date window (scoring)7 daysHow far apart a transaction and a candidate revenue record may be dated.
Date window (payment rules)3 daysThe tighter settlement-date window the rule-based tier uses.
First import24 monthsHistory pulled when an account has never completed a sync.
Overlap window7 daysRe-read before the last cursor on every later sync, so late-posted and corrected transactions are picked up.

Summary cards

CardMeaning
Match RateThe share of transactions in scope that are neither awaiting review nor carrying a variance.
Needs ReviewTransactions that still need a decision. The line beneath breaks it down into unmatched (with their total), AI-matched, and in review.
VariancesTransactions matched to something, but for an amount that does not agree.
Total TransactionsEvery bank transaction in scope.

The cards cover every bank transaction you have imported, all time; the page’s filters and tabs do not change them.

All Transactions

The All Transactions tab lists every imported bank transaction with its date, amount, currency, bank account, description, match status, confidence, variance, and matched to.

Confidence is how sure the matcher is about the match it proposed, so a low-confidence match can be reviewed before it is accepted. Matched To names what it was matched against. When the matched record belongs to a payout, it shows that payout’s reference — or its disbursement ID — as a link that opens the same Disbursement detail as Cash & Disbursements, with the payout summary and linked invoices; a record paid out across several payouts links to the latest. Otherwise it shows the matched record’s ID.

Narrow the list with the bank account, currency, status, and time range filters, or search by amount or description.

Unmatched

The Unmatched tab is scoped to transactions with no match at all, and its label carries the count. It is deliberately separate from the Review Queue: a transaction with nothing proposed for it is a different problem from one with a proposal awaiting your decision. It has its own search, time range, and currency filters.

To match one yourself:

  1. Select Match on the transaction’s row.
  2. Choose the target type — Disbursement (the default) or Revenue record — and search for the record.
  3. Select the record, then Confirm Match.

Fours compares the two amounts the same way it does for an approved match (see below): within 0.01 the transaction is matched; otherwise it is marked as a variance and a review opens in the Review Queue.

Review Queue

The Review Queue tab is scoped to the transactions still awaiting a decision, and its tab label carries that count. It is a table of each transaction’s Date, Description, Amount, Match Status, Confidence, Variance, and Why flagged, and each row offers Review Match, which opens the review dialog.

Why flagged says what sent the transaction to a person:

Why flaggedWhat it means
LOW CONFIDENCEThe AI-assisted tier proposed a match. Below the confidence threshold it is only a suggestion; at or above it, the transaction is linked as AI-matched. Either way, it waits for you.
MANUAL REQUIREDFours could not settle on a candidate automatically — none was found, or a check could not complete.
AMBIGUOUS INVOICEThe deposit refers to an AWS invoice ID that more than one revenue record shares, so Fours will not pick one on its own.
VARIANCEThe transaction matched, but the amounts differ by more than the tolerance.
REVIEW REQUIREDNo specific reason was recorded.

To work one transaction:

  1. Open the Review Queue tab.
  2. Select Review Match on the transaction you want to settle.
  3. Review the suggested matches. Each suggestion was saved when the transaction was scored, and shows its confidence percentage and the reason it was suggested; the top one is preselected.
  4. If none of them is right, choose a target type and search for the correct record yourself.
  5. Add a comment explaining the decision.
  6. Select Approve Match to bind the transaction to the selected candidate, or Reject Suggestion to decline the suggestions without binding anything.

Approve Match requires a selected candidate. Fours converts the candidate’s amount into the deposit’s currency — with the rate stored on the record where it has one, otherwise the exchange rate for the candidate’s own date (its payout, invoice, or settlement date) — and marks the match as a variance if the two differ by more than 0.01. For a Stripe payment, the amount compared is the net Stripe settled after its fee.

Reject Suggestion does not need a candidate. It closes the review: a transaction Fours had provisionally matched goes back to Unmatched, and the suggestions you rejected are not proposed again. A transaction flagged for a variance keeps its match.

What a transaction can be matched to

Target typeWhat it is
PaymentA settled payment transaction not yet matched to a deposit; refunds and credits are excluded. The default when a transaction has no saved suggestions.
InvoiceA paid invoice from Invoices.
DisbursementA revenue record that carries payout data — a disbursement date, or a disbursed or collectable amount. See Cash & Disbursements.
Revenue recordA normalized row from Revenue Records.

KPI calculation formulas

Counts are over every bank transaction your organization has imported — all time, leaving out pending, voided, and inactive ones — and no filter, tab, or channel on the page changes them. They are the same for every bank provider and channel. Amounts are converted to USD with Fours’ latest daily exchange-rate snapshot; if any currency present has no rate, the summary is not returned and the cards read 0.

KPIFormulaCalculation details
Total Transactionscount(bank transactions)The denominator for Match Rate.
Needs Reviewunmatched + in review + AI-matchedThe card’s subtitle shows the three parts.
Variancescount(transactions in variance status)Matched, but for a disagreeing amount.
Matchedmax(0, total transactions − needs review − variances)Not shown on its own; it feeds Match Rate.
Match Ratematched ÷ total transactions × 100Zero when there are no transactions.
Review Queue (tab count)count(reviews awaiting a decision)The number on the Review Queue tab label.
Unmatched (tab count)count(transactions with no match)The number on the Unmatched tab label; it follows that tab’s search, time range, and currency filters.
Unmatched amountΣ unmatched transaction amounts, converted to USDShown beside the unmatched count under Needs Review. Summed per currency, then converted.
Variance amountΣ variance amounts, converted to USDSame conversion.

Freshness

Bank reconciliation runs on its own schedule — every 15 minutes, for every organization with an active bank account — and does not wait for a channel sync. Provider upserts and the overlap window make repeated runs idempotent, so a transaction is never double-imported. See Revenue Settings for the accounts that feed it.

Spotted something wrong or out of date on this page? Tell us and we'll correct it.