PolicyEngine / PolicyEngine/microcosm

Surface work-experience industry and worked-last-year person inputs (LWI MVP schema)

Open
#719 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
0
Forks
4
Avg merge
1d 3h
Merged PRs (30d)
94

Description

The Living Wage Institute county-microdata engagement (confirmed 2026-08-14) commits the MVP person schema to carry, on every person record: (1) a working indicator, (2) industry, (3) occupation.

Occupation already ships: detailed_occupation_recode (ASEC POCCU2, occupation of longest job by detailed groups) flows through the org_wages stage. Industry and an explicit working indicator do not exist anywhere in the build: the frozen census_cps person inputs carry no industry column and no work-experience status recode (only WKSWORK/A_HRS1/HRSWK intensity fields), and no stage outputs them.

Verified against the official ASEC public-use data dictionary (asec2024_ddl_pub_full.pdf) and persfmt.txt:

  • WEIND — "IND. OF LONGEST JOB BY DETAILED GROUPS" (0:23; 22 = Military, 23 = Never worked; 0 = NIU), universe all persons 15+. The reference-period-coherent detailed sibling of POCCU2. Note A_DTIND/A_MJIND are the survey-week current-job recodes (universe A_CLSWKR=1-7) and would misalign with the longest-job occupation and the income reference year.
  • WEMIND — "IND. OF LONGEST JOB BY MAJOR IND. GROUPS" (0:15).
  • WORKYN — "Did ... work at a job or business at any time during 20..?" (0 = NIU, 1 = yes, 2 = no), universe all persons 15+.

Plan:

  • New post-clone source stage work_experience_inputs restoring WEIND/WEMIND/WORKYN for every pooled income year from the same three SHA-pinned official ASEC archives the education-assistance and public-assistance-type sidecars pin (exact PERIDNUM joins; never predicts a value), then deriving person outputs detailed_industry_recode, major_industry_recode, worked_last_year.
  • Prerequisite PolicyEngine-US PR adds the three input variables mirroring detailed_occupation_recode; the release input-coverage gate requires them in the locked engine, so the microcosm PR bumps the pe-us lock once released.
  • No change to frozen census_cps artifacts, HF destinations, or release publication.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the planned post-clone work_experience_inputs stage and review the existing education-assistance and public-assistance-type sidecars for their SHA-pinned ASEC archive and exact PERIDNUM-join patterns. Confirm the three PolicyEngine-US input variables and locked-engine coverage gate; done means the three person outputs are produced for every pooled income year without changing frozen census_cps artifacts, HF destinations, or release publication.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data, data-engineering
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.