FAILURE MAP
← Case archive

FA-58315 / Double-entry ledger accounting / Member archive

Straight-line depreciation journal: first charge month · case 05

Mid-month assets start depreciating a month late.

Member previewVariant 5 · 3 implementations · 7 checks per implementation

Case contract

x = {'cost', 'salvage', 'life_months', 'start_month', 'convention': 'full_month'|'mid_month'|'next_month', 'through': last month to post}. Depreciable base = cost - salvage. The first charge month is start_month (start_month + 1 for next_month). Charges use cumulative rounding: target accumulated after the j-th charge month is round(base*j/life) or, for mid_month, round(base*(2j-1)/(2*life)), half-up and capped at base; each month posts target - accumulated. Posting stops after 'through' or once accumulated reaches base. Return {'schedule': [[month, amount]], 'accumulated', 'book_value': cost - accumulated}.

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 fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
regression: first charge month{"accumulated": 88000, "book_value": 12000, "schedule": [[11, 3667], [12, 7333], [13, 7333], [14, 7334], [15, 7333], [16, 7333], [17, 7334], [18, 7333], [19, 7333], [20, 7334], [21, 7333], [22, 7333], [23, 3667]]}{"accumulated": 88000, "book_value": 12000, "schedule": [[10, 3667], [11, 7333], [12, 7333], [13, 7334], [14, 7333], [15, 7333], [16, 7334], [17, 7333], [18, 7333], [19, 7334], [20, 7333], [21, 7333], [22, 3667]]}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 ↗