The "Is It A Derby?" score is based on a simple principle: what counts as "local" depends on where in the country you are.
"Local" means something very different in central London than it does in Norfolk. In London, you might have 30+ clubs within 25 miles — so a genuine local derby means a few miles at most. But a club like Norwich has zero neighbours in that radius. Their nearest rival is 40 miles away, and that genuinely is their local derby, because there's nobody else.
The league tier a club plays in doesn't change this. A National League club in London isn't more spread out than a Premier League club in London — they're in the same dense cluster. What matters is geography, not status.
We calculate the straight-line distance between the two grounds, then compare it against a base derby radius of 30 miles, adjusted for club density.
The 30-mile radius is adjusted based on club density — how many other clubs are within 25 miles. Dense areas get a tighter radius; isolated clubs get a wider one.
| Nearby Clubs | Radius Adjustment | Effect |
|---|---|---|
| 0 (zero) | ×1.8 | Extreme isolation — Norwich, Carlisle, Plymouth, Hereford, Cambridge have literally no other clubs within 25mi. If you're their rival from anywhere, you count. |
| 1 | ×1.5 | Loneliness bonus — you don't have other options |
| 2–3 | ×1.3 | Sparse area bonus |
| 4–6 | ×1.0 | No adjustment |
| 7+ | ×(6/n), floored | Tightened — "local" means closer here |
The floor depends on region. London has 30+ clubs within 25 miles of each other — "local" really does mean a few miles there. But the West Midlands and the North West are dense without being London-dense, so they get a softer floor:
| Region | Floor | Why |
|---|---|---|
| West Midlands | 0.75 | Dense but not London — Villa, Blues, Wolves, WBA, Coventry |
| Greater Manchester, Lancashire, Cheshire, West Yorkshire | 0.60 | The East Lancs derby was scoring 34. That's wrong. |
| London & everywhere else | 0.40 | Full tightening |
The loneliness bonus only applies when both clubs are isolated. Norwich vs Ipswich at 40 miles isn't the same as Chelsea vs Brighton at 40 miles, because Norwich and Ipswich genuinely are each other's only meaningful rival.
The extreme isolation tier was added specifically to give places like East Anglia, Cumbria and the West Country a fair shake. Norwich has zero other clubs within 25 miles. Ipswich is 40 miles away — their nearest meaningful rival. Treating that the same way we treat Chelsea vs Brighton at 40mi was clearly wrong, and the Tractor Derby was scoring in the mid-40s as a result. A genuinely isolated club deserves a slightly wider definition of "local", because for them, it is.
Distance score decays linearly: clubs at the radius score ~33, clubs at 1.5× the radius score 0. We then add bonuses:
| Bonus | Points |
|---|---|
| Same city/town | +15 |
| Same county (if different city) | +10 |
| Same league tier | +5 |
| Score | Verdict |
|---|---|
| 75–100 | Proper Local Derby |
| 55–74 | Local Derby |
| 35–54 | Regional Derby |
| 15–34 | Clutching |
| 0–14 | Not a Derby |
The three derby tiers (Proper Local, Local, Regional) all acknowledge genuine derby status — they just scale with distance. A Regional Derby like Coventry vs Leicester (M69, 25 miles apart) isn't "barely a derby" — it's a properly-contested regional fixture with real needle. "Clutching" and "Not a Derby" are the explicit rejections at the bottom.
For clubs in Wales, more leniency is applied around county bonuses. The historic Glamorgan counties (South, West, Mid) are treated as a single county. With so few Welsh clubs in the English football system and large geographies between them, strict county boundaries would unfairly penalise genuine rivalries like the South Wales Derby.
Matchups can earn visual badges that tell you what kind of fixture it is at a glance. Click any badge to see all matchups with that badge.
Separate from the Derby Score, the Rivalry Score measures historical depth based on:
| Factor | Weight |
|---|---|
| Meeting frequency (total head-to-head matches) | 40% |
| Notoriety & editorial weight (culture, incidents, iconic moments) | 25% |
| Historical antiquity (when did they first meet?) | 20% |
| Recent activity (have they played recently?) | 15% |
Rivalry is fundamentally about culture and hatred, not about whether they happened to play last season. West Ham vs Millwall haven't met in the league since 2012 — that doesn't make the fixture less dangerous. So the notoriety & editorial axis (25%) carries more weight than recency (15%), and dormant historic rivalries can still land in the 70s and 80s.
This means a pair like Liverpool vs Manchester United can score 5/100 on Derby (geography) but 100/100 on Rivalry (history) — close on the fixture list, far on the map.
A small number of rivalries can't be captured by the formula because they're young but nuclear. The most obvious example is AFC Wimbledon vs MK Dons, which has only existed since 2012 and has fewer than 20 competitive meetings — but is arguably the most emotionally charged fixture in English football. Any honest system has to allow for a manual override on pairs like this. When an override is in place it replaces the formula result entirely and is noted on the fixture page.
The Ultimate Score combines Derby and Rivalry with a 40/60 weighting — rivalry counts for more, because history is what turns proximity into a real fixture. The formula is:
ultimate = (derby × 0.4 + rivalry × 0.6) × penalty
Where penalty aggressively degrades pairs with very low rivalry scores. If a pair has fewer than 20 rivalry points, their ultimate score is multiplied by rivalry / 20. Zero rivalry means zero ultimate score — being close isn't enough if you've never actually played each other. This stops non-league neighbours from outranking genuine historical rivals.
Only pairs with both scores qualify. Everton vs Liverpool sits alone at the top with a perfect 100 — the only pair to max out both geography and history.