You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jun 14, 2026. It is now read-only.
microplex's high-fidelity microunit adapter (_microunit_cps_frame_from_cps_fields in src/microplex_us/pipelines/us.py) does not thread student enrollment into microunit's CPS contract. So microunit's qualifying-child age test only applies the <19 cutoff, never the <24-for-students extension. Result: a 19–23-yo student own-child — whom eCPS does claim as a dependent — gets their own tax unit in MP, under-splitting dependents vs eCPS.
Verified
Own-child age sweep through build_policyengine_entity_tables: folded as a dependent (1 unit) at age ≤18, own unit (2 units, 0 dependents) at age ≥19 — i.e. no student extension.
The fix
MP already carries the signal: data_sources/cps.py reads A_HSCOL → student_status (eq(2) = enrolled). Thread A_HSCOL (or A_ENRLW/A_FTPT) — or a derived student flag — through to the materialization frame and into the adapter's microunit input (microunit's optional enrollment columns are A_ENRLW/A_FTPT/A_HSCOL), so the student qualifying-child extension fires.
Acceptance
Own-child age 19–23 with enrolled student status → claimed as dependent (matches eCPS); non-students unchanged.
Add a regression test in tests/pipelines/.
Convergence note (#113): this brings MP's dependent claiming toward eCPS's engine output, so any loss effect is entity-convergence, not independent improvement.
Follow-up to #116.
microplex's high-fidelity microunit adapter (
_microunit_cps_frame_from_cps_fieldsinsrc/microplex_us/pipelines/us.py) does not thread student enrollment into microunit's CPS contract. So microunit's qualifying-child age test only applies the <19 cutoff, never the <24-for-students extension. Result: a 19–23-yo student own-child — whom eCPS does claim as a dependent — gets their own tax unit in MP, under-splitting dependents vs eCPS.Verified
Own-child age sweep through
build_policyengine_entity_tables: folded as a dependent (1 unit) at age ≤18, own unit (2 units, 0 dependents) at age ≥19 — i.e. no student extension.The fix
MP already carries the signal:
data_sources/cps.pyreadsA_HSCOL→student_status(eq(2)= enrolled). ThreadA_HSCOL(orA_ENRLW/A_FTPT) — or a derived student flag — through to the materialization frame and into the adapter's microunit input (microunit's optional enrollment columns areA_ENRLW/A_FTPT/A_HSCOL), so the student qualifying-child extension fires.Acceptance
tests/pipelines/.Convergence note (#113): this brings MP's dependent claiming toward eCPS's engine output, so any loss effect is entity-convergence, not independent improvement.