# The Metro-Role Fit Score: Target, Watch, or Skip

*You can score one metro for your own role across five weighted dimensions and defend a target, watch, or skip verdict that another person would reproduce.*

- Canonical URL: https://www.refolk.ai/candidates/guides/metro-role-fit-score
- Pillar: Reading the market
- Format: Framework
- Published: 2026-08-03
- Last reviewed: 2026-08-03
- Reading time: 16 min

This guide is for job seekers deciding where to aim their search or whether to relocate for one specific role. It gives you a repeatable scoring model that turns one metro plus one role into a target, watch, or skip verdict using the same public inputs every time. Two people scoring the same city for the same role should land on the same call.

The pages that rank today are national best-cities-to-find-a-job listicles. They rank metros for an average worker in a given year, and they go stale the moment hiring shifts. This model is personalized and evergreen: it never quotes a ranking, it scores a case in front of you, and it tells you exactly what to re-check when the numbers move.

## Why score a metro instead of trusting a ranking

A national ranking answers a question you never asked: which city is best for the average worker this year. Your question is narrower and more useful - is this city worth adding to my search, or relocating to, for the role I actually do. Those are different questions, and the second one has no listicle.

The reason is a data gap. The competition denominator - how many people already do your role in that city - is invisible in official statistics. The Occupational Employment and Wage Statistics program (OEWS) excludes the self-employed, so freelance-heavy roles show understated demand. The Job Openings and Labor Turnover Survey (JOLTS) stops at the state level except as research estimates. So no public source publishes a single demand-versus-competition ratio at metro-occupation granularity. It has to be constructed, and that is what this model does.

The role you pick reshapes the market more than the city you pick. In Refolk's index of professional profiles, there are 347,779 US profiles titled Software Engineer against 28,694 titled Data Scientist - a 12.1x gap in the candidate pool inside the same country. Move that same software-engineer role across a border and the pool collapses again: 21,600 profiles in Germany, a 16.1x difference from the US.

**12.1x - Ratio of US software engineers to US data scientists in Refolk's index**

In the same national market, the role you choose changes the competition pool more than the city you choose.

## The five dimensions and how each one lies

The model scores five dimensions. Each answers a distinct question, each maps to a public input, and each has a documented way it produces a false positive. A dimension you cannot fool is a dimension you do not understand yet.

| Dimension | What it measures | Public input | What it looks like when it lies |
|---|---|---|---|
| Real pay | Purchasing-power salary, not headline | OEWS median wage / BEA RPP | High nominal pay that trails a low-cost state after adjustment |
| Demand vs competition | Openings per incumbent for your role | Projections Central + postings / OEWS + Refolk | Big employed base read as opportunity when openings are flat |
| Market tightness | Whether employers are chasing workers | LAUS unemployment rate and 12-month direction | A low rate that is rising year over year |
| Concentration risk | How many employers you can actually play off | Role-specific employer HHI | A large metro that is a two-employer town for your SOC |
| Pay level | Absolute wage floor for the role | OEWS median and mean wage | A thin-sample cell with a large error read as precise |

Two of these carry more decision weight than the rest. Real pay is the single most decision-changing adjustment in the model, because it can invert the nominal ranking entirely. Concentration risk is the one that hides inside averages, because a metro can look healthy in aggregate while your specific role is dominated by two firms.

> **Watch out:** The nominal-wage illusion
>
> A high headline salary reads as a target and collapses after cost-of-living adjustment. San Francisco pay can trail Arkansas in real terms. Always recompute against the metro RPP before you score the pay dimension.

## The real-pay adjustment, done in one division

Real pay is nominal pay divided by the region's price level. The named index is the BEA Regional Price Parity (RPP), which measures price levels across states and metro areas as a percentage of the national level of 100. Divide the metro nominal median by the metro RPP over 100, and you have purchasing-power pay you can compare between cities.

The spread is large enough to flip decisions. In 2024, California's state RPP was the highest at 110.7, with Hawaii at 110.0 and New Jersey at 108.8; the lowest were Arkansas at 86.9 and Mississippi at 87.0. In 2022, California's price level was 29.9% higher than Arkansas's. That means a role paying 25% more in nominal terms in California can pay less in real terms than the same role in Arkansas.

#### From headline salary to a number you can compare

1. **OEWS median** - Read the metro median wage for your SOC
2. **Match vintage** - Pick the RPP set from the same year as the wage
3. **Divide by RPP/100** - Convert nominal pay to purchasing power
4. **Compare metros** - Subtract your current metro's real pay for the delta

*Real pay is one division away from the OEWS median, and it is the step that most often flips the verdict.*

One trap sits inside this step. Each annual RPP set is independently estimated and cannot be compared across years. Using a 2022 RPP against a 2024 nominal wage produces a number that looks precise and means nothing. Match the RPP vintage to the wage vintage every time.

