Pub 225 Compliance

This commit is contained in:
2026-06-10 15:23:02 -05:00
parent 221ccb7826
commit 5074a3ad63
16 changed files with 434 additions and 24 deletions

View File

@@ -371,6 +371,18 @@ function initialize() {
updated_at TEXT NOT NULL
);
-- Short tax years (less than 12 months) prorate that year's MACRS depreciation, per company.
CREATE TABLE IF NOT EXISTS short_tax_years (
id INTEGER PRIMARY KEY AUTOINCREMENT,
entity_id INTEGER REFERENCES entities(id),
tax_year INTEGER NOT NULL,
months REAL NOT NULL DEFAULT 12,
note TEXT,
updated_by INTEGER REFERENCES users(id),
updated_at TEXT NOT NULL,
UNIQUE(entity_id, tax_year)
);
-- §179 taxable-income limitation: per company+book+year entered income and computed carryover.
CREATE TABLE IF NOT EXISTS section_179_carryover (
id INTEGER PRIMARY KEY AUTOINCREMENT,
@@ -922,6 +934,12 @@ function migrate() {
ensureColumn('disposals', 'ordinary_recapture', 'REAL NOT NULL DEFAULT 0');
ensureColumn('disposals', 'section_1231_gain', 'REAL NOT NULL DEFAULT 0');
ensureColumn('disposals', 'unrecaptured_1250_gain', 'REAL NOT NULL DEFAULT 0');
// Farm-property recapture inputs (IRS Pub 225): §175 soil/water conservation deductions (§1252) and
// §126 excluded cost-sharing payments (§1255), with the computed recapture stored on disposals.
ensureColumn('assets', 'soil_water_deductions', 'REAL NOT NULL DEFAULT 0');
ensureColumn('assets', 'cost_sharing_excluded', 'REAL NOT NULL DEFAULT 0');
ensureColumn('disposals', 'section_1252_recapture', 'REAL NOT NULL DEFAULT 0');
ensureColumn('disposals', 'section_1255_recapture', 'REAL NOT NULL DEFAULT 0');
// Refresh stale §179 limits seeded before the 2025 OBBBA increase (only touch the old seed values,
// never a figure an administrator has deliberately raised). 2026 per IRS Pub 946 (2025 ed.).
run('UPDATE section_179_limits SET base_limit = 2500000, phaseout_threshold = 4000000 WHERE tax_year = 2025 AND base_limit < 2000000');