50 batters on our player pages have had a total-bases line posted on them in at least 30 games this season, and 41 of them are averaging more total bases than the numbers they were given. Matt Olson leads at +0.64 per game, 2.12 total bases against an average posted line of 1.48 across 123 lined games.
A fact table, not a projection. Each game is graded against the number posted for that game, never against an assumed season-long line.
Total bases against the number, per game
Total bases is a mixed threshold market. Books do not all post the same number on the same batter: some price 1.5 and some 2.5, and the same batter gets different numbers on different nights. That makes an average against one assumed line meaningless, so every game here is compared only against the number posted for THAT game, and the per game margins are then averaged.
41 of the 50 batters below carry a positive margin. A margin is not an edge and is not a forecast: a batter can beat the number on average while going under it in most games, which is why the over rate and the full over, under and push counts sit on the same row.
| # | Batter | Team | Margin | Avg total bases | Avg line | Over rate | Over | Under | Push | Lined games |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Matt Olson | ATL | +0.64 | 2.12 | 1.48 | 52.8% | 65 | 58 | 0 | 123 |
| 2 | CJ Abrams | WSH | +0.62 | 1.99 | 1.37 | 46.6% | 55 | 63 | 0 | 118 |
| 3 | Shohei Ohtani | LAD | +0.58 | 2.12 | 1.54 | 48.2% | 54 | 58 | 0 | 112 |
| 4 | Kyle Schwarber | PHI | +0.52 | 1.97 | 1.45 | 45.3% | 53 | 64 | 0 | 117 |
| 5 | Seiya Suzuki | CHC | +0.50 | 1.87 | 1.37 | 50.5% | 53 | 52 | 0 | 105 |
| 6 | Pete Alonso | BAL | +0.47 | 1.86 | 1.39 | 43.8% | 53 | 68 | 0 | 121 |
| 7 | Elly De La Cruz | CIN | +0.46 | 1.92 | 1.46 | 48.5% | 49 | 52 | 0 | 101 |
| 8 | Juan Soto | NYM | +0.46 | 1.90 | 1.44 | 41.5% | 34 | 48 | 0 | 82 |
| 9 | Dansby Swanson | CHC | +0.45 | 1.41 | 0.96 | 43.1% | 50 | 66 | 0 | 116 |
| 10 | Rafael Devers | SF | +0.38 | 1.76 | 1.38 | 43.8% | 53 | 68 | 0 | 121 |
| 11 | Brice Turang | MIL | +0.38 | 1.77 | 1.39 | 44.2% | 50 | 63 | 0 | 113 |
| 12 | Corbin Carroll | ARI | +0.36 | 1.86 | 1.50 | 46.6% | 55 | 63 | 0 | 118 |
| 13 | Randy Arozarena | SEA | +0.36 | 1.68 | 1.32 | 44.7% | 51 | 63 | 0 | 114 |
| 14 | Yandy Díaz | TB | +0.34 | 1.82 | 1.48 | 46.1% | 53 | 62 | 0 | 115 |
| 15 | Willy Adames | SF | +0.33 | 1.61 | 1.28 | 44.7% | 51 | 63 | 0 | 114 |
| 16 | Ketel Marte | ARI | +0.33 | 1.85 | 1.52 | 49.6% | 56 | 57 | 0 | 113 |
| 17 | Bryson Stott | PHI | +0.32 | 1.48 | 1.16 | 47.7% | 53 | 58 | 0 | 111 |
| 18 | Freddie Freeman | LAD | +0.31 | 1.78 | 1.47 | 45.8% | 54 | 64 | 0 | 118 |
| 19 | Josh Bell | MIN | +0.30 | 1.61 | 1.31 | 44.7% | 51 | 63 | 0 | 114 |
| 20 | Eugenio Suárez | CIN | +0.30 | 1.47 | 1.17 | 41.6% | 37 | 52 | 0 | 89 |
| 21 | Christian Walker | HOU | +0.29 | 1.66 | 1.37 | 41.5% | 49 | 69 | 0 | 118 |
| 22 | Luis Arraez | PHI | +0.29 | 1.76 | 1.47 | 48.7% | 56 | 59 | 0 | 115 |
| 23 | Francisco Lindor | NYM | +0.29 | 1.74 | 1.45 | 38.7% | 24 | 38 | 0 | 62 |
| 24 | Ian Happ | CHC | +0.28 | 1.51 | 1.23 | 38.1% | 45 | 73 | 0 | 118 |
| 25 | Bryce Harper | PHI | +0.27 | 1.75 | 1.48 | 42.3% | 52 | 71 | 0 | 123 |
| 26 | Jose Altuve | HOU | +0.26 | 1.60 | 1.34 | 44.7% | 42 | 52 | 0 | 94 |
| 27 | Spencer Steer | CIN | +0.26 | 1.52 | 1.26 | 46.7% | 43 | 49 | 0 | 92 |
| 28 | Bryan Reynolds | PIT | +0.25 | 1.60 | 1.35 | 44.7% | 55 | 68 | 0 | 123 |
| 29 | Bobby Witt Jr. | KC | +0.25 | 1.75 | 1.50 | 46.2% | 48 | 56 | 0 | 104 |
| 30 | Brandon Nimmo | TEX | +0.22 | 1.64 | 1.42 | 44.3% | 51 | 64 | 0 | 115 |
| 31 | Gunnar Henderson | BAL | +0.21 | 1.64 | 1.43 | 38.0% | 46 | 75 | 0 | 121 |
| 32 | Alex Bregman | CHC | +0.21 | 1.62 | 1.41 | 42.0% | 50 | 69 | 0 | 119 |
| 33 | Marcus Semien | NYM | +0.20 | 1.27 | 1.07 | 31.6% | 31 | 67 | 0 | 98 |
| 34 | Manny Machado | SD | +0.18 | 1.55 | 1.37 | 37.0% | 44 | 75 | 0 | 119 |
| 35 | Julio Rodríguez | SEA | +0.18 | 1.67 | 1.49 | 39.1% | 43 | 67 | 0 | 110 |
| 36 | Trea Turner | PHI | +0.16 | 1.63 | 1.47 | 37.0% | 44 | 75 | 0 | 119 |
| 37 | Fernando Tatis Jr. | SD | +0.13 | 1.63 | 1.50 | 43.3% | 52 | 68 | 0 | 120 |
| 38 | Josh Naylor | SEA | +0.10 | 1.46 | 1.36 | 43.0% | 49 | 65 | 0 | 114 |
| 39 | Teoscar Hernández | LAD | +0.05 | 1.41 | 1.36 | 34.1% | 29 | 56 | 0 | 85 |
| 40 | Nico Hoerner | CHC | +0.03 | 1.46 | 1.43 | 37.0% | 44 | 75 | 0 | 119 |
All 50 batters with at least 30 lined 2026 games, ranked by margin. Margin is the Avg total bases column minus the Avg line column, both as printed. 2026 season, our own odds archive, as of 2026-08-16.
How this was measured
- The line. Each book's earliest capture of the batter's total-bases prop for that game is treated as its opening number, and the posted number for the game is the discrete median across the books quoting it. Discrete, so the number is one a book actually posted, and on an even book count it returns the lower of the middle pair. The books read are DraftKings, FanDuel, BetMGM, BetOnline and BetRivers.
- The mixed-threshold rule. Because the market posts different numbers on the same batter, no consensus season-long line exists and none is invented here. Each game is graded against its own posted number. The Margin column is the difference of the two average columns exactly as printed; both averages run over the same set of games, so that difference is the average per-game margin.
- The filter. Minimum 30 lined 2026 games, where a game counts only if he batted in it and a line existed for it.
- The rate. Overs divided by overs plus unders. Total-bases numbers sit on halves, so pushes are rare, but the column is printed rather than assumed empty.
- Ties. Ties are broken by the larger decided sample first and then alphabetically by name, so a rate over eight games can never outrank the same rate over thirty.
- The source. Every row is the bucket the batter's own page renders in its All lined games row, read from the registry the player-pages generator publishes. Nothing on this page is a second computation of a number that already exists.
- The window. 2026 season only. Figures produced by the player-pages run of 2026-08-16.
Get the weekly projections recap
How our projections did against the market. One email a week, no picks, no spam, unsubscribe anytime.
We store only your email to send the recap. Analytics, not picks. Nothing here is betting advice.
Next steps
Frequently asked questions
What is a mixed-threshold market?
One where the books do not agree on the number. Total bases is priced at 1.5 by some books and 2.5 by others on the same batter on the same night, so no single season-long line exists for him. Every game here is compared only against the number posted for that game.
How is the margin column calculated?
It is the average total bases column minus the average line column, exactly as both are printed. Because the two averages run over the same games, their difference is the average per-game margin against each game's own posted number.
Does a positive margin carry into the next game?
No. Nothing here is a pick, a selection or a recommended wager. A batter can average above the number while going under it in most games, because one four base night lifts an average that a hit rate does not move.
Why 30 lined games?
It is the point where a per-game average stops being dominated by a handful of big nights. The threshold is stated so a reader can weigh it, and every row also prints its own game count.
Related: MLB player pages · How to read a player prop trend · MLB price vs fair board
Every figure on this page is a historical measurement of what already happened, produced by a committed, re-runnable script over our own odds archive. Past frequencies are not forecasts and are not betting advice: Nebula Insights publishes no picks, no selections and no recommended wagers. 18+ only.