And the Contract Prediction Winner Is… You!

As I write this, the winter free agency period has essentially drawn to a close. Out of the top 50 free agents I highlighted before the offseason began, 48 have found homes — sorry, David Robertson and Kyle Gibson. Per RosterResource, only five free agents – including the two holdovers from the top 50 – accrued 1 WAR or more in 2024 and haven’t yet signed new deals. In other words, all the signing that is going to happen basically has, so it’s time to look back and see how you and I did at predicting the deals players would sign.
I like to evaluate my own predictions in service of making better ones in the future, dividing them up into a few categories. First, I break signings down by position, because the market for relievers and second basemen is different. Second, I look at both average annual value and total guarantee. There’s no set ratio for how to relate those two, so looking at each independently seems best to me. Finally, I look at both the individual predictions (how close to the actual contract that a player signed my predictions came), as well as the overall trend (how my aggregate predictions for each position group did compared to the total amount they received).
This year, I made all of that back-checking more rigorous. I put all of my predictions, as well as every crowdsourced one, into a giant spreadsheet. I noted all the contracts that were signed, made adjustments for deferrals, and ignored non-guaranteed money. I compared each actual contract to our predictions. I also gathered some of the best non-FanGraphs predictions I could find, looking to outlets like ESPN, The Athletic, and MLB Trade Rumors. Below, you’ll find how both the crowd (you) and I did, as well as the best non-FanGraphs entrant in each category.
Average Annual Values, Aggregate
| Category | Ben Clemens | FG Crowd | Kiley McDaniel, ESPN |
|---|---|---|---|
| Starter | -$1.04M | -$1.1M | -$1.94M |
| Reliever | -$.17M | -$2M | -$.17M |
| Hitter | -$.54M | -$.7M | -$3.04M |
| Overall | -$.69M | -$1.13M | -$2M |
A note on these tables: each number denotes the difference between the relevant predictions and the actual deals signed. For example, let’s take the crowd’s prediction for starting pitchers. The table says -$1.1 million. You readers gave an average prediction of $17.1 million for the average annual value secured by starters in our top 50. The actual average worked out to $18.2 million, a miss of $1.1 million. That’s phenomenal; both you and I did better than any previous time I’ve collected data for these.
As I anticipated earlier this winter, a raft of late signings pushed AAVs back down towards our predictions. The crowd and I both did even better with hitters. The only real reader-related hiccup – and the place where both Kiley and I did best – was pegging the reliever market. Don’t feel too bad about this one, though. There were few relievers in this year’s group, and they weren’t particularly distinguished. The crowd’s big miss was Blake Treinen. The crowdsourced median for his contract was one year and $8 million, and he signed a two-year, $22 million pact. Broadly speaking, the market for relievers was just a hair higher than expected, and given that the top seven relievers on the top 50 all signed for between $10 million and $16 million annually, the market was more compressed than we all expected.
Hitters followed the same trend as starters – a few stragglers pulled the market back down towards our aggregate predictions. When I checked in at the halfway mark of the offseason, our average errors were each roughly double what they ended up being. The back half of the winter consistently involved smaller-than-expected contracts, again in keeping with the trend. These misses are quite small in context, though. Good work, everyone.
Average Annual Values, Absolute Value of Miss
| Category | Ben Clemens | FG Crowd | MLBTR Team |
|---|---|---|---|
| Starter | $4.14M | $4.05M | $5.1M |
| Reliever | $1.8M | $2.45M | $5.4M |
| Hitter | $3.15M | $2.72M | $3.96M |
| Overall | $3.32M | $3.25M | $4.73M |
Congratulations to the crowd for a great showing here. For me, this category is the real thing we’re all trying to get to. Sure, it’s nice to get the broad market right, but if you predict $15 million for two players and they receive $10 million and $20 million, respectively, your predictions weren’t all that helpful. That shouldn’t merit a “perfect prediction, zero error” verdict, but it does if you don’t take the absolute value of each miss. If you’re wondering how close every prognosticator came to landing on the right contract, this category is the closest you’ll come.
With that in mind, the key names in differentiating our extremely similar performances were Pete Alonso and Luis Severino. Everyone missed high on Alonso, but in aggregate, you readers were more pessimistic on his market, and it was to your credit. Likewise, everyone missed low on Severino – the A’s premium is real – but I missed even lower.
While both the crowd and top contract predictors across the industry did a good job of pegging the aggregate level of the market – the first category – we did meaningfully worse at idiosyncratic contract pricing this time. Last year, neither the crowd nor I missed by even $3 million of absolute AAV in any category. This year featured a motley assortment of astronomical top contracts and sketchy, lower-tier options. No one navigated that particularly well, but the FanGraphs crowd did the best job. Great work.
Total Guarantee, Aggregate
| Category | Ben Clemens | FG Crowd | Kiley McDaniel, ESPN |
|---|---|---|---|
| Starter | -$7.77M | -$.7.34M | $0.36M |
| Reliever | -$3.44M | -$8.72M | $1.45M |
| Hitter | $3.46M | -$2.21M | -$.41M |
| Overall | -$2.77M | -$5.71M | $0.29M |
Goodness gracious, Kiley. I was quite pleased with my results here; this is the best I’ve done in this category in any year I’ve predicted contracts. Even the crowdsourced number is excellent; last year’s average crowdsourced miss on total guarantees was nearly $16 million. I don’t have any previous data with an aggregate miss below $6 million. We all did quite well at figuring out how many dollars teams would spend in free agency this year.
But let’s tip our cap to a downright prescient forecaster here. Even if I keep track of this data for years to come, I don’t think anyone will approach those heights. Everyone missed on Soto, but Kiley missed by less. He also had the good fortune of predicting a much longer and therefore larger contract than Alex Bregman actually signed; that overestimation paired nicely with the Soto underestimation. The rest of his projections were, in general, quite close to the mark. In particular, his grasp of how much teams would guarantee starting pitchers almost looks like witchcraft. This particular category has a lot to do with figuring out how much money there is to be spent, rather than focusing on the individual players. I think that’s why we paid prognosticators did well here – we look at the whole picture when we draw things up, rather than answering a series of survey questions on the website. But either way, this was a wonderful showing by everyone and one of the best I’ve ever seen by my former colleague.
Total Guarantee, Absolute Value of Miss
| Category | Ben Clemens | FG Crowd | MLBTR Team |
|---|---|---|---|
| Starter | $19.33M | $18.97M | $18.44M |
| Reliever | $7.22M | $9.16M | $10.06M |
| Hitter | $35.5M | $32.03M | $27.3M |
| Overall | $22.95M | $21.87M | $20.07M |
The closest race of the group comes in another key category: how everyone did sussing out the individual markets of all the various players. Hitters were the hardest category for everyone, and particularly for me. Soto’s gargantuan deal set us all off on the wrong foot, and pillow contracts for some notable hitters piled on the misses. Gleyber Torres taking a one-year deal made us all look silly, with the MLBTR team coming closest with a predicted two-year deal (great work!). You guys got fooled by Christian Walker’s market; as I already mentioned, Alonso was one of my largest missteps in the prediction game.
This year’s raucous and unpredictable market for hitters aside, I think that everyone did fairly well. Even in a year with surprises on the pitching side — like Severino’s big deal and Max Fried setting a record for lefty starters — an average miss under $20 million is quite solid. For comparison, that’s right in line with the last several years of my and your predictions, even with some particularly difficult markets to forecast this year.
Finally, reliever predictions were solid across the board. Sure, as I mentioned above, the fairly narrow band of reliever salaries made the crowd’s predictions come across low in many instances. But in terms of total miss, everyone did quite well. It feels like it is getting easier and easier to predict reliever contracts because they rarely end up with huge guarantees or a massive number of years, but I feel confident in saying that you, me, and all the other forecasters doing this did an excellent job of understanding the reliever market this winter.
I don’t have a clear rubric for determining a winner here, but that’s never stopped me before. Thus, I’m calling it: The FanGraphs crowdsourced predictions were the best of the winter. Congratulations! As a collective entity, you did an outstanding job. Average annual values, total guarantees, aggregated or individualized — in every possible slicing of the market, you performed admirably. Did the occasional professional forecaster come out on top? Here and there. In fact, each of ESPN, MLBTR, and FanGraphs won a category, with the crowdsourced projections winning the fourth. But in terms of consistency and breadth of good predictions, I have to hand it to the masses. You’re the best at what we do – in aggregate.
A few other miscellaneous congratulations are in order. While Jim Bowden at The Athletic didn’t place first in any category, he had a strong showing when it came to overall guaranteed contract size. I truly don’t expect anyone to do as well as Kiley did at predicting total guarantees ever again. The MLB Trade Rumors team – Steve Adams, Anthony Franco, Darragh McDonald, and Tim Dierkes – turned in an excellent performance projecting which hitters would settle for shorter deals. In a year where everyone else got tripped up, they rose to the challenge there. And lastly, another nod to the crowd. No one handled the idiosyncratic nature of the market better than you did as a group. I’m impressed but also unsurprised. The FanGraphs readership has always been informed and curious, a combination that makes for impressively good predictions about all of baseball. Free agency is just a subcategory of your broad expertise.
Ben is a writer at FanGraphs. He can be found on Bluesky @benclemens.
The Mets’ offseason blew up a lot of people’s predictions. They went about $150M higher on Soto than most people predicted and about $60M less than most people predicted on Alonso, and then he turned that down and settled on an even smaller total guarantee.
We were all off on the first and second tier of starting pitching too, with Fried, Snell, Severino, and Eovaldi getting way more than most people expected. Also off on Tanner Scott I think.
I don’t know that we should beat ourselves up for missing on Bregman. I don’t know about anyone else but I predicted a 5 year, $150M deal, which is what he had for most of the offseason. Turning down that deal for a shorter term deal with heavy deferrals is not what anybody should have expected.
I predicted that the consensus on Alonzo would be way off. Unfortunately I predicted that in the wrong direction 😞
This is what I wrote previously:
And my prediction was wrong for both the Giants and Mets. The Giants weren’t interested, and the Mets were willing to let him walk.
Uh, so I got the part right about the pillow deal!
Basically Cohen let Stearns run the Alonso negotiations and didn’t get impatient or overreact to fan sentiment, which was mostly you gotta re-sign Pete no matter what. I think Boras probably thought Cohen would overrule Stearns but they were in lock step on Alonso and got the pillow deal. I thought there would be a team that might just say he hits dingers and give him a five year deal, but nobody ever did.
Wow! What an honor. I’d like to begin by thanking my agent…
What about the academy?
I think “agent” was the joke.
I wrote an article on a somewhat similar topic and submitted it to Community Blog over two weeks ago, but was informed they are not running it because they ran Ben’s article today. Oh well.
If anyone in interested in seeing some other slices of the data from Fangraphs predictions versus what free agents recieved, see the link below. Collectively, the crowd underestimated contracts by 11% (by contrast, we overestimated by 9% in 2019, as discussed in my 2019 community blog article).
https://www.scottbehson.com/post/the-2025-free-agent-class-earned-11-more-than-we-thought
Big winners – big FAs who signed early, high-upside relief arms. Big losers – big FAs who signed late, and marginal FA (in that smaller contracts that tended to be smaller than predicted moreso than big contracts).
The takeaway is not that players signing later got less money, it’s that players who were less desired signed late and got less money. There is a strong correlation between the timing of the signing and the $$$, but I don’t think it’s casual.
It does seem pretty casual, actually
Yes, you are correct there is a causation/correlation issue here. After all, late signees usually do so after their options have dwindled (usually by misreading their market value).
The relevant section:
Thinking specifically about Pete Alonso’ late signing for far less than we expected, I hypothesized that those who sign late in free agency sign for less than expected relative to those who sign early. After all, late signees usually do so after their options have dwindled. I found a list of players who signed in February as opposed to earlier in the offseason and ran some quick comparisons.
Of the players in the main sample, 7 signed after February 1st. Nick Pivetta, Enrique Hernández, and Tommy Pham all signed for more than expected, although Hernandez and Pham signed one-year deals worth $1.5 million and $1 million over modest one-year expectations. Nick Pivetta signed for an additional year and $10 million over expected (5/$55 million as opposed to our 4/$45 Million crowdsource projection). Kanley Jansen signed a one-year $10 million contract, not far from the 1 year/$12 million we projected.
The remaining three free agents demonstrate the downside of signing near the end of hot stove season. Alex Bregman signed a hefty 3-year contract worth $120 million – less than his 6-year, $162 million projection (although he made up for it with a much higher AAV, so his contract should net out as a win for him in the long run).
Jack Flaherty and Pete Alonso were the big losers of free agency relative to our expectations. Flaherty signed for 2 years/$35 million, well short of our crowd estaimate of 4 years/$88 million – in fact, his contract represents just under 40% of what we projected. Pete Alonso signed for 2 years/$54 million – well short of the 5 year/$125 million we crowdsourced for him. A very cold stove for the polar bear, at just 42% of projection.
I love the headline I played the heck out of that game as a kid.
Thanks for this.
Just a formatting suggestion: Consider using a leading zero for decimals between -1 and 1. $0.17 is a lot easier to read than $.17
I agree 100.0% 😉, though I wonder if it’s some sort of backend site issue? Like, maybe the way tables are formatted is sort of hard-coded, such that if Ben were to enter “$0.17,” it would automatically display as “$.17”? (I’m probably misusing terms here; I’m ignorant when it comes to coding, web design, all things knowable and unknowable in general, etc.)
Zeros before the decimal point would make the first table much easier to read.