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.
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.
2 · The common fix (the same for A, B and C)
All three options use one engine. Only the screen differs.
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.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.
Coverage at Bank ledgers
Summary first · smallest changeThe 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.
| Bank ledger | Entries | |
|---|---|---|
| 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.
|
| Date | Entry | Debit | Credit | |
|---|---|---|---|---|
| 02/09/2026 | NEFT/ SHREE BALAJI STEEL | 48,200.00 | ||
| 03/09/2026 | UPI/ JIO RECHARGE | 799.00 | ||
| 05/09/2026 | CHQ 104512 / RAJ TRANSPORT | 12,500.00 | ||
| … 61 more | ||||
Up/Down move rows · Space toggles Comes in / Leave it out · Esc closes
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.
An “In Miracle” step before Contra
Explicit · auditableA 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.
| Date | Entry | Debit | Credit | Result | In Miracle | |
|---|---|---|---|---|---|---|
| 01/09/2026 | NEFT/ MAHAVIR ENTERPRISE | 1,25,000.00 | In Miracle | BR 1043 · 01/09 · MAHAVIR ENT. | ||
| 02/09/2026 | NEFT/ SHREE BALAJI STEEL | 48,200.00 | Comes in | — | ||
| 02/09/2026 | UPI/ KRISHNA AGENCY | 18,400.00 | In Miracle | BR 1044 · 02/09 · KRISHNA AGENCY | ||
| 03/09/2026 | UPI/ JIO RECHARGE | 799.00 | Comes in | — | ||
| 04/09/2026 | CLG/ CHQ 220931 OM SAI CEMENT | 62,000.00 | Another date | BR 1039 · 30/08 (5 days earlier) | ||
| 05/09/2026 | CHQ 104512 / RAJ TRANSPORT | 12,500.00 | Comes in | — | ||
| 06/09/2026 | IMPS/ TO SBI CA 3974 | 2,00,000.00 | In Miracle | BC 311 · 06/09 · SBI C/A 3974 |
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.
Statement vs Miracle, side by side
Bank reconciliation viewThe 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.
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/tablerow selection. - Matching sums (₹18,000 + ₹12,000 = ₹30,000) is a new matcher. Without it, the view only shows the hint.
Compare
| A · Coverage at Bank ledgers | B · “In Miracle” step | C · Side by side | |
|---|---|---|---|
| User sees the gap | Before review, one line per PDF | First review step, every entry | When opened, every entry and posting |
| Half-booked statement | Pattern sentence (“no payments”) | Filter counts | Payments / Receipts toggle |
| Why an entry is left out | In the drawer | On the row, with the voucher | On the row, with the voucher |
| Combined bookings | Count only | Warning with amounts | Shown in place |
| Extra clicks per import | None | One step (skipped when empty) | None, opened on demand |
| Keyboard model | Existing table + drawer | Existing table | New two-sided table |
| Effort | Small–medium | Medium | Large |
What to decide
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
- Which option? A, B, C or a mix.
- “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?
- Date window: keep 7 days, the same as the Validator?
- From / To boxes: keep them as optional limits (my suggestion), or remove them?
- 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?
- Combined bookings (one Miracle total for two entries): only show a warning for now (my suggestion), or also build sum matching?