Skip to content

Impute CPS ORG variables (hourly wages, union status) onto eCPS #587

@MaxGhenis

Description

@MaxGhenis

Summary

Impute CPS Outgoing Rotation Group (ORG) variables onto the eCPS to enable wage-rate and labor market analysis. The ORG contains several variables not available in the ASEC that are important for policy modeling.

Variables to impute

These are ORG-unique — not available in the ASEC:

Variable Description Policy relevance
Hourly wage (actual reported) Direct hourly pay for hourly workers, usual weekly earnings for salaried Minimum wage, wage subsidies, overtime policy
Paid-by-the-hour flag Whether worker is paid hourly vs salaried Overtime eligibility, wage floor analysis
Union membership/coverage Union member or covered by union contract Labor policy modeling
Overtime/tips/commissions Weekly OTC amount (combined field) Tip credit policy, overtime rules

Motivation

  • Hourly wages are the gold standard for wage analysis (EPI, CEPR, BLS all use ORG for this). Deriving hourly wages from ASEC annual earnings ÷ hours is noisy and biased.
  • Union status is only collected in the ORG — there is no ASEC equivalent.
  • External users are already building workarounds: eig-wagesubsidy-policy-sim uses ORG separately because the eCPS lacks these variables, forcing a 4-household-type approximation instead of using PolicyEngine's Microsimulation class.

Approach

Use the existing QRF (microimpute) pipeline, same pattern as SIPP/ACS/SCF imputation in source_impute.py:

  1. Load ORG microdata (available from EPI, CEPR, or IPUMS)
  2. Train QRF on shared covariates: employment_income, age, education, occupation, industry, state, sex, race, hours worked
  3. Impute onto eCPS ASEC records
  4. Validate imputed distributions against ORG originals by subgroup

Data access

ORG is public use data, no licensing restrictions. EPI provides cleaned extracts with constructed hourly wages (Pareto top-code adjustment, allocation flag filtering).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions