Transparent method. Defensible outputs.

How Salary Coach works

We turn BLS OEWS wage percentiles into clear ranges you can use—by state or metro (MSA)—with optional adjustments for hours and markup for employer benefits. The Estimator now includes a Current (Nowcast) option plus an Annual/Hourly toggle so you can match how compensation is budgeted.

BLS-backed
Latest OEWS percentiles
State & MSA
Local labor markets
CPA-grade memo
Export to PDF
Nowcast
Current ranges via ECI, AHE & ZIP

Current (Nowcast) at a glance

The Current (Nowcast) view projects each OEWS percentile forward to today, layering Bureau of Labor Statistics wage indices and locality adjustments. It preserves the official structure of OEWS while reflecting the most recent market signal available for each occupation, industry, and ZIP.

Official baseline
Starts with the published OEWS wages for your selected occupation and geography. That gives us a defensible, audited anchor before any adjustments are applied.
Index uplift
Applies employment cost (ECI) and average hourly earnings (AHE) trends that match the occupation’s SOC and industry mix. Values update automatically as BLS releases new series data.
Local precision
Scales the indexed result using locality factors (BEA Regional Price Parities and CPI) to stay aligned with cost differentials down to ZIP clusters.
Switch between Historical (OEWS) and Current (Nowcast) in the Estimator to show both the published baseline and the indexed, in-period view.

Indices & acronyms

We rely on a short list of federal series so stakeholders can trace every uplift. Each component is logged alongside the output for audit files and internal reviews.

ECI
Employment Cost Index
AHE
Average Hourly Earnings (CES)
CPI-U
Consumer Price Index
RPP
Regional Price Parities (BEA)
SOC
Standard Occupation Classification
NAICS
Industry tagging for AHE blends

Industry-only mode (no occupation required)

Sometimes you want a fast pulse on an industry segment before narrowing to a specific occupation. The Nowcast flow lets you generate an estimate using only industry (NAICS) inputs. We blend the appropriate AHE series and locality factors so the range remains defensible, even without SOC detail.

Industry-only mode is great for board updates or staffing models when roles flex across job families—save the output to Search History once you refine the occupation.

ZIP-level locality adjustment

Why locality matters
Even within a metro, costs differ by neighborhood. We translate BEA Regional Price Parities and CPI-U factors into a single multiplier so you can explain why two sites in the same MSA may need different salary bands.
How to use it
Enter a ZIP (or accept the metro default) and we apply the normalized locality factor to the indexed wage. The memo cites the exact ZIP cluster and factor so finance teams can re-run the math.

Annual vs Hourly

Click the Annual / Hourly toggle to translate the same range between yearly and hourly rates. We assume 2,080 hours for annualization unless you adjust the hours-per-week control, in which case the toggle reflects your custom schedule.

  • The memo shows both bases side-by-side for clarity.
  • API responses include annual and hourly keys so integrations stay in sync.
  • Hourly values round to the nearest cent; annual values round to the nearest dollar.

What is BLS OEWS?

The Occupational Employment and Wage Statistics (OEWS) program estimates annual wages for hundreds of occupations. Data are published for the nation, states, and metropolitan/nonmetropolitan areas. We use the latest release and official BLS titles so your documentation aligns with federal sources.

Geographies: State vs. MSA

MSA (metro)
Local labor market estimates for a specific metropolitan area. Best for city-level precision and defensibility when the work is tied to a particular metro.
Statewide
Broader benchmark across the state. Useful when a role is distributed within the state or metro data are unavailable.
In the Estimator, pick an occupation first, then select a state and (optionally) a metro (MSA) in that state.

Percentiles explained

  • 25th percentile — conservative lower bound (entry-level scopes or simpler roles).
  • 50th percentile (median) — typical pay for the occupation in the selected geography.
  • 75th percentile — more experienced talent, broader scopes, or competitive markets.

Paid plans can include 10th and 90th percentiles for the memo and compare views.

Adjustments: hours & seniority

Hours per week
We scale annual wages from a 40-hour baseline. Example: 20 hours ≈ half the listed wage.
Seniority
A light multiplier (junior/mid/senior) to nudge the band up/down—useful for quick scenario planning.

Markup for employer benefits (optional)

OEWS wages are cash compensation only. If you check “Include markup for employer benefits,” we add a percentage to estimate total employer cost (salary + employer-paid taxes, healthcare, retirement match, workers’ comp, and other fringes).

Lean
15–20%
Typical
~30%
Rich
40%+

Paid plans include presets and (later) an advanced breakdown by component.

Limitations & good practice

  • Use the closest matching official occupation title for best results.
  • Expect variation by company size, industry niche, and skill mix—OEWS is statistical.
  • Document your assumptions (scope, level, geo, benefits) in the memo for defensibility.

Confidence & reproducibility

Every Nowcast run stores the data sources, index values, and locality factors that produced the range. That bundle travels with the PDF memo export and the API payload so reviewers can recreate the calculation on demand.

  • Structured logs capture SOC, NAICS, index release dates, and multipliers.
  • Stripe-linked accounts can trigger /api/billing/sync to refresh credentials and data before major reviews.
  • Version tags in Search History make it clear which logic revision produced each saved scenario.

Sources