Skip to content

AMT understated ~59%: amt_income carries no preference items (ISO spread, PAB interest, depletion) and the data has no such inputs #254

Description

@PavelMakarchuk

Summary

Simulated alternative minimum tax validates 59% below IRS actuals. The mechanism is structural: PE-US's amt_income is taxable_income + amt_excluded_deductions + amt_separate_addition + exemptions — the SALT-addback channel — with no AMT preference items (incentive-stock-option exercise spread, private-activity-bond interest, depletion/intangible drilling), and the dataset carries no inputs that could feed them.

Evidence

On populace_us_2024.h5 (…f0af251…20260620), vs IRS SOI TY2023 (Pub 1304 Table 1.4):

populace SOI actual
AMT liability $1.13B $2.75B
AMT payers 123k (weighted) 150k returns

Payer counts are close (−18%) but dollars are −59%: populace finds the SALT-driven AMT filers but misses the high-dollar cases. Post-TCJA, realized AMT is dominated by ISO exercises and specialized preferences — per-filer amounts far above the SALT-addback cases. Populace's by-AGI pattern shows the shortfall concentrated in the $200k–$1M bands where ISO exercises cluster.

Nature of the fix

Two-layer: (1) policyengine_us would need preference-item variables on Form 6251 (model gap, upstream); (2) even then, survey microdata has no ISO-exercise records, so the input would need imputation from SOI aggregates. Until either happens, AMT should be treated as a documented structural understatement in validation — expected ~40% of actual — rather than a calibration defect.

Found via the SOI-actuals baseline backtest (PolicyEngine/calibration-diagnostics reform-validation page).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions