Standing per-component repeal-revenue validation surface (#298) - #535
Draft
MaxGhenis wants to merge 6 commits into
Draft
Standing per-component repeal-revenue validation surface (#298)#535MaxGhenis wants to merge 6 commits into
MaxGhenis wants to merge 6 commits into
Conversation
This was referenced Jul 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adopts populace#298's proposal as a standing, diagnostics-only validation surface: every release now computes per-component repeal-revenue deltas and ships them against published benchmarks, so a yield-per-dollar-of-base gap (like QBI's −40% or SALT's −60% on the June dense release) can never again hide behind clean amount residuals.
repeal_revenue_benchmarks.json— eight components: SALT, home mortgage interest, charitable, medical, casualty, §199A QBI (benchmarked, FY2026), plus tips and overtime withbenchmark: null(no published line; the zero-input-base problem stays visible instead of silently untested). Every row isprovisional: truewith the source string embedding the re-verification requirement (values transcribed from QBI base −31%/−40% vs targets and JCT; add per-component repeal-revenue benchmarks (amount residuals can't see yield gaps) #298's JCX-45-25 table, not yet re-checked against the publication).build_us_fiscal_refresh_release.py::_write_reform_validation()loads the family alongside the existing tax-expenditure and OBBBA reform validations; payload rows carry modeled delta, benchmark, relative gap, and the provisional flag. Strictly non-gating.neutralized_variablexorparameter_changes), malformed-contract rejections, synthetic arithmetic, null-benchmark handling, diagnostics-only assertion, and a pinned-registry test that every neutralized variable exists in the pinned PolicyEngine-US.Verification (supervisor, independent)
Full workspace suite with restricted artifacts on this branch: 3,254 passed, 0 failed; ruff clean; resource declared in
country_package.json.Before first certified use
Re-verify the six numeric benchmarks against JCX-45-25 itself (tracked with the in-flight 199A publications research under #530) and decide whether FY2026 lines should be window-adjusted to the release's calendar-year scoring.
Stacked on #534 (base
qbi-v2-engine); the PR gate triggers on base=main only, so CI fires as the stack merges down.Refs #530, closes the standing-surface item of #298
🤖 Generated with Claude Code