Scoring Guide
How the system works and what to look for when making your BTS picks
Understanding the Three Metrics
Every batter gets three independent numbers. Each one tells you something different.
Score (0-100)
A weighted algorithm that grades the batter across 15 factors — recent performance, contact quality, matchup against the opposing pitcher, ballpark, and more. Think of it as a “matchup quality” rating. Higher is better, but the number alone doesn’t account for how many plate appearances the batter will get.
Hit Probability (50-90%)
The score converted to “what are the odds this batter gets at least one hit today?” This is the primary metric for BTS picks. It accounts for lineup position — a leadoff hitter with the same score as a 9-hole hitter will have a higher hit probability because they get more plate appearances.
ML Probability (55-75%)
An independent machine learning model (LightGBM) trained on 180,000+ historical batter-games across 7 seasons. It uses 23 raw features and doesn’t know about the score — it’s a completely separate second opinion. When Hit Prob and ML Prob agree, you can be more confident in the pick.
How the Score is Built
The 100-point score is the sum of 15 weighted factors. Each factor is normalized to 0-1 based on league targets, then multiplied by its weight. The categories below show where the points come from.
Plate Discipline
23 ptsContact rate is the single strongest predictor of getting a hit. Batters who put the ball in play give themselves a chance on every swing. K rate is inverted — lower strikeout rates score higher.
Performance
31 ptsWho’s hot right now? Recent batting averages capture streaks and slumps. Career BA provides a stable baseline that isn’t affected by small sample sizes early in the season.
Expected Metrics
11 ptsStatcast data based on exit velocity and launch angle. These measure how hard and how well a batter is hitting the ball, regardless of whether fielders happened to catch it. They strip out luck.
Contact Quality
11 ptsHard-hit balls (95+ mph exit velo) and line drives are the types of contact most likely to become hits. A batter who barrels everything but hits it right at fielders will still show up well here.
Matchup & Context
24 ptsThe opposing pitcher’s recent form matters most here. Sprint speed captures infield hit potential. BvP uses historical head-to-head data (requires 5+ at-bats). Hitter-friendly parks like Coors Field provide a small boost.
BvP Redistribution
When the batter has fewer than 5 career at-bats against today’s pitcher, the BvP data is unreliable. Its 4 points get redistributed to K rate, contact rate, pitcher form, line drive rate, and L15 BA — factors with more stable data.
Modifiers That Adjust the Score
After the 15 weighted factors are totaled, modifiers are applied on top. These capture matchup dynamics that don’t fit neatly into a single stat.
| Modifier | Effect | Why it matters |
|---|---|---|
| Platoon advantage | +2 to +4 | Left-handed batters crush right-handed pitchers and vice versa. The biggest boost (+4) goes to LHH vs RHP. Switch hitters get +3. |
| Same-hand disadvantage | -3 | Same-hand matchups (RHH vs RHP, LHH vs LHP) are harder. Breaking balls move away from same-side hitters. |
| Elite pitcher penalty | -3 to -15 | Based on the pitcher’s blended FIP (current + prior season). Grade 5 aces (FIP < 2.50) also reduce the batter’s xBA and xwOBA scores by 20% before the subtotal. |
| Weak pitcher bonus | +3 to +10 | Pitchers with a blended FIP of 4.50+ are giving up hits to everyone. The bonus scales up to +10 for truly bad pitchers (FIP 5.50+). |
| BABIP correction | 0 to -4 | Batters with an unsustainably high batting average on balls in play (BABIP > .340) who are also significantly outperforming their career average get a small haircut. Requires 100+ PA. |
| Injury risk | -2 | Flat penalty if the batter has a recent injury flag. They may leave the game early, reducing plate appearances. |
How Pitcher Quality is Measured (FIP)
The elite and weak pitcher grades above are driven by FIP (Fielding Independent Pitching) rather than ERA. FIP isolates what the pitcher actually controls — strikeouts, walks, and home runs — and strips out defense and luck.
FIP = ((13 × HR/9) + (3 × BB/9) - (2 × K/9)) / 9 + constant
The constant (currently 3.10) calibrates FIP to league ERA. It drifts slightly year to year as league run environment changes.
Early in the season a pitcher may have only a few innings pitched, making their current FIP unreliable. The system blends current and prior-season FIP using the Marcel reliability formula:
weight = IP / (IP + 50)
blended FIP = weight × current FIP + (1 - weight) × prior FIP
| Season point | ~IP | Current weight | Prior weight |
|---|---|---|---|
| Opening day | 0 | 0% | 100% |
| 1st start | 6 | 10.7% | 89.3% |
| 1 month | 30 | 37.5% | 62.5% |
| Mid-season | 100 | 66.7% | 33.3% |
| Full season | 180 | 78.3% | 21.7% |
For rookies or pitchers with fewer than 30 IP the previous season, the prior FIP defaults to the league average (4.00). This means unknown pitchers are treated as average until they prove otherwise.
From Score to Hit Probability
The raw score (0-100) is converted into a per-game hit probability using a calibrated sigmoid function fitted against 7 seasons of historical outcomes. The key insight: lineup position matters because batters higher in the order get more plate appearances per game.
How it works:
- The score is fed through a sigmoid function to get a base probability of getting a hit in the game (calibrated at league-average 3.89 PA/game)
- That probability is inverted to find the per-plate-appearance hit rate
- The per-PA rate is expanded back using the batter’s expected plate appearances based on lineup position (leadoff = 4.65 PA, 9th = 3.75 PA)
This is why a leadoff hitter with a score of 60 can have a higher hit probability than a 9-hole hitter with a score of 70.
| Score | Base P(hit) | Leadoff (#1) | Cleanup (#4) | 7-hole (#7) | 9-hole (#9) |
|---|---|---|---|---|---|
| 40 | 59.2% | 72.6% | 68.5% | 65.5% | 63.7% |
| 50 | 63.1% | 77.8% | 73.6% | 70.4% | 68.8% |
| 60 | 66.9% | 81.7% | 78.0% | 75.1% | 73.4% |
| 70 | 70.4% | 85.2% | 81.8% | 79.2% | 77.6% |
| 80 | 73.7% | 88.0% | 85.2% | 82.8% | 81.5% |
Expected PA by lineup position: #1 = 4.65, #2 = 4.53, #3 = 4.31, #4 = 4.19, #5 = 4.07, #6 = 3.95, #7 = 3.89, #8 = 3.82, #9 = 3.75
The ML Model — A Second Opinion
The ML probability comes from a LightGBM model that was trained completely independently from the scoring formula. It sees raw data, not scores.
Training data
180,000+ historical batter-game records from 2019-2023. Each record has 23 features built from rolling stats (not end-of-season aggregates) to avoid lookahead bias. The model learned what patterns predict hits from real in-season data.
What it knows
23 features including batting averages (L7, L15, season, career), prior-season pitcher stats (ERA, WHIP, FIP, K/9), Statcast metrics (xBA, xwOBA), hard hit rate, sprint speed, rest days, home/away, lineup position, ballpark factor, and platoon matchup.
Historical performance
59.1%
Baseline hit rate (any starter)
64.2%
Top 10% picks hit rate
67.2%
Top 5% picks hit rate
Season Benchmarks — What’s a Good Pick?
The PA confidence system (explained below) compresses scores early in the season. As batters accumulate plate appearances, the system trusts current-season data more and the spread between good and average picks widens. Here’s what to look for at each phase.
| Season Phase | ~PA | Good Score | Good Hit Prob | Good ML Prob | What’s driving picks |
|---|---|---|---|---|---|
| Opening week | 24 | 58+ | 77%+ | 63%+ | Career stats, pitcher matchup, handedness, ballpark |
| 2-3 weeks | 48-72 | 62+ | 79%+ | 65%+ | K% and contact rate unlocked; batting averages emerging |
| 1 month | 104 | 65+ | 81%+ | 67%+ | BA, hard hit, line drive rate at ~70% confidence |
| 6 weeks | 156 | 68+ | 83%+ | 69%+ | Nearly full fidelity; xBA/xwOBA at ~78% |
| 2+ months | 208+ | 70+ | 84%+ | 70%+ | All metrics at full confidence; maximum spread |
The PA Confidence System
The system doesn’t fully trust a .400 batting average after 20 at-bats. Each metric’s contribution is blended toward a neutral midpoint until the batter has accumulated enough plate appearances for the stat to stabilize.
Fast Tier
Full trust at 60 PA
~2-3 weeks of games
K rate and contact rate. These stabilize quickly because they’re based on every plate appearance, not just hits.
Medium Tier
Full trust at 150 PA
~6-7 weeks of games
Season BA, L7/L15 BA, hard hit rate, line drive rate, sprint speed. These need more data to be reliable signals.
Slow Tier
Full trust at 200 PA
~8-9 weeks of games
xBA and xwOBA. Statcast expected metrics need the most data because they rely on batted ball distributions that take time to stabilize.
What about career BA and pitcher matchups?
About 24% of the score comes from factors that don’t depend on current-season plate appearances at all — career batting average, opposing pitcher form, ballpark factor, and bullpen quality. These are reliable from day one, which is why the system can still differentiate batters on Opening Day, just not as aggressively as mid-season.
Tips for Making BTS Picks
Use Hit Probability as your primary metric
It accounts for lineup position, so a leadoff hitter with a good score is better than a 9-hole hitter with a great score. The “Hit Prob” tab is the default sort for this reason.
Look for agreement between Hit Prob and ML Prob
When both methods rank a batter highly, that’s your strongest signal. The “Combined” tab does a 3-way rank average across Score, Hit Prob, and ML Prob to surface consensus picks.
Favor leadoff and 2-hole hitters
They get ~4.5-4.65 plate appearances per game vs ~3.75-3.89 for the bottom of the order. That extra plate appearance is roughly a 5-8% boost in hit probability at the same score.
Avoid batters facing elite pitchers
Even great hitters struggle against grade 3+ pitchers. A -8 to -15 point penalty is significant. Check the opposing pitcher’s elite grade in the matchup info on each card.
Early in the season, lean on matchups
Career batting average, platoon advantage, weak pitcher bonuses, and ballpark factors are all reliable from day one. Current-season stats take weeks to become trustworthy.
Small edges matter — you're playing the long game
A 3-4% edge in hit probability doesn’t sound like much, but over 57 picks in a BTS streak attempt, it compounds significantly. Consistent small edges beat occasional home runs.