> **Rule:** Match the vintages
>
> Never mix an RPP year with a different wage year. RPP sets are independently estimated per year and are not comparable across years. If you cannot get matched vintages, do not report a real-pay delta.

## Demand versus competition, when no source publishes the ratio

There is no official demand-versus-competition figure at metro-occupation level, so you construct one from four public parts. The cleanest anchor is the OEWS location quotient: an occupation that is 10% of local employment against 2% nationally has a quotient of 5, meaning five times the national concentration. The natural break is 1.0, which is national parity.

But a location quotient signals concentration, not hiring. A company town can have a quotient of 5 and zero openings. So you pair it with flow: Projections Central average annual openings over a ten-year horizon at the state level, plus live posting counts. Against that, you set the competition base - OEWS employment for the incumbent count and Refolk's profile counts for the pool official data misses. The output is an openings-per-incumbent proxy.

The two datasets below show why the competition base is load-bearing rather than decorative. The same role has a 16.1x different pool across two countries, and two roles in the same country differ by 12.1x.

| Role | Country | Current profiles | Top employers |
|---|---|---|---|
| Software Engineer | United States | 347,779 | Google, Figma, Microsoft |
| Software Engineer | Germany | 21,600 | Helsing, Zalando, TeamViewer |
| US : Germany ratio | - | 16.1x | - |

| Role | Current profiles | Top employers | Share vs software engineer |
|---|---|---|---|
| Software Engineer | 347,779 | Google, Figma | 1.00 (base) |
| Data Scientist | 28,694 | Meta, ByteDance, TRM Labs | 0.083 (12.1x smaller) |

Pulling the local competition base by hand means scraping profiles and guessing at titles. This is the part [Refolk](/candidates) removes: it counts, by title and region, who already holds the role in the metro you are scoring, so the denominator in your ratio comes from a real index rather than a guess.

Ask me this: `Software engineers currently working at Google, Microsoft, or Figma in the Seattle metro area.` - [run the search](https://www.refolk.ai/start?q=Software%20engineers%20currently%20working%20at%20Google%2C%20Microsoft%2C%20or%20Figma%20in%20the%20Seattle%20metro%20area.).

*Returns the named incumbent pool for one role in one metro, which is the competition denominator official data cannot give you.*

## Market tightness, and why time-to-fill went dark

Tightness measures whether employers are chasing workers or the reverse. The load-bearing signal is the metro unemployment rate from the Local Area Unemployment Statistics program (LAUS), which covers 387 metropolitan areas by place of residence, plus its 12-month direction. The 2024 annual US rate was 4.0%, and in a recent June, jobless rates were higher year over year in 184 of those 387 metros - so the direction matters as much as the level.

Two better-sounding signals are not available. JOLTS produces monthly state estimates but only at total-nonfarm level, never metro-occupation - national openings were 7.6 million against 5.2 million hires in a recent month, which is backdrop, not a local number. And the DHI-DFH Mean Vacancy Duration Measure, the best time-to-fill proxy, hit 27.6 working days in May 2017 and was then discontinued. Any days-to-fill claim newer than 2018 is proxied from postings, not measured.

> Time-to-fill went dark in 2018, so tightness rides on the unemployment rate and its direction, not a days-to-fill number.

Read the rate and the arrow together. A low rate that is rising year over year is a market cooling toward you, not a market chasing you. Score the level, then adjust for the direction.

## Concentration risk, the dimension that hides in averages

Concentration risk is how many employers you can realistically play off against each other for your role. Measure it with a Herfindahl-Hirschman Index (HHI) on local vacancy shares by occupation, following Azar, Marinescu, and Steinbaum. The average US labor market has an HHI of 4,378 - the equivalent of just 2.3 recruiting employers. Markets above the 2,500 HHI threshold from the horizontal merger guidelines are highly concentrated, and 60% of US markets clear that line.

The trap is that those highly-concentrated markets hold only 16% of employment. So the aggregate looks fine while your specific SOC is a two-employer town. Commuting zones around large cities tend to have lower concentration than smaller cities or rural areas, which means big metros are often safer, not just pricier - more employers competing gives you more outside options and real bargaining leverage.

| Role / country | Most-cited region | Concentration signal |
|---|---|---|
| Software Engineer / US | San Francisco Bay Area | Dispersed across SF, Seattle, Sunnyvale |
| Software Engineer / Germany | Berlin | Heavily Berlin-weighted |
| Data Scientist / US | LA and SF Bay Area | Bi-coastal cluster |

Compute the HHI role-specific, from the share of local postings the top employers hold, and cross-check it against the location quotient and any state WARN notices that flag a dominant-employer layoff. A metro-wide HHI will comfort you when your role is the exception.

#### Real pay against concentration

Horizontal axis runs from Concentrated (few employers) to Competitive (many employers). Vertical axis runs from Weak real pay to Strong real pay.

| Quadrant | What it means |
| --- | --- |
| Underpaid company town | Skip unless the role is scarce elsewhere |
| Strong pay, thin options | Watch, and negotiate before you sign |
| Weak pay, many exits | Watch as a stepping stone, not a destination |
| Strong pay, many exits | Target, this is the quadrant to aim for |

*The two dimensions that most often flip a verdict, plotted against each other.*

## The scoring procedure, step by step

Run these seven steps in order. The order matters in one place: BEA advises adjusting current dollars by RPP before any real-terms verdict, so the cost-of-living step follows pay collection and precedes the verdict. Some practitioners score tightness first because LAUS updates monthly while OEWS is annual - that reordering is fine, but pay-then-RPP-then-verdict is not negotiable.

#### Score one metro for one role

1. **Fix the role and geography codes** - Map your role to a 6-digit SOC code and the target city to an OEWS MSA. Done when both strings exist in the current May 2025 OEWS tables.
2. **Pull pay and employment** - Read the OEWS metro median wage, mean wage, employment level, employment-per-1,000, and location quotient for the SOC-MSA pair. Record each with its relative standard error.
3. **Adjust pay for cost of living** - Divide the metro nominal median by the metro RPP over 100, and repeat for your current metro. Done when you have a matched-vintage real wage delta.
4. **Score demand versus competition** - Combine Projections Central state openings and live posting counts against OEWS employment and Refolk profile counts. Done when you have an openings-per-incumbent proxy.
5. **Score market tightness** - Record the metro LAUS unemployment rate and its over-the-year change, with state JOLTS as backdrop. Done when you have a current rate and a 12-month direction.
6. **Score concentration risk** - Estimate an employer HHI from the top employers' share of local postings. Done when you can name the top three employers and their rough vacancy share.
7. **Weight and assign the verdict** - Apply the five weights, sum, and assign target, watch, or skip. Done when the metro-role pair carries one defensible label.

### Weights and cutoffs

No published standard sets target, watch, or skip cutoffs for a metro-role score, so the weights and thresholds below are this guide's own contribution. Treat them as a defensible default, not a law of nature. The one borrowed threshold is the 2,500 HHI concentration line; the location quotient break at 1.0 is the only other natural cutoff.

Use two presets, because relocation and remote expansion weight the dimensions differently. If you are physically moving, real pay and concentration risk dominate, because you are committing to one local labor market. If you are expanding a remote search to add a metro, demand and tightness dominate, because you can leave without moving.

**Five-dimension weighting and verdict rubric**

```
Weights (relocation preset):
  Real pay              x3
  Concentration risk    x3
  Demand vs competition x2
  Market tightness      x1
  Pay level             x1

Weights (remote-expansion preset):
  Demand vs competition x3
  Market tightness      x3
  Real pay              x2
  Concentration risk    x1
  Pay level             x1

Score each dimension 0 to 5:
  Real pay:      5 if real delta positive vs current metro, 0 if negative
  Demand:        5 if openings-per-incumbent above your national baseline
  Tightness:     5 if unemployment low AND falling, 0 if rising
  Concentration: 5 if role HHI below 2,500, 0 if above 4,378 (avg market)
  Pay level:     5 if OEWS median clears your floor with RSE under 30%

Verdict (relocation preset, max 50):
  Target: 38 and above, with no dimension scoring 0
  Watch:  26 to 37, OR any single 0
  Skip:   below 26
```

*Score each dimension 0 to 5, multiply by the preset weight, sum, then band. Swap the weights for your situation.*

## How this goes wrong

The model fails in predictable ways, and each failure is a specific false positive with a specific check. This is the most valuable section to internalize, because a wrong verdict that feels confident costs more than no verdict at all.

- **Nominal-wage illusion.** A high headline salary reads as a target and collapses after RPP adjustment. Recompute against the metro RPP over 100 before scoring pay.
- **Cross-year RPP mixing.** A 2022 RPP against a 2024 wage produces a meaningless number. Match the RPP vintage to the wage vintage.
- **Thin-sample OEWS estimate.** A metro-occupation cell with a large relative standard error looks precise but is noisy. Read the RSE and discount cells above roughly 30%.
- **Self-employment blind spot.** OEWS excludes the self-employed, so freelance-heavy roles show understated local demand. Cross-reference Refolk profile counts and posting boards.
- **JOLTS granularity trap.** Metro job openings from JOLTS do not exist below the state level except as research estimates. Confirm the geography of any openings figure.
- **Stale time-to-fill.** The DHI-DFH vacancy duration is discontinued; quoting it as current is wrong. Verify the last update was 2018 and label it historical.
- **Concentration false comfort.** A big metro with many employers can still be single-employer-dominated for a niche SOC. Compute the role-specific HHI, not the metro-wide one.
- **Location-quotient misread.** A high quotient signals concentration, not hiring; a company town can show a quotient of 5 with zero openings. Pair the quotient with live openings and the unemployment direction.

> **Tip:** Discount before you defend
>
> Before you present a verdict to yourself, apply two discounts: drop any dimension whose OEWS cell has an RSE above 30%, and re-check any openings figure for its actual geography. Most bad calls trace to one of these two.

## Verify before you call the verdict

Run this checklist before you write target, watch, or skip next to a city. Each item is a thing to confirm, not a topic to consider. If you cannot check an item, the verdict is provisional and you should say so.

#### Before you assign the label

- [ ] The SOC and MSA both exist in the current May 2025 OEWS tables.
- [ ] Every OEWS field is recorded with its relative standard error, and cells above 30% are discounted.
- [ ] The RPP vintage matches the wage vintage exactly.
- [ ] The real-pay delta is computed against your current metro, not the national average.
- [ ] The openings figure's geography is confirmed as metro, state, or national.
- [ ] No JOLTS number is cited below the state level.
- [ ] The concentration figure is a role-specific HHI, not a metro-wide one.
- [ ] The location quotient is paired with live openings and the unemployment direction.
- [ ] The weighting preset matches your situation, relocation or remote expansion.

## Keeping the score current

A metro-role score is a snapshot, and its inputs age at different speeds - so re-scoring means knowing which number moved. Do not re-run the whole model on a schedule; re-run the dimension whose input changed.

LAUS is monthly, so the tightness dimension is the one that shifts fastest; re-read the metro rate and its 12-month arrow before any interview loop in that city. OEWS is annual and arrives as a May vintage, so pay and location quotient move once a year, and the RPP is annual as well - when a new vintage lands, re-run the real-pay division with matched years. Projections Central runs on a ten-year horizon, so demand rarely needs re-scoring within a search. Concentration moves when a dominant employer files a WARN notice or a large firm enters, both of which are events, not schedules.

The honest limits are worth stating. Metro-occupation time-to-fill is not established publicly, so tightness leans on the unemployment rate and direction rather than a measured days-to-fill. The demand-versus-competition ratio is constructed, not published, so it is only as good as the posting counts and profile counts behind it. And the target, watch, and skip cutoffs are this guide's default, not an external standard - if your field has a different baseline openings rate, move the thresholds and keep the method. What stays fixed is the shape: five dimensions, matched vintages, role-specific concentration, and a single defensible label at the end.

## Frequently asked questions

### Is it worth relocating for a job in a higher-paying city?

Only after you convert both salaries to purchasing power. Divide each metro's nominal median wage by that metro's Regional Price Parity over 100, using matched-vintage figures. Because a high-cost metro's price level can run nearly 30% above a low-cost state's, a nominal raise can shrink to a real pay cut. If the RPP-adjusted delta is negative, relocation fails the pay dimension no matter how large the headline number looks.

### How do I find how many jobs in my field there are by city?

There is no single official metro-occupation openings figure. Build a proxy: OEWS gives the employed base for your SOC in the MSA, Projections Central gives state average annual openings over a ten-year horizon, and live posting counts give current flow. Divide openings by incumbents to get an openings-per-incumbent ratio. Never cite JOLTS for a metro number - JOLTS stops at state level except as research estimates.

### How do I compare job markets between two cities for my role, not the average worker?

Score each city on the same five dimensions - real pay, demand versus competition, tightness, concentration risk, and pay level - using the same public inputs. National best-cities lists rank metros for an average worker in a given year and go stale when hiring shifts. Scoring one SOC in one MSA at a time gives you a role-specific comparison two people would reproduce identically.

### What is a good location quotient for job hunting?

A location quotient above 1.0 means your occupation is more concentrated locally than nationally, and a quotient of 5 means five times more concentrated. But concentration is not hiring. A company town can show a quotient of 5 and zero openings. Always pair the location quotient with live openings and the unemployment direction before reading it as opportunity rather than dependence on one dominant employer.

### How do I know if a city depends on a single employer for my role?

Compute a role-specific Herfindahl-Hirschman Index from the share of local postings held by the top employers, not a metro-wide one. The average US labor market has an HHI of 4,378, roughly 2.3 recruiting employers, and 60% of markets exceed the 2,500 highly-concentrated line. A large metro can still be a two-employer town for a niche SOC, which is a real bargaining and layoff risk.

---

*From the Refolk guide library. I revise these guides rather than replacing them, so the current version is always at https://www.refolk.ai/candidates/guides/metro-role-fit-score*
