Page actions
instrument mechanism / verified-with-binding-errata
Declining Balance / Double-Declining Depreciation mechanism
The inspectable method record for Declining Balance / Double-Declining Depreciation, kept separate from implementation and qualification.
Model scope
The educational-only label is appropriate, but the formula specification needs explicit period units, beginning-book-value indexing, salvage-floor handling, straight-line comparison, input constraints, and rounding rules before implementation can be verified as unambiguous.
- dep_t=book_value_t*rate is ambiguous: standard declining-balance depreciation uses the beginning book value of period t, not the ending book value.
- The formula omits the salvage-value floor. Depreciation must not reduce book value below salvage value, and the final period may require an adjustment.
- The straight-line switch rule is underspecified. Standard practice compares declining-balance depreciation with remaining-book-value straight-line depreciation: (beginning book value - salvage value) / remaining periods, then selects the larger amount without exceeding the depreciable base.
- The formula does not define whether t is zero-based or one-based, nor whether book_value_t means beginning or ending book value.
- No rounding policy or final-period rounding adjustment is specified.
Units and conventions
- Useful life and depreciation periods are assumed to use the same unit; the vectors below use annual periods unless otherwise stated.
- cost, salvage, and book values are monetary amounts in the same currency.
- The multiplier is dimensionless; rate = multiplier / useful life.
- The standard interpretation is beginning-book-value declining balance, with a switch to remaining-life straight line when straight line is greater than declining balance, subject to the salvage floor.
- A positive integer useful life is required; multiplier is assumed to be 1.5 or 2.0.
Inspectable vector
One of 4 source-bound review vectors:
{
"inputs": {
"cost": 10000,
"salvage": 1000,
"useful_life": 5,
"multiplier": 2,
"period_unit": "years",
"switch_rule": "use the greater of declining-balance and remaining-life straight-line depreciation, capped at salvage"
},
"expected_outputs": {
"rate": 0.4,
"depreciation": [
4000,
2400,
866.6666666667,
866.6666666667,
866.6666666666
],
"ending_book_value": [
6000,
3600,
2733.3333333333,
1866.6666666666,
1000
]
},
"working": "Rate = 2 / 5 = 0.4. Year 1: DB depreciation = 10000 x 0.4 = 4000; ending book value = 10000 - 4000 = 6000. Year 2: DB depreciation = 6000 x 0.4 = 2400; ending book value = 6000 - 2400 = 3600. At the start of Year 3, DB = 3600 x 0.4 = 1440. Remaining-life SL = (3600 - 1000) / 3 = 2600 / 3 = 866.6666666667, so switch to SL. Year 3 ending book value = 3600 - 866.6666666667 = 2733.3333333333. Year 4 depreciation = (2733.3333333333 - 1000) / 2 = 866.6666666667; ending book value = 1866.6666666666. Year 5 depreciation = (1866.6666666666 - 1000) / 1 = 866.6666666666; ending book value = 1000."
}Failure boundary
BREAK_CLAIMED · SELF_FLAGGED
A useful_life input of zero causes division by zero in rate = multiplier/useful_life, producing an undefined rate and invalid schedule. The instrument should reject the input rather than emit numeric results.
Other records
Sources and evidence
These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.
VERIFIED_LEDGER.jsonevidence-tranche5/tranche5-results.jsonBOUNDARY_HAZARD_CATALOG.json