Labor-market data methodology
Last updated: April 27, 2026.
Prentice combines three public labor-market sources to describe skilled-trade opportunity: BLS Occupational Employment and Wage Statistics (OEWS), Census American Community Survey Public Use Microdata Sample (ACS PUMS), and Projections Central long-term occupational projections. This page documents what the numbers mean, how we compute them, and where they fall short.
What OEWS trade jobs means
The map label OEWS trade jobs is the BLS employment estimate for the selected occupation's SOC code in the selected state or metro. It is a stock of estimated full- and part-time wage-and-salary jobs in that occupation, not total state employment, annual openings, vacancies, unmet demand, or the number of people qualified to do the work.
OEWS wage estimates are straight-time gross pay. They include base pay and some incentive pay, but exclude overtime pay, shift differentials, many bonuses, self-employed contractors, unincorporated owners, partners, private-household workers, and unpaid family workers. That means the OEWS baseline can miss annual earnings upside from overtime, travel, per diem, contracting, or business ownership even when the ACS annual-earner metric captures some of it through reported wage and self-employment income.
$100K+ annual earners
The default map metric is $100K+ annual earners. We estimate it from the latest ACS 5-year PUMS microdata, looking at every employed civilian worker whose primary job matches the selected trade. For each worker we add wage income plus net self-employment income (adjusted to inflation-consistent dollars), then use the survey's person weights to estimate how many workers in the trade earned at least $100,000. State estimates are grouped by reported place of work where available, falling back to residence state when the work-state field is not usable. We use the ACS replicate weights to compute a 90% margin of error around each estimate.
Technical field names (ACS PUMS)
The earnings inputs are WAGP (wage and salary income) plus SEMP
(self-employment income), multiplied by ADJINC to put dollars on a single
inflation-consistent basis. Person weights are PWGTP; replicate weights are
PWGTP1 through PWGTP80; the place-of-work field is
POWSP. Occupation matching uses the trade's SOC/SOCP code.
This is closer to annual labor earnings than OEWS wage percentiles because it can include wage income plus net self-employment income. It is still a survey-based people estimate, not payroll-verified compensation, a job-opening count, or a guarantee. ACS occupation is based on a respondent's current primary job for employed workers, while annual earnings cover the past 12 months and may include income from more than one job. PUMS also cannot reliably support metro-level trade estimates, so for metros we apply the state ACS $100K+ annual-earner rate to the metro OEWS employment count and mark it lower confidence.
OEWS straight-time wage baseline
OEWS publishes employment counts and the 10th, 25th, 50th, 75th, and 90th wage percentiles for every detailed occupation (SOC code) in every state and metropolitan statistical area. To estimate the share of workers earning above $100,000, we fit a log-normal distribution to the five published percentiles (ordinary least squares on the log-wage against the standard-normal quantile), integrate the tail past $100,000, and multiply by employment. The result is an estimate, not a count. We report it with a confidence tag (see the per-metric confidence schema below).
This OEWS number is now labeled as the straight-time wage baseline, not the headline estimate. It is still useful because OEWS is strong at state and metro wage geography, but it can understate annual upside in trades where overtime, shutdown work, storm work, travel assignments, per diem, contracting, or ownership matter.
Market pressure score
The market-pressure score is a 0-100 composite of three signals: (1) projected annual openings per 100 current jobs (Projections Central long-term), (2) projected employment growth percentage (Projections Central), (3) ACS PUMS $100K+ annual-earner rate. Each signal is percentile-ranked across all roughly 1,000 state-trade cells nationally; the three percentile ranks are arithmetically averaged with equal weighting (33% each); the result is rescaled to 0-100. Metro-level pressure scores apply the parent state's score to the metro context — they are NOT independently computed from metro signals. The score is directional: higher means stronger evidence that this trade-state combination has more demand flow and/or earnings pressure than peer cells.
We previously called this signal “shortage pressure.” The old phrase implied a measured worker shortfall, which the score is not — it is a composite proxy. The renamed label keeps the same arithmetic but more accurately describes what the number represents. Public state-by-trade supply data is fragmented: Registered Apprenticeship completions, IPEDS completions, state licenses, active license counts, and current vacancies do not exist in one clean national table. Until those sources are ingested trade-by-trade, missing supply data is never treated as zero. Metro pressure applies the state projection rate to metro OEWS employment, so it is a local projection with lower confidence.
Bachelor's+ in the labor force
For the “competing graduates” denominator we use ACS S1501 and S2301 5-year estimates of people 25 and older in the civilian labor force who hold a bachelor's degree or higher. This is a stock (people in the workforce today), not a flow (new graduates per year). We deliberately avoid IPEDS annual completions for this framing because mixing a stock with a flow misstates the comparison.
ACS 5-year estimates carry margins of error that can exceed 5 percent in smaller metros. When the upstream artifact carries a MoE field for a metro's bachelor's+ count, we display the estimate with a ± band; otherwise the headline count stands without a band. We never fabricate a band when the source did not publish one.
Confidence by metric
Each of the four headline metrics carries its own confidence tag. A High/Medium/Low tag on one metric is not directly comparable to the same tag on another metric — read each schema below for the exact thresholds.
- $100K+ annual earners (ACS PUMS):
- High: state-level estimate where the published replicate-weight-derived margin of error is below 15%.
- Medium: MoE 15-25%, OR metro-level estimate (state-rate projected onto metro OEWS employment).
- Low: MoE above 25%, OR cell where the source ACS sample is too small to publish a state-level rate.
- OEWS straight-time wage baseline:
- High: the log-normal fits the five percentiles closely and no percentile is top-coded.
- Medium: our six-figure estimator's $115,000 review threshold is reached for this cell, so the upper-tail extrapolation is conservative, or the fit residual is mid-range.
- Low: a percentile is suppressed or the fit residual is above tolerance. Treat the count as a rough order of magnitude.
- Market pressure score:
- High: state-level score where all three input signals are present and unsuppressed.
- Medium: state-level score with one input signal estimated from a national rate, OR metro-level score (state-projected onto metro context).
- Low: two or more input signals suppressed; treat the score as directional only.
- Bachelor's+ in labor force:
- High: state or metro estimate with a published margin of error below 5%.
- Medium: MoE 5-10%.
- Low: MoE above 10%; we display the count without a band.
Competitive ratio
The ratio shown on state and metro pages is simply (selected $100K trade metric) divided by (bachelor's+ holders in the local labor force), computed per state and per metro. It is a framing device, not a forecast. Many high-earning trade jobs hire from adjacent occupations outside the SOC we assigned, and many bachelor's-holders never compete for these roles. Use the ratio to spot patterns; do not use it to make a specific career decision.
Data lag and refresh cadence
BLS OEWS publishes its annual vintage in spring (May 2024 vintage was the latest at our last refresh; May 2025 vintage publishes around mid-2026). Census ACS 5-year publishes its annual vintage in late autumn through winter (the 2020-2024 ACS 5-year vintage published in early 2026). Prentice refreshes both sources within 4-8 weeks of each release. Between refreshes, any page whose facts have not yet been republished shows Not yet published rather than a stale number.
Honest limits
- Our six-figure estimator's $115,000 review threshold (TOP_CODE_P90_DOLLARS) does not match BLS's actual open-interval ceiling (~$115/hour or $239,200 annual). For cells where the real 90th percentile exceeds our threshold, the upper-tail extrapolation is conservative and the six-figure estimate likely undercounts. Ratcheting the threshold to BLS's actual cap is tracked as bead-39.
- ACS PUMS is strong for state and national estimates, but too sparse for most metro-by-trade annual-earnings estimates. Metro annual earnings are projected from state rates.
- The market pressure score is a proxy, not a vacancy count. It uses official projected openings and earnings pressure while we build a fuller public supply pipeline.
- OEWS data lags reality by 12 to 24 months. We label each vintage on every page.
- $100,000 buying power varies by region. BEA Regional Price Parities range roughly 84 in rural Mississippi to 125 in the Bay Area. We plan to surface a cost-adjusted toggle in a future release.
- Small metros and rare trades are suppressed by BLS to protect respondents. For suppressed cells we display “Insufficient data” and fall back to state-level context where appropriate.
- Metro pages are auto-compiled from state editorial plus local labor-market data. The prose is templated, not hand-authored, and is marked as such with a disclosure paragraph at the top of each metro page article.
Sources
- BLS OEWS: bls.gov/oes/ (bulk release)
- Census ACS 5-year PUMS API: census.gov/data/developers/data-sets/census-microdata-api/acs-5y-pums.html
- Projections Central long-term projections: projectionscentral.org
- BLS occupational openings definitions: bls.gov/emp/documentation/definitions.htm
- OMB CBSA definitions (September 2023 bulletin)
- BEA Regional Price Parities (Regional MARPP table)
Questions, corrections, or disagreements with our framing? Email us.