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 }}
Repository navigation
Unknown-column warning hides removed model inputs behind raw source columns (ten-name cap) #609
The warning names only the first ten unknown columns, sorted, plus a count. On a dataset that also carries raw source columns, those ten slots are taken by names that were never model variables, so a column for a removed model input is never named.
Measured 2026-09-25 by loading the certified US default dataset (populace_us_2024.h5@populace-us-2024-spm-20260909, sha256 6496cc43…) through policyengine_us.Microsimulation on the #9605 branch with policyengine-core 3.32.7. The single warning was:
The dataset contains 191 column(s) that do not match any variable in the tax-benefit system and were ignored: ACTC_CRD, AGI, ANN_VAL, A_AGE, A_ENRLW, A_EXPRRP, A_FAMREL, A_FAMTYP, A_FNLWGT, A_FTPT, … (181 more)
That branch deletes first_home_mortgage_interest and second_home_mortgage_interest, and the dataset carries both, but neither appears: uppercase survey columns sort first. The warning fires on this file whether or not a model input was removed, so it carries no signal there. On a dataset with no raw source columns it works as intended (policyengine-us test tests/microsimulation/data/test_removed_mortgage_interest_inputs.py asserts both names appear).
Options
Removed-input registry (preferred). Let a tax-benefit system declare removed or renamed inputs (name → replacement or guidance). At dataset load, emit a separate warning naming every dataset column that matches the registry, independent of the ten-name cap. This is the only option that tells a user what to do.
Full list at a lower level. Keep the capped WARNING and also log the complete sorted list at INFO or DEBUG.
Ordering. List snake_case names (the model's convention) before other names, so removed inputs outrank raw survey columns. Cheap, but a heuristic.
Acceptance
A test that builds a dataset with more than ten unknown columns, one of them a registered removed input, and asserts the warning output names that input and its guidance.
Activity