According to Glassdoor, the average base pay for a software engineer in London is £59,0001, while in Newcastle it is £40,0002. This engineer could move south and earn an extra £19,000 per year. But London is more expensive. A one-bedroom flat there costs around £1,900/month3 versus £795 in Newcastle4. The London premium has shrunk to £12,740. Plus, London has the most expensive commute5, drinks6, etc. And that salary differential will be compressed by tax.
On one hand, we have a city with higher wages, yet on the other, those wages are offset by higher costs. After accounting for everything, London does still seem to come out ahead. Historically, most people agree, which is why more people live in one rather than the other. It also seems like the higher prices in London are related to its higher wages.
This is the first post in what I hope will be a series examining how urban economists model these relationships and answer these questions. We're starting with the question posed by the anecdote above. Cities with high wages attract more people. But they also have high costs. And they don't attract all people. Something must be keeping wages and expenses in balance across cities. But what?
Think about what happens if London offers a better deal than Newcastle. People would flood in. Housing demand would rise, pushing up rents. More workers mean firms could pay lower wages. The city would become more crowded, reducing the quality of life. Eventually, London would be no more attractive than Newcastle, and migration would stop. Similarly, if Newcastle became better value, people would move to it until it wasn't a bargain anymore.
This is known as spatial equilibrium: a state where workers are indifferent between locations because higher costs or lower amenities offset the gains from high wages.
Imagine workers care about three things:
We can represent their satisfaction (utility ) as:
Workers face a budget constraint. If they earn a wage and housing costs per unit:
Their money goes to either consumption or housing.
In equilibrium, utility must be equal across cities. If it weren't, people would move from the low-utility city to the high-utility city. So:
where is the reservation utility, the level of satisfaction achievable anywhere in the country.
Higher wages must be offset by higher prices or worse amenities. Better amenities allow a city to maintain a given population while having lower wages or higher prices. Cheaper housing must come with lower wages or worse amenities.
Let's work through a simplified example. For clarity, we'll initially ignore amenities and assume people get the same amount of housing in each city, focusing just on consumption differences.
| City | Wage | Annual Rent | Consumption | Utility |
|---|---|---|---|---|
| London | £80,000 | £24,000 | £56,000 | 10.93 |
| Newcastle | £45,000 | £8,400 | £36,600 | 10.51 |
Consumption equals wage minus rent, what's left after paying for housing. Utility is , the natural logarithm capturing diminishing marginal utility. London delivers 10.93 versus Newcastle's 10.51. If people couldmove, they'd head to London.
Then we let them move. As workers relocate to London, housing demand increases and rents are bid up. Utility in London falls. Simultaneously, in Newcastle, housing demand decreases and rents fall slightly. Utility in Newcastle rises.
Eventually we reach equilibrium:
| City | Wage | Annual Rent | Consumption | Utility |
|---|---|---|---|---|
| London | £75,000 | £32,000 | £43,000 | 10.67 |
| Newcastle | £51,000 | £9,000 | £42,000 | 10.65 |
The utilities are nearly equal (10.67 vs 10.65), so the movement stops. London's wages fell from £80k to £75k as more workers arrived. Newcastle's wages rose from £45k to £51k as workers left. London's rents rose sharply from £24k to £32k due to housing demand. After rent, consumption is nearly identical: £43k in London versus £42k in Newcastle. With logarithmic utility, similar consumption means similar utility.
This is spatial equilibrium in action. Workers are indifferent between locations because high wages are offset by high costs. Migration stops when no one can improve their utility by moving.
What does this tell us?
Spatial Equilibrium (workers are indifferent):
for every city .
Housing Market Clearing (demand equals supply):
The first equation says people achieve the same utility everywhere. The second says housing prices adjust to balance demand and supply. Together, these determine the population, wages, and housing costs in each city.
This framework explains why London house prices are high. London is very productive (high ), so people are willing to pay more. It also has great amenities (high ), so people accept lower real wages. And critically, London doesn't build enough houses, so prices rise to ration the fixed supply.
This last point matters. If planning restrictions prevent London from expanding, the entire country is poorer. Not just Londoners, everyone. Workers who would be more productive in London are stuck elsewhere. This is the spatial misallocation that economists worry about.
We've compared two static snapshots: before and after equilibrium. But what happens during the adjustment? How do wages and rents change as people move?
Recall our equilibrium condition: . What if they're not equal? If London offers higher utility than Newcastle, people move to London.
Let's define as the share of the country’s total population who live in City A. If , then 60% live in City A and 40% in City B. As people migrate to City A, increases. The opposite happens in City B as people leave. As changes, so do wages and rents in both cities, which change utilities, affecting whether people continue to move.
When more workers arrive in a city, what happens to wages? Basic supply and demand: more workers means each one is slightly less scarce, so wages fall a bit. Economists capture this with a power law:
Here, is the base wage when (half the population in each city). The term measures City A’s size compared to the reference size (if , City A is 20% bigger). The exponent determines wage sensitivity to population. If and population doubles ( goes from 0.5 to 1.0), wages fall by about 3.5%.
Why this functional form? It's simple, matches empirical evidence well, and ensures wages never hit zero or infinity.
The same logic applies to City B, using since that's City B's population share:
When people arrive in a city, they need somewhere to live. If housing supply is fixed, prices spike. If housing is easy to build, prices rise only slightly. We describe this with housing supply elasticity :
Here, is the base rent when . The exponent controls how much rents increase when the population grows. Higher means a more elastic supply - it's easier to build - so rents rise slowly. Lower means a less elastic supply, tight planning rules, and sharply spiking rents.
Consider three scenarios:
Once we know wages and rents, we can calculate consumption (what's left after paying rent):
And then utility using the logarithmic form from earlier:
Now we have everything we need. For any population split , we can calculate wages, rents, consumption, and utility in both cities.
The visualisation plots and as varies from 0 to 1.
The red line (City A) slopes downward. As increases, more people move to City A. More people means higher rents ( increases) and slightly lower wages ( decreases). Both effects reduce consumption ( falls), which reduces utility ( falls).
The blue line (City B) slopes upward. As increases, fewer people live in City B (since decreases). Fewer people means lower rents ( decreases) and slightly higher wages ( increases). Both effects increase consumption ( rises), which increases utility ( rises).
Where do the lines cross? That's the equilibrium where . At this point, workers are indifferent between cities, so migration stops.
The visualisation shows how different parameters affect the curves.
The crossing point shows the equilibrium. Arrows indicate migration direction (towards the city with higher utility). Click on the chart to see details.
This model, whilst useful for understanding basic urban dynamics, makes several simplifying assumptions:
No agglomeration economies: We've assumed city productivity is fixed. In reality, cities often become more productive as they grow. Tech workers in Silicon Valley benefit from knowledge spillovers, thick labour markets, and specialised suppliers. This creates a positive feedback loop: more people lead to higher productivity, attracting more people. Our model treats wages as declining with population (due to diminishing returns), but agglomeration could make them increase instead, at least up to a point.
Identical housing consumption: Everyone in our model consumes the same amount of housing. Real cities have tremendous variation: young professionals in flat shares, families in suburban homes, wealthy residents in penthouses. This affects housing market dynamics and who lives where. When housing supply tightens, lower-income residents get priced out first, not a random population cross-section.
Single worker type: We've assumed all workers are identical except for location. In reality, software engineers, baristas, and bankers have different productivity, preferences, and location options. An investment banker might need to work in London, while a novelist could work anywhere with good coffee and WiFi. These differences create sorting patterns our model can't capture.
Static analysis: Our visualisation appears dynamic, but the underlying model compares equilibria rather than modelling the adjustment process. Moving house involves substantial costs: estate agent fees, removal vans, job searches, children changing schools, and so on. These frictions mean cities can stay out of equilibrium for years or decades.
Despite these simplifications, the spatial equilibrium framework provides valuable insights into why cities look the way they do and how policy changes might affect them. Future posts will relax some of these assumptions to build a richer picture of urban economies.
https://www.glassdoor.co.uk/Salaries/london-software-engineer-salary-SRCH_IL.0,6_IM1035_KO7,24.htm ↩
https://www.glassdoor.co.uk/Salaries/newcastle-software-engineer-salary-SRCH_IL.0,9_IC3414475_KO10,27.htm ↩
https://mapartments.co.uk/newcastle/blog/newcastle-renting-statistics-facts-and-figures-a-definitive-list/ ↩
https://good-travel.co.uk/resources/news/uk-commute-costs/ ↩
https://www.morningadvertiser.co.uk/Article/2024/04/05/Average-pint-price-in-England-Scotland-and-Wales-in-2024/ ↩
Tags: Economics, Housing