FA-57975 / Double-entry ledger accounting / Member archive
Bank reconciliation: service charge direction · case 05
Monthly bank service charges raise the adjusted book balance.
Case contract
x = {'bank': statement balance, 'book': ledger cash balance, 'items': [[kind, ...]]}. Bank side: deposit_in_transit adds, outstanding_check subtracts, bank_error adds its signed correction. Book side (each produces an adjusting entry [kind, signed amount] in input order): bank_fee and nsf subtract, interest adds, collection [kind, face, fee] adds face - fee, check_error [kind, recorded, actual] adds recorded - actual. Other kinds are ignored. Return {'adjusted_bank', 'adjusted_book', 'reconciled', 'entries'}.
Why this case matters
Ledger software must keep debits equal to credits and apply normal-balance, period and cutoff rules exactly; small sign or boundary slips silently misstate financial statements.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: service charge direction | {"adjusted_bank": 11985, "adjusted_book": 16915, "entries": [["collection", 3975], ["check_error", 1650], ["bank_fee", 90], ["interest", 1200]], "reconciled": false} | {"adjusted_bank": 11985, "adjusted_book": 16735, "entries": [["collection", 3975], ["check_error", 1650], ["bank_fee", -90], ["interest", 1200]], "reconciled": false} | Failed |
MEMBER ARCHIVE
The complete case is available to members.
This record includes three runnable implementations, regression fixtures, execution results, and source hashes.
Member access is invitation-based. Sign in with your invited account to inspect the sources.
Sign in to the archive ↗