Written and maintained by CASRAI Editorial Board
Published · Last updated
On this page
Definition in One Paragraph
The Occupational Employment and Wage Statistics (OEWS) program is a semiannual establishment survey conducted by state workforce agencies and the U.S. Bureau of Labor Statistics (BLS) under 29 U.S.C. §§ 1–2 that produces annual estimates of wage and salary employment and wage distributions for roughly 830 detailed Standard Occupational Classification (SOC) occupations across national, state, and metropolitan areas. Covering nonfarm business establishments, OEWS pools data over six semiannual panels across three years (~1.1 million establishments), benchmarks establishment counts to the Quarterly Census of Employment and Wages (QCEW), and applies a model-based nearest-neighbor prediction architecture (MB3) to impute occupational staffing and wage intervals for non-sampled and non-responding employers.
Formula with Every Symbol Explained
The OEWS estimation framework combines population benchmarking, nearest-neighbor imputation under the MB3 model, wage aging via the Employment Cost Index (ECI), and interval-weighted aggregation.
1. Benchmarking and MB3 Nearest-Neighbor Imputation
Each establishment i in population frame P has benchmarked employment Ei anchored to its average May and November QCEW counts: Ei = (Ei, May + Ei, Nov) / 2. For unobserved establishments, occupational employment êi, o is predicted from a donor pool Di of k nearest-neighbor responding establishments (typically k = 10):
êi, o = Ei × ∑d ∈ Di [wi, d × (ed, o / Ed)]
Where:
- êi, o: Predicted employment for occupation o in establishment i.
- Ei: QCEW benchmarked total employment of recipient establishment i.
- Di: Donor pool of nearest responding establishments matched by 6-digit NAICS, geography, size class, and collection panel.
- wi, d: Normalized similarity weight of donor d (∑ wi, d = 1).
- ed, o and Ed: Reported occupational and total counts of donor d.
2. Aggregate Employment, Mean Wage, and Relative Standard Error
Total occupational employment N̂o sums employment across population P: N̂o = ∑i ∈ P êi, o.
Because employers report worker counts across 12 wage intervals (A through L), the mean hourly wage Ŵo weights interval mean wages (w̄j) from the National Compensation Survey (NCS), updated by the Employment Cost Index aging factor (ECIref / ECIt):
Ŵo = (1 / N̂o) × ∑j=1K [no, j × w̄j × (ECIref / ECIt)]
Where no, j is the estimated count of workers in occupation o within interval j, and K = 12. Full-time annual mean wage is Âo = Ŵo × 2,080 hours. The Relative Standard Error is:
RSE(Ŵo) = [SE(Ŵo) / Ŵo] × 100%
Where SE(Ŵo) is the bootstrap-replicated standard error of the mean wage.
Worked Example with Real Numbers and the Arithmetic Shown
Consider an OEWS estimate for economists (SOC 19-3011) in a metropolitan area with total modeled employment N̂o = 1,000 distributed across five wage intervals with aged mean hourly wages.
| Interval (j) | Wage Range ($/hr) | Aged Mean (w̄j) | Workers (no, j) | Wage Product |
|---|---|---|---|---|
| 1 | $30.00 – $44.99 | $38.50 | 120 | $4,620.00 |
| 2 | $45.00 – $59.99 | $52.00 | 250 | $13,000.00 |
| 3 | $60.00 – $74.99 | $67.50 | 400 | $27,000.00 |
| 4 | $75.00 – $89.99 | $82.00 | 180 | $14,760.00 |
| 5 | $90.00 and above | $105.00 | 50 | $5,250.00 |
| Total | 1,000 | $64,630.00 | ||
Step-by-Step Calculation
- Mean Wage: Total wage bill equals $64,630.00. Mean hourly wage is Ŵo = $64,630.00 / 1,000 = $64.63/hr. Annualized across 2,080 hours, Âo = $64.63 × 2,080 = $134,430.40/yr.
- Median Wage: The 50th percentile (500th worker) falls in Interval 3 ($60.00–$74.99; width $15.00) after 370 cumulative workers in prior intervals:
Median = $60.00 + [(500 – 370) / 400] × $15.00 = $60.00 + 4.875 = $64.88/hr ($134,950.40/yr).
- Variance and Precision: Sample sampling variance is s2 = [1 / 999] × ∑ nj(w̄j – 64.63)2 = 260,903.11 / 999 = 261.1643. Standard deviation is s = 16.1606 $/hr, standard error is SE = 16.1606 / √1,000 = $0.5110/hr, and RSE = ($0.5110 / $64.63) × 100% = 0.79%.
Interpretation (What the Result Means, With a Small Table of Reading Guidance)
The close correspondence between the mean ($64.63) and median ($64.88) indicates a symmetrical wage distribution in this market. In occupations with high top-tier salaries, the mean typically exceeds the median significantly.
Researchers evaluate Relative Standard Error (RSE) to determine if sampling errors affect empirical conclusions. Analysts can establish the appropriate confidence level from confidence intervals using the standard error. For analyzing full wage distributions across percentiles rather than relying solely on interval means, econometricians frequently utilize quantile regression analysis.
| RSE Range | Reliability Status | Practical Interpretation | Analytic Recommendation |
|---|---|---|---|
| RSE < 5.0% | High Precision | Narrow confidence bounds; robust donor matches and sample counts. | Safe for direct point-estimate reporting and policy benchmarks. |
| 5.0% ≤ RSE ≤ 10.0% | Moderate Reliability | Standard survey variance typical of mid-sized regional labor markets. | Report standard errors or confidence intervals alongside point estimates. |
| 10.1% ≤ RSE ≤ 20.0% | Substantial Variance | Elevated model uncertainty; relies heavily on donor imputation. | Interpret with caution; avoid making policy decisions on single-year figures. |
| RSE > 20.0% | Low Precision / Suppressed | Estimates fail BLS publishability thresholds or show high donor dispersion. | Frequently suppressed (marked with asterisk); aggregate to broader SOC groups. |
Assumptions and Common Mistakes
Working with OEWS data requires observing core parameters and avoiding common pitfalls:
- Nonfarm Scope: OEWS samples business establishments with covered payrolls, excluding agricultural operations, self-employed unincorporated owners, private household workers, and military personnel.
- Establishment Location: OEWS measures jobs located within a geographic area, not worker residence. Commuters are recorded at workplace location.
- Straight-Time Gross Pay: Wages capture base pay, cost-of-living adjustments, hazard pay, commissions, and tips, while excluding non-production bonuses, overtime premiums, and fringe benefits.
- Mistake: Naive Time-Series Differencing: Subtracting consecutive annual OEWS releases to measure annual wage growth is invalid. Because OEWS pools six panels over three years with ECI aging, consecutive releases share five-sixths of their sample. Year-to-year differences reflect sample replacement rather than pure economic change.
- Mistake: Seasonal Full-Time Annualization: For occupations working fewer than 2,080 hours annually (e.g., teachers), published annual wages represent full-time annualized equivalents rather than realized annual receipts.
- Mistake: Methodology Transitions: Comparing pre-2021 design-based ratio adjustments directly to post-2021 MB3 model estimates introduces structural discontinuities.
How to Report It (APA Example)
Follow APA 7th edition guidelines when citing OEWS datasets in academic manuscripts or policy reports.
U.S. Bureau of Labor Statistics. (2026). Occupational employment and wage statistics: May 2025 estimates. U.S. Department of Labor. https://www.bls.gov/oes/
- In-text citation: (U.S. Bureau of Labor Statistics [BLS], 2026) or BLS (2026).
“Occupational wage data were obtained from the Occupational Employment and Wage Statistics survey (U.S. Bureau of Labor Statistics [BLS], 2026). In the metropolitan area, economists (SOC 19-3011) had an estimated employment of 1,000 workers (RSE = 0.79%). The mean hourly wage was $64.63 (SE = $0.51, annual equivalent $134,430), and the median hourly wage was $64.88 (annual equivalent $134,950).”
How to Calculate It in Excel, R or Python
Researchers can calculate interval-weighted mean wages and standard errors using standard tools.
Excel Implementation
With interval mean wages in cells B2:B6 and employee counts in cells C2:C6:
=SUMPRODUCT(B2:B6, C2:C6) / SUM(C2:C6)
R Implementation
wages <- c(38.50, 52.00, 67.50, 82.00, 105.00)
counts <- c(120, 250, 400, 180, 50)
mean_wage <- weighted.mean(wages, counts)
se_mean <- sqrt(sum(counts * (wages - mean_wage)^2) / (sum(counts) - 1) / sum(counts))
rse <- (se_mean / mean_wage) * 100
cat(sprintf("Mean: $%.2f, SE: $%.4f, RSE: %.2f%%
", mean_wage, se_mean, rse))
Python Implementation
import numpy as np
wages = np.array([38.50, 52.00, 67.50, 82.00, 105.00])
counts = np.array([120, 250, 400, 180, 50])
mean_wage = np.average(wages, weights=counts)
variance = np.sum(counts * (wages - mean_wage) ** 2) / (counts.sum() - 1)
se_mean = np.sqrt(variance / counts.sum())
rse = (se_mean / mean_wage) * 100
print(f"Mean: ${mean_wage:.2f}, SE: ${se_mean:.4f}, RSE: {rse:.2f}%")
FAQ
What does OEWS stand for, and who produces it?
OEWS stands for Occupational Employment and Wage Statistics. It is a federal-state cooperative program conducted by state workforce agencies in conjunction with the U.S. Bureau of Labor Statistics (BLS) under 29 U.S.C. §§ 1–2.
How does the MB3 model handle establishments that do not respond?
Under the MB3 methodology implemented by BLS in May 2021, unobserved establishments have their occupational staffing and wage distributions modeled using a donor pool of 5 to 10 nearest-neighbor responding establishments. Donors are matched on 6-digit NAICS industry, geographic area, size class, and collection panel, and scaled to the establishment’s QCEW benchmark employment.
Can OEWS data be used to track year-over-year wage growth?
BLS explicitly advises against using OEWS for annual time-series comparisons. Because the survey pools data across six semiannual panels over three years, two consecutive annual releases share five of their six panels. Changes between releases reflect sample replacement, ECI wage aging, and model adjustments rather than true longitudinal wage growth.
What is the difference between OEWS and the Current Population Survey (CPS)?
OEWS is an establishment survey of nonfarm business payrolls, providing detailed occupational wage distributions for ~830 occupations across local metropolitan areas. The CPS is a monthly household survey tracking national unemployment and demographic worker characteristics, but lacks the granular sample size required for local occupational wage tables.
Why are some OEWS wage figures suppressed or marked with an asterisk?
BLS suppresses occupational statistics to protect employer confidentiality (when one or two employers dominate local employment) or when data fail quality standards because the Relative Standard Error exceeds acceptable publication thresholds.
Sources
- U.S. Bureau of Labor Statistics. (2026). Handbook of Methods: Occupational Employment and Wage Statistics. U.S. Department of Labor. https://www.bls.gov/opub/hom/oews/ (Accessed: 2026-11-09).
- Office of Management and Budget. (2026). Report on Occupational Employment and Wages (OMB Control No. 1220-0042). Executive Office of the President. https://www.reginfo.gov/public/do/PRAViewICR?ref_nbr=202103-1220-001 (Accessed: 2026-11-09).
- California Employment Development Department. (2026). OEWS Survey Methodology. Labor Market Information Division. https://labormarketinfo.edd.ca.gov/data/oes-employment-and-wages.html (Accessed: 2026-11-09).
- Legal Information Institute. (2026). 29 U.S. Code §§ 1–2: Bureau of Labor Statistics. Cornell Law School. https://www.law.cornell.edu/uscode/text/29/1 (Accessed: 2026-11-09).
- National Center for O*NET Development. (2026). SOC Structure. U.S. Department of Labor. https://www.onetcenter.org/taxonomy.html (Accessed: 2026-11-09).







