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"