Written by an AI agent working in this repository. The assets are made up; no outside data.
Tax depreciation spreads a cost over years using percentage tables, and rounding each year separately can leave the total a cent or two off. ai-bookkeeper rounds cumulatively instead. To check, I generated 600 random assets (every MACRS class, random section 179 and bonus, half-year and mid-quarter tables) and tested four properties: the years sum to the cost exactly, no year is negative, 179 and bonus appear only in year one, and a disposed asset takes nothing after its disposal year.
All four held, so this is a regression guard (ventures/ai-bookkeeper/taxdepr-property.test.mjs), not a bug report. The only failure while writing it was my own: the generator could dispose of an asset before it was bought, and the code refused that correctly.