The verdict is NOT YET. The six signals behind it are on the verdict page and his path against both groups is on Progression. This page asks the question underneath both: what actually separated the two groups.
What separated them
The groups did not differ by luck. They differed by the same traits the scorecard tracks, which is why those six are the six.
Lasted
Elite exit velocity, power to all fields, controlled strikeouts, and they stayed on the field. At 31, none of them showed erosion in any of it.
Nelson Cruz129 OPS+ or better every year from 33 to 40, peaking at 171 at 39
David Ortiz164 OPS+ at 40, with 38 home runs and a .315 average
Paul Konerko39 home runs and a .312 average at 34
Frank Thomas39 home runs and a 140 OPS+ at 38
Edgar Martinez139 OPS+ or better every year from 35 through 40, with 37 home runs at 37
Jim Thome42 home runs at 35, then 35 and 34 in the two seasons after
Fred McGriff30 home runs and a 125 OPS+ at 38
Collapsed
Pull-only power with no fallback, rising whiffs, or an injury cascade. The erosion was visible by 31.
Ryan HowardA 126 OPS+ at 31, then the Achilles tore on the last play of that October and he topped out at 115 across five more seasons
Chris DavisA 49 OPS+ at 32, two years after signing for seven years and $161M
Mark TeixeiraStill a 144 OPS+ at 35 but only 111 games, then 74 at 36 and done
Jose Abreu134 OPS+ at 35, then 87 at 36 and a .124 average at 37
Edwin EncarnacionPull-heavy exception: 34 home runs and a 131 OPS+ at 36, then 70 at 37
Prince FielderRan a 547-game streak, then two neck surgeries 26 months apart ended his career at 32
Adrian GonzalezA 130 OPS+ at 33, then 70 at 35, released 54 games into his age-36 season and never seen again
Where Alonso sitsHe matches the hitters who lasted on all six signals.
Fourteen players, seven per group, chosen to illustrate two archetypes rather than sampled at random. That was assumed to make the two paths look more distinct than a full population would. Measured against the 164 the inclusion rule admits, it ran the other way: the curated pair spans 6.9 to 17.0 wins where the pool's quartiles span 0.4 to 22.6, so the hand-picked set understated both ends. It is no longer the largest caveat on this page, because the pool below measures what it used to only assert.
What these terms mean
OPS+
An older park-and-era-adjusted measure of a hitter, built from how often he reaches base and how much power he shows. 100 is average.
Ages follow the Baseball-Reference convention, age as of 30 June. Two of these facts were wrong when this page first shipped, and they lasted as long as they did because nothing recorded where they came from. Each one is now checkable.
Nelson Cruz
Baseball-Reference standard batting table, cruzne02, 2014 to 2021: 137, 159, 147, 149, 135, 168, 171, 129 across ages 33 to 40. The 147 aggregate this previously claimed was a StatMuse composite that cannot be recomputed from season figures, so the sentence now states the floor and the peak, both of which can.
David Ortiz
Baseball-Reference standard batting table, ortizda01, 2016, age-40 season: 164 OPS+, 38 home runs, .315 in 151 games.
Paul Konerko
Baseball-Reference standard batting table, konerpa01, 2010, age-34 season: 39 home runs and .312, both unchanged in the move from StatMuse. His career high of 41 came at 28, not at 34.
Frank Thomas
Baseball-Reference standard batting table, thomafr04, 2006, age-38 season: 140 OPS+, 39 home runs, .270.
Edgar Martinez
Baseball-Reference standard batting table, martied01, 1998 to 2003: 158, 152, 158, 160, 139, 141 across ages 35 to 40. The floor read 141 under StatMuse and reads 139 here, so the claim was lowered to match rather than kept at a number the source no longer supports.
Jim Thome
Baseball-Reference standard batting table, thomeji01, 2006 to 2008, ages 35 to 37: 42, 35 and 34 home runs, unchanged in the move from StatMuse.
Fred McGriff
Baseball-Reference standard batting table, mcgrifr01, 2002, age-38 season: 125 OPS+, 30 home runs, .273. Both figures were already identical under StatMuse. The clause calling it his tenth and last 30-homer season was dropped: it is a career-long count and the table collected here runs only from 28, so nothing on hand could check it.
Ryan Howard
Baseball-Reference standard batting table, howarry01, 2011 to 2016, ages 31 to 36: 126, 91, 115, 92, 96, 85. Both figures moved: 123 to 126 at 31, and the ceiling across the five seasons after from 111 to 115. The Achilles went on the final out of the 2011 NLDS, in his age-31 season, not at 32.
Chris Davis
Baseball-Reference standard batting table, davisch02, 2018, age-32 season: 49 OPS+, 16 home runs, .168. Contract signed January 2016.
Mark Teixeira
Baseball-Reference standard batting table, teixema01, 2015 to 2016: 144 OPS+ in 111 games at 35, then 74 in 116 games at 36. The games figure was already right; both rate figures moved by a point or two.
Jose Abreu
Baseball-Reference standard batting table, abreujo02, 2022 to 2024: 134 OPS+ at 35, 87 at 36, and .124 with a 3 OPS+ in 35 games at 37.
Edwin Encarnacion
Baseball-Reference standard batting table, encared01, 2019 to 2020: 131 OPS+ and 34 home runs at 36 across two clubs, then 70 at 37. The age-36 line is his season total; his traded-to stint alone was 13 home runs, which is what a careless read of the table returns.
Prince Fielder
Fox Sports, streak ended at 547 games in May 2014; ESPN, second cervical fusion July 2016 after which he was not cleared to play. Baseball-Reference standard batting table, fieldpr01, 2016, confirms the age-32 season as his last: 65 OPS+ in 89 games. This entry cites no OPS+ figure and so needed no correction.
Adrian Gonzalez
Baseball-Reference standard batting table, gonzaad01, 2015 to 2018: 130 OPS+ at 33, 70 at 35, and 54 games at 36, the games figure unchanged. Ages come from the table directly now; under StatMuse they had to be recomputed from his 8 May 1982 birthdate, which labelled these seasons two years older than they were.
The counterexampleDurability lowers cliff risk but cannot erase it. Prince Fielder ran a 547-game streak, longer than Alonso’s, and two neck surgeries 26 months apart ended his career at 32.
Every one of them, season by season
Alonso against the best, middle and worst quarters of every hitter the rule admits, with any individual you care to add on top, season by season, from 28 until each hitter’s last. The shaded years are the ones this contract buys. His line is solid where it is measured and dashed where it is the projection published at signing, and it stops at 35 because the deal does.
Alonso, in ink, measured then projected. Top quarter of the pool. Middle half. Bottom quarter.
The scale stops at 200, which fits everything drawn here and cuts the very top off 4 of the 164 hitters you can add: Barry Bonds, Mark McGwire, Matt Carpenter and Sammy Sosa. Their best seasons run past the top of the plot. The floor is not capped the same way, because a season below zero is the thing this page is about and hiding one would cost the argument.
Who is in this pool, and why
Every hitter is admitted by the same rule, written down before any curve was looked at. A hitter is in if, through his age-30 season, he cleared all of:
a plate-appearance-weighted OPS+ of 115 or better, which is well above average and is also the measured floor of the fourteen this site published before the pool existed
at least 1,500 plate appearances, so the rate means something
a debut in 1986 or later
an age-35 season that has already happened on the calendar, whether or not he played it
Nothing in the rule looks at age 31 or later. The window this page asks about is 31 to 35, and a rule that admitted hitters on what they did inside it would build the bands out of the answer. That last clause is a calendar test rather than a performance one for the same reason: requiring a hitter to have actually played five more years would drop 46 hitters who ended their careers inside the window, which in a study of decline means dropping the hitters who declined.
There is no condition on position, because the comparison is offensive production. The admitted 164 break down as 44 at 1B, 30 at RF, 29 at LF, 19 at 3B, 14 at CF, 9 at C, 7 at SS, 6 at DH, 6 at 2B.
Choose which hitters to draw
The three group averages start drawn, because Alonso against them is the comparison this page is for. Individual hitters start off: 164 lines at once is not a chart. Add whoever you want on top. Alonso cannot be turned off, because placing him is the point.
And a caveat the rule does not fix, which runs against him. The debut floor constrains when a hitter arrived, not when his ages 31 to 35 happened, so those windows are spread across four decades and are not evenly distributed. 23 of the 41 hitters in the top quarter had their window in 1995-2004, and mean production across the window falls from 13.8 wins for that group to 6.9 for the 37 whose window fell in 2015-25. Both figures are already adjusted against their own league, so this is not raw offence. Alonso's window is 2026 to 2030, at the recent end rather than the rich one, and the ceiling above is built mostly from the other end.
Part of that gap is the schedule, and it would be dishonest not to say so.26 of the 37 hitters in that most recent group have 2020 inside their five years, and 2020 ran 60 games. Scale the shortened seasons up to a full one and their mean rises from 6.9 to 7.5, against 13.9 for 1995-2004 on the same treatment. The decline is still most of what it looked like, but about half a win of it is a season nobody got to play. Every other figure on this site is the real one, unscaled, because a club that got 60 games got 60 games of value.
Worth knowing what this changes and what it does not. These curves are OPS+, which is offence alone, so a shortstop's line is a fair comparison and the filter only narrows the list. The bands under the chart are WAR, which is not position-neutral: it credits defence, and a third of the top quarter here were up-the-middle fielders. Restricted to the 50 first basemen and designated hitters, the ceiling is 21.8 wins rather than 22.6 and the floor -0.5 rather than 0.4. Less than a win, so the published figures stay on all positions, where each outer band averages 41 hitters instead of 12.
Top quarter 41 hitters, 11 at 1B or DH
Middle half 82 hitters, 25 at 1B or DH
Bottom quarter 41 hitters, 14 at 1B or DH
A dot marks one of the fourteen hitters this site picked by hand before the pool existed. Eleven of them land above the 54th percentile of the pool and the other three at the 13th, 1st and 0th, with nothing in between. Ryan Howard and Chris Davis are the two worst outcomes of all 164. That gap is what made them worth replacing as the basis for the bands.
Show the data as a table
OPS+ by age for the three group averages and every hitter drawn on the chart
Hitter
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Top quarter, average
138
149
141
143
143
139
135
129
123
120
117
119
104
93
129
no hitters at this age
Middle half, average
134
136
131
125
117
118
111
117
107
107
103
103
111
no hitters at this age
no hitters at this age
no hitters at this age
Bottom quarter, average
124
132
124
101
100
90
93
92
no hitters at this age
no hitters at this age
no hitters at this age
no hitters at this age
no hitters at this age
no hitters at this age
no hitters at this age
no hitters at this age
Pete Alonso
123
122
144
146
137
129
121
112
no season
no season
no season
no season
no season
no season
no season
no season
Frank Thomas
178
181
126
125
163
94
119
146
156
131
140
125
97
no season
no season
no season
Albert Pujols
192
189
173
148
138
116
126
118
113
80
91
92
79
89
151
no season
Barry Bonds
206
183
170
188
170
178
156
188
259
268
231
263
174
156
169
no season
Jeff Bagwell
178
168
158
164
152
140
135
128
116
94
no season
no season
no season
no season
no season
no season
Mike Piazza
185
152
135
155
148
138
126
109
104
122
95
no season
no season
no season
no season
no season
Manny Ramirez
186
162
184
160
152
153
165
126
166
155
138
no season
no season
no season
no season
no season
Miguel Cabrera
179
164
190
150
169
155
93
128
97
104
95
80
87
no season
no season
no season
Joey Votto
177
156
125
174
160
167
126
95
107
139
89
97
no season
no season
no season
no season
Fred McGriff
165
144
157
119
120
106
111
142
110
144
125
99
53
no season
no season
no season
Vladimir Guerrero
156
157
154
138
147
130
107
119
98
no season
no season
no season
no season
no season
no season
no season
Jason Giambi
153
187
199
172
148
90
161
148
107
128
92
98
140
75
83
48
Travis Hafner
168
181
120
69
120
130
128
120
87
no season
no season
no season
no season
no season
no season
no season
Lance Berkman
160
143
163
130
160
140
112
164
126
92
no season
no season
no season
no season
no season
no season
Todd Helton
148
165
165
144
117
133
99
128
87
117
89
89
no season
no season
no season
no season
Ken Griffey Jr.
150
139
133
124
103
145
123
144
99
119
102
97
30
no season
no season
no season
Jim Thome
142
132
170
197
154
144
85
155
150
124
117
182
131
112
no season
no season
Paul Goldschmidt
133
142
142
115
145
141
177
120
100
101
109
no season
no season
no season
no season
no season
Will Clark
148
118
141
123
101
128
126
128
145
no season
no season
no season
no season
no season
no season
no season
Alex Rodriguez
131
173
134
176
150
138
123
119
111
113
no season
129
58
no season
no season
no season
Albert Belle
177
158
116
172
143
109
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Brian Giles
157
157
150
177
145
128
147
107
110
138
52
no season
no season
no season
no season
no season
Giancarlo Stanton
130
138
145
136
112
87
116
155
100
no season
no season
no season
no season
no season
no season
no season
Mark McGwire
176
225
138
200
196
170
216
177
203
105
no season
no season
no season
no season
no season
no season
Chipper Jones
142
160
153
137
116
151
154
165
176
117
120
121
124
no season
no season
no season
Jose Abreu
135
124
141
117
118
165
124
134
87
3
no season
no season
no season
no season
no season
no season
Ryan Braun
158
136
113
131
135
111
107
116
101
no season
no season
no season
no season
no season
no season
no season
Carlos Delgado
181
146
147
161
129
161
131
102
128
143
no season
no season
no season
no season
no season
no season
Prince Fielder
151
122
102
126
65
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Ryan Howard
125
141
127
126
91
115
92
96
85
no season
no season
no season
no season
no season
no season
no season
Bobby Abreu
151
136
145
126
126
113
120
118
118
105
94
no season
97
no season
no season
no season
Gary Sheffield
134
155
140
176
164
138
162
141
137
107
119
90
119
no season
no season
no season
Mo Vaughn
150
152
153
119
115
no season
114
73
no season
no season
no season
no season
no season
no season
no season
no season
Freddie Freeman
139
135
187
136
156
163
141
143
130
no season
no season
no season
no season
no season
no season
no season
Josh Donaldson
127
151
153
148
119
126
132
127
93
78
no season
no season
no season
no season
no season
no season
J.D. Martinez
142
168
173
139
79
128
117
136
105
no season
no season
no season
no season
no season
no season
no season
Kal Daniels
95
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Adrian Gonzalez
152
155
117
125
131
130
111
70
88
no season
no season
no season
no season
no season
no season
no season
Andrew McCutchen
144
104
123
120
116
102
109
97
112
106
94
59
no season
no season
no season
no season
David Wright
115
144
156
101
126
113
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Tim Salmon
134
142
119
135
98
133
122
67
no season
109
no season
no season
no season
no season
no season
no season
Matt Holliday
138
140
149
151
138
142
127
121
107
95
116
no season
no season
no season
no season
no season
Joe Mauer
102
140
142
107
98
104
115
100
no season
no season
no season
no season
no season
no season
no season
no season
Larry Walker
131
116
178
158
164
110
160
151
121
154
130
no season
no season
no season
no season
no season
Buster Posey
133
115
127
108
83
no season
140
no season
no season
no season
no season
no season
no season
no season
no season
no season
Edgar Martinez
138
164
100
122
185
167
165
158
152
158
160
139
141
92
no season
no season
Josh Hamilton
90
170
130
141
108
115
94
no season
no season
no season
no season
no season
no season
no season
no season
no season
John Olerud
135
163
129
117
136
140
107
94
106
no season
no season
no season
no season
no season
no season
no season
David Ortiz
145
158
161
171
124
102
137
154
173
159
141
140
164
no season
no season
no season
Shin-Soo Choo
107
129
145
100
125
99
100
114
109
99
no season
no season
no season
no season
no season
no season
Juan Gonzalez
149
141
116
148
99
122
97
no season
no season
no season
no season
no season
no season
no season
no season
no season
Mark Teixeira
152
141
124
121
115
68
101
144
74
no season
no season
no season
no season
no season
no season
no season
Adam Dunn
131
144
138
54
114
105
115
no season
no season
no season
no season
no season
no season
no season
no season
no season
Rafael Palmeiro
150
136
145
132
113
144
160
138
141
146
117
108
108
no season
no season
no season
Nomar Garciaparra
127
121
113
97
120
80
107
85
no season
no season
no season
no season
no season
no season
no season
no season
David Justice
147
118
137
158
114
124
139
99
111
no season
no season
no season
no season
no season
no season
no season
Hanley Ramirez
105
189
133
89
126
95
90
64
no season
no season
no season
no season
no season
no season
no season
no season
Jason Bay
94
134
134
105
97
48
97
no season
no season
no season
no season
no season
no season
no season
no season
no season
George Springer
114
150
141
141
132
102
91
160
97
no season
no season
no season
no season
no season
no season
no season
Ryan Klesko
128
136
145
152
118
129
111
no season
92
no season
no season
no season
no season
no season
no season
no season
Bobby Bonilla
149
121
133
128
151
114
125
92
49
91
68
no season
no season
no season
no season
no season
John Kruk
132
126
139
150
145
114
111
no season
no season
no season
no season
no season
no season
no season
no season
no season
Randy Milligan
155
120
110
131
75
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Scott Rolen
138
158
84
126
89
109
116
126
81
90
no season
no season
no season
no season
no season
no season
Chase Utley
146
136
137
123
110
113
126
108
75
92
93
68
no season
no season
no season
no season
Bernie Williams
147
160
149
140
139
141
107
108
85
96
no season
no season
no season
no season
no season
no season
Matt Carpenter
112
135
136
120
143
92
79
63
216
79
93
no season
no season
no season
no season
no season
Anthony Rizzo
124
139
103
112
130
94
82
no season
no season
no season
no season
no season
no season
no season
no season
no season
Evan Longoria
107
112
127
99
91
101
96
124
116
93
no season
no season
no season
no season
no season
no season
Anthony Rendon
137
157
150
94
100
89
65
no season
no season
no season
no season
no season
no season
no season
no season
no season
Magglio Ordonez
154
139
114
114
112
166
127
111
129
73
no season
no season
no season
no season
no season
no season
Richie Sexson
140
126
144
117
84
89
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Mike Napoli
115
173
113
128
120
96
106
80
no season
no season
no season
no season
no season
no season
no season
no season
Kevin Millar
121
141
131
110
117
98
111
106
89
77
no season
no season
no season
no season
no season
no season
Erubiel Durazo
136
113
138
79
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Matt Kemp
104
140
109
113
101
121
24
89
no season
no season
no season
no season
no season
no season
no season
no season
Khris Davis
123
131
137
83
78
75
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Robinson Cano
133
148
147
142
117
138
114
136
95
143
no season
7
no season
no season
no season
no season
Jeromy Burnitz
140
118
143
106
119
81
105
121
94
81
no season
no season
no season
no season
no season
no season
Shawn Green
154
154
116
113
114
95
103
no season
no season
no season
no season
no season
no season
no season
no season
no season
Carlos Pena
no season
172
129
133
103
123
93
86
19
no season
no season
no season
no season
no season
no season
no season
Mike Morse
133
147
111
84
130
81
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Nick Johnson
no season
125
122
89
no season
94
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Justin Morneau
130
187
70
113
102
125
109
99
no season
no season
no season
no season
no season
no season
no season
no season
Yoenis Cespedes
110
136
136
135
126
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Kevin Youkilis
117
144
146
157
123
101
80
no season
no season
no season
no season
no season
no season
no season
no season
no season
Jose Altuve
130
131
71
127
161
151
124
114
98
no season
no season
no season
no season
no season
no season
no season
Ray Lankford
130
124
159
143
118
117
120
88
no season
100
no season
no season
no season
no season
no season
no season
Cliff Floyd
150
141
134
111
127
88
102
111
no season
no season
no season
no season
no season
no season
no season
no season
Jim Edmonds
123
95
147
149
158
160
171
137
110
88
112
no season
125
no season
no season
no season
Jay Buhner
128
138
131
131
132
109
105
127
100
no season
no season
no season
no season
no season
no season
no season
Brandon Belt
135
115
110
97
177
160
93
135
no season
no season
no season
no season
no season
no season
no season
no season
Andre Ethier
133
121
123
121
97
137
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Chris Hoiles
162
107
114
108
110
117
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Derrek Lee
118
174
112
130
109
146
106
109
no season
no season
no season
no season
no season
no season
no season
no season
Rusty Greer
138
115
125
111
104
91
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Jose Bautista
99
164
182
138
132
162
145
118
79
102
no season
no season
no season
no season
no season
no season
Shane Mack
139
100
147
no season
no season
109
103
no season
no season
no season
no season
no season
no season
no season
no season
no season
Carlos Quentin
122
146
145
74
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Carlos Santana
122
102
123
112
105
136
93
81
100
101
109
78
no season
no season
no season
no season
Troy Tulowitzki
139
170
101
102
80
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Jack Cust
146
130
105
129
96
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Mike Sweeney
148
120
118
127
102
88
98
108
109
no season
no season
no season
no season
no season
no season
no season
Ichiro Suzuki
120
112
130
113
106
122
102
129
113
86
93
77
89
58
102
79
Matt Williams
141
177
134
101
100
118
83
92
100
84
no season
no season
no season
no season
no season
no season
Justin Bour
124
143
106
63
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Moises Alou
107
107
130
157
no season
151
137
100
111
132
138
132
137
107
no season
no season
Victor Martinez
129
88
127
122
131
no season
113
172
84
121
86
76
no season
no season
no season
no season
Lucas Duda
137
130
92
117
98
50
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Troy Glaus
126
122
120
125
no season
102
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Justin Upton
106
137
121
90
92
90
41
no season
no season
no season
no season
no season
no season
no season
no season
no season
Chris Davis
96
147
110
96
49
59
-8
no season
no season
no season
no season
no season
no season
no season
no season
no season
Morgan Ensberg
90
144
120
88
34
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Trot Nixon
110
149
123
109
96
79
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Derek Jeter
111
125
114
125
132
121
102
125
90
100
114
52
76
no season
no season
no season
Kendrys Morales
no season
119
123
75
127
110
98
111
57
no season
no season
no season
no season
no season
no season
no season
Craig Biggio
138
142
120
143
139
114
93
111
88
96
105
104
84
71
no season
no season
Phil Nevin
127
136
158
108
121
130
78
93
no season
no season
no season
no season
no season
no season
no season
no season
Wally Joyner
111
134
101
120
113
118
112
135
124
89
94
72
no season
no season
no season
no season
Grady Sizemore
96
no season
no season
82
91
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Mark Grace
127
135
106
142
123
127
126
122
111
113
86
48
no season
no season
no season
no season
Geoff Jenkins
137
103
131
101
101
79
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
John Valentin
138
104
124
101
78
no season
59
87
no season
no season
no season
no season
no season
no season
no season
no season
Ryan Zimmerman
120
117
107
67
134
114
89
no season
104
no season
no season
no season
no season
no season
no season
no season
Corey Dickerson
118
119
131
91
98
98
76
no season
no season
no season
no season
no season
no season
no season
no season
no season
Bobby Higginson
88
135
120
109
88
99
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Hunter Pence
139
103
133
121
119
118
84
64
126
11
no season
no season
no season
no season
no season
no season
Jeff Conine
130
135
124
98
87
103
100
123
102
109
103
110
86
78
no season
no season
Ron Gant
126
no season
146
126
83
114
97
106
95
125
no season
no season
no season
no season
no season
no season
Josh Willingham
115
117
127
129
121
143
96
109
no season
no season
no season
no season
no season
no season
no season
no season
Carlos Gonzalez
88
116
111
86
99
51
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Hal Morris
112
128
106
124
77
90
81
103
no season
no season
no season
no season
no season
no season
no season
no season
Raul Mondesi
109
109
106
93
114
79
63
no season
no season
no season
no season
no season
no season
no season
no season
no season
Reggie Sanders
114
120
99
134
76
117
107
131
103
127
86
138
no season
no season
no season
no season
Bernard Gilkey
124
155
100
69
120
37
85
no season
no season
no season
no season
no season
no season
no season
no season
no season
Milton Bradley
114
154
162
100
80
92
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Sammy Sosa
99
160
151
161
203
160
133
114
78
no season
101
no season
no season
no season
no season
no season
Pat Burrell
128
122
128
125
81
122
115
no season
no season
no season
no season
no season
no season
no season
no season
no season
Tino Martinez
108
143
124
104
89
114
105
106
117
104
no season
no season
no season
no season
no season
no season
Curtis Granderson
102
108
142
115
99
105
127
114
105
115
68
no season
no season
no season
no season
no season
Ryan Ludwick
110
151
105
104
90
130
71
91
no season
no season
no season
no season
no season
no season
no season
no season
Brad Hawpe
130
121
125
94
83
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Edwin Encarnacion
111
153
145
152
148
134
128
116
131
70
no season
no season
no season
no season
no season
no season
Roberto Alomar
136
134
100
140
114
150
90
80
81
no season
no season
no season
no season
no season
no season
no season
Dan Uggla
126
111
131
107
98
85
27
64
no season
no season
no season
no season
no season
no season
no season
no season
Nick Swisher
122
129
120
125
115
70
74
no season
no season
no season
no season
no season
no season
no season
no season
no season
Paul Konerko
127
136
134
116
103
114
160
141
130
82
64
no season
no season
no season
no season
no season
Carlos Beltran
97
150
125
130
144
109
154
128
127
98
119
122
81
no season
no season
no season
Eric Chavez
105
101
86
no season
67
82
125
120
120
no season
no season
no season
no season
no season
no season
no season
Dave Magadan
106
112
97
87
128
91
116
116
94
107
75
no season
no season
no season
no season
no season
Robin Ventura
127
112
106
130
98
105
119
97
86
no season
no season
no season
no season
no season
no season
no season
David Peralta
86
100
127
106
108
96
108
82
109
no season
no season
no season
no season
no season
no season
no season
Justin Turner
100
155
139
121
150
151
130
133
120
120
114
113
72
no season
no season
no season
Ellis Burks
114
154
102
149
122
113
147
163
137
139
109
no season
no season
no season
no season
no season
Corey Hart
130
133
120
no season
71
62
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Corey Koskie
121
116
122
113
94
110
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Billy Butler
96
98
105
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Barry Larkin
131
125
107
134
155
138
134
103
118
90
74
94
101
no season
no season
no season
Kenny Lofton
110
107
119
102
112
100
89
103
106
95
109
95
105
no season
no season
no season
Yasmani Grandal
101
121
119
112
155
64
79
96
no season
no season
no season
no season
no season
no season
no season
no season
Brandon Moss
162
136
120
90
106
85
no season
no season
no season
no season
no season
no season
no season
no season
no season
no season
Jorge Posada
91
139
118
121
144
131
109
122
153
103
125
115
90
no season
no season
no season
Nelson Cruz
117
146
113
104
124
137
159
147
149
135
168
171
129
89
86
no season
Starling Marte
89
114
119
107
132
132
74
103
111
74
no season
no season
no season
no season
no season
no season
Jayson Werth
120
122
129
144
97
124
153
134
85
97
83
no season
no season
no season
no season
no season
Italic figures are projected rather than measured. A blank cell means the hitter did not play that season, or played fewer than 50 plate appearances in it, which is the floor below which a season is not drawn. For most of this group a blank means the career had ended.
What the six signals project, against what ZiPS did
Every projection on this site came from ZiPS, which is a fixed path that knows nothing about the scorecard. The scorecard is the whole argument. So this is the same five years read the other way, and from where he actually stands rather than from the start. A quarter of the contract has been played, so its wins are counted rather than guessed, and only ages 32 to 35 are projected: from what 154 comparable hitters did after a season like his. The bands below are what the pool's best and worst quarters produced, and they are context rather than the projection.
0.4-0.5Bottom quarter of the pool
15.6What hitters like him produced from here, 12.7 to 21.6
22.621.8Top quarter of the pool, which is context and not where he is placed
10.6ZiPS, as published
Wins across ages 31 to 35, the five this contract buys. The bands are what those hitters actually produced, counting a season a man did not play as the zero it was worth, which is the part a rate statistic cannot do: Fielder missed three of these ages and Davis one, and they missed them because they collapsed. They show the range these five years span, and until A35 the projection was placed between them by the scorecard. It no longer is: those quarters are picked by how the five years turned out, so putting a hitter on one assumes the answer is already known.
The check that makes this worth reading. Run the same method on the published bands with a scorecard saying nothing, half strong and half broken, and it returns 11.5 wins against the 10.6 ZiPS published. Those agree to within a win across five years and nothing here was fitted to make them. So the method is not tuned to flatter him: it lands on the published projection when the signals are silent and departs from it only as far as they speak. Restricted to first base the same check returns almost exactly the ZiPS figure, which on 12 hitters a side is a coincidence rather than a second opinion, and is not offered as one.
Two things it does not claim. It cannot project above the top quarter of the pool, because that band is the ceiling by construction rather than a limit on him. And it does not replace ZiPS, which stays on the chart above and on The Contract exactly as published. This is the site's own estimate and is labelled as one. The Contract sets this figure, ZiPS and the site's published valuation side by side in the same unit: three numbers for the same five years.
What these five years were worth
The shaded years are ages 31 to 35, which is the deal. This is what each of them produced across the same five ages, best first. Alonso’s row is one measured season and four projected, so it is what the published projection expects rather than anything he has done: it ranks 44 of 165, ahead of 119 of the 164 hitters the rule admits.
Production across ages 31 to 35, the ages this contract pays for
Hitter
Seasons
Games
PA
OPS+
WAR
Mark McGwire
5 of 5
698
2969
191
29.7
Barry Bonds
5 of 5
718
3103
177
37.5
Edgar Martinez
5 of 5
682
3010
163
28.5
Sammy Sosa
5 of 5
729
3210
157
25.8
Gary Sheffield
5 of 5
728
3171
156
25.9
Jim Thome
5 of 5
651
2781
155
20.4
Jim Edmonds
5 of 5
726
2894
155
30.2
Manny Ramirez
5 of 5
721
3119
152
19.5
Larry Walker
5 of 5
622
2563
151
26.3
Jason Giambi
5 of 5
669
2825
150
19.3
Freddie Freeman
5 of 5
773
3398
148
25.8
Joey Votto
5 of 5
765
3310
146
24.6
Jeff Bagwell
5 of 5
800
3558
144
26.3
Alex Rodriguez
5 of 5
656
2860
144
28.6
Chipper Jones
5 of 5
643
2732
144
23.7
Albert Belle
3 of 5
465
2050
143
11.1
Miguel Cabrera
5 of 5
604
2561
142
14.3
Lance Berkman
5 of 5
715
2964
142
17.8
Jose Bautista
5 of 5
634
2783
141
21.3
Brian Giles
5 of 5
762
3355
140
20.8
David Ortiz
5 of 5
699
2996
139
15.6
Frank Thomas
5 of 5
615
2666
138
14.5
Paul Goldschmidt
5 of 5
682
2930
138
21.5
Carlos Delgado
5 of 5
716
3097
138
14.5
John Kruk
4 of 5
414
1747
138
10.7
Ellis Burks
5 of 5
659
2672
138
19.8
Mike Piazza
5 of 5
609
2460
137
14.9
Matt Holliday
5 of 5
651
2750
137
14.4
Rafael Palmeiro
5 of 5
798
3485
137
22.1
Moises Alou
4 of 5
553
2311
137
12.1
Justin Turner
5 of 5
561
2315
136
21.1
Victor Martinez
4 of 5
582
2442
135
13.5
Edwin Encarnacion
5 of 5
728
3116
135
17.1
Carlos Beltran
5 of 5
599
2535
135
19.7
Nelson Cruz
5 of 5
734
3098
135
17.4
Jose Altuve
5 of 5
685
3028
134
16.3
Yoenis Cespedes
2 of 5
119
478
132
2.8
Josh Donaldson
5 of 5
483
2019
131
14.4
Barry Larkin
5 of 5
662
2783
131
27.4
Albert Pujols
5 of 5
716
3120
130
18.7
Vladimir Guerrero
5 of 5
701
2975
130
13.3
Ken Griffey Jr.
5 of 5
445
1753
130
6.7
Jayson Werth
5 of 5
663
2806
130
15.4
Pete Alonso, projected
5 of 5
134
3180
129
11.0
Ryan Klesko
4 of 5
531
2099
129
7.9
Robinson Cano
5 of 5
704
3050
129
23.8
David Justice
5 of 5
675
2782
128
14.6
Bernie Williams
5 of 5
708
3120
128
16.8
Magglio Ordonez
5 of 5
671
2809
128
13.7
Mark Grace
5 of 5
755
3283
128
19.5
Paul Konerko
5 of 5
723
3041
128
12.6
Todd Helton
5 of 5
677
2963
127
15.7
Jose Abreu
5 of 5
656
2846
127
14.4
Juan Gonzalez
4 of 5
325
1375
126
6.7
Jorge Posada
5 of 5
707
2824
126
21.8
J.D. Martinez
5 of 5
600
2603
125
9.1
Brandon Belt
5 of 5
485
1878
125
7.9
Bobby Bonilla
5 of 5
661
2796
124
8.3
Jay Buhner
5 of 5
578
2391
124
9.9
George Springer
5 of 5
650
2808
123
14.2
Kevin Youkilis
4 of 5
372
1579
122
10.5
Ray Lankford
5 of 5
616
2273
122
11.6
Craig Biggio
5 of 5
738
3414
122
25.7
Will Clark
5 of 5
576
2429
121
13.2
Ryan Braun
5 of 5
648
2512
121
11.3
Bobby Abreu
5 of 5
784
3455
121
15.8
Derek Jeter
5 of 5
772
3565
121
22.9
Josh Willingham
5 of 5
598
2464
121
10.1
Giancarlo Stanton
5 of 5
541
2186
120
5.6
Adrian Gonzalez
5 of 5
699
2829
120
13.7
Josh Hamilton
4 of 5
438
1835
120
7.1
John Olerud
5 of 5
751
3164
120
17.7
Andre Ethier
3 of 5
414
1378
120
5.6
Derrek Lee
5 of 5
707
3066
120
13.1
Wally Joyner
5 of 5
625
2568
120
12.8
Fred McGriff
5 of 5
750
3205
119
10.2
Randy Milligan
2 of 5
149
441
119
2.1
Tim Salmon
5 of 5
641
2656
118
12.1
Mark Teixeira
5 of 5
528
2241
118
11.0
Travis Hafner
5 of 5
429
1710
117
5.3
Chase Utley
5 of 5
587
2522
116
20.0
Jack Cust
2 of 5
179
695
116
2.5
Roberto Alomar
5 of 5
760
3321
116
20.8
Troy Glaus
2 of 5
279
1120
115
4.6
Reggie Sanders
5 of 5
632
2492
115
14.2
Mo Vaughn
4 of 5
466
1958
114
2.4
Scott Rolen
5 of 5
630
2574
114
20.4
Ichiro Suzuki
5 of 5
792
3654
114
25.1
Curtis Granderson
5 of 5
683
2898
114
13.7
Starling Marte
5 of 5
479
1992
114
10.1
Buster Posey
3 of 5
332
1347
111
7.4
Matt Carpenter
5 of 5
610
2209
111
7.8
Justin Morneau
5 of 5
528
2155
111
6.6
Chris Hoiles
3 of 5
323
1183
111
6.1
Pat Burrell
4 of 5
491
1777
111
4.5
Robin Ventura
5 of 5
723
2786
111
16.5
Carlos Pena
5 of 5
681
2686
110
8.0
Cliff Floyd
5 of 5
548
2065
110
6.0
Dave Magadan
5 of 5
442
1328
110
4.6
Andrew McCutchen
5 of 5
549
2339
109
6.4
Shin-Soo Choo
5 of 5
615
2693
109
7.1
Kevin Millar
5 of 5
704
2790
109
6.7
Mike Sweeney
5 of 5
372
1457
109
2.8
David Wright
3 of 5
209
924
108
2.7
Anthony Rizzo
4 of 5
462
1920
107
5.0
Mike Napoli
5 of 5
665
2677
107
8.0
Matt Kemp
5 of 5
480
1839
107
-0.7
Jeromy Burnitz
5 of 5
745
2998
107
6.7
Shawn Green
4 of 5
594
2406
107
2.5
Carlos Santana
5 of 5
691
2946
107
11.1
Phil Nevin
5 of 5
544
2185
107
3.7
Eric Chavez
4 of 5
284
865
107
2.8
Kendrys Morales
5 of 5
690
2737
106
3.3
Corey Koskie
3 of 5
291
1181
106
5.0
Prince Fielder
2 of 5
247
1063
105
0.2
Ryan Howard
5 of 5
585
2404
105
-2.5
Joe Mauer
5 of 5
680
2900
105
11.0
Shane Mack
2 of 5
129
377
105
1.1
Mike Morse
3 of 5
317
1075
104
-1.0
Rusty Greer
3 of 5
218
951
104
2.4
Ryan Zimmerman
4 of 5
396
1556
104
4.3
Hunter Pence
5 of 5
551
2160
104
6.3
Jeff Conine
5 of 5
641
2347
104
6.3
Ron Gant
5 of 5
643
2592
104
10.0
Tino Martinez
5 of 5
756
3055
104
7.1
Nick Swisher
4 of 5
466
1919
103
4.6
Hanley Ramirez
5 of 5
445
1855
102
1.7
Lucas Duda
3 of 5
273
977
102
1.3
Evan Longoria
5 of 5
544
2197
101
9.4
Matt Williams
5 of 5
642
2704
101
12.4
Ryan Ludwick
5 of 5
550
2123
101
2.5
Kenny Lofton
5 of 5
683
3086
101
20.7
Richie Sexson
3 of 5
375
1481
100
1.5
Hal Morris
5 of 5
544
1790
100
3.3
Yasmani Grandal
5 of 5
428
1593
100
3.3
Adam Dunn
4 of 5
553
2263
99
-0.4
Nomar Garciaparra
5 of 5
425
1586
99
1.7
David Peralta
5 of 5
570
2091
99
5.0
Bobby Higginson
3 of 5
380
1569
98
4.1
Raul Mondesi
4 of 5
364
1525
97
2.7
Trot Nixon
3 of 5
337
1277
96
3.3
Geoff Jenkins
3 of 5
394
1341
96
2.3
Troy Tulowitzki
2 of 5
197
804
95
4.2
Brandon Moss
3 of 5
391
1391
94
-0.3
Corey Dickerson
4 of 5
307
1024
93
-0.3
Milton Bradley
3 of 5
225
866
93
0.3
Jason Bay
4 of 5
356
1361
92
2.3
Nick Johnson
2 of 5
62
200
92
-0.1
Brad Hawpe
2 of 5
165
562
90
-0.8
Dan Uggla
5 of 5
570
2137
90
2.6
John Valentin
4 of 5
400
1496
89
6.2
Justin Upton
4 of 5
211
841
87
-2.6
Carlos Gonzalez
3 of 5
313
1204
87
0.1
Anthony Rendon
4 of 5
205
863
86
1.7
Grady Sizemore
2 of 5
209
677
86
0.0
Khris Davis
3 of 5
205
746
81
-0.9
Erubiel Durazo
1 of 5
41
167
79
-0.3
Bernard Gilkey
4 of 5
348
966
78
-1.1
Morgan Ensberg
2 of 5
143
404
77
-1.1
Carlos Quentin
1 of 5
50
155
74
-0.7
Corey Hart
2 of 5
103
312
69
-1.0
Chris Davis
4 of 5
377
1453
66
-5.8
Justin Bour
1 of 5
52
170
63
-0.6
Kal Daniels
0 of 5
0
0.0
Billy Butler
0 of 5
0
0.0
The OPS+ column is a plate-appearance-weighted mean of each hitter’s season figures, not a recomputed multi-season OPS+, which would have to be rebuilt from raw totals against league baselines. Weighting matters: an unweighted mean counts a ninety-plate-appearance farewell year the same as a seven-hundred-plate-appearance peak. A seasons count below five means the hitter did not play all of them, which for Fielder means his career had ended. Alonso’s four projected seasons carry no plate appearances of their own and are weighted at a full season each.
Baseball-Reference season standard-batting leaderboards, one request per season from 1972 to 2026. Player ids are read from the links in each row rather than constructed, so nothing is guessed. Only the regular-season table is parsed; the postseason table on the same page is excluded by id. Fetched 2026-08-28 by scripts/comp-pool.mjs and stored, so no build depends on a live request. Alonso’s projected seasons are the ZiPS path published at signing in December 2025 and shown in full on The Contract.
The bottom line
No measurable decline yet at 31.
The early-warning indicators are a sustained strikeout climb toward 28 to 30 percent, or average exit velocity under 92 mph.
If those stay clean, expect a productive window through 33 and a fade at 34 to 35. That is a projection, not a promise, and this site will say so when it changes.