The math that could make UEFA's draw fair for every team
A tight little cluster hidden in the 2025-26 Champions League draw shows why the “new format” needs one small tweak, and gives a beautiful excuse to talk about symmetric graphs.
TL;DR: UEFA’s new league-phase format can accidentally produce small clusters of teams that play each other disproportionately often, hurting their collective chance of advancing all at once. A single symmetric graph on 36 vertices, C(36; ±{1, 4, 10, 17}), eliminates this risk provably. Deploying it needs one small tweak to the country rule for UCL/UEL, and no tweak at all for UECL.
Napoli, Benfica, Chelsea, Ajax, Qarabağ.
In the 2025-26 UEFA Champions League, they are scheduled to play each other in nine of the ten possible pairings. Only Napoli-Ajax is missing from a complete round-robin among the five. The other nine (Napoli-Benfica, Benfica-Chelsea, Chelsea-Ajax, Ajax-Qarabağ, and five more) all happen in the league phase.
That’s an oddly tight little cluster in a 36-team competition. And it’s the kind of thing that isn’t supposed to happen anymore.
Except it does, every season, in almost every UEFA continental competition. In UCL 2024-25 (the first year of the new format), Bayer Leverkusen, Atlético Madrid, Feyenoord, RB Salzburg and Sparta Prague play each other 9 of 10 times. In UEL 2024-25, Roma, Tottenham, AZ, Galatasaray, and IF Elfsborg do the same. UEL 2025-26 has a maximum 5-team cluster of 8 out of 10; UECL 2025-26 has 7 out of 10.
UCL 2024-25 — 9 of 10 | UEL 2024-25 — 9 of 10 |
UEL 2025-26 — 8 of 10 | UECL 2025-26 — 7 of 10 |
Click to expand: full stats across all five competitions
**How many dense clusters, per season?**| Season | 5-team clusters with ≥7 matches | ≥8 matches | =9 matches | 4-team clusters with ≥5 matches | =6 matches |
|---|---|---|---|---|---|
| UCL 2024-25 | 225 | 17 | 3 | 84 | 4 |
| UCL 2025-26 | 332 | 29 | 1 | 109 | 5 |
| UEL 2024-25 | 240 | 17 | 2 | 87 | 3 |
| UEL 2025-26 | 146 | 6 | 0 | 60 | 0 |
| UECL 2025-26 (6 matches, not 8) | 35 | 0 | 0 | 14 | 0 |
What UEFA changed in 2024
For decades, the Champions League and its sister competitions used the same shape: 32 teams, 8 groups of 4, a round-robin within each group. Each team played 6 group-stage matches (three opponents faced twice each) before the top two per group advanced.
In 2024-25, UEFA scrapped that. In its place: a single 36-team “league phase” where each team plays 8 different opponents (2 from each of 4 seeded pots), and a single 36-team table sorts everyone into three buckets: top 8 auto-advance to the round of 16, teams ranked 9-24 go to a knockout playoff, teams 25-36 are eliminated. The same format runs across all three UEFA men’s competitions: Champions League (UCL), Europa League (UEL), Conference League (UECL).
The sales pitch was reasonable. More marquee matches. More competitive standings. No more “dead rubber” final matchday when both advancing teams have qualified already. And the “single table” framing removes the arbitrary group draw, which had famously produced imbalanced “groups of death” for years.
But it introduced a subtler risk that nobody flagged at the time.
Hidden clusters
Here’s the thing about 36 teams each playing 8 opponents: it produces a huge network of 144 matches, and inside that network you can find small clusters of teams that happen to play each other disproportionately often. Not because anyone designed it that way; because the draw is random and 144 edges among 36 teams have to land somewhere.
Think of the league phase as a graph: 36 nodes, one per team; 144 edges, one per scheduled match. Every team-node touches exactly 8 edges (its 8 opponents). A dense cluster is a small clump of nodes with an unusually large number of edges inside the clump.
Here’s what the actual 2025-26 UCL looks like as one such graph:
Want to poke at the graph yourself? Here’s an interactive viewer for all five past draws (UCL, UEL, UECL, 2024–26) with re-layout, pot/country coloring, and cluster highlighting.
The Napoli-Benfica-Chelsea-Ajax-Qarabağ cluster is the extreme case. Of the 376,992 different ways to pick 5 teams out of 36, the actual UCL 25-26 draw has 332 different 5-team clusters with 7 or more internal matches, 29 with 8 or more, and exactly one (the Qarabağ cluster) with 9, the unique maximum.
Why does that matter?
Here’s the arithmetic. Each of the 5 cluster teams plays 8 matches, giving the cluster a total of 5 × 8 = 40 team-match slots across the season. Nine of those matches are internal (both teams from the cluster), and each internal match uses up 2 slots (one per participant). So internal matches consume 2 × 9 = 18 slots, leaving 22 slots for matches against teams outside the cluster.
Each match distributes at most 3 points (all to the winner) or 2 (a draw). If all 40 slots were external, the cluster could collect up to 40 × 3 = 120 points worth of “point-mining” opportunities against outsiders. But an internal match doesn’t work that way: the 3 winner-points have to go to a cluster team, and the other cluster team gets 0 (or in a draw, both get 1). Points don’t leave the cluster.
In short: each internal match trades what could be 6 collectible points against outsiders for 3, or 2, redistributed points within the cluster. The cluster’s collective point ceiling drops from 120 (with 0 internal matches) to 120 − 3 × 9 = 93 points (with 9 internal matches).
Divided among 5 teams, that’s an average of 18.6 points per team. In principle enough; top-24 cutoff hovers around 8-11 points. But that’s just the ceiling. Reality is worse.
If you’d rather skip the math and simulations, jump directly to what changes under the fix ↓.
Someone in the cluster always pays
Beyond the point-ceiling arithmetic above, internal matches also correlate the cluster teams’ fortunes negatively. Every match has a winner and a loser (or two draws), so if Napoli does well internally then someone else in the cluster is doing badly. For “all 5 teams jointly reach the playoff cutoff” to happen, no team can be below the cutoff, and internal matches actively work against that.
The cleanest way to see this in a number is a controlled experiment: take five equally-strong teams (just assume for a moment), drop them into the actual 2025-26 UCL field, and vary only the number of matches they play against each other from 0 up to the maximum of 10 (a 5-clique; every one of the 10 possible pairings among the five is scheduled). Their joint chance of all reaching top-24 responds like this (20,000 Monte Carlo sims per cell):
Read that as a per-internal-match tax on the cluster: each additional internal pairing costs the group roughly 0.6-0.7 percentage points of joint fate. Going from a fully external schedule to a fully internal one takes joint P from about 17% down to 10%. That’s the pure structural effect of density; team strengths are held equal.
(m = 10 hasn’t happened in any real UCL/UEL draw yet; the max observed is 9. But nothing in UEFA’s rules forbids it, so it belongs in the range we’re testing.)
Real clusters are worse, because their members aren’t equally strong. Napoli, Benfica, Chelsea, Ajax, and Qarabağ have very different strengths (e.g., clubelo.com ratings); Qarabağ in particular sits well below the other four, and “all 5 advance” is bottlenecked by the weakest member. Re-running the simulation with each team’s actual Elo, the joint probability that all five reach top-24 drops to about 1.4%, versus 4.2% for a strength-matched 5-team group drawn at a typical position in the actual draw (roughly 2 internal matches on average, versus the Qarabağ cluster’s 9). That’s a 68% relative reduction in joint fate, purely from the structural density of their pairings.
One important asymmetry: dense clusters can only form among teams that are actually allowed to play each other. UEFA’s country rule bans same-country matchups, so, say, two English teams can never land in the same cluster with each other. Countries with many teams are automatically shielded from ever being co-clustered internally. The risk of getting sucked into a Napoli-Benfica-Chelsea-Ajax-Qarabağ cluster therefore falls disproportionately on teams from small federations.
The point isn’t that this specific draw was cursed; it’s somewhat above average in cluster density (roughly top 20% of comparable random draws we simulated), not statistically extreme. It’s that the format allows this. Any of the three competitions can produce a Napoli-Benfica-Chelsea-Ajax-Qarabağ like situation in any future season. It’s a structural risk of running a random draw over a graph this dense. So the question becomes: is there a way to eliminate that risk by design, rather than hoping the random draw stays kind?
The fairness principle: nobody sits in a worse seat than anyone else
Here’s the fairness question, framed a bit abstractly. In the actual UCL 25-26 draw, Qarabağ ended up sitting in the middle of the densest 5-team cluster. Pafos didn’t. Neither team chose their opponents; that was decided by the random draw. But the positions they landed in were structurally different: Qarabağ’s opponent set overlaps a lot with other teams’ opponent sets (they share opponents), while Pafos’s overlaps less.
To be clear, “Qarabağ sits in a dense cluster” is not the same as “Qarabağ will finish last”. Qarabağ (Pot 4) had a genuinely fine 2024-25 campaign under the new format; single teams beat their expected finish all the time. What the cluster analysis says is that the five of them jointly are less likely to all advance; some subset almost certainly will.
In fact, look back at last year’s analogous 5-team cluster in UCL 24-25 (Leverkusen, Atlético, Feyenoord, Salzburg, Sparta): three of them made top-24 (Leverkusen, Atlético, Feyenoord); the other two (Salzburg and Sparta) didn’t. And of the current Pot-3 pair Ajax + Napoli, both missed top-24 last season in similar tight-cluster situations. The pattern is: dense cluster ⇒ some cluster team pays the price; which particular team is a matter of individual form. The unfairness is at the cluster level, distributed across the affected teams.
You can’t blame the draw for “picking bad teams to play”; every team is equally likely to draw any opponent; but you can ask: what if the graph of positions were designed so that no position is worse than any other?
In graph theory, this is called vertex-transitivity. A graph is vertex-transitive if you can slide any vertex onto any other vertex and the picture looks unchanged. Every vertex has the same number of neighbors (that’s just being “regular”), but also the same number of 2-hop neighbors, the same number of 3-cycles through it, the same number of 4-cycles, the same everything. If your team is at “position 7” instead of “position 12,” your structural situation is identical; only the specific identities of your opponents change.
That’s a strong fairness property. Draws would still be random (which specific team lands at which vertex depends on the balls that come out), but no team could complain that their position was worse than another team’s. Only their opponents’ strengths; which is the kind of luck fans accept.
The math: Cayley graphs
How do you construct a vertex-transitive graph on 36 vertices where every team has 8 opponents split across 4 pots the way UEFA wants?
One classical answer: Cayley graphs. Take the integers modulo 36 as your vertex set; think of them arranged around a clock face with 36 tick marks. Pick a small set of “offsets”.
For a first illustration, try the offset set {±1, ±4, ±6, ±11}. Connect each vertex i to the eight vertices at i ± 1, i ± 4, i ± 6, i ± 11 (mod 36).
Because the same offsets apply to every vertex, every vertex has the same local neighborhood by construction. Shift-invariant. Perfectly vertex-transitive.
Now line that up with UEFA’s pot structure. Partition the 36 vertices by their residue mod 4: vertices 0, 4, 8, …, 32 are “pot A”; vertices 1, 5, 9, …, 33 are “pot B”; and so on. There are 9 vertices in each pot, matching UEFA’s 4 pots of 9.
For each offset, we can figure out which pot it lands you in. Offset ±4 keeps you in the same pot (within-pot opponent). Offset ±6 puts you in an adjacent pot (residue 2 mod 4 gives a “shift by 2 pots”). Offset ±1 or ±11 puts you in an adjacent pot. Pick offsets carefully and every vertex ends up with 2 opponents in each pot: exactly what UEFA requires.
So a properly-chosen offset set gives us: 8 opponents per team, 2 from each pot, perfectly vertex-transitive, algorithmically simple. That’s the whole idea. But not every offset set is good; some create dense clusters even worse than the actual UCL draw. Now we just have to find the best set of offsets.
Which offsets are best?
Vertex-transitivity guarantees fair positions, but not automatically a sparse graph, so we want to pick the offset set that minimizes local density. The first bar is triangle elimination: no three teams among the 36 all play each other (a triangle is the smallest possible dense cluster). Triangles can be eliminated entirely for a subset of offset choices. Four-cycle elimination would be lovely too, but it’s provably impossible on 36 vertices (Moore’s bound says an 8-regular graph with no 4-cycles needs at least 1 + 8 + 8·7 = 65 vertices); the best we can do is minimize how many 4-cycles each team sits inside.
There are 432 valid choices of offset sets that satisfy the UEFA pot structure. Of those, only 21 distinct graphs remain after we throw out anything with triangles and collapse mathematically-equivalent candidates. We ranked those 21 on five fairness metrics, and all five point at the same winner: C(36; ±{1, 4, 10, 17}).
Click to expand: the fairness metrics we tested and the winner's numbers
The five metrics, in plain terms: 1. **Fewest short cycles per team**: how tangled is your local neighborhood, at cycle lengths 4, 5, 6, and up. 2. **Most uniform "shared opponents" distribution**: no team's opponents are unusually intertwined with any other team's. 3. **Fewest dense 5-team clusters**: count of 5-team subsets that reach the maximum internal-match count allowed by the graph structure. 4. Uniformly-weighted sum of cycle counts. 5. Small-cycle-heavier weighted sum of cycle counts. All five agree. What the winner buys you: - Only 42 four-cycles per team (compared to 49-132 for other candidates). - Standard deviation of shared-opponents is 0.94 (next lowest is 1.18; the pathological worst case has 2.75). - No five-team cluster in the graph exceeds 6 internal matches. Ever. And only 252 clusters even reach 6 (compared to 360-1080 for the other candidates). - The tightest possible "both sides play all of the other side" subgraphs are small: no such structure has 3+ teams on both sides.
Here’s the winner graph:
Each vertex has 8 neighbors (i ± 1, i ± 4, i ± 10, i ± 17, all mod 36). The picture looks the same if you rotate it: that’s the vertex-transitivity.
Can it actually be deployed?
Almost. There’s one wrinkle: for the 2025-26 UCL team set (6 English teams, 5 Spanish, 4 Italian, 4 German, and 17 others from smaller federations), we tried to assign the 36 teams to the 36 vertices of C(36; ±{1, 4, 10, 17}) while respecting UEFA’s country rule (“no two teams from the same country play each other, and each team faces at most 2 opponents from any other country”).
Using Google’s OR-Tools CP-SAT solver, we proved: strictly impossible. There is no assignment. The country distribution is too concentrated in the top four federations for a vertex-transitive graph to accommodate.
And this isn’t a 2025-26 quirk. The upcoming UCL 2026-27 draw on Thursday looks essentially the same: about 5 English, 5 Spanish, 4 Italian, 4 German, and possibly 4 French teams. The concentration in top federations is a permanent feature of modern qualification, not a one-off. So the strict rule is going to keep hitting the same wall every season on the symmetric graph.
But two small policy tweaks each restore feasibility:
-
Option A: raise the “max opponents from same country” cap from 2 to 3. A one-integer change to UEFA’s regulation. Same-country matchups are still forbidden; the change is only that a team may face up to 3, rather than 2, opponents from any single foreign country.
-
Option B: split each large federation (≥4 teams) into two sub-groups (e.g., ENG_A = {Chelsea, Man City, Tottenham}, ENG_B = {Liverpool, Arsenal, Newcastle}), then treat the sub-groups as if they were separate countries. Same-sub-group teams still don’t play, but cross-sub-group same-country matches (Liverpool vs. Chelsea) become allowed, capped at 2 per sub-group. A knock-on effect: a non-English team can now face up to 4 English opponents (2 from each sub-group).
Option A preserves the intent of the country rule (limiting same-federation opponents to a small constant), whereas Option B can be considered fairer as the advantage of countries with many teams is reduced. Both make the perfectly symmetric graph deployable.
A live draw ceremony under either option would look identical to, or even better than, today’s. The 36 team balls go into a drum. Each ball, when drawn, gets placed at one of the valid vertex positions using the same constraint-propagation software UEFA already uses. Between 100 million and 10 billion valid assignments exist: plenty of randomness for the draw to feel unpredictable. Computation is fast enough that it’s invisible to viewers: about 55 milliseconds of solver work per ball, roughly 2 seconds for the entire 36-ball draw. The ceremony’s pacing (the balls, the walk-outs, the presenters explaining what just happened) is set by theatrics, not by the compute, and would be unchanged.
And for UECL, they don’t even need the rule tweak. The Conference League’s 6-pot / 6-opponent structure has enough slack that a symmetric graph absorbs the country rule as-is. The winner in that setting is a Cayley graph on the group Z/18 × Z/2 with offset set {(1,0), (2,1), (9,0), (9,1), (16,1), (17,0)}; every team ends up with 1 opponent per pot, no same-country matchups, at most 2 opponents from any single foreign country. Zero regulation changes required.
Scheduling after the draw
Assigning teams to positions is one half of deployment. The other half is scheduling the resulting matches into matchdays; and here too, the symmetric graph does something nice.
Once the pairings are known, UEFA still has to slot the 144 matches into 8 matchdays so that no team plays twice on the same night (!). That’s the scheduling step. There’s a subtle catch here that Guyon et al. (2025) uncovered: some random draw outcomes (very rare, but mathematically possible) produce a match graph that cannot fit into 8 matchdays and would need 9. After they alerted UEFA of this, UEFA folded the 8-matchday-schedulability check into the draw software itself, so such outcomes are prevented upfront rather than fixed after the fact.
Our fixed-graph approach removes the risk entirely. We verified with a constraint solver that:
- The UCL winner graph splits cleanly into 8 matchdays of 18 matches each (7 is provably too few).
- The UECL winner graph splits cleanly into 6 matchdays of 18 matches each (5 is provably too few).
- Under the natural home/away rule (“host if you’re the lower number modulo 36”), every team gets exactly 4 home + 4 away in UCL (3+3 in UECL), and every matchday is a perfectly balanced 18-home / 18-away split. No optimizer needed; it falls out of the algebra.
Everything else UEFA cares about (avoiding consecutive home games, spacing sensitive fixtures, TV-window rules) is about the ordering of the matchdays, not the graph itself, so their existing scheduler transfers unchanged.
What this changes
Under the current UEFA format, in any given season, some small group of teams may find themselves in a cluster like the Napoli-Benfica-Chelsea-Ajax-Qarabağ cluster; through no fault of their own. Their joint chances of advancement take a real hit from a structural accident of the draw. And crucially, this hits unevenly at the federation level. Individually, any team can still be pulled into a dense cluster: Liverpool could plausibly land in one with four non-English teammates, just as Qarabağ did. But no cluster can contain two or more teams from the same country (the same-country ban rules that out), so the Premier League as a whole cannot suffer the compounded hit that comes from having multiple of its own teams jointly stuck. Its six clubs are, in effect, distributed across up to six separate potential clusters instead of concentrated in one. Azerbaijan’s single UCL entrant has no such protection; whatever cluster it lands in, the whole national representation is exposed. The current system quietly rewards federations with many entrants, even when it does not shield any individual team.
Under the symmetric-graph proposal, that can’t happen. Small dense clusters like the Napoli-Benfica-Chelsea-Ajax-Qarabağ pocket are structurally impossible in the new proposal. No team occupies a structurally worse position than any other team. The only source of asymmetry is opponent strength; which is a kind of luck fans understand and accept.
Fairness stops being a statistical property of the random draw and becomes a mathematical property of the graph itself: provable per-team, for every team, every season. The math is done and public. All that’s left is a decision: change one line of the country rule, publish one fixed graph, and clusters like Napoli-Benfica-Chelsea-Ajax-Qarabağ stop being possible.
Enjoy Reading This Article?
Here are some more articles you might like to read next: