Urblytica 30 days free banner
Urblytica - Free Event Listing
List Business List Event

Methodology

The weights, the inputs, and the limits. Every score on this site is built the way this page describes — and every city page shows its own working.

The overall score (0–100)

Every city gets one composite score, built from five components. Higher is better in all five, so they can be averaged directly once each one has been put on a common 0–100 scale.

overall = 0.30 × safety + 0.25 × affordability + 0.20 × economy + 0.15 × growth + 0.10 × business

This is the only scoring model Urblytica uses. The number in the ring on a city page, the order of the rankings, and the figures in a comparison all come from this one formula — there is no second model behind the scenes. The framework in force is version 2026.10.

The five components

For each one: what it measures, which stored figures it is built from, exactly how those are converted to points, and why it weighs what it does.

30% Safety Measured figure
What it measures
How safe the city is to live in, relative to every other city in the dataset.
Built from
Safety score city_metrics.safety_score
Normalization
Published on a 0-100 scale where higher is safer, so it enters the score unchanged.
Why this weight
Weighted highest because readers treat it as disqualifying: no amount of cheap rent makes a dangerous city a good place to move to.
25% Affordability Measured figure
What it measures
What day-to-day life costs, across housing, groceries, utilities, transport and healthcare.
Built from
Cost of living index (100 = national baseline) city_metrics.cost_index
Normalization
Inverted onto a higher-is-better scale: an index of 55 scores 100, an index of 135 scores 0, linear in between and clamped at both ends.
Why this weight
The second thing anyone checks, and the component with the most directly comparable underlying figures.
20% Economy & jobs Measured figure
What it measures
Whether local pay actually covers local costs, and how easy it is to find work.
Built from
Median household income city_demographics.median_household_income
Income needed to live here city_metrics.salary_needed
Unemployment rate city_demographics.unemployment_rate
Normalization
Two halves, averaged. Income adequacy is median household income divided by the income needed to live there: a ratio of 0.8 scores 0 and 1.6 scores 100. Unemployment is inverted, so 10% scores 0 and 2% scores 100.
Why this weight
A high salary in an expensive city is not an advantage, so pay is scored against local costs rather than on its own.
15% Growth Measured figure
What it measures
Whether the city is gaining people and jobs or losing them.
Built from
Population growth rate city_demographics.population_growth_rate
Job growth rate city_economy_signals.job_growth_rate
Normalization
Averaged across whichever of the two is available. Population growth of -1%/yr scores 0 and 3%/yr scores 100; job growth of -1%/yr scores 0 and 4%/yr scores 100.
Why this weight
Forward-looking, and deliberately weighted below the three components describing life in the city today.
10% Business climate Research assessment
What it measures
How straightforward it is to start and run a business locally.
Built from
Business climate assessment city_scores.business_score
Normalization
Used on its published 0-100 scale. This is the research model's assessment of local conditions rather than a measurement, which is why it carries the smallest weight.
Why this weight
Weighted lowest precisely because it is the one component without a directly comparable published figure behind it.

Where the figures come from

This is the part most methodology pages are vague about, so to be direct: Urblytica's city figures are produced by an AI research pipeline that searches the live web for each city and extracts the numbers from what it finds. They are researched estimates, not a direct feed from a statistical agency.

The research is grounded in public sources — census and statistical-office releases, labour-market reporting, published crime statistics, rental and housing indices — because those are what the search returns for a question about a city. But the figure stored against a city is the pipeline's reading of those sources, and it has not been reconciled row-by-row against the originals. We do not hold licensed data feeds, and we do not claim to.

Every city page states which research pass produced its figures, its internal quality score, and the date it was last refreshed. A city researched by a deeper pass with a high quality score is more reliable than one scraped together on a fast pass, and the page tells you which you are looking at rather than presenting both as equivalent.

For a decision that turns on an exact number — a mortgage, a relocation package, a lease — go to the primary source. Urblytica is built to tell you which cities are worth that effort, not to replace it.

Readings we throw away

A research pipeline occasionally returns something impossible: a cost-of-living index of 1633, an average salary of $0.19. Scoring those as though they were real is how a ranking stops being believable, so each input has a plausible range and anything outside it is discarded as a bad reading rather than used.

InputAccepted range
safety_score 0 to 100
cost_index 20 to 400
business_score 0 to 100
median_household_income 1000 to 500,000
salary_needed 1000 to 500,000
unemployment_rate 0 to 40
population_growth_rate -15 to 25
job_growth_rate -25 to 25

A discarded reading is treated exactly like a missing one, and the city page says so on the row it affects.

Cities with missing components

Not every city has all five components. Where one is missing, the dataset average for that component is substituted and the weights stay as published.

The alternative — dropping the component and re-weighting the rest — quietly rewards thin data, because a city with nothing but a good cost index would outrank one that is merely decent at all five. Substituting the average says "we don't know" instead of "this is fine", and the breakdown on the city page labels every substituted row, so you can see how much of a score rests on real readings.

A city with no usable reading at all is left unranked rather than given an average score.

What a score does and does not mean

Each component is mapped onto 0–100 against fixed, published endpoints — a cost index of 55 scores 100, unemployment of 2% scores 100 — not against the current spread of the dataset. So a score is comparable between any two cities and stable over time: a city's number does not move because other cities were added.

It also means a score is not a percentile. 80 does not mean "better than 80% of cities"; it means the city scored 80 points against the scale above. Where a rank is shown, it is a straight position within the selected country.

Scores are recomputed nightly, and in full whenever a weight or an endpoint on this page changes.

Check any individual score

Each city page carries a How this score was calculated table: every component, the raw readings behind it, the points those produced, the weight applied, and what that contributed to the total. The rows add up to the number in the ring.

If a figure looks wrong to you, that table shows exactly which reading is driving it — and there is a report link on every city page.

Limits and disclaimers

Urblytica is an analytical resource, not personal financial, legal or relocation advice. Scores rest on aggregate, point-in-time estimates and cannot capture an individual circumstance. For a high-stakes decision, verify the figures that matter against primary sources.

Sponsored