Repository navigation
Record strike_benefits as a reviewed degenerate input - #993
Merged
Merged
Conversation
No respondent in the pinned public ASEC person files reports other-income
source OI_OFF == 12 ("strike benefits" in the ASEC 2024 public use data
dictionary): pppub23, pppub24 and pppub25 carry codes 0-10, 13, 19 and 20
only. The PUF half has no strike-benefit field, so alimony.py's code-12 split
is identically zero, and route A's fresh-base release (2026-09-23) refused
at the pre-solve degenerate-input gate: "strike_benefits: every observed
value equals the engine default (0)".
The mapping is right (policyengine-us-data uses the same code), so this is
the gate's documented remedy, a reviewed exclusion, not a code change. A
vintage with a code-12 reporter makes the entry stale and fails the gate.
An archive-gated test (MICROCOSM_ASEC_ARCHIVE_DIR) checks the zero-reporter
claim against the three official archives.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MaxGhenis
marked this pull request as ready for review
September 23, 2026 10:23
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.
strike_benefitsjoinsUS_DEGENERATE_INPUT_REVIEWED_EXCLUSIONSintools/build_us_fiscal_refresh_release.py.Why
Route A's fresh-base release run on 2026-09-23 (epic #956) refused at the pre-solve degenerate-input gate:
alimony.pysplits ASEC other income onOI_OFF: code 20 is alimony, code 12 is strike benefits, and everything else is miscellaneous income. policyengine-us-data'scps.pyuses the same codes. The ASEC 2024 public use data dictionary confirms thatOI_OFF12 is "strike benefits", so the mapping is right. No respondent reports it.OI_OFFvalues in the three pinned official person files:pppub23(2022)pppub24(2023)pppub25(2024)The PUF half carries no strike-benefit field. So the column is identically zero on the pinned sources, and the gate's documented remedy is a reviewed exclusion, not a code change.
Guard rails
test_strike_benefits_exclusion_rests_on_zero_code_12_reportersreads the three official archives whenMICROCOSM_ASEC_ARCHIVE_DIRpoints at them. It asserts there are no code-12 rows and that the alimony code is still present, which catches a layout change. It passes locally against the pinned archives (sha256d2e00025…,cdb39cda…,318845a2…).Route A builds from
route-a-integration-20260923, which merges this branch with #991 and #992.🤖 Generated with Claude Code