Skip to content

Refresh CPS-only fields on PUF support clones#163

Merged
MaxGhenis merged 1 commit into
mainfrom
codex/puf-clone-cps-refresh-20260601
Jun 2, 2026
Merged

Refresh CPS-only fields on PUF support clones#163
MaxGhenis merged 1 commit into
mainfrom
codex/puf-clone-cps-refresh-20260601

Conversation

@MaxGhenis
Copy link
Copy Markdown
Contributor

@MaxGhenis MaxGhenis commented Jun 2, 2026

Summary

  • add a PUF support-clone CPS-only / clone-feature refresh stage after PUF income/tax fields are grafted
  • rematch copied CPS-side fields from CPS rows using compatible demographics plus PUF-imputed income predictors
  • reconcile Social Security subcomponents back to the PUF-imputed Social Security total and emit refresh diagnostics

Why

PUF support clones start as CPS copies, then receive PUF income/tax variables. Without a second refresh, copied CPS-side fields like disability, transfer, work, SPM, and clone-feature labels can remain tied to the original CPS income rather than the PUF-imputed income. This mirrors the eCPS two-stage principle in an MP-native way: use the new PUF-income surface when refreshing clone-side fields.

Notes

  • eCPS separates clone-feature rematching from CPS-only QRF imputation; this PR implements a single nearest-neighbor rematch stage for the MP support-clone path so fields remain jointly coherent with PUF-imputed income.
  • This does not rerun the full artifact; it is covered by focused pipeline tests around disability rematching and Social Security subcomponent reconciliation.

Tests

  • uv run ruff check src/microplex_us/pipelines/us.py tests/pipelines/test_us.py
  • uv run ruff format --check src/microplex_us/pipelines/us.py tests/pipelines/test_us.py
  • uv run --extra dev python -m pytest tests/pipelines/test_us.py -q -k 'puf_support_clone_refresh or appends_puf_support_clone'

@MaxGhenis MaxGhenis merged commit dc092a5 into main Jun 2, 2026
5 checks passed
@MaxGhenis MaxGhenis deleted the codex/puf-clone-cps-refresh-20260601 branch June 2, 2026 00:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant