The trust anchor
Methodology
PayBeacon publishes a modeled gross-wage benchmark before taxes. It is built from public U.S. government data, excludes stipends and premium-pay components, and is designed to help compare an offer—not predict a paycheck or complete travel package.
The model, verbatim
This is the formula block copied directly from our computation code (etl/compute.js).
Nothing is hidden behind it.
premium(state) = HCRIS facility contract $/hr (state)
÷ OEWS RN mean hourly (state)
facilityHourly(occ,geo) = OEWS median hourly (occ, geo) × premium(state)
[clipped at the state legal RN cap where one exists]
estHourly(occ,geo) = facilityHourly × (1 − AGENCY_MARGIN) [modeled gross wage before tax]
estWeekly = estHourly × CONTRACT_HOURS_PER_WEEK
band (low/high) = same formula applied to OEWS p25 / p75In prose
- Wage baseline. We take the BLS OEWS median hourly wage for the occupation in the metro (or state). The p25 and p75 wages drive the low/high band you see.
- Contract premium. From CMS hospital cost reports we compute the facility contract-labor dollars-per-hour for the state, and divide it by the OEWS mean RN wage for that state. That ratio — how much more facilities pay for contract labor than for staff — is the premium multiplier. Thin states fall back to a national premium (the page labels which).
- Facility rate. Multiply the local median wage by the premium to get the modeled facility contract rate. Where a state publishes a legal maximum agency rate, we clip to it.
- Modeled gross wage. Apply a 30% agency-margin assumption, then multiply by a 36-hour contract week. This is a pre-tax wage benchmark; it does not calculate a traveler's taxable/non-taxable split or include lodging, meals, travel, overtime, shifts, bonuses, benefits, or reimbursements.
The three sources
BLS OEWS
Wage baseline & band
Occupational Employment & Wage Statistics gives the median, p25 and p75 hourly wage by occupation and metro, plus employment counts.
License: U.S. public domain. Attribution: we cite the U.S. Bureau of Labor Statistics. Vintage: May 2025.
CMS HCRIS
Contract-labor premium
Hospitals report contract-labor hours and dollars in their Medicare cost reports (HCRIS). We derive facility $/hr from those filings, per state.
License: U.S. Government Work. Note: the derived figures are PayBeacon's own calculations and are not attributable to CMS. Vintage: FY2024.
State rate caps
Legal ceilings
Some states publish a maximum agency/temporary-staffing rate. Where one exists (e.g. Oregon, Minnesota, Massachusetts), we clip the estimate and flag the page.
Attribution: the issuing state agency. Vintage: CY2026.
Disclosed assumptions
- Agency margin — 30%. A model assumption applied between blended facility contract cost and the wage benchmark. It is not a measured agency margin for each contract. Change this assumption and every modeled figure re-scales.
- Contract week — 36 hours. Travel contracts are typically quoted weekly on three 12-hour shifts. Weekly = hourly × 36.
- Premium is nursing-anchored. The HCRIS contract-labor line is direct-patient-care labor, which is nursing-dominant. We apply the same premium to allied roles as an approximation and flag those pages as allied — wider uncertainty.
Honest limitations
- The HCRIS blend is nursing-dominant, not nursing-pure. The premium reflects direct-patient-care contract costs spanning nursing, diagnostic, therapeutic, rehabilitation and other reported services, so it is directional for individual occupations.
- This is not take-home pay. The model does not calculate taxes, tax-home eligibility, stipends, overtime, shift differentials, bonuses, benefits, or reimbursements.
- Quarterly lag. Cost-report data trails the market; vintages are shown on every page. Treat figures as a stable benchmark, not a spot rate.
- Occupation-level, not sub-specialty. OEWS carries one code for all RNs, so we can't yet split ICU vs. ER vs. tele. The estimate is a specialty-wide midpoint.
- Premium is state-level applied to metro wages. We measure the premium per state and apply it to each metro's local wage; intra-state metro variation in the premium isn't captured.
Insufficient-data policy
When the inputs don't clear our thresholds, we publish an "insufficient data" page instead of a number. Specifically, we withhold a figure when:
- BLS has no published wage median for the occupation in that area (the sample was too small for BLS itself to publish), or
- fewer than the required minimum of hospitals filed usable contract-labor data for the state, so no credible premium can be formed.
Per-hospital filings are also sanity-filtered (implausible hours or $/hr are dropped and the tails winsorized) before we take a state median, and premiums outside a sane multiplier band are suppressed. We would rather show nothing than show a number we can't defend.
Want the raw numbers? Every published page links a machine-readable manifest, a per-cell JSON, and a downloadable CSV. Check our math.