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
159 lines
4.1 KiB
TOML
159 lines
4.1 KiB
TOML
id = "depreciation-disposal-after-a-late-change-undone"
|
|
title = "A disposal is taken once a late change to an earlier run is undone, on any later day"
|
|
rule = "A disposal clears what the asset's runs carry now, so it waits until each run carries at the end of the disposal's month what it carries now. A reversal of an earlier run dated after that month is undone by reversing it, on any open day: the disposal month and the end are then right, and a later month end keeps the change and its correction as they were made."
|
|
status = "CONVENTION"
|
|
sources = ["ASC 360-10-35-4", "Pacioli 1494, ch. 31"]
|
|
tags = ["depreciation", "disposal", "refusal", "reversal", "p3-defect-22"]
|
|
|
|
[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" }
|
|
|
|
[[events]]
|
|
run_depreciation = { asset = "X", period = "2026-02" }
|
|
|
|
[[events]]
|
|
run_depreciation = { asset = "X", period = "2026-03" }
|
|
|
|
[[events]]
|
|
run_depreciation = { asset = "X", period = "2026-04" }
|
|
|
|
[[events]]
|
|
run_depreciation = { asset = "X", period = "2026-05" }
|
|
|
|
# May's run reversed on Aug 1 (doubted). Its month, and July's, still
|
|
# carried it at their ends.
|
|
[[events]]
|
|
date = "2026-08-01"
|
|
description = "Reverse event 7"
|
|
reverses = 7
|
|
|
|
# Disposed of 2026-06-15 for 7,000.00: refused. The disposal clears what
|
|
# the runs carry now (January to April, 4,000.00) and would charge May
|
|
# again at Jun 15, so June would end carrying 6,500.00 against a
|
|
# schedule of 5,500.00. The refusal names May's run and the reversal.
|
|
[[events]]
|
|
date = "2026-06-15"
|
|
dispose_asset = { asset = "X", proceeds = "7000.00", proceeds_account = "1000", gain_loss_account = "7100" }
|
|
refused = "depreciation_past_disposal"
|
|
|
|
# May was right: its reversal reversed on Sep 2 (August may be closed by
|
|
# then; any open day undoes it).
|
|
[[events]]
|
|
date = "2026-09-02"
|
|
description = "Reverse event 8"
|
|
reverses = 8
|
|
|
|
[[events]]
|
|
date = "2026-06-15"
|
|
dispose_asset = { asset = "X", proceeds = "7000.00", proceeds_account = "1000", gain_loss_account = "7100" }
|
|
|
|
# Hand check (worked without the code): the runs carry 5,000.00 at Jun 30
|
|
# and now. Held through Jun 15: 5,000.00 + 1,000.00 x 15/30 = 5,500.00, so
|
|
# the final depreciation is 500.00 and the disposal clears 5,500.00. Book
|
|
# value 6,500.00; gain 7,000.00 - 6,500.00 = 500.00. August's end carries
|
|
# May's reversal (accumulated depreciation a 1,000.00 debit, the expense
|
|
# 4,500.00) and September's its correction, as they would without the
|
|
# disposal.
|
|
[[expect]]
|
|
query = "disposal"
|
|
asset = "X"
|
|
|
|
[expect.values]
|
|
final_depreciation = "500.00"
|
|
catch_up_depreciation = "0.00"
|
|
excess_depreciation = "0.00"
|
|
accumulated = "5500.00"
|
|
book_value = "6500.00"
|
|
gain_loss = "500.00"
|
|
|
|
[[expect]]
|
|
query = "balances"
|
|
as_of = "2026-06-30"
|
|
|
|
[expect.values]
|
|
"1510" = "0.00"
|
|
"6200" = "5500.00"
|
|
"7100" = "500.00"
|
|
|
|
[[expect]]
|
|
query = "balances"
|
|
as_of = "2026-08-31"
|
|
|
|
[expect.values]
|
|
"1510" = "1000.00"
|
|
"6200" = "4500.00"
|
|
|
|
[[expect]]
|
|
query = "balances"
|
|
as_of = "2026-09-30"
|
|
|
|
[expect.values]
|
|
"1510" = "0.00"
|
|
"6200" = "5500.00"
|