Win
How we figure pay.
Simple answers about where these numbers come from and how to use them.
Pay reported by employers
BLS surveys employers about wages for jobs. Self-employed workers and employer benefit costs are outside these estimates.
A dated source you can check
This site uses May 2025 OEWS estimates, released May 15, 2026. Each pay guide keeps its source and date visible.
Place by place
We show published national, state and local estimates. If a figure is missing or only a lower bound, we say so.
Living costs, too
BEA regional prices put places on a common U.S. scale. This is a price-level comparison, not a personal budget or take-home pay.
It is the median: half of workers earn more and half earn less. It is a useful reference, not a promised offer.
How WageScope handles the data
See our sources, fields, and math. Learn what we leave out, how we check the text, and what happens when a step fails. These rules limit what WageScope can claim.
Four BLS workbooks keep national, state, metro, and nonmetro facts apart
We use BLS data for the U.S., states, metro areas, and nonmetro areas from May 2025. U.S. and state values come from their own files. We do not add up local rows to make new totals. Each value stays with the BLS source it came from.
Our source record has each file's link, size, name, and digital fingerprint, called a SHA-256 digest. It also records when the source was released and when we got it. If a file changes, we check it again before use. A missing or repeated workbook also stops the update.
Our source index has 830 job types and 584 state or local rows. You can browse 583 distinct places. That list leaves out the repeated Guam row. Your browser gets the facts needed for the page, not the full source files.
OEWS covers wage and salary jobs in its survey scope
OEWS covers wage and salary workers in covered establishments. It leaves out people who work for themselves. It also has source rules for industries and workers in scope. The page source note links to the BLS method so a reader can check the full boundary.
Employment is a job estimate, not a head count of unique people. One person can hold more than one job. The field is also not the number of open posts. Current public jobs appear in a separate block with their own source and seen date.
Wage fields do not include every part of pay. Benefits are not in the shown wage. A role can also have tips, bonus pay, stock, or hours that need careful source reading. WageScope does not add a missing pay type to the BLS row.
Median, mean, and percentiles keep their source meaning
Median is the middle wage point. Mean is the sum of wage values divided by the number of jobs behind the estimate. Percentiles are rank points in the spread. WageScope does not turn a percentile into a worker level or a time-based career step.
Annual and hourly fields stay apart. A page uses annual when the source publishes the annual field. It uses hourly when annual is not the supported field. Annual-only rows do not get a made-up hourly value. A comparison requires the same field on both sides.
Wage gaps use a plain percent formula: value minus base, divided by base, times 100. A positive sign means above the base. A negative sign means below it. WageScope reports the gap but does not name a cause that the rows cannot support.
Blank and top-coded values never become zero
BLS can leave a field not available or not released. WageScope keeps that state. It does not put zero in the chart, rank, prose, or schema. A missing local row leads to a clear recovery path instead of a soft page with a guessed wage.
Some high wage fields are top coded. WageScope shows the approved lower-bound label, such as at least the top-code mark. It does not claim an exact value above that mark. A top-coded field can also be left out of math that needs a precise number.
Ranks use only rows with the matching published field. The denominator says how many rows qualified. A missing row is not placed last. This stops absence from being read as low pay and keeps the rank tied to actual source values.
RSE belongs to the field beside it
RSE means relative standard error. It is a survey precision flag. A smaller value often means less sampling uncertainty. It is not the chance that one person's pay is right or wrong. It is also not a quality score for a place or role.
Employment RSE stays with the employment estimate. Mean-wage RSE stays with the mean. BLS does not give the same field for the median and each percentile. WageScope does not move a mean RSE onto the median or use an employment RSE as a wage care mark.
A local row can have more survey uncertainty than a broad national row. The page keeps the exact RSE values visible when BLS supplies them. It does not hide a large value or turn it into a confidence claim.
BEA price data stays separate from BLS wages
The BEA file we use has 438 exact BLS state or metro matches. The U.S. price level is 100. All items is the broad price index. You can also see housing, goods, utilities, and other services on their own.
To compare pay after local prices, divide pay by the overall price index divided by 100. To find matching pay in the other place, keep that result fixed and apply its price index. We show the math. It uses no AI model or hidden place score.
The proxy is not take-home pay or a personal budget. It leaves out taxes, benefits, household size, debt, commute, and taste. An exact BEA match is required. If no match exists, the BLS page stays available and the price block stays absent.
Discovery is broad; embedded wage-page matches are strict
MeritLog's public job search can use fuzzy discovery to help people find work. A WageScope card adds a narrower title check. The employer title must pass a reviewed occupation plan. Unclear or cross-role rows are removed even when that leaves no cards.
The match does not say BLS classified the post. It is a MeritLog employer-title match. A place filter is used only through an exact approved public place identity. When a safe place match is absent, the page says the cards are not narrowed to that area.
A card shows only job details cleared for public use. WageScope does not read your private jobs or pasted text. We do not copy job posts into the page text. Before you apply, read the employer's post to check the duties, pay, and place of work.
Know what each page can tell you
A wage page helps you compare the same job across places. It cannot predict your next offer. Check the job, place, pay unit, and survey date beside each number. A U.S. median and a local mean answer different questions. Check those labels before you compare the figures.
Use the source links to take a closer look. Pay data, price data, and job posts each have their own dates and uses. If price data is missing, we cannot show the price view. That does not mean local costs are zero. You can still compare pay on its own.
Use these figures to plan questions for an employer or to compare places. Then check the actual role, level, benefits, and work site. WageScope does not know your home budget or the terms of a future offer. You need those facts too when you make your choice.
Why the date stays beside the answer
May 2025 OEWS estimates is the wage source used across WageScope. The reference period is May 2025. BLS published the release on May 15, 2026. A current job post may have a newer date, but that does not make the government wage row newer. Each source keeps its own clock.
We check the BLS tables each week. If a full new release is out, we stop calling our older data the latest. We check the new files and review their use before release. We do not change an old date to look fresh. Each new source must pass the same data and page checks.
BEA price-level data has a separate clock. The current WageScope price source is for 2024. It was published on February 19, 2026. WageScope shows the wage and price periods together when both are used. It never says the two sources describe the same month.
What a current listing can and cannot add
A job card shows a firm, title, place, source, and check date. We keep only close matches between the employer's title and the BLS job type. A wage page may have no matching cards. We leave out unclear matches, even when this means a useful post does not appear.
A listing may show posted pay. That range belongs to one employer post. It never enters the BLS median, mean, percentile, employment count, or price-level proxy. A list of posts also does not become a hiring score. The BLS row and the public catalog answer different questions on different clocks.
Each wage page must explain its source data well enough to stand on its own. We do not count job-post text toward that review. Posts can change or close at any time. If no jobs match, or job search is down, you can still read the wage data. We say what happened and do not fill the list with sample jobs.
What WageScope does with a visit
This page uses public government facts and job details cleared for public use. It does not read your Career Memory, private jobs, pasted job text, private pay, or saved résumé. Opening a role or place does not add a fact to your private record. It does not start an AI task.
This page does not build a private profile from your search, role, place, pay, or job cards. Public analytics tools may get the page URL while they are on. These tools are GA4, Ahrefs, and Meta. Use Your Privacy Choices or Global Privacy Control to turn that off. You can use WageScope without signing in.
To work on a résumé, choose a job and enter the private MeritLog flow. You check the work facts used in each draft. A BLS wage, area rank, job count, or price estimate cannot become a claim about your work. You can still use the public page when the private tools are closed.