🏆 Matchup Predictorwho's actually going to win?

❓ How This Works

The short version: we built a computer model, feed it real results every day, and check our own homework in public. Here's what that actually means.

🧮 Where the predictions come from

Every team gets a single "strength" number that goes up when they win and down when they lose — more so against strong opponents, less so against weak ones, and more so for a blowout than a nail-biter. That's it, that's the whole idea (it's a well-known system called Elo, the same style of rating chess players and FiveThirtyEight's sports models use). When two teams play, we compare their numbers — plus a small boost for whoever's playing at home — to get a win probability. No mystery ingredient, no black box: just real past results, replayed.

A few sports get a real, specific nudge on top of team strength when we have honest evidence it should move the number:

Nothing is invented or guessed — if we don't have a real signal for something, we leave it out rather than fake it. More on what we deliberately don't do below.

🎰 Where the player prop suggestions come from

Separate from the win prediction above: for MLB home-run and total-bases prop lines specifically, we also factor in the ballpark's known scoring tendencies, tonight's temperature, the opposing starter's real home-run rate allowed, and two real reads on the batter's own quality this season — how often they barrel the ball up (not just how many home runs happened to land) and their overall expected offensive output once park and luck are stripped out. These are all real, well-documented effects on exactly those two stats — but they only touch the prop suggestions, not who we predict to win the game. A hitter-friendly park doesn't favor either team, so it has no business changing a win probability, only how likely a specific player is to go deep tonight.

For NBA and WNBA scoring lines, we scale by how many points tonight's opponent actually gives up per game, measured from real completed games rather than a reputation. That's the only prop adjustment we make in basketball, and it's on purpose: points allowed is a direct measure of what a scoring line predicts, but a poor stand-in for rebounds — more opponent misses arguably means more rebounds available, which would push the wrong way. So rebound, assist and three-point lines are shown as the plain season average, with the opponent's defensive rank displayed next to them but not priced in.

On basketball picks we also show the player's last ten games and how many of them cleared tonight's number. That's history, shown so you can judge it — it is deliberately not folded into the projected number. The hit rate is counted against the very line it would then be compared to, so building it in would be circular reasoning, and ten games is a small enough sample that a hot streak proves less than it looks like it does.

🏷️ What the confidence labels mean

We show a plain-language label instead of a bare percentage, because "62.4%" doesn't mean much at a glance to most people. Here's exactly what each one means:

LabelWin probability
Strong Favorite80%+
Favored65–80%
Slight Edge55–65%
Toss-up45–55%
Slight Underdog35–45%
Underdog20–35%
Long Shotunder 20%

👀 What the "betting value" badge means (and doesn't)

Sometimes you'll see a card flag "betting value" for a team that isn't the one we predict to win — that's not a mistake. It means the actual sportsbook odds look softer than our model thinks they should, for whichever team, regardless of who we think will win outright. Our predicted winner and the win percentages are the actual pick; the value badge is a separate, narrower observation about the odds themselves. We keep them visually separate on purpose — they answer different questions.

📈 How we grade ourselves

Every prediction gets written down before the game happens, then checked against what actually happened once it's final — a real, dated record, not something we can quietly rewrite after the fact. We also replay the whole season game-by-game, only ever using information the model would have actually had at that point in time (no peeking at a team's end-of-season record to judge how good our March prediction was). All of it, good or bad, is public on the Accuracy page for every sport — including the times the model does only slightly better than just guessing.

🙅 What this deliberately isn't

Show the technical details

Rating update: new_rating = rating + K × multiplier × (actual_result − expected_result). K controls how much a single game can move a team's rating, and is tuned per sport (baseball's 162-game season uses a much smaller K than a 16-game NFL season, so one game doesn't overreact). multiplier scales up for a bigger margin of victory and down for two closely-matched teams, the same style of adjustment FiveThirtyEight's own models use. Every league's exact parameters, plus whether we've found real statistical evidence (not just a hunch) to tune them away from their defaults, are shown on that sport's Accuracy page.