Sample data Live dashboard

Bank Reconciliation

Three categories of work, derived rather than labelled

The same rules applied to every line, with the three categories derived by a function rather than assigned by hand. Nothing here clears an item: the engine matches, and a person decides.

General sample data. Every row, name, figure, and date is invented to illustrate the structure of this kind of dashboard. It is not a depiction of any employer’s system, data, configuration, or results, and no company or person named here is real. Every number shown is computed from the rows in the source data view, so you can check any of them yourself.

Every figure below is computed from the source rows.

Matched automatically

72%

13 of 18 lines, $363,060

Proposed for review

2

$57,440 awaiting a person

Escalated untouched

3

$4,596 with no counterpart

Unmatched ledger lines

1

The other half of the reconciliation, also escalated

Reconciliation worksheet

The statement balances are typed in from the bank. The ledger balance comes from the accounting system. Tick a line to mark it cleared. Anything left unticked becomes a reconciling item below, and the unexplained difference updates as you go.

Upload Bank statement

In a working build this is where the statement your bank exports would be imported, reading a single amount column or separate debit and credit columns, and reporting any row it could not read rather than dropping it.

Demonstration only. These buttons do nothing, and this page cannot accept a file. They are here to show where a statement import would sit in a working build. The statement lines below are fixed sample data.

API Accounting system

Ledger transactions are pulled from the ERP over its API, not uploaded and not keyed. In a NetSuite build that is a query against the REST record service, filtered to the bank account and the period, run under a read only integration role. The same shape works against any ERP that exposes transactions.

Source
NetSuite, sample data standing in for a live connection
Access
Read only. The reconciliation never writes back.
Scope
One bank account, 16 posted transactions in the period
Movement
$130,960.00 across those transactions

Per bank statement

Statement foots: beginning plus $128,464.50 of activity equals the ending balance.

Per the accounting system

Beginning balance$486,213.77
Ending balance$617,173.77

Pulled from the ERP over its API. Not keyed, and not editable here, which is why these two fields have no input boxes.

Bank statement lines sample data15 of 18 cleared

DateDescriptionAmount
2026-09-02ACH DEBIT VENDOR PMTB-01 · bank ref ACH20260902167137-$18,420.00
2026-09-03ACH CREDIT CUSTOMERB-02 · bank ref ACH20260903514764$84,200.00
2026-09-05ACH DEBIT FREIGHTB-03 · bank ref ACH20260905469488-$9,875.00
2026-09-08CARD SETTLEMENT FEEB-04 · bank ref SVC202609087045-$2,450.50
2026-09-09WIRE INB-05 · bank ref FED2026090934660$61,500.00
2026-09-11ACH DEBIT VENDOR PMTB-06 · bank ref ACH20260911603339-$42,300.00
2026-09-12MERCHANT DEPOSIT BATCHB-07 · bank ref DEP20260912380954$22,840.00
2026-09-15ACH DEBIT TOOLINGB-08 · bank ref ACH20260915419861-$7,640.00
2026-09-17ACH DEBIT LOGISTICSB-09 · bank ref ACH20260917173140-$13,990.00
2026-09-18ACH CREDIT CUSTOMERB-10 · bank ref ACH20260918286227$34,600.00
2026-09-21BANK SERVICE CHARGEB-11 · bank ref SVC202609215260-$880.00
2026-09-22ACH DEBIT MATERIALSB-12 · bank ref ACH20260922819718-$31,275.00
2026-09-24ACH CREDIT CUSTOMERB-13 · bank ref ACH20260924738452$18,920.00
2026-09-25ACH DEBIT COMPONENTSB-14 · bank ref ACH20260925406120-$15,400.00
2026-09-26WIRE INB-15 · bank ref FED2026092632551$47,300.00
2026-09-28CHECK PAID 10482B-16 · bank ref CHK202609285213 · check 10482-$4,820.00
2026-09-29FX ADJUSTMENTB-17 · bank ref SVC202609294033-$1,265.00
2026-09-30MERCHANT DEPOSIT BATCHB-18 · bank ref DEP20260930196296$7,420.00
Selected, 15 of 18 lines$133,060.00

Ledger transactions via ERP API15 of 16 cleared

DateDescriptionAmount
2026-09-02Vendor paymentL-01 · doc BILLPMT-4001-$18,420.00
2026-09-03Customer receiptL-02 · doc DEP-4002$84,200.00
2026-09-05Freight paymentL-03 · doc BILLPMT-4003-$9,875.00
2026-09-09Customer wireL-05 · doc DEP-4005$61,500.00
2026-09-11Vendor paymentL-06 · doc BILLPMT-4006-$42,300.00
2026-09-15Merchant batchL-07 · doc DEP-4007$22,840.00
2026-09-15Tooling paymentL-08 · doc BILLPMT-4008-$7,640.00
2026-09-17Logistics paymentL-09 · doc BILLPMT-4009-$13,990.00
2026-09-22Customer receiptL-10 · doc DEP-4010$34,600.00
2026-09-22Materials paymentL-12 · doc BILLPMT-4012-$31,275.00
2026-09-24Customer receiptL-13 · doc DEP-4013$18,920.00
2026-09-25Components paymentL-14 · doc BILLPMT-4014-$15,400.00
2026-09-26Customer wireL-15 · doc DEP-4015$47,300.00
2026-09-28Check payment, print vendorL-16 · doc BILLPMT-4016 · check 10482-$4,820.00
2026-09-30Merchant batchL-18 · doc DEP-4018$7,420.00
2026-09-27Accrued fee reversalL-19 · doc BILLPMT-4019-$2,100.00
Selected, 15 of 16 lines$133,060.00

