diff --git a/changelog.d/us-unmarried-partner-gap-720-wording.fixed.md b/changelog.d/us-unmarried-partner-gap-720-wording.fixed.md new file mode 100644 index 000000000..cb2ab5521 --- /dev/null +++ b/changelog.d/us-unmarried-partner-gap-720-wording.fixed.md @@ -0,0 +1,7 @@ +Correct the wording of the reviewed `is_unmarried_partner_of_household_head` US parity gap, and of the release manifest reason generated from it, to match the code after microcosm #720. + +The old text said only the 2024 input carries `A_EXPRRP` and that the 2022 and 2023 vintages take the line, spouse, sex and parent relationship fallback. That was true of the hermetic Build J base, which predates #720, and the reason now names Build J. Since #720, `tools/build_us_puf_support_base.py` and `tools/build_us_asec_pooled_source_base.py` restore Census `A_EXPRRP` for those years from their pinned Census person files, so no vintage they pool reaches the fallback. A raw-stage checkpoint built before #720 keeps the fallback codes. One example is the `asec_raw_stage` that the US spec has pinned since 2026-08-17. + +The reason now says that the restore excludes `PERRP`, `PECOHAB` and `A_FAMREL`, which the pinned 2022-2024 Census person files carry. The `A_EXPRRP` note now gives code 13's make-up in those files: unmarried partners and housemates without relatives (PERRP 44, 47 and 55). Partners who have their own relatives in the household (PERRP 43 and 46) fall in code 12. + +Only the wording changes. The exclusion's classification, issue and gating are unchanged. diff --git a/packages/microcosm-build/src/microcosm/build/us/ecps_parity_known_gaps.json b/packages/microcosm-build/src/microcosm/build/us/ecps_parity_known_gaps.json index 81b23b3d4..97c3bda95 100644 --- a/packages/microcosm-build/src/microcosm/build/us/ecps_parity_known_gaps.json +++ b/packages/microcosm-build/src/microcosm/build/us/ecps_parity_known_gaps.json @@ -122,7 +122,7 @@ } }, "is_unmarried_partner_of_household_head": { - "reason": "SOURCE UNAVAILABILITY WITH EVIDENCE: archived commit 42ed5d45c56df80d754fbe24cce21cfeb8d05cbe datasets/cps/cps.py lines 1214-1221 derives is_unmarried_partner_of_household_head exclusively from person PERRP; datasets/cps/census_cps.py lines 306-318 declares that person source. All three SHA-recorded 2022-2024 ASEC HDF inputs consumed by the hermetic build omit PERRP. The 2022 and 2023 inputs also omit PECOHAB, A_EXPRRP, and A_FAMREL; only 2024 carries those alternatives, and its A_EXPRRP code 13 conflates partner with roommate. Microcosm's older-year relationship fallback uses only line, spouse, sex, and parent pointers and never identifies a partner. Using the 2024 pointer for one-third of the pool while treating the other two-thirds as false, or assigning partner status from the combined partner/roommate code, would synthesize statuses the locked sources do not report.", + "reason": "SOURCE UNAVAILABILITY WITH EVIDENCE: archived commit 42ed5d45c56df80d754fbe24cce21cfeb8d05cbe datasets/cps/cps.py lines 1214-1221 derives is_unmarried_partner_of_household_head exclusively from person PERRP; datasets/cps/census_cps.py lines 306-318 declares that person source. All three SHA-recorded 2022-2024 ASEC HDF inputs consumed by the hermetic Build J base (experiments/build_j_recert) omit PERRP, and the 2022 and 2023 inputs also omit PECOHAB, A_EXPRRP, and A_FAMREL. Build J predates microcosm #720 and derived its 2022 and 2023 relationship codes from line, spouse, sex, parent, and household-size inputs, a fallback that never emits code 13. Since #720 (PR #991), tools/build_us_puf_support_base.py and tools/build_us_asec_pooled_source_base.py bind each pooled year to its pinned Census person file, and microcosm.build.us_runtime.asec_pool._prepare_year_input restores the microcosm.build.us_runtime.asec_census_person_columns.ASEC_CENSUS_PERSON_COLUMNS an input lacks before the relationship recode, so every vintage those tools pool carries Census A_EXPRRP and none reaches the fallback; a raw-stage checkpoint built before #720, such as the asec_raw_stage the US spec sources.yaml has pinned since 2026-08-17, keeps the fallback codes. Those reviewed columns exclude PERRP, PECOHAB, and A_FAMREL, although the pinned 2022-2024 Census person files carry all three. A_EXPRRP code 13 conflates partner with roommate, and partners who have their own relatives in the household fall in code 12 with other such nonrelatives. Using the 2024 pointer for one-third of Build J's pool while treating the other two-thirds as false, or assigning partner status from the combined partner/roommate code, would synthesize statuses that neither Build J's HDF inputs nor A_EXPRRP codes 12 and 13 report.", "issue": "PolicyEngine/microcosm#38", "evidence": { "classification": "source_unavailability", @@ -171,7 +171,7 @@ "2024": 0.3333333333333333 }, "semantic_non_substitutes": { - "A_EXPRRP": "Only the 2024 locked input carries it, and code 13 is the combined CPSRelationshipCode.PARTNER_OR_ROOMMATE category rather than the retired PERRP unmarried-partner category.", + "A_EXPRRP": "Of Build J's three HDF inputs only 2024 carries it (the pinned income-year 2025 input does too), but since microcosm #720 microcosm.build.us_runtime.asec_pool._prepare_year_input restores it for 2022 and 2023 from their pinned Census person files, so every vintage the two pooling tools pool carries the Census recode: code 13 on 4,312, 4,387, 4,257, and 3,816 unweighted person records in 2022, 2023, 2024, and 2025. Code 13 is the combined CPSRelationshipCode.PARTNER_OR_ROOMMATE category, not the PERRP unmarried-partner codes the retired derivation reads: in the pinned 2022-2024 Census person files it holds PERRP 44 and 47 (unmarried partners without relatives) and 55 (housemates or roommates without relatives: 1,500, 1,601, and 1,614 records in 2022, 2023, and 2024), while PERRP 43 and 46 (unmarried partners with relatives) fall in code 12 (nonrelatives with their own relatives in the household).", "PECOHAB": "Only the 2024 locked input carries the cohabiting-partner line pointer; it cannot recover partner status for the equally weighted 2022 and 2023 source years.", "derived_A_EXPRRP": "packages/microcosm-build/src/microcosm/build/us_runtime/asec_pool.py lines 397-422 derives older-year relationship codes from line, spouse, sex, and parent pointers and never emits code 13.", "rejection": "Using only the 2024 alternatives and filling the equally weighted 2022-2023 source years as false, or splitting the combined partner/roommate category, would synthesize person statuses absent from the locked inputs." diff --git a/packages/microcosm-build/src/microcosm/build/us/release_input_coverage_manifest.json b/packages/microcosm-build/src/microcosm/build/us/release_input_coverage_manifest.json index 57ecbcab6..0e8c17162 100644 --- a/packages/microcosm-build/src/microcosm/build/us/release_input_coverage_manifest.json +++ b/packages/microcosm-build/src/microcosm/build/us/release_input_coverage_manifest.json @@ -255,7 +255,7 @@ }, "is_unmarried_partner_of_household_head": { "issue": "PolicyEngine/microcosm#38", - "reason": "SOURCE UNAVAILABILITY WITH EVIDENCE: archived commit 42ed5d45c56df80d754fbe24cce21cfeb8d05cbe datasets/cps/cps.py lines 1214-1221 derives is_unmarried_partner_of_household_head exclusively from person PERRP; datasets/cps/census_cps.py lines 306-318 declares that person source. All three SHA-recorded 2022-2024 ASEC HDF inputs consumed by the hermetic build omit PERRP. The 2022 and 2023 inputs also omit PECOHAB, A_EXPRRP, and A_FAMREL; only 2024 carries those alternatives, and its A_EXPRRP code 13 conflates partner with roommate. Microcosm's older-year relationship fallback uses only line, spouse, sex, and parent pointers and never identifies a partner. Using the 2024 pointer for one-third of the pool while treating the other two-thirds as false, or assigning partner status from the combined partner/roommate code, would synthesize statuses the locked sources do not report.", + "reason": "SOURCE UNAVAILABILITY WITH EVIDENCE: archived commit 42ed5d45c56df80d754fbe24cce21cfeb8d05cbe datasets/cps/cps.py lines 1214-1221 derives is_unmarried_partner_of_household_head exclusively from person PERRP; datasets/cps/census_cps.py lines 306-318 declares that person source. All three SHA-recorded 2022-2024 ASEC HDF inputs consumed by the hermetic Build J base (experiments/build_j_recert) omit PERRP, and the 2022 and 2023 inputs also omit PECOHAB, A_EXPRRP, and A_FAMREL. Build J predates microcosm #720 and derived its 2022 and 2023 relationship codes from line, spouse, sex, parent, and household-size inputs, a fallback that never emits code 13. Since #720 (PR #991), tools/build_us_puf_support_base.py and tools/build_us_asec_pooled_source_base.py bind each pooled year to its pinned Census person file, and microcosm.build.us_runtime.asec_pool._prepare_year_input restores the microcosm.build.us_runtime.asec_census_person_columns.ASEC_CENSUS_PERSON_COLUMNS an input lacks before the relationship recode, so every vintage those tools pool carries Census A_EXPRRP and none reaches the fallback; a raw-stage checkpoint built before #720, such as the asec_raw_stage the US spec sources.yaml has pinned since 2026-08-17, keeps the fallback codes. Those reviewed columns exclude PERRP, PECOHAB, and A_FAMREL, although the pinned 2022-2024 Census person files carry all three. A_EXPRRP code 13 conflates partner with roommate, and partners who have their own relatives in the household fall in code 12 with other such nonrelatives. Using the 2024 pointer for one-third of Build J's pool while treating the other two-thirds as false, or assigning partner status from the combined partner/roommate code, would synthesize statuses that neither Build J's HDF inputs nor A_EXPRRP codes 12 and 13 report.", "status": "reviewed_exclusion" }, "is_wic_at_nutritional_risk": {