Skip to content

Sparse national-only release never persists input columns for tips/overtime/auto-loan/education/retirement-contribution/casualty/misc bases (absent-from-H5, engine defaults to 0) #340

Description

@PavelMakarchuk

Follow-up to #278 with a refined mechanism and a larger column list, proven by reading the release H5 directly (populace-us-2024-sparse-l0-refit-57k-71a0887-national-only-20260701, 338MB, person 166,302 × 222 cols / tax_unit 79,736 × 13 cols).

Mechanism refinement vs #278

These bases are not present-but-zeroed — they were never persisted as H5 keys at all, so the engine falls back to each variable's default (0) at runtime. That's a build/persistence-scope mechanism, distinct from a zeroing bug, and it's invisible to any weights-side gate: only a column-manifest check catches it.

Columns proven ABSENT-FROM-H5 (beyond #278's list)

base downstream validation row(s) scoring ~$0
tip_income (all *tip*) OBBBA no-tax-on-tips (JCT FY2027 −$7.7B)
all overtime/FSLA variables OBBBA no-tax-on-overtime (−$25.7B)
auto_loan_interest, auto_loan_balance OBBBA auto-loan-interest deduction (−$8.1B)
qualified_tuition_expenses + all education-credit inputs SOI education credits (actual $7.55B)
ALL retirement-contribution columns (roth_ira_contributions, 401k/403b/457/elective deferrals — #278 listed only traditional_ira_contributions) SOI saver's credit (actual $2.04B)
casualty_loss OBBBA casualty-loss line ($0.13B)
misc itemized inputs (unreimbursed_business_employee_expenses, tax_preparation_fees, …) OBBBA misc-itemized termination ($23.7B)
childcare (tax_unit_childcare_expenses, care_expenses) — confirms #278 CDCC rows (Treasury $3.69B; SOI $3.47B; OBBBA CDCC; IA HF1020 fiscal note)

Notable: the childcare signal exists in the file as raw CPS SPM_CHILDCAREXPNS ($242.8B weighted, 11.0% nonzero) — the survey data is there; it just never reaches a PolicyEngine input.

Degraded (present but short)

base this release reference
charitable_cash_donations $230.7B dense ~$345B; #278 recorded $264B — worth updating
student_loan_interest $10.4B SOI deduction base ~$13-14B
self_employment_income_before_lsr $419.6B SOI nonfarm sole-prop ≈ $480-500B → explains the SOI SE-tax backtest running −14% ($69.5B vs $81.1B)

Healthy for the record: medical component inputs are all populated (premiums $339.6B + Part B $120.7B + other $283.6B + OTC $63.8B) — the medical JCT-target miss is #298's yield mechanism, not a base problem.

Suggested action

Same as #278's gate proposal, but keyed on the column manifest: fail release (or require explicit waiver) when a PolicyEngine input variable consumed by any validation-suite reform/backtest is absent from the persisted H5. The reform-validation suite now exercises exactly these bases, so the missing-column → $0-score path is mechanically detectable at build time.

Found during the 2026-07-06 external-benchmark audit (all 94 dashboard benchmarks verified against primary sources).

🤖 Generated with Claude Code

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