The Signal Gap
A club pays a hitter for what he did. We measure what he is doing. This is the distance between the two, for every qualified hitter in the league: where his salary ranks him among the men on his own service clock, against where our engine ranks him among the same men. Positive means we read him above what his cohort pays him. Negative means his cohort is paying for a season our instrument does not see.
This number is measured on two different clocks
What we see— batted balls through . It moves every night.
What he’s paid— club sheets as old as , on a decision made last winter. It cannot move until the next one.
That distance is not a defect in the number. It is the number — and it is why this is the only figure on the site the registry marks as carrying two as-ofs at once.
180 hitters ranked across 2 cohorts · 326 of 329 on the Baseline carry a contract
Arbitration
89 hitters · ranked within this cohort only
| What the market pays | What the engine sees | The gap | ||||
|---|---|---|---|---|---|---|
| Hitter | Club | Salary | Pay %ile | EV95 | Engine %ile | Gap |
| Garrett Mitchell | MIL | $0.95M | 7 | 110.7 | 88 | +80.7owed |
| Logan O'Hoppe | TEX | $0.84M | 5 | 106.7 | 76 | +71.6owed |
| JJ Bleday | CIN | $1.40M | 15 | 106.1 | 84 | +68.8owed |
| Luke Raley | SEA | $2.05M | 28 | 108.5 | 97 | +68.2owed |
| Starling Marte | KC | $1.00M | 9 | 107.3 | 77 | +68.2owed |
| Jo Adell | CLE | $1.53M | 21 | 110.0 | 89 | +68.1owed |
| Randal Grichuk | CWS | $0.62M | 2 | 108.6 | 67 | +64.7owed |
| Matt McLain | CIN | $2.30M | 32 | 105.0 | 96 | +63.7owed |
| Jonah Heim | ATH | $0.98M | 8 | 104.5 | 63 | +54.5owed |
| Francisco Alvarez | NYM | $2.40M | 33 | 109.0 | 86 | +53.4owed |
| Nathaniel Lowe | CLE | $0.51M | 1 | 108.0 | 49 | +47.8owed |
| Matt Vierling | DET | $3.25M | 47 | 104.9 | 94 | +47.7owed |
| · · · 65 in the middle · · · | ||||||
| George Springer | TOR | $24.17M | 100 | 105.8 | 47 | −53.4priced |
| Isiah Kiner-Falefa | BOS | $6.00M | 76 | 103.4 | 22 | −54.5priced |
| CJ Abrams | WSH | $4.20M | 63 | 106.6 | 8 | −55.1priced |
| Mickey Moniak | COL | $4.00M | 57 | 106.3 | 2 | −55.1priced |
| Ian Happ | CHC | $19.00M | 96 | 107.2 | 38 | −58.5priced |
| Andrew Vaughn | MIL | $7.65M | 82 | 104.4 | 18 | −63.6priced |
| Ernie Clement | TOR | $4.60M | 69 | 100.0 | 0 | −69.3priced |
| Randy Arozarena | SEA | $15.65M | 92 | 106.4 | 19 | −72.7priced |
| Jeremy Peña | HOU | $9.47M | 86 | 105.7 | 11 | −75.0priced |
| Steven Kwan | CLE | $7.72M | 84 | 96.7 | 9 | −75.0priced |
| Gleyber Torres | DET | $22.02M | 98 | 102.0 | 23 | −75.6priced |
| Seiya Suzuki | CHC | $19.00M | 96 | 109.0 | 13 | −83.5priced |
Showing the 12 largest and 12 smallest gaps of 89 · — Left of the first rule is what his club decided, last winter, on last season. Right of the second is what the engine measures off this season’s batted balls. The gap is the distance between his rank on each, in percentile points, inside this cohort and no other. Teal means we read him above what his cohort pays him; oxide means below. The word prints too, so the read never travels on colour alone.
Under contract
91 hitters · ranked within this cohort only
| What the market pays | What the engine sees | The gap | ||||
|---|---|---|---|---|---|---|
| Hitter | Club | Salary | Pay %ile | EV95 | Engine %ile | Gap |
| Ke'Bryan Hayes | CIN | $7.00M | 26 | 104.8 | 100 | +74.4owed |
| Lawrence Butler | ATH | $3.68M | 11 | 108.1 | 84 | +73.3owed |
| Samuel Basallo | BAL | $1.63M | 6 | 109.7 | 73 | +67.7owed |
| Brent Rooker | ATH | $8.00M | 29 | 108.7 | 94 | +65.0owed |
| Victor Caratini | MIN | $4.00M | 12 | 103.8 | 70 | +57.8owed |
| JJ Wetherholt | STL | $0.78M | 0 | 104.5 | 57 | +56.7owed |
| Will Smith | LAD | $12.93M | 43 | 106.4 | 99 | +55.6owed |
| Ezequiel Tovar | COL | $5.21M | 18 | 105.6 | 72 | +54.4owed |
| Jackson Merrill | SD | $2.11M | 8 | 105.7 | 60 | +52.2owed |
| Vinnie Pasquantino | KC | $4.20M | 14 | 105.0 | 63 | +49.4owed |
| Bobby Witt Jr. | KC | $14.11M | 48 | 111.0 | 96 | +47.8owed |
| Cal Raleigh | SEA | $12.67M | 42 | 106.8 | 88 | +45.6owed |
| · · · 67 in the middle · · · | ||||||
| Andrés Giménez | TOR | $15.57M | 53 | 103.2 | 11 | −42.2priced |
| Christian Yelich | MIL | $24.03M | 74 | 106.5 | 31 | −43.3priced |
| Trevor Story | BOS | $25.00M | 77 | 104.6 | 29 | −47.8priced |
| Christian Walker | HOU | $20.00M | 64 | 107.9 | 10 | −54.4priced |
| Matt Chapman | SF | $25.17M | 79 | 109.2 | 23 | −55.6priced |
| Trea Turner | PHI | $27.27M | 86 | 105.7 | 22 | −63.4priced |
| Cody Bellinger | NYY | $42.50M | 99 | 104.2 | 32 | −66.7priced |
| Dansby Swanson | CHC | $28.00M | 88 | 104.8 | 19 | −68.9priced |
| Alex Bregman | CHC | $26.29M | 83 | 103.0 | 14 | −68.9priced |
| Jung Hoo Lee | SF | $23.25M | 72 | 102.6 | 2 | −70.0priced |
| Nolan Arenado | AZ | $24.40M | 76 | 103.8 | 4 | −71.2priced |
| Jose Altuve | HOU | $33.00M | 93 | 103.7 | 6 | −87.2priced |
Showing the 12 largest and 12 smallest gaps of 91 · — Left of the first rule is what his club decided, last winter, on last season. Right of the second is what the engine measures off this season’s batted balls. The gap is the distance between his rank on each, in percentile points, inside this cohort and no other. Teal means we read him above what his cohort pays him; oxide means below. The word prints too, so the read never travels on colour alone.
Pre-arbitration
132 hitters · no pay rank
No Signal Gap for this cohort — a pre-arbitration salary is set by rule rather than by a market, every figure here is the source's own estimate, and it is PRORATED by time on the roster — across this cohort it correlates 0.43 with games played. Ranking it would rank playing time.
What is left is still worth printing: these are the men the engine reads highest who are still being paid on the scale rather than by a market. The surplus every club has, in the order we see it. The salaries below are facts, not ranks.
| Hitter | Club | EV95 | Engine %ile | Salary |
|---|---|---|---|---|
| James Wood | WSH | 112.1 | 100 | $0.81Mest |
| Edouard Julien | COL | 105.6 | 99 | $0.79Mest |
| Austin Wells | NYY | 106.2 | 99 | $0.87Mest |
| Patrick Bailey | CLE | 105.5 | 98 | $0.61Mest |
| Jac Caglianone | KC | 113.0 | 97 | $0.78Mest |
| Carlos Narváez | BAL | 106.5 | 96 | $0.24Mest |
| Brady House | WSH | 108.8 | 95 | $0.58Mest |
| Miguel Vargas | CWS | 107.0 | 95 | $0.81Mest |
| Drake Baldwin | ATL | 108.2 | 94 | $0.80Mest |
| Cam Smith | HOU | 108.9 | 93 | $0.81Mest |
| Brett Baty | NYM | 107.7 | 92 | $0.81Mest |
| Henry Davis | PIT | 106.5 | 92 | $0.80Mest |
Free agent after this season
9 hitters · no pay rank
No Signal Gap for this cohort — 9 men is too few for a percentile to mean anything — under 20 it is a handful of coarse buckets wearing a decimal point.
| Hitter | Club | EV95 | Engine %ile | Salary |
|---|---|---|---|---|
| Ramón Laureano | SD | 106.0 | 100 | $6.50Mest |
| Gary Sánchez | MIL | 108.2 | 88 | $1.50Mest |
| Luis Rengifo | SD | 103.5 | 75 | $0.34Mest |
| Brandon Lowe | PIT | 107.4 | 63 | $11.50Mest |
| Dominic Smith | ATL | 104.1 | 50 | $1.25Mest |
| Paul Goldschmidt | NYY | 105.0 | 38 | $4.00Mest |
| Austin Hedges | CLE | 104.0 | 25 | $4.00Mest |
| Christian Vázquez | HOU | 100.9 | 13 | $1.00Mest |
| Ozzie Albies | ATL | 103.3 | 0 | $7.00Mest |
Not stated
5 hitters · no pay rank
No Signal Gap for this cohort — this cohort's pay is not a market price we can rank a man against his peers on.
| Hitter | Club | EV95 | Engine %ile | Salary |
|---|---|---|---|---|
| William Contreras | MIL | 108.1 | 100 | $9.40Mest |
| Yandy Díaz | TB | 108.7 | 75 | $12.00Mest |
| Isaac Paredes | HOU | 103.2 | 50 | $9.35Mest |
| Eugenio Suárez | CIN | 107.3 | 25 | $15.00Mest |
| Taylor Walls | TB | 100.4 | 0 | $2.45Mest |
What this instrument does not measure
The engine rank is built from top-of-range exit velocity and the luck gap. It is a measure of how hard a hitter strikes a baseball when he really connects, and of whether his results have run ahead of that. It is not a measure of how good he is.
A contact hitter with a low ceiling and a high average will rank near the bottom of this board and may be an excellent major-league player. So will a man whose value is on the bases or in the field — neither is in this number at all. When the board says a hitter is priced above what we see, it means precisely that and nothing wider: the thing we measure does not support the price. It is a reading, and it is one reading.
We print it anyway, and we say what it cannot do, because a number whose limits are hidden is a number a reader cannot check.
The formula, in full
engine score = 0.1458 × z(EV95)
-0.2781 × z(luck gap, park-adjusted)
z standardized over 2015, 2016, 2017, 2018, 2019, 2021
EV95 mean 105.763 sd 2.931
luck gap mean 0.00509 sd 0.03422
engine %ile = rank of that score within his service cohort
pay %ile = rank of his cash salary within the same cohort
Signal Gap = engine %ile − pay %ileThose two coefficients are not ours to change. They were frozen in git before the seasons that judged them were examined, and the confirmatory run is published as a receipt. Frozen at pre-registration and applied here, never refitted. This board is a wider POPULATION for a closed formula, not a new study.
The luck gap’s coefficient is negative on purpose, and it is the one sign nobody should infer from English: a positive luck gap means a hitter’s results have outrun his contact, which is the engine liking him less. Every direction on this site is declared rather than guessed, because reading one of them backwards is how our fourth issue went to print.
The whole board as JSON, protocol block included — because a claim you cannot recompute is a claim you have to take our word for.