The sports analytics edge in MLB and NHL
The Forecast by Pythix · Issue 3 · May 13, 2026
Spread predictions don't work well for baseball and hockey. The model uses moneylines instead, and finds edge in games the market has mispriced.
The Overview
Baseball and hockey share a problem that makes them analytically tricky in the same specific way: they're low-scoring and high-variance. A baseball game can end 1–0 or 12–2. An NHL game can end 1–0 or 7–2. In both cases, the final margin tells you almost nothing reliable about which team was actually better on that night.
This is why the run line in baseball (where the favorite must win by 2+ runs) and the puck line in hockey (win by 2+ goals) are difficult to build accurate spread models around. You're not just predicting who wins — you're predicting the margin in a sport where margins are noisy. Even a team that dominates a baseball game statistically can lose 3–2 because a reliever gave up a late home run that had nothing to do with which roster was better.
The Pythix approach for both sports is to focus on moneylines: who wins the game, at what probability, and where does that probability diverge from what the market has priced in. A game where the model says a team has a 68% chance of winning but the market prices them at 60% is a meaningful disagreement. Finding those gaps consistently, and being directionally right about them, is what has produced positive average return across multiple seasons in both sports. What the model actually does with that insight gets specific from here.
The Quant View
The core computation for both sports starts with market_p: the implied win probability extracted from closing moneylines. The standard vig-removal formula converts the raw moneyline odds into a probability that strips out the bookmaker's margin. A team priced at –150 has an implied market probability of roughly 59.5% after vig removal. The model independently generates model_p for every game — its own estimate of that team's true win probability — using a Ridge regression trained on historical team-level performance data.
The edge signal is the difference: model_p minus market_p. Games where that gap reaches ≥3 percentage points are flagged as qualified signals. The 3pp threshold isn't arbitrary — it reflects the point at which, across walk-forward testing, signal quality consistently exceeds noise. Below 3pp, the model's disagreement with the market is too small to be reliable. At ≥3pp, something structural is likely driving the gap.
For MLB, the most important driver of model_p is starting pitcher quality — specifically, the difference in FIP (Fielding Independent Pitching) between the two starters. FIP is a stat that measures what a pitcher actually controls: strikeouts, walks, hit batters, and home runs allowed. It deliberately excludes balls in play, which are heavily influenced by defense and luck. A pitcher with a 3.20 FIP who gives up a lot of singles isn't being unlucky — he's being propped up by good defense. FIP corrects for that. When the FIP differential between the two starters is large but the moneyline doesn't fully reflect it, the model sees an edge. Walk-forward testing across 5 seasons produced +11.0% average return at the ≥3pp threshold. If you imagine a $100 stake on every qualified signal across a full MLB season, +11.0% means the model's signals returned $11 per game on average, across all five seasons individually, not as an average that masks bad years.
For NHL, the strongest signals are rest-based. Teams playing on zero days' rest — back-to-back games on consecutive nights — show measurable performance degradation that the closing moneyline consistently underweights. The model applies an explicit rest-day adjustment feature, and across 7 walk-forward seasons this signal has been among the top three most predictive inputs in the pipeline. Walk-forward testing across 7 seasons produced +6.24% average return on qualified signals, with all 7 seasons individually positive. Pro subscribers at pythix.io see the full Odds Edge layer for both sports: every qualified game flagged, the model's implied probability, and the confidence tier assigned by the full signal stack.
Follow the model
MLB and NHL Odds Edge signals are live on the Pro tier at pythix.io/pricing. Free winner picks for all 7 sports are available every night with no account required. Follow @Pythix_IO for in-season model updates.