Selected totals compared

Selected on the statement$133,060.0015 of 18 lines
Selected in the ledger$133,060.0015 of 16 lines
Difference$0.00the two sides agree

What you have ticked on each side comes to the same number, so everything selected has a counterpart. Whatever is left unticked is a reconciling item, listed below.

On the statement, not in the ledger3

Total -$4,595.50. The bank has recorded these and the ledger has not, so they need adding to the ledger. Bank fees, interest, and returned items usually land here.

In the ledger, not on the statement1

Total -$2,100.00. Either it has not cleared the bank yet, in which case it carries forward as an outstanding item, or it should not be there and needs reversing or excluding from the reconciliation. Check the support before deciding, because those two answers look identical on the worksheet.

The difference

Balance per bank statement$614,678.27
Less bank lines not posted to the ledger(-$4,595.50)
Add ledger lines that have not cleared the bank-$2,100.00
Adjusted bank balance$617,173.77
Balance per the accounting system$617,173.77
Unexplained difference$0.00 reconciled

Reconciling items, 4

Every line not ticked on either side, with what it means. These are what a reviewer reads.

LineDateAmountWhere it sitsWhat to do
CARD SETTLEMENT FEEB-042026-09-08-$2,450.50On the statement, not in the ledgerA charge the bank took that has not been posted. Post it to the ledger.
BANK SERVICE CHARGEB-112026-09-21-$880.00On the statement, not in the ledgerA charge the bank took that has not been posted. Post it to the ledger.
FX ADJUSTMENTB-172026-09-29-$1,265.00On the statement, not in the ledgerA charge the bank took that has not been posted. Post it to the ledger.
Accrued fee reversalL-192026-09-27-$2,100.00In the ledger, not on the statementEither it has not cleared the bank yet, which is legitimate and carries forward, or it was posted in error and should be reversed. Check the support before deciding.

The rules the engine applied

A bank reference is assigned by the bank when it posts, after the ledger entry already exists, so the ERP cannot know it and the two identifiers are unrelated. Only a check number is held by both sides, because the payer chose it first. Everything else has to match on amount, how close the dates are, and whether exactly one candidate exists.

Matched automatically
Either the check number agrees, which is the one identifier both systems hold, or the amount agrees, the dates are within two days, and that amount appears exactly once on each side. Uniqueness is what makes it safe: with a single candidate there is nothing to choose between.
Proposed for review
The amount agrees but something else does not. The dates are further apart than tolerance, or the same amount appears more than once, so pairing them is a judgment. A person sees the reasoning and decides.
Escalated untouched
No counterpart with a matching amount remains on the other side. The line is escalated untouched, with whatever context the engine gathered, and nothing is cleared.

Review queue

Each proposal arrives with its reasoning attached. A reviewer who cannot see why cannot catch the ones that are wrong.

  • B-07 · $22,8402026-09-12

    MERCHANT DEPOSIT BATCH · bank ref DEP20260912380954 → L-07 (Merchant batch, doc DEP-4007)

    Amount agrees exactly, but the dates are 3 days apart, beyond the 2 day tolerance. Needs review.

    Buttons are inert in this demo. In a live system, rejecting has to be as easy as accepting, or the review becomes a formality.
  • B-10 · $34,6002026-09-18

    ACH CREDIT CUSTOMER · bank ref ACH20260918286227 → L-10 (Customer receipt, doc DEP-4010)

    Amount agrees exactly, but the dates are 4 days apart, beyond the 2 day tolerance. Needs review.

    Buttons are inert in this demo. In a live system, rejecting has to be as easy as accepting, or the review becomes a formality.

Exceptions

Escalated with context and nothing resolved. An automation confident enough to clear one of these is worse than no automation.

  • B-04 · -$2,4512026-09-08

    CARD SETTLEMENT FEE · bank ref SVC202609087045

    No ledger line with this amount remains unmatched. Escalated untouched.

  • B-11 · -$8802026-09-21

    BANK SERVICE CHARGE · bank ref SVC202609215260

    No ledger line with this amount remains unmatched. Escalated untouched.

  • B-17 · -$1,2652026-09-29

    FX ADJUSTMENT · bank ref SVC202609294033

    No ledger line with this amount remains unmatched. Escalated untouched.

Ledger lines with no bank counterpart: L-19 -$2,100 Accrued fee reversal. These are genuine reconciling items and stay open until a person resolves them.

Read the case study behind this dashboard · All dashboards