The final month takes what the months before leave, spread over its days; a disposed asset stops on its disposal day. A skipped month is caught up in the month the run is made; a reversed run un-posts its month. New schedules spread by day; equal-months schedules must start on the 1st. Amounts round to the currency's own minor unit. Kani and Lean proofs; an exhaustive search over runs, reversals and disposals. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T3gXMVt7XJPi6ens1or9Dj
113 lines
2.6 KiB
TOML
113 lines
2.6 KiB
TOML
id = "depreciation-catch-up-month"
|
|
title = "A month of depreciation skipped is caught up in the month the run is made"
|
|
rule = "A depreciation run for a month posts everything the schedule says is due through that month's end that the books don't carry, so a skipped month is caught up in it, and a later run for the skipped month posts nothing."
|
|
status = "CHOICE"
|
|
sources = ["ASC 360-10-35-4", "DECISION: plan/served.md P3, Settled in design (2026-10-20)"]
|
|
tags = ["depreciation", "catch-up", "skipped-month", "p3"]
|
|
|
|
[setup]
|
|
currency = "USD"
|
|
fiscal_year_start = "01-01"
|
|
basis = "accrual"
|
|
rounding = "half-away-from-zero"
|
|
|
|
[[setup.accounts]]
|
|
code = "1000"
|
|
name = "Bank"
|
|
type = "asset"
|
|
|
|
[[setup.accounts]]
|
|
code = "1500"
|
|
name = "Equipment"
|
|
type = "asset"
|
|
|
|
[[setup.accounts]]
|
|
code = "1510"
|
|
name = "Accumulated Depreciation"
|
|
type = "asset"
|
|
|
|
[[setup.accounts]]
|
|
code = "3000"
|
|
name = "Capital"
|
|
type = "equity"
|
|
|
|
[[setup.accounts]]
|
|
code = "6200"
|
|
name = "Depreciation Expense"
|
|
type = "expense"
|
|
|
|
[[setup.accounts]]
|
|
code = "7100"
|
|
name = "Gain or Loss on Disposal"
|
|
type = "revenue"
|
|
|
|
# Asset X: 12,000.00, no salvage, 12 months from 2026-01-01 (1,000.00 a
|
|
# month; December the final month).
|
|
[[setup.assets]]
|
|
id = "X"
|
|
description = "Asset X"
|
|
cost = "12000.00"
|
|
salvage = "0.00"
|
|
life_months = 12
|
|
in_service = "2026-01-01"
|
|
method = "straight_line"
|
|
cost_account = "1500"
|
|
accumulated_account = "1510"
|
|
expense_account = "6200"
|
|
|
|
[[events]]
|
|
date = "2026-01-01"
|
|
description = "Capital"
|
|
lines = [
|
|
{ account = "1000", side = "debit", amount = "12000.00" },
|
|
{ account = "3000", side = "credit", amount = "12000.00" },
|
|
]
|
|
|
|
[[events]]
|
|
date = "2026-01-01"
|
|
description = "Bought asset X"
|
|
lines = [
|
|
{ account = "1500", side = "debit", amount = "12000.00" },
|
|
{ account = "1000", side = "credit", amount = "12000.00" },
|
|
]
|
|
|
|
[[events]]
|
|
run_depreciation = { asset = "X", period = "2026-01" }
|
|
|
|
# February is skipped; March is run.
|
|
[[events]]
|
|
run_depreciation = { asset = "X", period = "2026-03" }
|
|
|
|
# February run afterwards: nothing is due (March caught it up).
|
|
[[events]]
|
|
run_depreciation = { asset = "X", period = "2026-02" }
|
|
|
|
# Hand check (worked without the code): the schedule through Mar 31 is
|
|
# 3 x 1,000.00 = 3,000.00; January's run carried 1,000.00, so March's run
|
|
# posts 2,000.00 (its own 1,000.00 and February's, caught up). February's
|
|
# run then posts 0.00: the books already carry the schedule through
|
|
# February's end and beyond.
|
|
[[expect]]
|
|
query = "run"
|
|
event = 4
|
|
|
|
[expect.values]
|
|
amount = "2000.00"
|
|
caught_up = "1000.00"
|
|
|
|
[[expect]]
|
|
query = "run"
|
|
event = 5
|
|
|
|
[expect.values]
|
|
amount = "0.00"
|
|
caught_up = "0.00"
|
|
|
|
[[expect]]
|
|
query = "balances"
|
|
as_of = "2026-03-31"
|
|
|
|
[expect.values]
|
|
"1510" = "-3000.00"
|
|
"6200" = "3000.00"
|