Build depreciation schedules that tie to the fixed asset register: classify each asset, set book useful life and salvage apart from the tax recovery period, compare straight line, declining balance, and units of production, apply partial year conventions (half-year, mid-quarter with the 40 percent test, mid-month), layer section 179 and bonus in the right order, and roll the register forward to the ledger. Ships a calculator tested against the IRS MACRS percentage tables and a register checker. Use when adding an asset, building or rebuilding a depreciation schedule, choosing a method, doing a month end or year end depreciation run, or reconciling depreciation to the general ledger or Form 4562.
./install.sh depreciation-schedulesname: depreciation_schedules description: "Build depreciation schedules that tie to the fixed asset register: classify each asset, set book useful life and salvage apart from the tax recovery period, compare straight line, declining balance, and units of production, apply partial year conventions (half-year, mid-quarter with the 40 percent test, mid-month), layer section 179 and bonus in the right order, and roll the register forward to the ledger. Ships a calculator tested against the IRS MACRS percentage tables and a register checker. Use when adding an asset, building or rebuilding a depreciation schedule, choosing a method, doing a month end or year end depreciation run, or reconciling depreciation to the general ledger or Form 4562."
A depreciation schedule is two schedules wearing one name. The book schedule spreads cost over the useful life the business expects, with a salvage value the business estimates. The tax schedule follows rules the tax system assigns: a property class, a recovery period, a prescribed method, and a convention, with no salvage value at all. Mixing the two is the root of most depreciation errors: a book life typed into a tax return, a tax life driving the financial statements, or one blended column in the register that matches neither.
This skill builds both schedules from one clean asset record, runs the partial year conventions correctly, applies first year expensing in the right order, and ties the result to the fixed asset register and the ledger. It ships a tested calculator (bin/depreciation.py) and a register checker (bin/register_check.py), plus the method and control detail in references/.
Scope line: this skill builds schedules and keeps registers honest. It does not file returns, give tax advice for a specific taxpayer, or replace a cost segregation study. Elections and close calls go to the tax preparer with the schedules attached.
assets/fixed-asset-register.csv for a new register. One row per asset, a stable asset_id, book and tax lives in separate column sets. Field list and rules: references/register-and-controls.md.references/methods-and-conventions.md.python3 bin/depreciation.py --cost 120000 --life 7 --method macrs-db --factor 2.0 --placed-in-service 2026-02-10 --bonus-pct 50 --format csvpython3 bin/depreciation.py --cost 390000 --life 39 --method macrs-sl --convention mid-month --placed-in-service 2026-06-20python3 bin/depreciation.py --cost 60000 --salvage 6000 --life 5 --method book-sl --convention months --placed-in-service 2026-04-01python3 bin/depreciation.py --cost 80000 --salvage 5000 --method book-uop --units-total 100000 --units-per-year 30000,25000,20000,15000,10000 --placed-in-service 2026-01-05 Run python3 bin/depreciation.py --self-test once per install or upgrade: it reproduces the IRS percentage tables for 3, 5, and 7 year 200 percent declining balance property under the half-year convention and checks a 27.5 year mid-month straight line case. The calculator computes from the formulas and rounds each year to cents. The IRS percentage tables round the rate first, so a table built schedule can differ by a few dollars over an asset life. Pick one approach per asset and stay with it.python3 bin/register_check.py assets/fixed-asset-register.csv (point it at the real register file). Fix every error it prints. Read every warning: fully depreciated assets still in service, and disposed assets with untaken depreciation, are findings to resolve, not noise.references/register-and-controls.md.--disposal-date on the calculator), stop the schedule, remove cost and accumulated in the rollforward, and compute gain or loss from proceeds against remaining book value. Flag the tax side for recapture: gain on section 1245 property is ordinary income up to the depreciation allowed or allowable, including section 179 and bonus. On a life or salvage change, spread the remaining book value over the remaining revised life from that period forward, note the reason and date on the row, and do not restate earlier years.A single asset delivery contains: the asset row as recorded, the book schedule and the tax schedule (year, first year expensing split out, regular depreciation, total, accumulated, ending book value), the decisions behind each side (life, salvage, method, class, system, convention, section 179 and bonus amounts), and the convention test result for any tax year where mid-quarter was in play.
A period run delivery contains: the register checker output with errors fixed, the cost and accumulated rollforwards with both ties stated, the period depreciation by cost center that was posted, additions with their class and expensing decisions, and disposals with proceeds, remaining book value, and gain or loss.
Every delivery states: which side each number belongs to (book or tax, every time), the source for any recovery period or limit used (Publication 946 appendix or the revenue procedure for the year), and any asset where a decision is an estimate or a preparer question rather than a settled rule. A schedule with no register row behind it is not a delivery.
references/methods-and-conventions.mdreferences/register-and-controls.mdbin/depreciation.py, run with --help for all options and --self-test for the IRS table checkbin/register_check.py, run with --help for the rules it enforcesassets/fixed-asset-register.csvpublisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
No ratings yet — be the first to rate it.