LedgerMap · INF-86 · 17/10/2026 · Proposal, not built

Half-booked statements: show which entries come in

Some users type part of a statement into Miracle by hand, for example all the receipts. Today the import starts after Miracle’s last entry for the bank, so the payments they did not type are lost without any message. This page proposes one matching engine and three ways to show the result. Choose one.

1 · The problem

Example (sample data): HDFC Bank C/A, statement 01/09/2026 – 30/09/2026, 164 entries. The accountant typed all 98 receipts into Miracle by hand, up to 29/09. Nobody typed the 66 payments.

Today: a date cutoff

From = Miracle’s last entry for the bank (29/09). Everything before it is taken to be in Miracle.

5entries come in
59payments lost, no message
100correctly left out
Screen today: “Miracle’s last entry for this bank is on 29/09/2026 (2 that day).” Nothing says the payments before it are missing.

Proposed: match entry by entry

Each entry looks for its own posting in Miracle: same side and amount, same date or up to 7 days apart. This is what the Validator already does.

64entries come in
3in Miracle on another date
97already in Miracle
The 2 payments in Miracle are transfers that were booked from the other bank’s statement. They are found too, so the first form of INF-86 is fixed as well.
Already in Miracle Comes in In Miracle on another date Lost without a message No entry that day

2 · The common fix (the same for A, B and C)

All three options use one engine. Only the screen differs.

1. Read the booksThe bank ledger’s postings for the statement’s dates, 7 days before and after. This read happens on this PC already; nothing new goes to the server.
2. Pair, like the ValidatorSame side and exact amount. Same date first, then the rest up to 7 days apart (pairWithin). One posting stands for one entry. Narration is never used: Miracle’s postings are read without it. The name after a voucher number in the mock-ups is the ledger the voucher was booked against.
3. Sort each entry Already in Miracle left out
Another date left out, shown for a check
Close amount under ₹1 apart, one candidate only; shown for a check
Comes in goes to Contra / Suggestions / Suspense

What changes

  • The From date stops being the default. Every entry is checked.
  • From and To stay as optional limits that the user can type, for example to skip an old month.
  • The user can override any entry: Bring it in or Leave it out. The override is kept with the tab by entry key only.
  • Without the company folder on this PC, every entry comes in, as now.

Where matching can be wrong

  • Combined booking: two receipts typed in Miracle as one total. Neither pairs, so both come in twice. The screen shows “Miracle postings no entry explains” so the user can see this.
  • Same amount, nearby dates: a ₹5,000 entry may pair with another ₹5,000 posting. The count stays right, but the wrong one may be left out.
  • Amount typed a little differently: 798.457 on the statement, 798.46, 798.45, 798.40 or 798 in Miracle. An exact-only match brings it in twice. A second pass, run only on what is left after exact pairs, pairs amounts under ₹1 apart when only one posting fits, and marks them “Close amount” with both amounts. A wrong rupee digit (789.46) is not caught; that posting shows as one no entry explains.
  • Big date gap: a cheque dated more than 7 days from the bank date does not pair, so it comes in.
A

Coverage at Bank ledgers

Summary first · smallest change

The Entries column on the Bank ledgers table changes from From/To dates to a coverage cell. Each PDF shows how much Miracle already has and a short sentence about the pattern. Enter opens the list. The review steps then show only the entries that come in.

Patel TradersImport statements
UploadBank ledgersContraSuggestionsSuspenseReviewExport
PDFBank ledgerEntries
HDFC_Sep_2026.pdf
01/09/2026 – 30/09/2026 · 164 entries
HDFC BANK C/A
64 come in · 97 already in Miracle · 3 on another date
Miracle has the receipts up to 29/09/2026 but no payments from this statement. The 64 payments come in.
SBI_Sep_2026.pdf
01/09/2026 – 30/09/2026 · 41 entries
SBI C/A 3974
41 come in · none in Miracle
ICICI_Aug_2026.pdf
01/08/2026 – 31/08/2026 · 77 entries
ICICI C/A 0055
All 77 already in Miracle · nothing comes in
Miracle already has every entry of this PDF. You can leave this PDF out.

Good

  • The user sees the gap before review starts, at the same place the From date is today.
  • The pattern sentence explains half-booked statements in one line. This is strong in a demo.
  • The review steps stay the same. This is the smallest change.
  • A PDF that is fully in Miracle is flagged at once.

Watch out

  • The details are one key away, so users may not open them and may not check “another date” entries.
  • The strip is visual only. The counts and sentence must carry the same facts for keyboard and screen-reader users.
  • The table row gets taller.
Effort: small–mediumNew step: noPer-entry control: in the drawer
B

An “In Miracle” step before Contra

Explicit · auditable

A new first review step lists every entry of the import with its result, like the Validator’s Results inside the import. The step’s count is the “another date” entries, which need a look. Entries already in Miracle show the Miracle voucher they paired with. Continue goes on to Contra.

