How a Playoff Simulation Works: The 2025 Alabama Final as a Worked Example

What a championship probability actually means, worked end to end on a real game, with a simulator you can run yourself.

Every December somebody publishes a bracket with percentages beside each team, and every December the same argument follows: the model said 82 percent, the 82 percent team lost, so the model was wrong. It was not. A simulation that is right about an 82 percent favorite should watch that favorite lose roughly one time in five. If it never happened, the number would be the thing that was broken.

This page walks through what those percentages are and how they are produced, using the 2025 Alabama 6A/7A championship game as the worked example. The old 6A/7A structure no longer exists, which is exactly why it makes a good teaching case: the season is finished, the result is known, and nothing here is trying to talk you into a pick.

Step one: turn a rating gap into a win probability

Simulation starts with a rating. Ours is an Elo rating, a single number per team where the only thing that carries meaning is the distance between two of them. At the end of the 2025 regular season the two finalists sat here:

TeamRecordElo rating
Central High School, Phenix City16-02257.70
Vestavia Hills High School15-11996.49

The gap is 261.21 points. Elo converts a gap into a win probability with one expression:

P(A beats B) = 1 / (1 + 10(EloB - EloA) / 400)

Put the two 2025 ratings in and Central comes out at 81.8 percent. That is the whole of step one. No simulation has happened yet, and for a single game none is needed: the formula already gives the exact answer.

The 400 in the denominator is a scale constant, not a discovery. It is the convention Arpad Elo chose for chess, carried into sports ratings since, and it fixes how much a rating point is worth. Under it, the gaps work out like this:

Rating gapFavorite winsReads as
050.0%a coin flip
5057.1%a slight edge
10064.0%a clear favorite that loses often
20076.0%a heavy favorite
30084.9%a mismatch
40090.9%an upset would be a story

The row worth staring at is 100. A hundred Elo points is a visible gap, the kind that separates a region favorite from a good-but-not-great opponent, and it still loses more than a third of the time. Most disagreements about model output come from expecting 64 percent to feel more like 95.

Step two: play the game many times

For one game the formula is enough. Simulation earns its keep when outcomes have to be chained, because there is no equally tidy expression for "who comes out of a sixteen-team bracket."

The method is Monte Carlo, and it is less sophisticated than the name suggests. Draw a random number between 0 and 1. If it lands below the favorite's win probability, the favorite advances; otherwise the underdog does. Carry the winner into the next round, repeat to the end of the bracket, and record who finished holding the trophy. Then do the whole thing again ten thousand times and count. The share of runs a team won is its championship probability.

Run it on the 2025 field

Pick any two teams from the 2025 6A/7A field. The page computes the exact Elo probability, then actually runs 10,000 simulated games in your browser and reports what they produced. The two numbers will not match perfectly, and the gap between them is the point.

This simulator needs JavaScript. The worked example above and the numbers below are complete without it.

How much precision does 10,000 trials buy?

Running the simulator twice on the same matchup gives two different answers. That is not a defect, it is sampling: ten thousand coin flips do not land on exactly five thousand heads. The spread is predictable, though, and it shrinks with the square root of the number of runs.

True probabilityStandard error at 10,000 runs95% of runs land within
50%0.50 points+/- 1.0 point
65%0.48 points+/- 0.9 points
82%0.38 points+/- 0.8 points
90%0.30 points+/- 0.6 points

So ten thousand runs pins a championship probability to within about a point, which is far finer than the ratings feeding it deserve. This is worth being blunt about: simulation noise is the smallest source of error on this page. Whether Central was really 260 points better than Vestavia matters enormously. Whether the simulator says 81.6 or 82.0 does not matter at all. Adding a zero to the run count would buy precision the inputs cannot justify.

Why brackets punish favorites

The interesting behaviour appears once games are chained, because probabilities multiply. A team that is a strong 80 percent favorite in every single round is not an 80 percent favorite to win the tournament:

Win probability per gameTwo roundsThree roundsFour rounds
60%36%22%13%
70%49%34%24%
80%64%51%41%
90%81%73%66%

Four rounds at 80 percent each comes to 41 percent. The most dominant team in the field is more likely than not to lose somewhere. Take the real 2025 ratings: if Central had been made to beat Spain Park, then Auburn, then Vestavia Hills, the three best teams left behind it, its chance of running that specific gauntlet was 60.6 percent, even though it was favored by at least 86 percent in each individual game.

What actually happened

Central won, finishing 16-0. A model that gave them 81.8 percent and watched them win learned almost nothing from the result: at those odds the outcome was the expected one. One game is nearly useless as a test of a rating system, which is why the model is scored across hundreds of games instead. That work is described in how the rankings model works.

What this model cannot see

Everything above rests on inputs that are narrower than the game itself. Stating the limits plainly is part of the method:

  • Ratings are frozen during the run. A team that is peaking in December carries the same number it earned in September.
  • Nothing about availability is in the data. Injuries, illness, and players lost to other sports are invisible to the model.
  • Only game results feed it. No film, no roster, no travel, no weather, no coaching adjustment.
  • No home-field term is applied here. Championship games are played at neutral sites, so the venue adjustment used during the regular season is switched off.
  • Independence is assumed. Each simulated game is drawn separately, so the model cannot represent a team that is genuinely hitting form across a whole postseason.

None of these make the exercise worthless. They set what it is for: a way of asking how much of a bracket is decided by team strength and how much is left to chance, not an attempt to see the future.

What changes in 2026

The bracket modelled here no longer exists. AHSAA reclassified for 2026, 7A was eliminated, and flag football now runs four divisions split between public and private schools. The arithmetic on this page is unaffected, since none of it depends on the shape of the bracket, but the specific matchups and the 60-team field are history. The background is in the reclassification explainer, and when the 2026 brackets are set a current forecast will be published separately rather than overwriting this case study.

Data and methods

Elo ratings and records come from the final 2025 regular-season standings computed by this site's rankings pipeline and published in public/rankings-data-2025.js. Win probabilities use the standard Elo expression above with the conventional 400-point scale and no home-field term. The simulator runs in your browser, draws from Math.random(), and keeps nothing. Rating-gap, standard-error and compounding tables were computed directly from the formulas shown. For the rating method itself, see how the rankings model works; for corrections and the uncertainty policy, see the editorial policy.