Every projection is built from live, authoritative data — no guesswork, no outdated databases.
Each game goes through a sequential adjustment pipeline. Every step refines the probability estimate using a new layer of real-world data.
We start with each team's season-to-date run differential and apply the Pythagorean Win Expectation formula (RS² / (RS² + RA²)) to establish a baseline win probability. This captures true team quality better than raw win-loss records, which are heavily influenced by one-run game luck.
Win% = RS² ÷ (RS² + RA²)The starting pitcher is the single biggest variable in any MLB game. We pull each starter's ERA, FIP, xFIP, WHIP, K/9, and BB/9 for the current season. FIP (Fielding Independent Pitching) is weighted more heavily than ERA to strip out defense and luck. The pitcher's quality is then used to shift the run expectation up or down from the team baseline.
Adj. Runs = Base Runs × Pitcher FIP FactorWhen confirmed lineups are available, we score each lineup 0–100 based on the OPS, wRC+, and recent form of the 9 batters. A lineup missing its top 3 hitters scores significantly lower than a full-strength lineup. This score adjusts the team's projected run total — a weak lineup facing an ace is a very different game than a full-strength lineup vs. a back-end starter.
Lineup Score = Σ(wRC+ × Slot Weight) / 9Every MLB park plays differently. Coors Field inflates runs by ~30%. Petco Park suppresses them by ~12%. We apply multi-year park factor coefficients to both teams' projected run totals, adjusting for the specific venue's effect on hits, home runs, and total scoring. This is especially critical for Over/Under bets.
Adj. Runs = Projected Runs × Park FactorWind is the most impactful weather variable in baseball. A 15+ mph wind blowing out to center field can add 10–15% to run totals. Wind blowing in suppresses offense. We fetch hyper-local forecasts for each park at first pitch time and calculate a directional wind impact factor. Temperature and humidity also affect ball flight, particularly at altitude.
Wind Factor = Speed × cos(Angle to CF) × 0.008After all adjustments, we have a model win probability for each team. We convert this to an implied fair-value moneyline and compare it to the market odds. If our model says a team has a 58% chance of winning but the market is pricing them at 52% (implied), that's a +EV bet. We only surface bets where the edge exceeds our minimum threshold.
EV = (Win% × Profit) − (Loss% × Stake)Knowing a bet has positive expected value isn't enough — you also need to know how much to bet. The Kelly Criterion calculates the mathematically optimal bet size as a fraction of your bankroll to maximize long-run growth while avoiding ruin. We display both full Kelly and fractional Kelly (25%) recommendations, since full Kelly can be aggressive for most bettors.
Kelly % = (bp − q) ÷ bMost bettors lose because they rely on gut feel, recency bias, and incomplete information. The model eliminates all three.
Lineup data updates within minutes of official confirmation. Odds refresh continuously. You're never betting on stale information.
The model doesn't overreact to last night's box score. It weights full-season data appropriately, smoothing out hot/cold streaks that fool casual bettors.
A bet only gets a high confidence rating when multiple factors align — good pitcher matchup AND favorable park AND weather AND lineup edge. Confluence = conviction.
Every projection shows its components. You can see exactly why the model likes or dislikes a game. No black box — you understand every recommendation.
The model tells you not just what to bet, but how much. Proper bankroll management is what separates long-term winners from bettors who go broke on a hot streak.
Our parlay builder identifies 2-leg and 3-leg combinations where the legs are statistically independent, avoiding correlated bets that look good but destroy EV.
Our parlay engine automatically identifies 2-leg and 3-leg combinations from the day's highest-confidence bets. It filters out correlated legs (e.g., same-game parlays where both outcomes depend on the same pitcher) and ranks combinations by combined EV. Parlays are only shown when each leg independently clears the minimum edge threshold.
No model can guarantee wins in sports betting — variance is real and even +EV bets lose frequently in the short run. What the model does is identify situations where the mathematical edge is in your favor over a large sample. Think of it like poker: a professional doesn't win every hand, but they win over thousands of hands because they consistently make +EV decisions.
The full pipeline runs at 8:00 AM ET every day, pulling fresh stats, confirmed lineups, current odds, and weather forecasts. Lineups are refreshed again at 11:30 AM ET (when most lineups are posted) and at 6:00 PM ET for evening games. Odds update in real time on the game cards.
We use ERA, FIP (Fielding Independent Pitching), xFIP (Expected FIP), WHIP, K/9, BB/9, and HR/9. FIP and xFIP are weighted more heavily than ERA because they better predict future performance by removing the influence of defense and sequencing luck.
Each confirmed lineup is scored 0–100 based on the wRC+ (Weighted Runs Created Plus) and OPS of each batter, weighted by lineup slot (leadoff and cleanup spots weighted higher). A lineup missing its top hitters scores proportionally lower. This score directly adjusts the team's projected run total.
We surface bets where our model probability exceeds the market's implied probability by at least 3 percentage points (e.g., model says 55% win probability, market implies 52%). Below that threshold, the edge may not be large enough to overcome the sportsbook's vig reliably.
DISCLAIMER: MLB Edge is provided for entertainment and informational purposes only. All projections and model outputs are opinions based on statistical analysis — they are not guarantees of any outcome. Sports betting involves substantial financial risk. Must be 21+. Terms of Service · Responsible Gambling · Helpline: 1-800-522-4700