Patel TradersImport statements
UploadBank ledgersIn Miracle 3ContraSuggestions 41Suspense 23ReviewExport
HDFC BANK C/A · 164 entries · 64 come in · 97 in Miracle · 3 on another date
DateEntryDebitCreditResultIn Miracle
01/09/2026NEFT/ MAHAVIR ENTERPRISE1,25,000.00In MiracleBR 1043 · 01/09 · MAHAVIR ENT.
02/09/2026NEFT/ SHREE BALAJI STEEL48,200.00Comes in—
02/09/2026UPI/ KRISHNA AGENCY18,400.00In MiracleBR 1044 · 02/09 · KRISHNA AGENCY
03/09/2026UPI/ JIO RECHARGE799.00Comes in—
04/09/2026CLG/ CHQ 220931 OM SAI CEMENT62,000.00Another dateBR 1039 · 30/08 (5 days earlier)
05/09/2026CHQ 104512 / RAJ TRANSPORT12,500.00Comes in—
06/09/2026IMPS/ TO SBI CA 39742,00,000.00In MiracleBC 311 · 06/09 · SBI C/A 3974
2 postings in Miracle in this period match no entry (₹30,000 on 12/09 and ₹4,750 on 21/09). An entry may be typed there as a total of several. Open the Validator to see them.

Up/Down move rows · Space toggles Comes in / Leave it out · Ctrl+] next step · Alt+O shows the entry in the PDF

Good

  • Fully transparent: every entry shows why it is left out, down to the Miracle voucher.
  • “Another date” entries cannot be missed. They are the step’s count, like other steps.
  • Reuses the Validator’s table and wording. Users who know the Validator know this step.
  • Combined bookings are visible, so double booking is easier to catch.

Watch out

  • One more step in every import, even when Miracle has nothing. Fix: skip the step (show a check mark) when nothing is in Miracle and nothing needs a check.
  • A long list for big statements. Filters help, but it is still more to read.
  • Overlaps the Export step’s “already in Miracle” list. That list would then show only the contra entries.
Effort: mediumNew step: yesPer-entry control: on every row
C

Statement vs Miracle, side by side

Bank reconciliation view

The view accountants already know from a bank reconciliation statement. The statement is on the left. Miracle’s postings are on the right. Paired lines sit on one row. A statement line with an empty right side comes in. A Miracle line with an empty left side is a posting no entry explains. It opens from the Bank ledgers row (Enter) or from the All entries view.

Patel TradersHDFC BANK C/A · September 2026
Statement (HDFC_Sep_2026.pdf)
Miracle (HDFC BANK C/A)
Week 1 · 01/09 – 07/09
01/09/2026NEFT/ MAHAVIR ENTERPRISECr 1,25,000.00
01/09/2026BR 1043 · MAHAVIR ENT.Dr 1,25,000.00
02/09/2026NEFT/ SHREE BALAJI STEELDr 48,200.00
Comes in
02/09/2026UPI/ KRISHNA AGENCYCr 18,400.00
02/09/2026BR 1044 · KRISHNA AGENCYDr 18,400.00
03/09/2026UPI/ JIO RECHARGEDr 799.00
Comes in
04/09/2026CLG/ CHQ 220931 OM SAI CEMENTCr 62,000.00
30/08/2026BR 1039 · OM SAI CEMENTDr 62,000.00
05/09/2026CHQ 104512 / RAJ TRANSPORTDr 12,500.00
Comes in
Week 2 · 08/09 – 14/09
No entry
12/09/2026BR 1061 · PATEL BROS (total?)Dr 30,000.00
12/09/2026UPI/ PATEL BROSCr 18,000.00
Comes in
12/09/2026UPI/ PATEL BROSCr 12,000.00
Comes in
12/09: Miracle has one ₹30,000 receipt, and the statement has ₹18,000 + ₹12,000 from the same payee. Possibly one booking for both. Select both and press L (Leave out) if Miracle has them.

Up/Down move rows · Space toggles Comes in / Leave it out · Left/Right move between the statement and Miracle sides

Good

  • The most familiar picture for accountants (bank reconciliation). It needs little explaining in a demo.
  • It shows both kinds of mismatch: entries Miracle lacks, and Miracle postings that no entry explains, such as a combined booking.
  • The Payments / Receipts toggle makes a half-booked statement obvious at once.

Watch out

  • Wide. It needs about 900 px and is cramped in a narrow window.
  • The most work to build: a new two-sided table with its own keyboard model, outside the shared ui/table row selection.
  • Matching sums (₹18,000 + ₹12,000 = ₹30,000) is a new matcher. Without it, the view only shows the hint.
Effort: largeNew step: no (a view)Per-entry control: on every row

Compare

A · Coverage at Bank ledgersB · “In Miracle” stepC · Side by side
User sees the gapBefore review, one line per PDFFirst review step, every entryWhen opened, every entry and posting
Half-booked statementPattern sentence (“no payments”)Filter countsPayments / Receipts toggle
Why an entry is left outIn the drawerOn the row, with the voucherOn the row, with the voucher
Combined bookingsCount onlyWarning with amountsShown in place
Extra clicks per importNoneOne step (skipped when empty)None, opened on demand
Keyboard modelExisting table + drawerExisting tableNew two-sided table
EffortSmall–mediumMediumLarge

What to decide

My suggestion: A now, with B’s table as its drawer.

The coverage cell fixes the real harm: the user sees at once that 64 payments come in and why. Its drawer uses B’s table (voucher, Bring it in / Leave it out), so nothing is hidden. C can come later as a Validator upgrade, because the Validator is where users go to reconcile.

Questions for you

  1. Which option? A, B, C or a mix.
  2. “Another date” entries: leave them out by default (my suggestion, as the Validator treats them as found) or bring them in until the user confirms?
  3. Date window: keep 7 days, the same as the Validator?
  4. From / To boxes: keep them as optional limits (my suggestion), or remove them?
  5. Close amounts: pair amounts under ₹1 apart (my suggestion: yes, left out by default and counted under To check), or treat only exact amounts as in Miracle?
  6. Combined bookings (one Miracle total for two entries): only show a warning for now (my suggestion), or also build sum matching?