The first full-scale run through the child-support signal gate (Build M base, 2026-07-13) surfaced a substantive modeling question the gate band was hiding.
Measured person-level nonzero shares for child_support_expense:
| source |
share |
raw CPS ASEC 2024 (cps_2024.h5) |
0.659% |
| populace Build M base, ASEC channel |
0.660% |
| populace Build M base, PUF tax-detail clone channel (QRF draw) |
0.272% |
| populace Build M base, pooled (~50/50) |
0.466% |
retired us-data extended_cps_2024.h5 |
1.990% |
retired us-data enhanced_cps_2024.h5 (shipped eCPS) |
2.955% |
| OCSE-implied payer count (~5M noncustodial payers) |
~1.5–2% of persons |
Three observations:
- Our ASEC channel reproduces the survey exactly; our clone-channel draw (0.27%) is covariate-consistent with the trained marginal. The pipeline is faithful to its source.
- The retired pipeline inflated prevalence 3–4.5× above the survey marginal it trained on (0.62% → 1.99%/2.96%) — sequential-imputation drift, not a calibrated choice we can find documented. It accidentally landed nearer the OCSE-implied truth.
- CPS is known to undercount payers (payer self-report). So survey-faithful ≈ undercount; the eCPS number was drifted; admin-aligned would require deliberate seeding.
Why it matters: child-support expense drives SNAP deductions (and other program interactions). Build M will ship payer incidence ~4–6× lower than the eCPS the world used. Neither number is validated.
Proposed resolution (architecture week): treat payer prevalence like the take-up families — seed to an administrative anchor (OCSE payer/caseload counts) with documented source, rather than inheriting either survey undercount or imputation drift. Decision needed on the anchor series and entity mapping.
Immediate mechanical fix (separate PR): the shared (0.005, 0.15) gate band mislabels the faithful 0.466% as degenerate; splitting the expense floor to 0.003 with this evidence as the fence. Per-channel 0.002 degeneracy floors unchanged.
Related: #399 (family restoration), #416 (near-discrete target modeling).
🤖 Generated with Claude Code
The first full-scale run through the child-support signal gate (Build M base, 2026-07-13) surfaced a substantive modeling question the gate band was hiding.
Measured person-level nonzero shares for
child_support_expense:cps_2024.h5)extended_cps_2024.h5enhanced_cps_2024.h5(shipped eCPS)Three observations:
Why it matters: child-support expense drives SNAP deductions (and other program interactions). Build M will ship payer incidence ~4–6× lower than the eCPS the world used. Neither number is validated.
Proposed resolution (architecture week): treat payer prevalence like the take-up families — seed to an administrative anchor (OCSE payer/caseload counts) with documented source, rather than inheriting either survey undercount or imputation drift. Decision needed on the anchor series and entity mapping.
Immediate mechanical fix (separate PR): the shared (0.005, 0.15) gate band mislabels the faithful 0.466% as degenerate; splitting the expense floor to 0.003 with this evidence as the fence. Per-channel 0.002 degeneracy floors unchanged.
Related: #399 (family restoration), #416 (near-discrete target modeling).
🤖 Generated with Claude Code