Four from six. Is the new manager really better?
Rangers sacked Russell Martin after one win in seven league games; Danny Röhl won four of his first six. A Bayesian comparison puts the chance he's genuinely better at about nine in ten, not the near-certainty it felt like, and shows why more games couldn't settle it.
Beginner Part 8 of Bayesian Thinking Through Football
New to the notation? The symbols explained
Contents
The football question
Russell Martin was sacked by Rangers on 5 October 2025, the day of a 1–1 draw at Falkirk. He had managed seven league games: one win, five draws and one defeat. Danny Röhl was appointed on 20 October and won four of his first six league games, drawing the other two. (A 2–2 draw with Dundee United in between came before Röhl arrived, so it counts for neither.)
Four from six against one from seven. The new manager is better, surely? How sure can you actually be?
The concept
Think of each manager as having a true win rate: the share of league games his Rangers would win over a long run. We never see it, only his results, so we hold a belief about it. As in four from four, how good is he really?, that belief is a Beta distribution, and updating it is just counting:
$$\begin{aligned} \text{belief} &= \text{Beta}(a + w,\ b + n - w) \\ \text{best guess} &= \frac{a + w}{a + b + n} \end{aligned}$$
In plain football
- w is the number of league wins and n the number of league games.
- a and b are what you believed before a ball was kicked, counted as if you'd already seen a wins and b games without one.
- Beta( , ) is the whole range of win rates you'd believe, and how strongly.
- The best guess is the middle of that belief: the wins, plus the made-up wins, over all the games, real and made-up.
To compare two managers, draw a plausible win rate for each from his belief, and see whose is higher. Do it 50,000 times. The share of draws in which Röhl's rate is the higher one is the chance he's really the better manager.
A football example
Starting with no view at all
Start from Beta(1, 1), where every win rate from 0% to 100% is equally believable. Martin's best guess is 22%; Röhl's after six games is 62%. The chance Röhl is really better: 96.4%. That matches the gut feeling: almost certain.
Starting from what Rangers usually do
But nobody believes a Rangers manager is as likely to win 10% of games as 90%. Over the five seasons before, 2020/21 to 2024/25, Rangers won 137 of 190 league games, 72.1%. Count that as ten games' worth of belief (a = 7.2, b = 2.8) and start both managers there.
Now Martin's best guess rises to 48%. One win in seven, with five draws, looks partly like bad luck at a club that usually wins most weeks; that's regression to the mean at work. Röhl's best guess after six is 70%, and the chance he's really better falls to 90.5%.
And after a whole season
Röhl managed 30 league games in 2025/26: 19 wins, 6 draws and 5 defeats. Here is the chance he's better, game by game:
After 30 games the chance is 89.0%, slightly lower than after six. Two things are going on:
- Martin's belief never narrows. Every Röhl game sharpens our view of Röhl, but we'll only ever have seven games of Martin. The comparison can't become surer than the shorter record allows.
- Röhl's results cooled. His first six were won four, drawn two; over all 30 he won 19, so his best guess settles at 66%, below the 70% after six.
How strongly you hold the starting belief matters too. Count Rangers' usual as twenty games' worth instead of ten, and the chance falls to 85.6% after six and 80.1% after thirty. With so little of Martin to go on, what you believed beforehand does a lot of the work.
The verdict: Röhl was probably the better manager, about nine chances in ten. That's a long way from the near-certainty "four from six against one from seven" seemed to promise.
Why it matters
- Ask "how likely is he better?", not "is he better?" The answer is a chance, and it's rarely as close to certain as a run of results makes it feel.
- The shorter record limits the comparison. Sack a manager after seven games and you'll never know for sure how good he was, however long his successor stays.
- The starting belief matters most when evidence is thin. With no view, 96%; with what Rangers usually do, 91%.
- The same method works for any two rates: two strikers' conversion, two keepers' saves, a team's record before and after a change of system.
Limitations
- Wins only. A draw counts the same as a defeat here, and Martin's spell was mostly draws; a points-based comparison would need a different kind of belief.
- Better results, not proof of better management. Injuries, signings in the January window and the run of fixtures changed too; the comparison can't say what caused the difference.
- Every game counts the same. Martin's seven included Celtic and Hearts; Röhl's thirty included every side, home and away.
- The starting belief is a choice. Ten games' worth of Rangers' usual is a judgement, so twenty is shown as well.
- One example, not a study. Whether sacking the manager works in general needs every change, and a fair comparison with sides that kept theirs: does sacking the manager bring a bounce?
Try it yourself
The How good is he really? model does this kind of updating for penalty takers, and it works for managers too: read "penalties" as games and "scored" as won. Set the typical rate to 72%, how sure to 10, and enter Martin's seven games and one win. Then try your own club's last change of manager.
Reproduce the analysis
Download the Scottish Premiership files (SC0) for 2020/21 to 2025/26 from football-data.co.uk, saved as SC0_2021.csv to SC0_2526.csv; they aren't rehosted on this site. It uses a fixed random seed and takes a few seconds. Then:
Show the Python44 lines, ready to copy and run.
import csv
import random
from datetime import datetime
def rangers(s): # (date, won) for every Rangers league game in season s, in date order
with open(f"SC0_{s}.csv", encoding="latin-1") as f:
games = [r for r in csv.DictReader(f) if r.get("FTR") in ("H", "D", "A") and "Rangers" in (r["HomeTeam"], r["AwayTeam"])]
out = []
for r in games:
date = datetime.strptime(r["Date"], "%d/%m/%Y" if len(r["Date"]) == 10 else "%d/%m/%y")
out.append((date, r["FTR"] == ("H" if r["HomeTeam"] == "Rangers" else "A"), r["FTR"] == "D"))
return sorted(out)
season = rangers("2526")
martin = [g for g in season if g[0] <= datetime(2025, 10, 5)] # sacked on 5 October 2025, the day of his last game
rohl = [g for g in season if g[0] >= datetime(2025, 10, 20)] # appointed on 20 October 2025
record = lambda games: f"won {sum(w for _, w, _ in games)}, drew {sum(d for *_, d in games)}, lost {sum(not w and not d for _, w, d in games)}"
print(f"Martin, {len(martin)} league games: {record(martin)}")
print(f"Röhl, first 6: {record(rohl[:6])}; all {len(rohl)}: {record(rohl)}")
usual = [w for s in ("2021", "2122", "2223", "2324", "2425") for _, w, _ in rangers(s)]
print(f"Rangers' usual: won {sum(usual)} of {len(usual)} league games, 2020/21 to 2024/25, {sum(usual) / len(usual):.1%}")
def chance_better(prior, games_m, games_r, draws=50_000, seed=1):
"""Draw a plausible win rate for each manager from his Beta belief; how often is Röhl's the higher?"""
rng = random.Random(seed)
a, b = prior
wm, nm = sum(w for _, w, _ in games_m), len(games_m)
wr, nr = sum(w for _, w, _ in games_r), len(games_r)
return sum(rng.betavariate(a + wr, b + nr - wr) > rng.betavariate(a + wm, b + nm - wm) for _ in range(draws)) / draws
p = sum(usual) / len(usual)
PRIORS = {"no view": (1, 1), "Rangers' usual, worth 10 games": (10 * p, 10 * (1 - p)), "Rangers' usual, worth 20 games": (20 * p, 20 * (1 - p))}
for name, (a, b) in PRIORS.items():
wm, nm = sum(w for _, w, _ in martin), len(martin)
print(f"\nStarting from {name}: Martin's win rate, best guess {(a + wm) / (a + b + nm):.0%}")
for n in (6, len(rohl)):
wr = sum(w for _, w, _ in rohl[:n])
print(f" after Röhl's first {n}: his best guess {(a + wr) / (a + b + n):.0%}, chance he's better {chance_better((a, b), martin, rohl[:n]):.1%}")
flat, usual10 = PRIORS["no view"], PRIORS["Rangers' usual, worth 10 games"]
print("\nChance Röhl is better, after each of his games (no view / Rangers' usual, worth 10):")
print(" " + ", ".join(f"{n}: {chance_better(flat, martin, rohl[:n]):.3f}/{chance_better(usual10, martin, rohl[:n]):.3f}"
for n in range(len(rohl) + 1)))
Further reading
- Rangers sack Russell Martin after disaster five-month spell, ESPN, 5 October 2025. The sacking, after the 1–1 draw at Falkirk and one league win.
- Danny Röhl appointed new Rangers head coach, Sky Sports, 20 October 2025. The appointment, on an initial two-and-a-half-year deal.
- Beta distribution, Wikipedia. The belief used for each manager's win rate, and why counting wins updates it.
- A/B testing, Wikipedia. Comparing two versions of something by their results, as here with two managers.