Files
wanderbooks/bookspec/examples/depreciation-disposal-mid-month.toml
T
swaitsandClaude Opus 5.5 b0a9fd8ad4 P3: depreciation straight-line by days through the final month, schedules by day (defects 22, 9, D-37)
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
2026-10-21 14:04:11 -06:00

135 lines
3.2 KiB
TOML

id = "depreciation-disposal-mid-month"
title = "A disposed asset depreciates through its disposal day, and its schedule stops there"
rule = "An asset disposed of mid-month is depreciated through the disposal day, held, and its schedule, accumulated depreciation and book value afterwards are what the disposal took."
status = "CONVENTION"
sources = ["ASC 360-10-35-4"]
tags = ["depreciation", "disposal", "mid-month", "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" }
# Disposed of 2026-06-15 for 7,000.00.
[[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): January..May run, 5 x 1,000.00 =
# 5,000.00. June held through the 15th: 1,000.00 x 15/30 = 500.00, the
# final depreciation. Accumulated 5,500.00; book value 12,000.00 -
# 5,500.00 = 6,500.00; gain 7,000.00 - 6,500.00 = 500.00.
[[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"
# The disposed asset's schedule ends on the disposal day, whatever date it
# is asked through.
[[expect]]
query = "depreciation_schedule"
asset = "X"
as_of = "2030-12-31"
[expect.values]
"2026-06" = "500.00"
accumulated = "5500.00"
book_value = "6500.00"
# The books: depreciation expense 5,500.00 (debit), the gain 500.00
# (credit), accumulated depreciation and equipment cleared, the bank
# 7,000.00 (debit).
[[expect]]
query = "balances"
as_of = "2026-06-30"
[expect.values]
"1000" = "7000.00"
"1500" = "0.00"
"1510" = "0.00"
"6200" = "5500.00"
"7100" = "500.00"