BleacherBots builds its own forecast of who wins each game from years of real results, compares it with the betting market after the bookmaker's margin is stripped out, publishes a calibrated blend of the two as the ๐ฏ BB Prediction, and raises a ๐ VALUE flag only where our model likes a team meaningfully more than the market does.
Most prediction sites repeat the odds back to you. Ours is built only from final scores, so it can disagree with the market โ and be measured against it, every day, on our public record.
๐ค BleacherBots model. Our raw, rating-based win probability. It has never seen a betting line.
๐ Market consensus (de-vigged). The betting market's own opinion with the operator's margin removed, so both sides add up to 100%. (How that conversion works.)
๐ฏ Blended BB Prediction. Our published call: a weighted average of the two numbers above. The weight is set per sport by backtesting โ the more skill our model has proven in a sport, the more of the published number it supplies. The headline pick on every page is this number.
๐ VALUE. Raised when our raw model likes a side at least 5 points more than the market does. It is computed from the raw model, not the blend, because the blend already contains the market and would understate the gap.
Because they answer different questions. The headline asks "who is most likely to win, using everything we know?" The flag asks "where does our independent model see something the market doesn't?" In a sport where the blend leans mostly on the market โ hockey is the clearest case, because single games are so random that the market's number is hard to beat โ the raw model can like the visitors by 6 points while the blended number still sits a hair on the home side.
A real hockey example from our board:
The headline reads "Home 51% to win" and the flag names the visitors. Both are right. Read it as: the favorite is a coin flip, and our model thinks the visitors are underrated. When the two agree, the pick is as confident as we get; when they split, the gap is the story.
NBA, NFL, NHL, MLB โ margin-aware Elo. Every team carries one rating that starts at the league average. After each final, the winner takes rating points from the loser: more for beating a strong team, more for a big margin (with diminishing returns, so blowouts count but don't dominate), and less for a favorite that merely wins big, so elite teams don't inflate forever. The win probability for an upcoming game comes from the rating gap plus a home-ice, home-court or home-field adjustment, zeroed at neutral sites. The update speed is tuned per sport: a 162-game baseball season moves slowly; a 17-game football season has to react fast.
MLB adds the starting pitcher. Baseball is the one sport where a single player moves the number by several points. The model reads the official probable starters daily and adjusts for the gap between them, using a luck-stripped pitching measure pulled toward the league average so three good starts cannot make an ace. No probable listed, no adjustment โ it never guesses.
Soccer โ Dixon-Coles. Each team gets an attack and a defense strength; expected goals for each side come from those plus a home factor; the scoreline is modeled goal by goal, with a correction for how often low-scoring draws really happen. That is what produces a proper home / draw / away split, and older matches count less so ratings stay current across seasons.
The blend weight follows the backtests: our model carries the largest share of the published number in basketball and football, a solid share in baseball and soccer, and the smallest in hockey, where single games are the noisiest in pro sports.
Every change to the model has to beat the previous version in a walk-forward backtest: replay history in order, predict each game with only what was known before it, score the result. We score with the Brier score โ the average squared error of the probabilities โ because it rewards saying 60% only when that side wins about 60% of the time, which a winโloss count alone cannot test.
In production, every call is logged before the game with the market line it was made against and graded after the final. The public record shows our picks and the market's picks on the same games, side by side. Matching the de-vigged market on straight picks is the floor; the value is in the disagreements.
Injuries and lineups. Ratings are team-level. Outside baseball's pitcher term the model does not read injury reports; when a star sits, the market prices it within minutes and our model only learns from the results afterward. So a ๐ flag can sometimes fire because the market knows something the model doesn't โ check the lineup news before you treat the flag as a sure thing.
A probability is not a promise. A 70% side still loses three times in ten. Hockey in particular is high-variance: even the best team in the league loses roughly a third of its games.
Live and finished games are never "called". Predictions are made before the game and frozen; nothing is rewritten after the puck drops.
For entertainment only โ not betting advice.
The exact update speeds, home advantages, margin curves, pitcher conversion, blend weights and calibration constants are the product of the backtesting above and are not published. The method is open, the numbers are graded in public, and the recipe is ours.