With Opening Day 2020 just weeks away, this is as good of a time as any to recap the offseason. That means, among other things, comparing our free agent rankings to the actual market. For as much as the rankings seem like guesswork -- and, to be clear, there is a fair amount of conjecture involved -- they're also the product of processes informed by past tries.

One way we try to improve our work is by converting our rankings into an expected annual average value figure. We then compare that expected number to the actual one the player signed for, giving us a way to figure out who we over and undervalued entering the winter. (Note that we use AAV rather than total contract value since it's easier to compare across terms.)

With that in mind, let's take a look at the players we were too low or too high on, as well as those we ranked perfectly, all with an eye on gaining insight to improve next year's list. (As of press time, three members of the top 50 remain unsigned: Yasiel Puig, Ben Zobrist, and Scooter Gennett.)

We undersold Avisail Garcia. USATSI


Avisail Garcia
MIA • LF • 24
View Profile

We ranked Avisail Garcia 49th, noting that he was the same player he was the previous winter, when he was non-tendered by the Chicago White Sox. That he then received a deal befitting of a top-30 player -- from the cost-cutting Milwaukee Brewers, no less -- qualified as a shock. 

The Brewers are ostensibly betting they can correct Garcia's attack angle, allowing him to tap in to his raw power and become a more dynamic player. Maybe they can, but his track record is discouraging. Including last year, he's had five seasons with 300-plus plate appearances, and in two of those he's accumulated more than one Win Above Replacement, per Baseball Reference.

If there's a lesson here, it's that teams are willing to pay a premium on upside -- even when that upside looks to us, on the outside, to be mere fool's gold.

Starlin Castro
WAS • 2B • 13
View Profile

Starlin Castro was Mr. Irrelevant, rounding out the list at No. 50. His contract suggests he should've been ranked about 10 paces higher, or at least in Scooter Gennett's spot, at No. 42.

Castro's defense is one potential explanation for the discrepancy in evaluations. We stated that his glove was "fine," but it's possible the Washington Nationals' internal metrics align with those since released by Statcast, which suggest he's a plus defender at the keystone. It's also possible they placed a premium on his versatility, given their roster construction. 

Jordan Lyles
BAL • SP • 28
View Profile

Longtime readers will find humor in Jordan Lyles landing on this list. After all, we were one of his True Believers heading into last year based on the gains he made during 2018. We placed him 48th, but the Texas Rangers gave him a deal suggesting he should've been in the 30s.

Rick Porcello
NYM • SP • 22
View Profile

We had Rick Porcello 43rd, writing that "some team is going to look at him and see a buy-low opportunity." The New York Mets did, but paid him more than twice what we expected.

Tanner Roark
ATL • SP • 49
View Profile

One last starter for the road. Tanner Roark's combination of a low ceiling and high floor landed him at No. 36. His Blue Jays contract indicates that was about 10 spots too low. Between Porcello and (especially) Roark, we may have underrated the emphasis teams place on certainty.

Now, onto the players we overrated entering the winter.

News of Rich Hill's surgery came out a little too late. USATSI


Rich Hill
BOS • SP • 44
View Profile

We had Rich Hill as the 16th best free agent available. His salary with the Minnesota Twins suggests he should've ranked near the end of the list. What gives?

Well, it's simple: Our rankings were published before it was revealed that Hill had elbow surgery to repair a tear in his ulnar collateral ligament. (That's the ligament associated with Tommy John surgery, for those wondering.) Hill is supposed to be out until June, at minimum, which means he'll miss nearly half the season. Hence taking a contract well below expectations.

Comedy is said to be all about timing. The same is true with ranking free agent pitchers.

Hunter Pence
SF • RF • 8
View Profile

Hunter Pence ranked 33rd for us based on his results with the Texas Rangers, which were accompanied by process-level changes to his game. Even so, teams weren't willing to buy in for a player who turns 37 in April.

When Pence signed with the San Francisco Giants, he did so for about a third of the money we expected him to receive. We think there were a few factors at play that help to explain why he received so much less, beginning with the possibility that he wanted to return to the Giants.

In addition to Pence's predilection, his age and injury history were almost certainly held against him. It didn't help his case that the corner-outfield market moved at a glacial pace, with Marcell Ozuna and Nick Castellanos lingering around until the new year. Heck, Yasiel Puig remains unsigned. 

There was no way of knowing that last part would happen, but it's fair to write that we should've assigned Pence a more conservative ranking based on the other information. 

Alex Avila
WAS • C • 6
View Profile

We had Alex Avila ranked 32nd, completing a run on catchers that included Robinson Chirinos and Travis d'Arnaud. The difference between Avila and the others is that his strikeout rate suggests he's an attrition case waiting to happen. He should've been a little lower as a result.

Justin Smoak
MIL • 1B • 12
View Profile

Justin Smoak checked in at No. 29, but the sum he received from the Brewers suggests he should've checked in somewhere in the 40s. We think that he'll prove to be a bargain, since all his ball-tracking data suggests he was better last season than his surface-level stats say.

Howie Kendrick
1B •

Howie Kendrick, ranked 23rd, took less money to remain with the Nationals. You could argue we should've known the champions would be aggressive about keeping their own, and that those players would be willing to take less money in order to stay, but that's not always the case.

Since we just touched on all the players we were wrong about, let's end this by highlighting the five players whose salaries lined up almost perfectly with their expected AAV:

We'll try to do better next year. Until then, we'll be wearing a Drew Pomeranz-inspired feather in our cap.