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:
| Team | Record | Elo rating |
|---|---|---|
| Central High School, Phenix City | 16-0 | 2257.70 |
| Vestavia Hills High School | 15-1 | 1996.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 gap | Favorite wins | Reads as |
|---|---|---|
| 0 | 50.0% | a coin flip |
| 50 | 57.1% | a slight edge |
| 100 | 64.0% | a clear favorite that loses often |
| 200 | 76.0% | a heavy favorite |
| 300 | 84.9% | a mismatch |
| 400 | 90.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.
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 probability | Standard error at 10,000 runs | 95% 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 game | Two rounds | Three rounds | Four 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.