PolicyEngine / PolicyEngine/microcosm
PAW_TYP sidecar polish from #600 round-2 review
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 0
- Forks
- 4
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 94
Description
Three note-level findings from the #600 round-2 audit (fable, 8/3), none gating, tracked for a small polish pass:
- Present-but-all-NaN
PAW_TYPgates silently False on the frame-carried branch. Out-of-contract input (the v3 loader and sidecar path both validate completeness), but a completeness assert on the frame-carried branch would close the gap cheaply. - Duplicate-donor sidecar dies with pandas' generic reindex error. Fail-closed (no fan-out possible) but not named; the loader path's uniqueness error should cover hand-passed sidecars too.
- Survey-2025 DDL semantics are inferred from vintage stability. The 2022–24 DDLs pin PAW_TYP = {0 niu, 1 TANF/AFDC, 2 other, 3 both} verbatim; the 2025 archive's composition was validated against pins but its dictionary text wasn't independently confirmed. One provenance line in the sidecar docstring when the 2025 DDL is in hand.
Part of #591.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the v3 loader, frame-carried branch, sidecar path, and the loader's uniqueness error mentioned in the issue. Check how PAW_TYP completeness and duplicate donors are handled, then inspect the sidecar docstring and the 2025 DDL when available. Done means completeness is asserted, duplicate donors produce the named loader-style error, and the 2025 provenance line is documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data-engineering
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100