Linear Weights Fantasy Baseball Scoring System
A custom ESPN fantasy league scoring system replacing counting stats with linear weights: including a script that translated PECOTA projections into preseason team scoring estimates.
Overview
Most fantasy baseball scoring systems reward counting stats (home runs, RBI, stolen bases, wins) in ways that don’t reflect how those events actually contribute to run scoring. A home run in a standard system scores the same number of fantasy points regardless of whether it came with the bases empty or with three runners on. RBI rewards a hitter for teammates getting on base as much as for his own performance. The system described here replaces counting stats with linear weights: the empirically derived run-value contribution of each plate appearance outcome, measured across thousands of games and expressed as a single number per event type.
The league ran on ESPN’s fantasy platform. The scoring values were configured manually in the custom scoring settings and applied to all hitters and pitchers across the season. A script was also built to ingest projected player stats (PECOTA) and produce a CSV output estimating per-player and per-team scoring totals based on the linear weight values, giving owners a preseason baseline for roster evaluation.
Theoretical basis
Linear weights as a concept originate with the work of David Smyth and Pete Palmer, whose contribution to the 1984 book The Hidden Game of Baseball with John Thorn established the foundational framework for measuring the run value of discrete batting events. The weights used here draw on the subsequent refinements by Tom Tango, whose work updated the coefficients using larger play-by-play datasets and more precise run-expectancy modeling, with easy-to-use models for adjusting the weights based on season and run-scoring environment.
The core insight is straightforward: every plate appearance changes a team’s expected run total for that inning by some measurable amount. A single with the bases empty in the first inning changes run expectancy differently than a single with the bases loaded in the ninth, but averaged across all game states, each event type has a stable expected run-value contribution. Those averages, expressed as weights, allow any plate appearance outcome to be translated into a single number representing its contribution to run scoring.
The negative value assigned to the at-bat itself is the critical piece most fantasy systems miss. An AB that ends in an out doesn’t just fail to add value — it actively costs value, because it consumes one of the 27 outs a team has to work with. Pricing that cost explicitly, and then pricing positive outcomes above that baseline, produces a scoring system that rewards genuine offensive contribution rather than volume.
The scoring weights
Based on the work of David Smyth, Pete Palmer, and Tom Tango:
| Event | Weight | Interpretation |
|---|---|---|
| AB | −0.26 | The baseline cost of a plate appearance that ends in an at-bat. Most ABs end in outs; the negative reflects the run-scoring value lost by consuming an out. |
| BB | +0.35 | A walk consumes no AB and advances the baserunner state without an out. Positive value, though less than a hit since no bases are guaranteed to score. |
| H (1B implied) | +0.70 | A hit above and beyond the AB cost. The net value of reaching base via single, after the AB negative is already baked in. |
| 2B | +1.00 | Extra base doubles the base advancement expectation over a single, pushing win probability meaningfully higher. |
| 3B | +1.27 | The rarest hit type. High value from both base advancement and scoring probability, though less than HR since the run isn’t guaranteed. |
| HR | +1.65 | Maximum single-event value — at minimum one run scored, all baserunners advance. |
| SB | +0.20 | Modest positive. Advances the runner state without an out, but the gain is partially offset by the CS risk priced in separately. |
| CS | −0.49 | The cost of a failed steal — an out on the bases, erasing both the runner and the stolen base value of that attempt. |
| HBP | +0.38 | Slightly above a walk in value — same out-avoidance benefit, marginally better baserunner outcome on average. |
On fielding
Fielding presented a constraint rather than a design choice. Ideally, defensive contribution would carry meaningful weight in the scoring (on the scale of real run-value metrics like Defensive Runs Saved or Ultimate Zone Rating). ESPN’s custom scoring tools in the platform’s available configuration limited creditable fielding events to Fielder’s Choice (FC) and Error (E) — the only two outcomes assignable with sufficient accuracy through the platform’s stat-tracking. All other defensive contributions (range, positioning, arm, double-plays) are untracked and therefore unscored.
The practical impact is small. Fielding credit lost to this limitation falls somewhere in the range of 0 to 20 points per player over a full season, or roughly 4% of total scoring — significant enough to acknowledge, small enough that it doesn’t materially distort the standings.
Explaining the system to new owners
Think of it this way instead, each plate appearance has a net result of wins probability added to any game. The results of that plate appearance can be summarized in terms of value. In baseball the one thing that matters most is not making an out. Each out you make takes you closer to the end of the game. Outs are baseball’s clock. Each team has 27 outs, then 26, 25, 24, etc… until their chance is done. Given that most PA end in ABs, and most ABs end in outs, the net value of an AB is a slight negative. The positive value comes when a hitter takes that PA and takes a BB (no AB), or takes his AB and gets a H. In short, what you see is a representation of that. As for the fielding, I’d like it to play a larger role, but there’s so little by way of ESPN’s tools to allow it or to allow it in any meaningful way. The FC and E are the only two that I can credit accurately. The rest are just lost points, albeit, a small sampling of lost points somewhere on the scale of 0-20 over the course of the year depending on the player… (roughly 4%).
Scripted scoring projections
Alongside the league configuration, a script was built to apply the linear weights to projected player stats and produce a CSV output estimating per-player and per-team scoring totals for the coming season. The output gave owners a preseason baseline for evaluating roster construction, identifying which projected stat lines translated into strong linear-weight scores versus which players were inflated by traditional counting-stat expectations that the weight system would discount.
The script is no longer available, but the approach is documented: ingest projected PA, AB, BB, H, 2B, 3B, HR, SB, CS, and HBP per hitter, and IP (outs × 3), H, 2B, 3B, HR, BB, HBP, and a small bump for K over non-K out for pitchers; apply the weights per event; sum to a projected fantasy scoring total; sort by team for league-level comparison.