List of every major move so far this offseason

When you think of the offseason, you think of the biggest names and the largest deals -- understandably so -- but there's obviously a lot more that goes into it. As we did last year, we'll keep a running list of each one, with the latest moves at the top. We're probably not getting into every single non-roster invite, but you never know. Baseball fans are insatiable.

Feb. 10, 2020 : Red Sox trade OF Mookie Betts and P David Price to Dodgers for OF Alex Verdugo
Los Angeles also sends catching prospect Connor Wong and infield prospect Jeter Downs

This is it. This is The Big One. This is the one we weren't sure would ever happen, even when it seemed like it had happened, and the one that Boston fans will be thinking about for the rest of their lives.

This, for the Dodgers, is the answer to a winter where they hadn't really done much at all. It's not even a trade they needed to make, really, because they were going to be the overwhelming favorites in the NL West regardless, and you can't say that either Betts or Price guarantees them the ring they've so badly wanted. But in another sense, this was the trade they needed to make, wasn't it? It's not that Verdugo or Wong or Downs aren't promising players, because they are. But they managed to get the consensus second-best player in baseball, making a great team into a super-team, and they did it without giving up Gavin Lux, Dustin May, or any of the prospects they valued so highly. They even benefited from the delay by getting Brusdar Graterol, too.

Put another way, the Dodgers almost certainly have two of the five best players in baseball, and if you removed Betts and Cody Bellinger from the picture entirely ... the remaining Dodgers would still be favored to win the NL West.

As for the Red Sox, well, it's hard to look good when you're shipping out a future Hall of Famer in his prime. In a very narrow view, they did well here, because in exchange for one year of Betts (and the qualifying offer compensation pick they'll lose), they get four years of Verdugo, a ready-now outfielder with a cannon arm who just posted a 114 OPS+ at 23; Downs, a well-regarded prospect (No. 44 on the MLB Pipeline Top 100) who could be their second baseman by 2021; and Wong, who tore apart Double-A in 40 games (.349/.393/.604) but might be more of a multi-positional type than a full-time catcher. They're good players. It's not a bad return.

But then again ... this is Mookie Betts. The Red Sox may have added talent for years to come, but they've made their pretty decent 2020 playoff chances worse, and of course sacrificed any chance of an extension to keep him around. Boston fans aren't thrilled. It's not hard to see why.

Feb. 10, 2020: Dodgers trade P Kenta Maeda to Twins for P Brusdar Graterol
Minnesota also sends outfield prospect Luke Raley and 67th pick in 2020 Draft for catching prospect Jair Camargo

You know what didn't happen -- Graterol was supposed to have gone to Boston -- so let's talk about what did. The Twins didn't get the big-ticket starting pitching ace they so badly needed, but their offseason has turned out to be a successful one anyway, and not just because adding Josh Donaldson was a coup. They retained Jake Odorizzi and Michael Pineda, added Homer Bailey, Rich Hill and Jhoulys Chacín, and now, finally, they've added the perpetually underrated Maeda, who is a lot better than the 4.04 ERA he just posted would indicate. Last year, he had one of the lowest hard-hit rates allowed in the game, and should the Twins get to October, he's demonstrated several times how effective he can be out of the bullpen. He doesn't have the upside of Graterol, clearly, but the Twins are a win-now team, and they needed another above-average starter right now. They got one.

As for the Dodgers, the re-worked trade may end up being something of a coup, because the bullpen is more of a weakness than the outfield is, and Graterol, who hit 100 MPH 12 times in 9 2/3 late-season innings, has the potential to be the huge arm they've been missing. That's maybe a big deal, because the 2020 version of Kenley Jansen is more good than great, and because no one has any idea what they'll get out of Blake Treinen or Joe Kelly. If you've watched the last seven postseasons, you know that the biggest pain point here has generally been the relievers. It's possible, surely, that the Red Sox were right, that Graterol's health -- and he did miss time in 2019 with shoulder problems after missing 2016 with Tommy John surgery -- prevents him from reaching his potential. It's also possible that the Betts trade looks even worse if he stays healthy and whole for a very good Dodgers team.

Feb. 8, 2020: Rays trade P Emilio Pagán to Padres for CF Manuel Margot
Tampa Bay also receives catching prospect Logan Driscoll

By one measure, the Statcast kind that combines amount of contact allowed (Pagán had a 96/12 K/BB last year) and quality of contact allowed (Pagán had a top-five reliever pop-up rate, and pop-ups are basically more strikeouts), the Padres just added 2019's most effective pitcher.

You'll notice that Kirby Yates was No. 2 there, and that Drew Pomeranz's late-season relief excellence made us all very in on him, and you can see why the Padres might just have the best bullpen in baseball in 2020. Now: This does raise some outfield questions, because they'd previously traded Hunter Renfroe to Tampa Bay earlier this winter, and while they did get Tommy Pham in return, this also means that there's more pressure on Wil Myers, Trent Grisham, and Statcast superhero Franchy Cordero. It won't be enough to catch the Dodgers. It might be enough to make some Wild Card noise.

As for the Rays, their case here is a simple one: With a loaded bullpen full of guys like Nick Anderson, Diego Castillo, Chaz Roe, Colin Poche, and José Alvarado, they could afford to trade from a strength (pitching) to reinforce a weakness (hitting). That might seem odd, considering that Margot had a mere 83 OPS+ last year, and his .248/.301/.387 (87 OPS+) career mark isn't inspiring. But it makes more sense when you think about it from a platoon point of view, because he's been about league-average against lefties, which is a solid player given his truly elite defense -- and the fact that Kevin Kiermaier has had trouble staying healthy or hitting lefties in recent years.

Feb. 7, 2020: IF Wilmer Flores and OF Hunter Pence sign with Giants
Two years, $6 million for Flores; one year, $3 million for Pence

Let's lump these two together, even though they're very different players. Flores is coming off a strong year for Arizona -- .317/.361/.487 -- and he's actually been a good hitter for the last four years now, posting a 110 OPS+ in over 1,400 plate appearances for the Mets and D-backs. He's better against lefties, with a career OPS 100 points higher against them than righties; though he came up as a shortstop, he can probably stand at all four infield positions, but he's been primarily a right-side infielder over the last two years. That might fit in San Francisco, because first baseman Brandon Belt could use a platoon partner, and second base is something of a four-way battle in which it's unlikely any one player makes an overwhelming majority of starts.

Pence, obviously, is a local hero by the Bay, having played seven years with the Giants (2012-'18) and helping them to two rings. After an injury-plagued 2018, in which he hit all of .226/.258/.332 in 97 games at age 35, it seemed like it might not be his San Francisco career that was ending, but his baseball career. Of course, his Texas rebound -- 126 OPS+, voted as the starting designated hitter in the All-Star Game -- put him back on the map, and now he'll give Giants fans smarting from three straight losing seasons and the departure of Madison Bumgarner something to root for.

Would you prefer him in the DH league? Sure. Is there a single current outfielder on the depth chart who demands 600 plate appearances? Nope! Welcome back, Hunter.

This browser does not support the video element.

Feb. 3, 2020: P Brandon Kintzler and OF Matt Joyce sign with Marlins
One year, $3.25 million for Kintzler; one year, $1.5 million for Joyce

Kintzler and Joyce were born within two days of each other back in 1984 -- Aug. 1 for Kintzler, Aug. 3 for Joyce -- which means they'll turn 36 this summer, though whether either or both will still be in Miami in the hours after the trade deadline remains an open question. So no, neither one of these guys is part of the long-term plan to bring the Marlins back to the playoffs, but then again, not everything has to be, right? Kintzler posted a 2.68 ERA last year for the Cubs, and he has a 3.37 ERA over a decade in the big leagues, generally not missing many bats (only 6.3 K per 9 career) while making up for it with excellent ground-balling skills, posting a Top-20 mark over the last four seasons. He might be Miami's closer.

Joyce, meanwhile, has long been useful for his strong platoon bat. He's almost unplayable against lefties (.581 career OPS), but he's generally been solid against righties (.806), and so he should get some time when Brian Anderson plays third base or as a platoon partner for righties Jon Berti or Harold Ramirez. The Marlins might still be the fifth-best team in the NL East, but with Kintzler, Joyce, Corey Dickerson, Jesus Aguilar, Francisco Cervelli, Yimi García and Jonathan Villar, they've at least done a good job of importing solid veteran performers to raise the floor.

Jan. 27, 2020: Pirates trade OF Starling Marte and cash to D-Backs
D-Backs receive two prospects

All winter long, Arizona had attempted to find a center fielder who would allow them to move 2019 breakout star Ketel Marte (no relation) back to second base full-time, in part to try to limit the wear-and-tear that may have helped lead to the stress fracture in his back that ended his season early. They finally found a good one in Starling Marte, who has been one of baseball's most consistent performers for years now. In 2019, he hit .295/.342/.503 (120 OPS+); over his career, he's hit .287/.341/.452 (115 OPS+). Set aside 2017, which was marred by injury and suspension, and he's been a 3-to-4 win player every year, in a WAR world where 2 WAR is considered average. He's stolen at least 25 bases in six of the last seven seasons -- still reaching 21 in his shortened '17 campaign -- and Statcast has him rated as a +10 Outs Above Average defender in 2018, and +2 more in 2019.

He's a good, dependable player, is the point, and it doesn't matter that much that he's 31 since Arizona only has him for two more seasons. Adding him, moving Ketel, and taking playing time away from Jake Lamb and Ildemaro Vargas is probably an upgrade of two wins or so, and even if you don't think they're close to the Dodgers in the West -- and they're probably not -- this is a team that was just four wins out of the Wild Card last year, before adding Madison Bumgarner this offseason. This doesn't automatically put the D-Backs in the postseason, but it does help them remain very much in the conversation.

For the Pirates, under completely new management, we won't know for years what the payoff of this will be. Prospects Brennan Malone and Liover Peguero are each well-regarded, but both were in Rookie ball in 2019 and are at least three years away from Major League time. Marte wasn't going to be a part of the next good Pirates team. One of these two might be.

Jan. 27, 2020: OF Nicholas Castellanos signs with Reds
Four years, $64 million, with opt-outs after 2020 and 2021

The Reds have been busy this winter -- Shogo Akiyama, Mike Moustakas, Wade Miley, after adding Trevor Bauer last summer -- and now they've added the best remaining hitter, Castellanos, into what's suddenly a very crowded outfield. That part isn't the problem it seems; the combination of Akiyama, Nick Senzel, Aristides Aquino, and Jesse Winker have exactly zero full, productive, healthy Major League seasons among them. That's not to say they can't, just that they haven't, and with Senzel's ability to play the infield, Castellanos potentially taking some platoon time at first base and plenty of Minor League options among the younger players, this is a problem that will easily work itself out.

What's most interesting here is the opt outs after the first two years, which provides Castellanos with a ton of extra value. If he has a great season, he can return to the market next year at just 29 years old and make far more money than $16 million/year. (Even if he took an inevitable qualifying offer in that case, he'd make something like $18 million in 2021.) If he gets hurt or doesn't play well, he still has $48 million guaranteed to him. Then he can work out that calculus again after 2021.

For the Reds, this is more evidence that they want to win right now, and wanted another badly needed bat in what had been a poor offense (the 2019 Reds scored the sixth-fewest runs in baseball). If Castellanos isn't the 151 OPS+ masher he showed with the Cubs -- and he's probably not -- he's also not the average-ish 105 OPS+ hitter we saw with the Tigers before the trade. Over the last four years, his OPS+, where 100 is league average, goes like this: 120, 112, 128, 121. That's consistent production, and while he's still a poor defender, there's evidence that it's not quite as much of a problem as it's been in the past. Even with all their moves, the Reds still needed another bat. They have one -- and they might have stockpiled enough depth to make another addition via trade.

This browser does not support the video element.

Jan. 21, 2020: OF Marcell Ozuna signs with Braves
One year, $18 million

The Cardinals had offered Ozuna the one-year, $17.8 million qualifying offer in November, but after he predictably turned it down, he spent months on the market trying to find the multi-year deal that apparently proved elusive. Now, with camp just a few weeks away, he's signed with Atlanta for what's essentially the same qualifying offer that he'd declined. It's not entirely clear, in what's been a warmer free-agent market than in years past, why Ozuna couldn't find the deal he desired, but it's also not hard to see him trying to follow the same "one year in Atlanta to rebuild value" path that Josh Donaldson did.

If there's a reason Ozuna had to settle for one year, it probably comes down to uncertainty, because it's very difficult to describe him as a player. Is he a good fielder? Statcast says no, grading him as minus-8 Outs Above Average, while DRS (+2) and UZR (+5.7) say yes. Is he a good hitter? By underlying Statcast metrics, yes, as his 49.2% hard-hit rate was in the 96th percentile in 2019, while the quality-of-contact metrics say he was a top-25 hitter in his two years in St. Louis. But the actual production differs -- as a Cardinal, he hit all of .262/.327/.451, a 106 OPS+ that's about the same as Mitch Moreland or Derek Dietrich. It's not just 'bad luck,' either. There's something in his swing that appears to be causing the under-performance.

If that explains why he didn't get a big long-term deal, it also explains why the Braves found this option so appealing. While Ronald Acuña Jr. is a true superstar, none of Ender Inciarte, Nick Markakis, or Adam Duvall can be considered true everyday players at this point, and Austin Riley might see more time at third base than in the outfield. Atlanta needed a bat, and Ozuna does at least have the track record of a spectacular 2017 (37 homers, 144 OPS+) and the appealing hard-hit skills. This buys the Braves a win or two, and in a tight NL East, every win or two matters.

Jan. 14, 2020: 3B Josh Donaldson signs with Twins
Four years, $84 million, with an $8 million buyout of a 2024 team option

The 2019 Twins set the all-time record for homers, and they've spent the winter being unable to import the top-flight pitching they really needed, so their answer to that is: More dingers. Thirty-seven of them, in fact, brought to Minnesota by Donaldson, who just hit .259/.379/.521 for the Braves and has been the second-most valuable position player in the game (behind only Mike Trout) since his 2013 breakout with the A's. After a 2018 marred by shoulder and calf injuries, Donaldson answered any health questions and then some by getting into 155 games for the Braves and posting what was almost exactly an "average" Donaldson line, with the understanding that his average is anyone else's excellent.

While he did turn 34 in December, and those 2018 injuries aren't too far in his rear-view mirror, there's nothing to indicate that he's begun any decline phase. His hard-hit rate was in the 97th percentile in 2019; his walk rate was nearly a career-high; even his defense rated outstandingly, as his +8 Outs Above Average placed him behind only Nolan Arenado and Matt Chapman at third base.

While he might not still be playing third base four -- or five, if the option is picked up -- years from now, that's what first base and the designated hitter are for. In the meantime, what this does is allow the Twins to shift Miguel Sanó across the diamond to first base, upgrading the fielding on the left side, the offense on the right side, and the positional flexibility, since Marwin Gonzalez is now freed up to be the utility player he was always meant to be.

The Twins can now boast Donaldson, Sanó, Nelson Cruz, Eddie Rosario, Max Kepler, Jorge Polanco, and Mitch Garver in their lineup, plus Luis Arraez to add some contact ability and Byron Buxton to add speed and sometimes power, if and when he's healthy. You think you saw some offense last year? Just wait.

Jan. 12, 2020: 3B Todd Frazier signs with Rangers
One year, $3.5 million, with a $1.5 million buyout of a 2021 team option

After eight seasons with Adrián Beltré at the hot corner, the 2019 Rangers tried to get by at third with a group comprised of Asdrúbal Cabrera, Nick Solak, Logan Forsythe, and Isiah Kiner-Falefa. It didn't work out terribly well, as Texas third basemen were tied for the second-weakest offensive production in the game -- a mere .243/.310/.389 -- and so the Rangers understandably attempted to woo Anthony Rendon and/or Josh Donaldson or try to extract Nolan Arenado from the Rockies. Rendon went to the Angels, and they apparently don't seem confident that they'll land Donaldson or Arenado, so in an attempt to at least have a competent option at the position, they've turned to Frazier.

Frazier, 34 in February, was once known as one of baseball's better power bats back when he popped 131 homers from 2014-17. But he's not really that player anymore, and he's settled in now as more of a league-average bat who won't do much in terms of batting average or OBP but can still put one out of the park every now and then; in his two years with the Mets, he had an exactly average 100 OPS+. He's still a capable if not spectacular defender at third, and if the Rangers do still get a Donaldson or an Arenado, well, there's nothing wrong with adding a 3B/1B/DH bench bat who is better against lefties than righties. If they don't, Frazier isn't the long-term answer here, but he's decent enough for now, and that alone is an upgrade.

Jan. 12, 2020: P Alex Wood signs with Dodgers
One year, $4 million, with incentives that could be worth up to $10 million

If this fit seems familiar, it's because Wood spent parts of four seasons with the Dodgers, getting into 86 games with the club -- plus 14 more in the postseason -- before appearing in just seven forgettable games in an injury-plagued 2019 with the Reds. Health has been a recurring theme for Wood, who has missed time in each of the last four seasons due to one malady or another, but when he's healthy, he's generally been effective, particularly when he threw 152 1/3 innings of 2.72 ERA ball in 2017 while making the All-Star team. He only just turned 29 this past weekend, and he's got experience not only with the Dodgers but out of the bullpen as well, so a one-year deal for limited salary is a no-brainer for the Dodgers. (Wood has been working with Driveline Baseball this winter and presumably will enter the season healthy.)

The question, really, is what Wood's role might be, and if he'd have had a better chance at a more guaranteed spot on a more pitching-needy contender like the Twins or Angels. The top of the Dodgers rotation is set with Walker Buehler, Clayton Kershaw and Kenta Maeda, and Jimmy Nelson, Dustin May, Tony Gonsolin, Ross Stripling, and now Wood are all in the mix to take the innings left by Hyun-Jin Ryu, and they may still not be done. Perhaps the answer there is "you have to assume that Kershaw will miss time and these problems will always sort themselves out," because they always tend to. Presumably Wood enjoyed his time in Los Angeles, so this adds further depth to a Dodger pitching staff that never seems to be short on it.

Jan. 8, 2020: Cardinals trade 1B/DH José Martínez and OF Randy Arozarena to Rays for prospects
Cardinals receive P Matthew Liberatore and C Edgardo Rodriguez; teams also swap 2020 Competitive Balance Draft picks

We cannot stress enough how long it's been destined that Martínez was going to be headed to Tampa Bay someday. It's a joke we've been making for years.

That's because, for all of the hitting hype he earned with his breakout .309/.379/.518 season in 2017, it's been extremely clear that Martínez is incapable of playing the outfield (minus-20 Outs Above Average over the last three seasons as an outfielder) and the acquisition of Paul Goldschmidt meant there was never going to be a path to first-base playing time in St. Louis. In Tampa Bay, he can DH and play first base, potentially forming an interesting platoon with lefty import Yoshitomo Tsutsugo, another power bat with a defensive profile that is best described as "hitter." While Martínez has been slightly above-average against righties in his career, he's been spectacular against lefties, posting a .331/.405/.570 mark against them.

Arozarena, meanwhile, has a much clearer path to playing time in Tampa Bay, since the Rays really only had Kevin Kiermaier, Austin Meadows and Hunter Renfroe as regular outfielders. He showed elite speed -- 96th percentile in sprint speed, actually -- in a brief look in 2019 in the bigs, but had hit .344/.431/.571 in some admittedly high-offense environments in the Minors. As MLB Pipeline wrote, "while he currently profiles as more of bench outfielder, Arozarena also possesses more untapped potential than most players entering their age-25 season." The swap of picks also benefits the Rays, as they move up nearly 30 spots.

As for the Cardinals, this is about simplifying their roster -- Martínez had no role there, and they have more outfielders than they know what to do with -- while adding Liberatore, the 16th overall pick in the 2018 Draft and one currently ranked as baseball's No. 41 overall prospect. When you can swap some otherwise spare parts (Arozarena isn't as highly regarded as, say, Dylan Carlson) for a pitching prospect like that, you do it, so this seems a win/win for both teams. That said, the Cardinals had some pretty serious offensive issues in 2019, and this does nothing to resolve that, and might actually hurt it, depending on how you feel about Martínez. While every St. Louis fan likes to think that this means Liberatore is headed to Colorado in a Nolan Arenado deal, it seems more likely that this just alleviates the outfield crunch enough to bring back Marcell Ozuna. The offense, as currently situated, isn't good enough.

This browser does not support the video element.

Jan. 7, 2020: C Robinson Chirinos signs with Rangers
One year, $5.75 million, with a $1 million buyout of a 2021 team option

The Rangers had baseball's weakest catching situation in 2019, coming in at minus-3.5 Wins Above Replacement, thanks in part to a hilarious .203/.251/.301 batting line, and that might undersell it; it was one of the weakest catcher hitting seasons, well, ever. Now, it's perfectly fair to point out that the well-respected Jeff Mathis brings qualities that can't be accurately captured by any number, and that's fine, but you also have to point out that he had an OPS+ of 11 (.158/.209/.224), and that's simply not going to cut it.

Yes, Chirinos will be 36 in June. No, he's not a well-regarded pitch framer. But he's been a league-average hitter pretty much every year (105 OPS+ with 17 homers in 2019, 102 OPS+ career), and he's already had a successful six-year stint with the Rangers from 2013-18. A year ago, we found it somewhat surprising that the Rangers had declined Chirinos' $4.5 million option for 2019, choosing to bring in Mathis instead. It didn't work out, clearly, and now they're rectifying that mistake. Chirinos isn't a long-term solution, obviously. But he's average, and competent, and good lord is that a nice step up. Mathis remains, as he's basically the perfect backup catcher.

Jan. 7, 2020: P Jimmy Nelson signs with Dodgers
One year, $1.25 million, with incentives that could reach $13 million over two years

Nelson has pitched all of 22 innings with a 6.95 ERA over the last two seasons, so if you're looking for the signing that will soothe the feelings of Dodgers fans over a disappointing winter, well, this isn't it. There are extenuating circumstances, of course; Nelson was having a breakout 2017 before injuring his shoulder diving into a base late in the season, causing him to miss all of 2018 and part of 2019. His 2019 was actually split into two parts, a dreadful June (14 runs in 14 innings) and a more promising September (four earned runs in eight innings). The results really mattered less than the process at that point, though, and he added two ticks (from 91.7 mph to 93.7 mph) on his fastball in that time -- albeit out of the bullpen.

Obviously, this is entirely about health, and that must have concerned the Brewers enough that they chose to non-tender him rather than pay him a projected $3.7 million arbitration award. There's almost no downside to this for the Dodgers, of course; the money is nothing to them, and even if he performs poorly, they have enough of a cushion over the rest of their division to deal with it. So taken by itself: Yes, of course you risk a few million to see if you get the 2017 Nelson again, without question. Taken as part of a bigger picture: Well, this certainly isn't Gerrit Cole, is it?

Jan. 7 2020: P Steve Cishek signs with White Sox
One year, $5.25 million, with $750,000 buyout of 2021 option

We still don't know how good the White Sox will be, but they've certainly been busy. Chicago had already imported Yasmani Grandal, Dallas Keuchel, Edwin Encarnacion, Gio Gonzalez and Nomar Mazara, while bringing back José Abreu and signing Luis Robert to an extension, and now they've added Cishek, who has quietly been one of the better relievers in baseball for a decade now. Cishek owns a 2.69 career ERA in 572 games, in large part because he's excellent at preventing loud contact -- his 26% hard-hit rate in 2019 was in the 99th percentile. He's also deadly against righty batters, who have a mere .199/.265/.288 line against him in his career. Pair him with Alex Colomé, Aaron Bummer, Evan Marshall, Kelvin Herrera and Jace Fry, and the Sox might have something going here.

Jan. 6, 2020: OF Shogo Akiyama signs with Reds
Three years, $21 million

In 2013, Shin-Soo Choo's outstanding season, his lone one in Cincinnati, gave the Reds elite center-field production, the third best in baseball that year, and the team won 90 games and made the playoffs. But Choo departed for Texas following the season, and for the past six seasons, center field by the Ohio River has been an endless problem, coming in as the second-weakest center-field group, and the club hasn't had a winning season since. Most of that was waiting on Billy Hamilton to hit, which he never did, and rookie Nick Senzel's debut season was up and down, so now the Reds turn to Akiyama, a five-time All-Star in Japan.

Akiyama, 32 in April, is regarded as a strong defender with very good on-base skills, plus he's hit 69 home runs over the last three seasons. At FanGraphs, some comparables that came up were Brett Gardner and Jason Heyward, and you'll absolutely take that for a small contract, even if it's not clear just how many of those seasons you'll get. Besides, even if he's only "average," that's a big step up for the Reds in center over what they've had. This is a nice fit, and it makes the Reds the final Major League team to have a Japanese player.

More interestingly, perhaps, is what this does to the rest of the Reds roster. It's not at all difficult to see the quartet of Akiyama, Jesse Winker, Senzel and Aristides Aquino all finding several hundred plate appearances between them, because exactly zero of them are established Major Leaguers right now. But might this push Senzel to a multipositional role, given his infield history? Does he get some time at shortstop, given that only Freddy Galvis is there right now? Could he be an interstate trade piece in a long-rumored deal for Francisco Lindor? Signing Akiyama probably makes the team a win or two better, and that's important. It just seems like this might not be the end of the story.

Jan. 6, 2020: 1B Eric Thames and P Daniel Hudson sign with Nationals
One year, $4 million for Thames; two years, $11 million for Hudson

Just the other day, when we wrote below about the Nationals infield, we described it as "a group in desperate need of a lefty bat at first," and now here comes Thames to be exactly that bat. He's the fifth different veteran catcher/infielder type to come to or return to Washington, D.C. -- Howie Kendrick, Yan Gomes, and Asdrúbal Cabrera have come back, and Thames and Starlin Castro have joined up, and that doesn't even count the possibility that Ryan Zimmerman comes back for another ride -- and while all the mid-level veterans in the world won't replace Anthony Rendon, the Nationals at least have a lot of options now. Thames is coming off three good years for Milwaukee (he posted a 118 OPS+ and 72 homers for the Brewers) and even though he very much can't hit lefties, that's fine. Kendrick can, and this keeps Kendrick from having to play every day. This is a tremendous fit.

As for Hudson, this is a bit of a reward for last year's playoff heroics and a fitting capper to what's been a wild few years for him. Since a long tenure in Arizona ended following 2016, he's signed with the Pirates, been traded to the Rays, released by the Rays, signed by the Dodgers, signed by the Angels, released by the Angels, signed by the Blue Jays, traded to the Nationals and eventually got the final out of the World Series. That's ... a lot, and there's nothing terribly different about any of his underlying metrics in that time. He wasn't as bad as the 5.22 ERA he had in 2016, and he's not as good as the 2.47 ERA he had in 2019. Mid-level relievers have a lot of outcomes, is the point. Even if Hudson settles in as "comfortably solid," a three-headed veteran relief trio of Hudson / Sean Doolittle / Will Harris, with possibly the young Tanner Rainey harnessing his incredible talent, it's a lot better than the relief situation the Nats had last year.

Jan. 6, 2020: SS José Iglesias signs with Orioles
One year, $3 million, with a team option for 2021

Last year, and it's OK if you didn't know this, the primary Oriole shortstop was ... Rule 5 Draft pick Richie Martin. He didn't hit much at all (.208/.260/.322, a 54 OPS+), or field well (minus-8 DRS), and this really isn't about Martin, because going from "not being protected on the 40-man roster" to "Major League starting shortstop" is a pretty unfair ask for anyone. That said, if the O's want to avoid losing 108 games again, they need to do a little better than that, and what appears to be a relatively small one-year deal for Iglesias is actually a pretty nice upgrade. No, he's not going to hit much either, though he's been in the 85-ish OPS+ over the last two years and in his career, but more importantly, he's long been considered to be a strong defensive shortstop.

That matters for every team. It especially matters for a Baltimore team that had baseball's lowest strikeout rate in 2019 and doesn't look likely to change that very much in 2020. That's a ton of balls in play. Better to have a quality shortstop to handle them, and even Iglesias' low-impact bat is a step up here, too.

Jan. 4, 2020: IF Starlin Castro and IF Asdrúbal Cabrera sign with Nationals
Two years, $12.5 million for Castro; one year, $2.5 million for Cabrera

The Nats lost Anthony Rendon to the Angels, haven't appeared terribly motivated to bring back Matt Adams or Brian Dozier and haven't yet struck a deal to retain franchise legend Ryan Zimmerman, all of which is to say that there's only so long you can wait on Josh Donaldson before it's time to start adding some infielders to join Trea Turner, Howie Kendrick and possibly prospect Carter Kieboom.

Neither Castro nor Cabrera are Rendon, nor should they be expected to be. Castro is somehow still in his twenties (he turns 30 in March), and he's settled into a career of being a league-average hitter who plays every single day -- since 2010, only five hitters have taken more plate appearances. But his 2019 season was somewhat bizarre, because his .608 OPS in the first half made him very legitimately one of the weakest hitters in baseball, before his .892 second-half mark made him one of the 45 best. There's all sorts of evidence that he hit the ball in the air more and very little evidence this is somehow the "new normal" for him; until proven otherwise, he's a competent veteran second baseman, no more or less.

Cabrera returns for his third stint in Washington -- he was briefly there in 2014, and returned last August after Texas released him -- and clearly both sides enjoyed the .323/.404/.565 he posted in 38 games for the Nationals down the stretch. Then again, the simple facts that Texas did in fact cut him free and that he's signing for a mere $2.5 million show that he's really intended to be a somewhat older version of Castro, a 2B/3B veteran who is best suited off the bench.

That's fine for what it is, but as currently situated, the Nationals' infield looks like Kendrick at first, Castro at second, Turner at shortstop and Cabrera at third base, with Kieboom pushing for time and or moving Castro/Cabrera around as needed. That's a group in desperate need of a lefty bat at first, maybe Adams, because Kendrick doesn't really play every day. It's not entirely clear where Zimmerman fits into that. It still could badly use Donaldson, and these moves reportedly don't shut the door on that idea. But if he goes elsewhere, at least the Nationals have options.

This browser does not support the video element.

Jan. 2, 2020: C Jason Castro signs with Angels
One year, $6.85 million

The Angels finally have a catcher, and we don't mean that with any hyperbole behind it, because they almost literally did not have a catcher. (Five catchers saw time for the Angels in 2019; none of Jonathan Lucroy, Dustin Garneau, or Kevan Smith are still with the organization, Max Stassi is recovering from hip surgery that may leave him unavailable early, and Anthony Bemboom, acquired in July, had 51 plate appearances for the Angels as a 29-year-old rookie. It was one of the weakest catching situations in the game.) Since they didn't sign Yasmani Grandal, it always seemed clear that they'd get a veteran on a short-term deal from the Castro / Robinson Chirinos / Martin Maldonado / Travis d'Arnaud / etc. group, and the backstop wheel has landed on Castro, who had three very up-and-down seasons with Minnesota.

Castro, 33 in June, is ... fine. That's not intended to be a negative, because "fine" is a big step up for the Angels in their current situation. He's always had a little pop, with six double-digit homer seasons on his resume -- he hit 13 in only 275 plate appearances for the Twins in 2019 -- and he generally is considered a slightly above-average pitch framer. He's not a game-changer, and he's not going to single-handedy push the Angels to the top of a division they're still pretty far away from being at the top of. But he desperately fills a need, and so long as he's healthy (which he's generally been, other than a knee injury which cost him most of 2018), he's likely to do it at a competent or better level. We always knew the Angels would get a veteran backstop. It probably wasn't going to matter terribly much which one. Castro is the one. He'll do fine.

Jan. 2, 2020: P Will Harris signs with Nationals
Three years, $24 million

If you can't beat 'em, join 'em, apparently; we might also wonder if Harris is going to get the second-largest standing ovation on Opening Day in Washington behind only Howie Kendrick, to whom Harris infamously allowed a go-ahead home run in Game 7 of the World Series. That he'll always be remembered for that is somewhat unfair; it wasn't a bad pitch, Kendrick didn't exactly hit it hard, and Harris has been one of the most underappreciated relievers in the game for a number of years now. In five years with Houston, Harris posted a 2.36 ERA, which was third-best -- behind only Josh Hader and Aroldis Chapman -- of any regular reliever in that span.

Now, he's not quite as good as the 1.50 ERA he posted in 2019, and three-year deals for relievers who are about to turn 36 (as he will in August) are A) nearly without precedent and B) rarely going to end well. But Harris has generally been healthy, and his cutter/curve combination means he's not entirely dependent on high-end velocity, which he's never really had in the first place anyway. Mostly, this is about how ineffective -- historically poor at times -- the Washington bullpen was in 2019, and how it currently looked even weaker than that, since Daniel Hudson remains an unsigned free agent. Harris was pretty clearly the best reliever remaining, and had been one of the three or four best (of what was an admittedly weak reliever class).

It was almost unfathomable for the Nats to go into 2020 with Sean Doolittle, hopes that Tanner Rainey could throw strikes, and not terribly much else. You don't want to have to be in a position to give an older reliever three years, really. You don't want to be in a position where failing to do so is a big problem, either.

Dec. 31, 2019: P Homer Bailey and P Rich Hill sign with Twins
One year, $7 million for Bailey; one year, $3 million for Hill

Through most of the winter, the Twins' stated goal to import top-quality starting pitching had been a disappointment, as the sum of their work had been only to bring back Jake Odorizzi and Michael Pineda -- losing Kyle Gibson and Martin Perez -- while being unable to add Madison Bumgarner, Zack Wheeler, or anyone else. With the top of the starting pitching free agency class gone, the Twins pivoted to a pair of very different veteran starters in Bailey and Hill.

There was a time, back in 2013 or so, when Bailey was considered one of the more promising young pitchers in the game, which is why the Reds gave him a six-year, $105 million extension during the spring of 2014. It extremely did not work out, because after an OK 2014, the next four seasons were an injury-plagued mess -- Bailey had a 6.25 ERA in 46 games between 2015-'18, somehow posting a 1-14 record in 2018 -- which is why throwing 163 1/3 innings of something like league-average ball in 2019 (4.57 ERA) counted as a nice comeback. At 34 in May, he's a back-end depth starter at best these days, though there's at least something of interest to the split-finger fastball he threw a career-high 26% of the time,racking up 74 strikeouts.

If Bailey is potentially quantity over quality -- and even the first part of that is questionable -- Hill is exactly the opposite. He's rarely healthy, and he's not currently healthy, as he'll be out through at least June due to elbow surgery. In the four seasons since he rebooted his career, he's thrown only 437 2/3 innings -- that's about 109 per season -- and been on the injured list at least nine times. But when he's available, they're good innings. Over those four seasons, his 3.00 ERA is sixth-best among pitchers with 400 innings, and his 29% strikeout rate is ninth. He'll be 40 in March, and he's not going to be the type of pitcher you ride to the playoffs; again, you already know he's missing half the season. That said, if the Twins get to October, this is entirely about the handful of very good innings you expect to get. For a mere $3 million plus incentives, that's a gamble any contending team should have been interested in.

Now, is the Twins rotation with Bailey/Hill better than the version with Perez/Gibson? It's not a certainty, at least. It definitely wasn't the plan when the season ended. It's why the continued pursuit of Josh Donaldson is so important.

This browser does not support the video element.

Dec. 28, 2019: OF Corey Dickerson and C Francisco Cervelli sign with Marlins
Two years, $17.5 million for Dickerson; one year, $2 million for Cervelli

Cervelli's deal was actually reported a few days before Christmas, but we're going to lump these two together because these deals are both working towards the same point, which is that the 2019 Miami offense was simply dreadful and any useful veteran they can add is going to be an upgrade. Last year's Marlins scored the second-fewest runs, hit the fewest homers, and had the lowest slugging percentage. Part of that was likely due to the incredibly pitcher-friendly ballpark they call home -- they are moving the fences in for 2020 -- but it's mostly that the talent wasn't there, as 3B/OF Brian Anderson was the lone Marlin to qualify for the batting average title and do it with above-average performance.

If he's healthy, Cervelli (career OPS+ of 101) ought to be a capable veteran backup to Jorge Alfaro, but it's Dickerson who is really the most interesting here. As MLB.com's Richard Justice wrote earlier this month, Dickerson is one of those "players that get virtually no attention, and then sometime next summer, we look back and wonder why so many clubs missed on them."

That's fair, because in the six years since his first full season in 2014, Dickerson has been an above-average hitter six times. His cumulative .287/.329/.508 (121 OPS+) since '14 is roughly the same as Yoenis Cespedes (.278/.330/.510), and he even won a Gold Glove in 2018 thanks to some pretty impressive Statcast metrics. (See the chart below.) If there's an issue here, it's that his 2019 was a mess, as he got into only 78 games thanks to injuries to his shoulder and foot. Still, he's one of those guys who's always more productive than you think he is; he's not only going to be the starting left fielder for Miami, he might well be the best hitter in their lineup.

Dec. 25, 2019: DH Edwin Encarnación signs with White Sox
One year, $12 million, with a 2021 team option

In 2019, White Sox designated hitters -- mostly Yonder Alonso and José Abreu, though 14 batters started there -- hit all of .208/.285/.362, the weakest DH mark of any American League club, as well as one of the nine weakest marks of the decade. It somehow wasn’t even the biggest problem spot on the roster (that was right field), yet it was clearly an area worth upgrading, and they’ve done exactly that by adding Encarnación, who has been a consistently excellent hitter since his 2012 breakout. In the eight seasons since, he’s mashed 297 homers, the most in baseball, to go with a 138 OPS+.

Encarnación is, of course, turning 37 in January, and his 2019 was interrupted by a fractured right wrist. But through it all, he continued to do the one thing he does so well, which is hit; he had a .531 slugging for the Mariners, and after being traded to the Yankees in June, he slugged .531 again. As we said above, Encarnación has had a 138 OPS+ since 2012, and in '19, he had a 132, along with his eighth straight season of at least 32 homers. He strikes out more than he used to, and you don’t really want to play him at first base 57 times, as he did in '19, but you know what you’re getting here: an above-average bat at no long-term risk since he’s on a one-year deal.

If there’s a downside, it’s what this does to the flexibility of a White Sox lineup that already wasn’t strong defensively. This means more outfield time for the defensively limited Eloy Jiménez, though at just 23, you can probably live with that for another year. It totally blocks catcher/DH Zack Collins, and it makes it more difficult for others with questionable defensive value like Abreu and Nomar Mazara to get DH time. Then again, those are minor problems, and this is a short-term deal. Last year’s White Sox had too many lineup holes around Tim Anderson, Yoán Moncada, Abreu and eventually Jiménez, and the sixth-fewest home runs in baseball. Yasmani Grandal will help with that, and now, so will Encarnación.

It’s not at all hard to see how another up-and-coming AL Central team succeeded last year by signing an aging DH slugger with the Twins and Nelson Cruz; the White Sox will hope to replicate the formula.

Dec. 24, 2019: P Dellin Betances signs with Mets
One year, $10.5 million, with a 2021 player option ($3 million buyout)

One year and $10 million seems to be the going rate for recently dominant relievers coming off lost 2019 seasons, as that’s what Blake Treinen got from the Dodgers, and that’s basically what Betances gets for moving from the Bronx to Queens.

From 2014-18, Betances was in the conversation for being the most valuable reliever in baseball, at least through a Wins Above Replacement prism, as he was ever so slightly less dominant than Aroldis Chapman, though he did it over more innings. (Only Josh Hader, Chapman and Craig Kimbrel had higher strikeout rates than his 40.3%.) It’s difficult in a short space to really explain just how elite Betances was at his best, though this list begins to get to it.

Then, of course, 2019 happened: Betances missed almost the entire season with right shoulder and lat issues, then came back to pitch to all of two batters in September -- striking out both -- before partially tearing his left Achilles. That injury didn’t require surgery, and he’s reportedly expected to be ready to have a full and regular Spring Training. That’s why he’s getting one year (plus the option) and not several, and if you saw the Mets' bullpen last year at all, you understand why they’re in perfect position to take the risk on his health. A brief list of the highest bullpen ERAs in Mets history:

2019: 4.99 ERA
2018: 4.96 ERA
2017: 4.92 ERA
1962: 4.76 ERA

So yes, that’s “the past three seasons and then one of the agreed-upon worst teams in the history of baseball,” and now you see why the Mets needed to add an elite-level talent in Betances, even if there’s risk he can’t perform. If you squint really hard and hope the 2020 Mets have the best versions of Betances, Edwin Díaz, Jeurys Familia, Seth Lugo, Justin Wilson and Robert Gsellman, plus the possibility that Michael Wacha or Steven Matz ends up in relief, well, that could be a strong bullpen. There’s no way that will happen for everyone, of course, but the more risks on talent, the better. They simply couldn’t return last year’s crew and hope for better.

This browser does not support the video element.

Dec. 24, 2019: OF Kole Calhoun signs with D-backs
Two years, $14 million, with a $2 million buyout of a 2022 team option

Some fits feel so obvious that it’s difficult to imagine them not happening, and while this isn’t exactly “Gerrit Cole is definitely going to the Yankees,” the D-backs had a huge hole in right field, and Calhoun was born and raised in Buckeye, Ariz., just west of Phoenix, before attending Arizona State University. This has been a clear pairing for a while.

It’s not like Calhoun has to be a star to be an improvement, either. In 2019, Arizona right fielders (mostly Adam Jones) hit all of .248/.308/.381, the weakest in the NL and third-worst in the Majors. Over the last six seasons as the Angels’ primary right fielder, Calhoun posted a slightly above-average 105 OPS+, though it didn’t come with consistency; over that time, he ranged from very good (123 OPS+ in 2014) to poor (79 OPS+ in 2018), and the career-high 33 homers he just hit are probably more due to the ball conditions that set homer records across baseball than anything Calhoun did.

Still, average offense plus what now looks like average defense has made Calhoun a two-to-three-win player in each year of his career, setting aside that disastrous 2018. That’s probably a two-win upgrade over what they got out of right last year, and for a team that just went 85-77 before adding Madison Bumgarner, every extra win at this point is a pretty big deal.

This browser does not support the video element.

Dec. 23, 2019: 3B/1B Travis Shaw signs with Blue Jays
One year, $4 million

A few days after Milwaukee signed Justin Smoak away from Toronto to play first base, the Blue Jays signed Shaw away from the Brewers to play first base. This one’s a little different, though, because while you mostly know what you’re going to get out of Smoak, you absolutely don’t know what you’re getting out of Shaw. Is it the 2017-18 version who smashed 63 homers with a 120 OPS+ and good defense at third? Or is it the 2019 version who totally collapsed, hitting only .157/.281/.270 (45 OPS+) and had to spend time at Triple-A to try to find himself?

To his credit, Shaw did mash in the Minors -- a 1.023 OPS in 174 plate appearances -- but he didn’t really belong there, and that only made his struggles more confusing, because it made it harder to blame them on an earlier wrist injury. Besides, when he returned to Milwaukee on Aug. 31, he looked lost again, hitting only .121/.310/.212 in 42 plate appearances. That’s why he managed only a small one-year deal with Toronto, and with Vladimir Guerrero Jr. clearly owning the hot corner, Shaw will have to play first base, and he’ll have to hit.

There’s absolutely nothing wrong with taking a one-year gamble on a player who was so recently strong. But with a remade starting rotation, most notably a four-year deal to the talented but injury-prone Hyun-Jin Ryu, the Jays might have needed more certainty at this spot. You don’t sign the nearly-33-year-old Ryu for two or three or four years down the road. You sign him if you think you can contend right now, and they’ll have to do that around the tremendous risk of getting little from first base if Shaw can’t figure things out.

Dec. 22, 2019: P Hyun-Jin Ryu agrees with Blue Jays
Four years, $80 million

Over the final dozen games of the 2019 season, the Toronto starting rotation consisted of Clay Buchholz (three starts), Jacob Waguespack (two), Wilmer Font (two), T.J. Zeuch (two), Thomas Pannone, Trent Thornton and Ryan Tepera (one apiece). It … wasn’t good. When the 2020 season starts, the Jays' rotation ought to include Ryu, Tanner Roark, Chase Anderson, Shun Yamaguchi, Matt Shoemaker and maybe Thornton or Anthony Kay, all while waiting for No. 10 overall prospect Nate Pearson to arrive.

Whether that group is good enough is an open question, but it’s without a doubt immeasurably better and deeper than the injury-plagued emergency crew that finished 2019, and that’s the entire point. The Blue Jays didn’t have a Major League-caliber rotation to support an exciting young infield full of sons of former stars; at points, they barely had a Major League-caliber starter. Now they have several, and as we’ve said at various points this winter, all they needed was a top-caliber arm to front their collection of threes and fours. Now they have that in Ryu, who finished second in the NL Cy Young Award voting and over the last two years has a 2.21 ERA, second lowest only behind Jacob deGrom among pitchers with 250 innings thrown.

The risk here is tremendous, of course. Over the past five seasons (his age-28 through 32 seasons), Ryu has thrown only 396 1/3 innings, missing nearly all of 2015 and 2016. You might expect a durable top starter like Gerrit Cole or deGrom to throw 400 innings over just two seasons; it’s a fair question to wonder if Ryu will throw 400 for the Jays over the next four, as they will be his age-33 through 36 seasons. Even in his outstanding 2019, he wasn’t free and clear, missing time with neck and groin problems and allowing three or more earned runs five times in his final seven starts after having done so just once in his first 22 -- and even that was at Coors Field.

There’s a non-zero chance this one explodes. You can say that for every pitcher, of course, but especially for this one. When Ryu lands on the injured list -- and it’s very much a when, not an if -- it should be an expectation, not a surprise. And yet: the Jays have Vladimir Guerrero Jr., Bo Bichette, Lourdes Gurriel and Cavan Biggio. They have Pearson coming. The Yankees look unbeatable, but the Red Sox are … well, who knows what they’re doing. If not now, then never, and Ryu was the final top-level starter available. This one is full of risk but this is a team that ought to be taking risks.

Dec. 21, 2019: P Dallas Keuchel signs with White Sox
Three years, $55.5 million, with fourth-year option

After making an early splash by signing Yasmani Grandal, the White Sox had been unable to make the badly needed pitching upgrade they'd needed, watching the options fall off the board. But over the last few days that finally changed, as they added a pair of steady veteran lefties in Gio Gonzalez and now Keuchel, who had tossed at least 145 innings for six seasons in a row before missing the first half of 2019 waiting out contract offers.

These days, Keuchel isn't the Cy Young Award winner he was way back in 2015, and that difference of opinion in value appeared to be the primary driver of his long absence last winter. As we wrote in October, this version of Keuchel is more of a third or fourth starter, one with below-average velocity (88.3 mph) and strikeout rate (19%), which isn't really on trend in baseball these days. Still, a reliable starter to take the ball every fifth day and pile up ground balls -- his 60 percent ground-ball rate led all pitchers who had 100 innings this year -- was always going to merit a multiyear deal, and so this three-year deal with a vesting option makes sense for both sides, taking pressure off not only Lucas Giolito, but Michael Kopech, Dylan Cease and Reynaldo López.

The good news for Keuchel is that Grandal has consistently rated as an elite pitch framer, which should help all Chicago pitchers. The bad news is that shortstop Tim Anderson isn't considered a strong defensive shortstop and Gold Glove second baseman Yolmer Sánchez was non-tendered earlier this offseason, meaning it's not clear how strong the defense behind Keuchel will be. Still, the White Sox badly needed a veteran starter, and Keuchel badly needed a home on a contender. As a bonus: This prevents American League contenders in Minnesota and Anaheim from adding Keuchel themselves. They each had needs as large or larger than Chicago.

Dec. 21, 2019: 2B Jonathan Schoop and 1B C.J. Cron sign with Tigers
One year, $6.1 million for each

Only one team, the Royals, got less out of first and second base than the Tigers did in 2019 (.238/.289/.382), as Miguel Cabrera isn’t what he once was, and various combinations of Brandon Dixon, Gordon Beckham, Jeimer Candelario, Harold Castro, John Hicks and so on were forgettable. In their places, Detroit has imported the entire right side of Minnesota’s infield, though it may say something that the Twins didn’t try terribly hard to bring either one back. (Schoop had lost his job to rookie Luis Arráez, while Cron was non-tendered for the second winter in a row.)

So no, neither is a star, but identical one-year deals for a mere $6.1 million shouldn’t be expected to purchase star-level performance, either. What the Tigers are hopefully getting here is competence, something that was in too short of supply in the Motor City in 2019. Schoop had a league-average 102 OPS+, near his career mark of 98, with 23 homers. Cron had a similar 103 OPS+, just below his career mark of 110, with 25 homers. If that doesn’t sound exciting, realize that the 2019 Tiger with the highest OPS+ was Nicholas Castellanos, who was traded to the Cubs in July, and the one with the most homers was Dixon, who hit only 15 and was just designated for assignment to make roster room for these two.

It’s not exciting, but it’s not intended to be. It’s about adding reliable veterans to help make some improvements to a team that just lost 114 games, and it might be about having some interesting pieces to deal at the Trade Deadline. Both Cron and Schoop will start the year in Detroit; it will be a surprise if they each finish the year there.

Dec. 19, 2019: P Julio Teheran signs with Angels
One year, $9 million

If Angels fans are still hoping for the ace their rotation desperately needs, Teheran most definitely is not that. That said, they need competent starting depth -- no Angel pitcher made more than 18 starts or threw more than 102 1/3 innings in 2019 -- and Teheran has started 30 games or more for seven consecutive seasons. He's still young, too, turning 29 in January. That didn't prevent the Braves from leaving Teheran off the NLDS roster (he'd later join to replace the injured Chris Martin), and it didn't stop them from declining his $12 million 2020 option, in part because metrics like Fielding Independent Pitching have him as being below average (4.82 over the last three seasons; read that like ERA) and in part because his fastball velocity is doing this:

Now, all that said: This still makes sense for the Angels, because it's just for one year, and because a rotation of Griffin Canning, Andrew Heaney, Dylan Bundy and whatever you get out of Shohei Ohtani isn't going to cut it. Reliable innings, even if they're likely below-average ones, still have meaning to a team coming from this far back. Teheran's a fine fifth starter. Thing is, the Angels are going to have to sign Hyun-Jin Ryu or Dallas Keuchel or trade for David Price or some combination of all of it to get him into that spot.

Dec. 19, 2019: P Gio Gonzalez signs with White Sox
One year, $4.5 million, with a $500,000 buyout of a $7 million team option

Gonzalez was actually a White Sox Draft pick way back in 2004, going with the 38th overall pick 20 spots after Chicago took Josh Fields (the third baseman, not the pitcher). He never pitched for the Sox, who traded him away twice (in 2005 for Jim Thome and in 2008 for Nick Swisher), and in 12 Major League seasons, Gonzalez has become a steady lefty starter capable of a few big seasons (2010-12, '17). At 34 years old, he's more of a mid-to-back-of-the-rotation type, but he threw at least 145 innings each year from 2010-18, and he probably would have done so in '19 had he not started the year on a Minor League deal with the Yankees.

He still has that big curveball, and Gonzalez is a perfectly reasonable addition to a rotation that can really rely upon only Lucas Giolito in 2020. But like with Julio Teheran and the Angels, the question isn't whether adding veteran depth is a bad idea -- it's not. The question is who gets added to the front of the rotation, with options ticking off the board.

Dec. 19, 2019: 3B Maikel Franco signs with Royals
One year, $2.95 million

In 2015, a 22-year-old Franco came up in May and mashed for the Phillies, posting a 130 OPS+ before a fractured left wrist all but ended his rookie season. The Phillies gave him the next four seasons as their starting third baseman to figure it out, but it just hasn't happened, as he's posted a cumulative 89 OPS+ thanks to a mere .299 on-base percentage and not nearly enough power or defense to make up for it -- though he does make better-than-average contact. He was optioned to Triple-A in August, non-tendered in December, and now, still only 27 years old, he's headed to Kansas City on a one-year deal for not much money. It's a steep fall for the former top prospect, but with Hunter Dozier likely moving to right field, Franco should get a shot at extended playing time at third for the Royals. Kansas City apparently chose him over veteran Travis Shaw, who was much better from 2017-18 (63 homers, 120 OPS+) but much worse in 2019 (7 homers, 45 OPS+).

Dec. 19, 2019: The Brewers add an entire infield
1B Justin Smoak signs for one year, $4 million, with a $1 million buyout of 2021 team option
2B/IF Eric Sogard signs for one year, $4.5 million
1B/3B Ryon Healy signs for one year, terms unknown

The Brewers have been busy this winter, previously adding Josh Lindblom, Avisaíl García, Brett Anderson, Eric Lauer, Omar Narváez and Luis Urías variously through trades and free agency, and now they've added three veteran infield bats in the span of about 24 hours. The influx was badly needed, because Mike Moustakas, Jesus Aguilar, Travis Shaw and Eric Thames have all departed, and because second baseman Keston Hiura was the only obvious starter at any position. Maybe Ryan Braun will get some time at first, and somehow shortstop time will get worked out between Urías and Orlando Arcia, but they clearly didn't have enough bodies.

Now, maybe, they do. Smoak never lived up to the billing that comes with being the No. 11 overall pick, as he was in 2008, but after five years of scuffling with the Mariners, he found success with the Blue Jays, hitting 117 homers -- including 38 in 2017 -- with an above-average 113 OPS+. (Yes, that includes a .237 batting average. It doesn't matter.) While he's a switch-hitter, he's long been better against righty pitching, making him something of a natural platoon partner with Braun. That said, he's replacing Thames, also a lefty, and one coming off a better season than Smoak. Thames was paid $1 million in lieu of picking up his $7.5 million option, so Milwaukee is taking a gamble that a small savings is worth the chance that Smoak isn't as good as Thames would be. They're relatively similar, though, so it's not that big of a deal.

Sogard was actually a Brewer not that long ago, but his Milwaukee career came to an end when he hit just .134/.241/.165 (12 OPS+) in 113 plate appearances in 2018; he was actually released by the organization twice that year. But in 2019, split between the Jays and Rays, Sogard hit .290/.353/.457 (116 OPS+) with a career-high 13 homers. That said, there's plenty of reason to be skeptical about that, because his hard-hit rate of 20% was in the third percentile -- that means 97% of hitters hit the ball harder -- and the average distance of his homers was the lowest of 269 players with 10 dingers. You don't get more or less credit for loud homers or soft ones, it just doesn't seem that replicable. Still, he can play competent defense at second third, which matters because Hiura is in the bigs entirely for his bat.

Healy, meanwhile, is something of a one-tool player. At his best, like when he was hitting 62 homers for the A's and Mariners from 2016-18, he's a powerful enough bat that you can look past his negative defensive value and below-average on-base skills. At his worst, like in 2019 when he dealt with spinal stenosis, he's more of a pinch-hitter, since he's nearly unplayable at third base and not strong at first. If he's healthy, though, he might be a great use of the new 26th roster spot every team will have.

Now for all this, are they actually better? One analyst indicates that the new-look Brewers are projected to be exactly the same as last year's team, just with about $25 million less going to payroll. If that opens them up for the third baseman or starting pitcher they still need -- Josh Donaldson or Hyun-Jin Ryu would look wonderful here -- then all this maneuvering will make some sense.

Dec. 17, 2019: P Kwang-Hyun Kim signs with Cardinals
Two years, $8 million

In 2019, the Cardinals had only two starts come from a left-handed pitcher, and those were both from Genesis Cabrera, who started on May 29 and June 4 before shifting to relief. Only Cleveland, which didn't have a lefty starter at all, made fewer, so in that sense it makes sense to add Kim to what looking like an all-righty rotation of Jack Flaherty, Dakota Hudson, Miles Mikolas, Adam Wainwright and potentially Carlos Martinez. Kim, 32 next July, was once posted to the Padres back in 2014, but couldn't come to an agreement. After undergoing Tommy John surgery in 2017, he returned -- as FanGraphs described -- with "a fifth starter/swingman look." That would seem to correlate with the relatively limited contract he received; as a scouting report from Lotte Giants analyst (and former FanGraphs writer) Sung Min Kim indicated last summer, the slider is the real weapon here.

It seems Kim may be a depth piece, possibly serving as a fifth starter if Martinez doesn't, or possibly going into the swingman role if and when one of the top five gets injured, _or_ allowing for a trade from rotation depth for the bat they still so badly need.

This browser does not support the video element.

Dec. 17, 2019: P Shun Yamaguchi signs with Blue Jays
Two years, $6 million

Yamaguchi has spent parts of 14 seasons in Japan, first for Yokohama and then Yomiuri, and now he'll head to Canada, becoming the third pitcher the Blue Jays have added along with Chase Anderson and Tanner Roark. Japanese baseball expert Jim Allen filed a scouting report on Yamaguchi earlier in December and noted that "on a pitch-per-pitch basis, his splitter ... was the most effective in NPB among pitchers with 80-plus innings." Interestingly, his career path is somewhat the opposite of many Major Leaguers, as he began in relief and didn't move to the rotation until his ninth season with Yokohama. After an off-field incident limited him to just 21 innings in 2017, he tossed 156 innings in 2018 and 181 more in 2019.

Assuming Yamaguchi earns a rotation spot, the Blue Jays rotation would likely include Anderson, Roark, Matt Shoemaker and Trent Thornton, at least to start. That's easily a deeper and more talented group than the one that the Jays endured this past season, though it still seems to be a collection of fourth starters without any real ace. Should they pull off a trade or a last-second signing of Hyun-Jin Ryu, as has been rumored, this could still look a lot different.

Dec. 16, 2019: P Wade Miley signs with Reds
Two years, $15 million, with a team option for 2022

Another year, another team for the well-traveled Miley, who will be joining his seventh team in the last seven seasons, though with a two-year deal he might finally get to stick around one place for a little while. After a poor 2017 with Baltimore (5.61 ERA and the most walks issued in baseball), Miley managed to score only a minor league deal with Milwaukee in February of '18, but armed with a new cutter he posted a shockingly strong 2.57 ERA for the Brewers. Moving on to Houston in '19, he was strong for five months (3.06 ERA through the end of August) before struggling badly in September.

With the Reds, Miley will join a rotation fronted by Luis Castillo, Sonny Gray, Trevor Bauer and Anthony DeSclafani, but perhaps more importantly, he'll rejoin Reds pitching coach Derek Johnson, who had the same job in Milwaukee for Miley's good 2018.

Dec. 16, 2019: OF Avisaíl García signs with Brewers
Two years, $20 million

You wouldn't think outfield would be the most obvious need for the Brewers, since they have Christian Yelich, Lorenzo Cain, Ryan Braun and Ben Gamel there on a roster that still has enormous holes at both corner infield spots. Then again, Braun is 36 years old, Cain isn't coming off a strong season, Yelich is coming off a fractured kneecap and these things almost always have a way of sorting themselves out. (This might also open up some extra time for Braun at first base.)

Garcia is coming off a one-year deal with Tampa Bay, and it was generally a successful one for both sides, as he hit 20 homers with a 111 OPS+ and capable defense in right, even spotting in center field for a dozen games. The total package was that of a league-average, two-win player, which is a useful piece to have. We'll just never be able to shake the feeling that there's more there there, because when Garcia made contact, he was as successful as MVP candidate DJ LeMahieu. The problem is what happens the rest of the time, as he doesn't walk enough and strikes out too much. That's probably unlikely to change as he nears his 29th birthday, but for a relatively small financial outlay, he'll add value to a contending Brewers team.

(Interestingly, Garcia turned down three-year deals, including from Milwaukee, in an attempt to bet on himself and return to free agency a year sooner.)

This browser does not support the video element.

Dec. 16, 2019: C Luke Maile signs with Pirates
One year, terms not disclosed

With Francisco Cervelli off to free agency and Elias Diaz non-tendered, the Pirates had serious need for a catcher to pair with Jacob Stallings. Maile had been non-tendered himself by Toronto, and it wasn't terribly hard to see why, as he's hit just .198/.252/.304 (51 OPS+) in parts of five seasons with the Rays and Jays. Stallings didn't hit terribly much in 2019 either (87 OPS+). But Diaz really didn't hit (61 OPS+) and he paired it with well-below-average framing metrics (minus-9 runs saved), so while the Pirates won't likely get much offense in '20 behind the plate, they should at least have better defense.

Dec. 15, 2019: P Madison Bumgarner signs with D-backs
Five years, $85 million

Over the last 12 months or so, the D-backs have bid farewell to Paul Goldschmidt, Patrick Corbin, A.J. Pollock and Zack Greinke, some of the biggest stars in franchise history. It's definitely felt like the end of one era and the beginning of another in the desert. So in an effort to further that, Arizona has gone out and ... signed one of the biggest stars in a different team's history to a five year deal. It's not the usual trajectory of these kinds of rebuilds, but then again the D-backs never really bottomed out; they won 82 games in 2018 and 85 games in '19.

That doesn't put them close to the Dodgers in the NL West, but it does put them squarely in the NL Wild Card race, it might make them the second-best team in the division, and now, thanks reportedly at least in some sort to his love of Phoenix / horses / hitting, it includes Bumgarner. He should be the first or second starter in an interesting rotation, one that includes Robbie Ray, Merrill Kelly, Mike Leake, Luke Weaver and Zac Gallen, though a Ray trade -- presumably one for a desperately-needed outfield bat -- remains in play. (It's possible that taking Bumgarner off the market helps increase Ray's trade value, too.)

The question, as always, is what Bumgarner is these days. Absolutely no one questions his postseason pedigree, but there's a few warning signs here. No one in baseball gave up more fly balls and line drives in 2019; his hard-hit rate jumped from 35% to 42%; his four-seam velocity is down to 91.4 mph; there are some concerns about how much pitching in the pitcher-friendly Oracle Park helped him; the projections aren't necessarily pretty. This is why, despite the difference in name value and reputation, Bumgarner got $33 million less than Zack Wheeler.

There's risk here, in that you wonder if an identical pitcher with a different name would have received the same deal. There's risk that if the D-backs can't come out of the stacked NL Wild Card grouping that Bumgarner's perceived greatest strength -- that October dominance -- can't even be accessed. But the D-backs, to their credit, have managed to reload without tearing it all down. This helps keep them in the conversation.

Dec. 15, 2019: Indians trade P Corey Kluber to Rangers for P Emmanuel Clase and OF Delino DeShields, Jr.

Consider this the early front-runner for the least-favorably-reviewed trade of the winter, because Cleveland traded two-time Cy Young winner Kluber, one of the greatest pitchers in franchise history, for an outfielder who can't hit and a 21-year-old reliever who struck out less than a batter per inning last year. It's more complicated than that, obviously, but the initial reaction to this one was clear: That's ... it?

Now, it's fair to point out a few things. Kluber wasn't particularly good in seven starts last year (5.80 ERA) before a comebacker fractured his arm; that, combined with an oblique injury suffered while rehabbing, meant he didn't pitch after May 1. His sinker velocity was down to 91.8 mph, a few ticks down from his peak. He'll be 34 in April, and it's not a slam dunk that he'll be productive when he's healthy.

And yet ... it wasn't that long ago that he was so, so good, finishing third in the AL Cy Young ballot in 2018. Between '14-18, Kluber had four Top-3 Cy finishes, posting a 2.85 ERA in 1,091 1/3 innings. He was in the conversation for "Best Pitcher in Baseball" for half a decade, and it's fair to say the Indians don't get as close to a title as they did in '16 without him. Regularly pitching on three days rest, he allowed seven runs in 34 1/3 innings. At first glance, this appears to be mostly about clearing his $17.5 million 2020 salary. For Texas, it's a risk clearly worth taking, as they've now completely rebuilt their rotation behind Lance Lynn and Mike Minor, adding Kluber, Kyle Gibson and Jordan Lyles.

DeShields is at best a fourth outfielder -- while he's fast and a good defender, he has a career 76 OPS+, striking out too much without any power -- but the key to this deal, for Cleveland, is going to be Clase, who throws a 100 mph cutting fastball that is somewhat unlike any other pitch in baseball. (Most pitches thrown that hard don't have this kind of movement.) It's not hard to see an arm like that turning into the next Kenley Jansen, and that would make this quite the deal -- it's fun to see him paired with James Karinchak in Cleveland. The problem is, Clase didn't dominate in the minors. In 37 2/3 innings in Double-A, he struck out a good-not-elite 39. In 23 1/3 innings in the Majors, he struck out a good-not-great 21.

Cleveland is a place with a reputation for improving pitchers, and you certainly want to take a gamble on a ready-now 21-year-old with that kind of arm. But he hasn't blown away pro hitters yet, and it basically has to work out, or else the Indians will be empty-handed from trading away a team legend. It's a lot of pressure for a 21-year-old reliever.

This browser does not support the video element.

Dec. 13, 2019: P Brett Anderson signs with Brewers
One year, $5 million

You might not have noticed it, but Anderson was quietly useful in 2019, throwing 176 innings with a 3.89 ERA -- basically a league-average performance, with a reminder that "average" is a good thing, not a bad thing. As usual, he didn't miss many bats (his 12% strikeout rate was the lowest of any qualified pitcher), and as usual, he survived with a ton of ground balls (his 54.5% grounder rate was third-highest). What wasn't usual was that he stayed healthy enough to do it, because it was the first time he'd thrown more than 80 innings since '15, and that was the first time he'd done it since '10.

That's why, as he nears his 32nd birthday, it's impossible to expect a reliable full season of starts. Then again, that's why he signed for a single year and five million dollars, because it's impossible to expect a reliable full season of starts. Then again, Milwaukee will take what they can get -- so far this winter, pitchers Jimmy Nelson, Jordan Lyles, Zach Davies, Gio Gonzalez, Chase Anderson and Junior Guerra have all departed, and that group threw 550 1/3 innings with a 3.73 ERA last year. They've added Josh Lindblom, Eric Lauer and Anderson, of course. They're still short on reliable innings.

Dec. 13, 2019: DH/OF Yoshitomo Tsutsugo signs with Rays
Two years, $12 million

Tsutsugo, a lefty swinger who turned 28 in November, has developed a reputation for power in parts of 10 seasons with Yokohama in Japan -- he's hit at least 22 homers six years in a row, including 44 in 2016 and 38 in '18. As FanGraphs wrote, "sources indicate that Tsutsugo averaged 92 mph off the bat in NPB last year, which would put him among the top 30 big leaguers by average exit velocity."

If the power is the obvious calling card here, the glove is the obvious limitation. He's "defensively limited to left field or DH," wrote FanGraphs, though the fit in a lefty-heavy Tampa Bay lineup isn't clear yet, with Hunter Renfroe and Austin Meadows in the outfield corners and Nate Lowe, Ji-Man Choi, Yandy Diaz and Brandon Lowe all in the picture at DH (as well at first base, a position Tsutsugo hasn't played since 2014; there's also a small possibility he could fit in at third). The Rays rarely seem to roll out the same lineup two days in a row, so these things tend to figure themselves out, and he reportedly wanted the Rays enough that he chose them over higher offers.

One study in the Athletic compared him to Choi and Brandon Belt, and scouts mentioned Kyle Schwarber as well. You get the idea: Lefty-swinging power bat with limited or negative defensive value. If the power plays, the rest won't matter so much.

Dec. 12, 2019: C Austin Romine signs with Tigers
One year, $4.1 million

Romine, 31, had been in the Yankees' organization since they drafted him in the second round back in 2007, and he'd been the team's primary backup catcher for most of the last four seasons. He's pretty much the purest distillation of a backup backstop, because he's well-regarded defensively as an average to slightly-above framer, he's never played 81 games in a season and has a career OPS+ of 73 -- though that's a much better 95 over the last two seasons.

He's not someone you want to start full-time, and the Tigers likely view him as a veteran partner for young catchers Jake Rogers and Grayson Greiner. If unexciting, it's still necessary. The 2019 Detroit catchers hit all of .186/.234/.321, worth minus-3.3 Wins Above Replacement, making them essentially the weakest group in baseball.

Dec. 12, 2019: P Yimi García signs with Marlins
One year, terms not disclosed

The Dodgers have a bullpen weakness, and García was projected to earn a mere $1.1 million in arbitration, yet they still non-tendered him earlier this winter, which might tell you a little about how they value a pitcher they'd had in the system since 2009 and in the Majors since '14 (coincidentally, first with now-Marlins manager Don Mattingly). Maybe it does. And yet ... García quietly had a decent season out of the Dodger bullpen, his first full year since recovering from '17 Tommy John surgery. In 62 1/3 innings, he struck out 66 and walked just 14, each strong ratios. He's got elite fastball spin (98th percentile) and elite hard-hit avoidance (also 98th percentile.)

If you're waiting for a "but...," well, here it is. There's a lot to like about García, but he had a hard time keeping the ball in the park, allowing 15 homers -- one more than batters walked -- and it's difficult to survive allowing 2.2 homers per nine innings. Over the last two years, his homer rate is one of the highest in baseball. Presumably, moving to pitcher-friendly Marlins Park could help with that, but either way it's not hard to see the appeal here for the Marlins.

Dec. 12, 2019: P Martín Pérez signs with Red Sox
One year, $6 million, plus a $6.25 million club option for 2021

Pérez had a poor 2018 with Texas (6.22 ERA) and on the surface, his follow-up '19 with the Twins (5.12 ERA) doesn't look much better. That doesn't really tell the story of his season, however, because thanks to a brand-new cutter (thrown nearly a third of the time) and some extra oomph on his fastball (up from 92.8 mph to 94.2 mph), Pérez got off to a decent start, taking a 4.26 ERA into the All-Star break. He tailed off after that, though he retains an elite skill in avoiding hard contact; his 30% hard-hit rate was the seventh-lowest among regular starters, with names like Jacob deGrom and new Red Sox teammate Eduardo Rodriguez above him.

Pérez is at best a back-end starter, which isn't exciting, but if Boston isn't in on higher-end free agents, this is what they'll get. That's where he slots in, behind Rodriguez, David Price, Chris Sale and Nathan Eovaldi ... for now, anyway. He might also be a bulk guy behind an opener.

Dec. 12, 2019: IF José Peraza signs with Red Sox
One year, $3 million

Peraza was once a highly-touted Atlanta prospect, but parts of five seasons with the Reds and Dodgers have shown that he's more of a backup, a speedy high-contact batter with below-average power who doesn't really take a walk. (That's a career line of .273/.312/.374, and an 80 OPS+ in nearly 1,900 plate appearances. His exit velocity is in the 5th percentile, meaning 95 percent of players hit harder.) After a good year in '18, he struggled badly enough in '19 that he was briefly sent down to Triple-A. He's clearly not playing much shortstop in Boston with Xander Bogaerts around, and he's best suited as a backup middle infielder, but second base is so wide open that he might actually end up getting a lot of playing time there. That's probably not what a contending team needs to bank on.

Dec. 12, 2019: OF Brett Gardner returns to Yankees
One year, $10 million, plus a $10 million option for 2021 with a $2.5 million buyout

Gardner is the longest-tenured Yankee, making his debut in a 2008 game that also included Derek Jeter, Mike Mussina and Jorge Posada, so this is a reunion that felt incredibly obvious from day one. It helps that even at 35 years old, Gardner had a strong season in '19, hitting a career-high 28 homers -- still an impressive number even in a season where everyone was hitting homers -- with a 117 OPS+. Even if that's because he's increasingly begun selling out to pull the ball in the air (a career-high 46% pull rate) it's been working for him, and his still-solid defense proved important with Giancarlo Stanton and Aaron Hicks each missing time.

Hicks underwent Tommy John surgery in October and is expected to miss much of 2020, so Gardner may end up being the Opening Day center fielder for what's expected to be baseball's best team.

Dec. 11, 2019: 3B Anthony Rendon signs with Angels
Seven years, $245 million

We've been talking for months about how the Angels badly needed to put a winning team around Mike Trout, and that mostly centered around pitching. The Angels had the worst rotation ERA (5.64) in the American League in 2019, and so far all they've done to fix that is to import a pitcher (Dylan Bundy) from the team with the second-worst rotation ERA. They failed to entice Gerrit Cole or Stephen Strasburg back to Southern California. It remains a big problem.

But it wasn't their only problem. No team got less offense out of third base than the Angels (.651 OPS), and if you can't get the best pitchers available, you might as well go get the best position player available. Make no mistake, Rendon is that; over the last four years, he's been the fourth-most valuable position player in the game, behind only Trout, Mookie Betts and Christian Yelich. Over the last six years, he's tied for fifth. Aside from an injury-plagued 2015, he's been healthy in five of the last six seasons. He has no split against lefties or righties, and he's proven himself to be a solid defender, too. He's in the conversation for "best all-around third baseman in the game," which is high praise given how stacked the position is right now.

In 2019, he walked nearly as much as he struck out (80 walks, 86 strikeouts), and he posted an 88th-percentile hard-hit rate. He posted a 1.010 OPS in the regular season, and a 1.003 OPS in the postseason. The man is a metronome, except he's doing it at the highest level. He's one of just 12 players projected to be worth 5 WAR in 2020, and now the Angels have two of that dozen.

He's truly elite, probably the best teammate the Angels have given Trout. So that's an easy win, but ... now what? Rendon certainly helps, but he and Bundy don't come close to erasing the 35-win gap between them and the Astros, even with Houston weakened by losing Cole. The Angels still don't have enough pitching, they don't have a catcher, and they appear to be relying too much upon Albert Pujols once again. This is a great step for a great player. It's got to be the first of several, however.

This browser does not support the video element.

Dec. 11, 2019: P Michael Wacha and P Rick Porcello sign with Mets
One year, $3 million for Wacha; one year, $10 million for Porcello

Let's lump these together because they're somewhat similar, in that Wacha and Porcello are each veteran righty pitchers with track records of success who are each coming off some truly wretched 2019 seasons -- though for different reasons.

In Wacha's case, it's about health. After dealing with an oblique issue in 2018, he struggled with knee and shoulder problems in '19, and a fastball that had averaged 95.1 mph in '17 was down to 93 mph. Never really a bat-misser even at his peak, his 18% strikeout rate was both well below average and a career low.

For Porcello, there are few pitchers as durable; since his 2009 debut, only four pitchers have made more starts. Set aside that '16 Cy Young award, because that's clearly a career year that he's never been able to match before or since. Porcello has generally been a two-to-three win pitcher each year, which is to say "average or slightly above." If that didn't play out in '19 (5.52 ERA), it wasn't about walks or velocity or strikeouts, which weren't out of line with his career. It was about a career-low grounder rate and a few disastrous starts -- Porcello had six starts allowing zero or one earned runs, but seven allowing six earned runs or more. He did, however, end strong, striking out 20 with just 1 walk in his final three starts.

It's perfectly reasonable to offer bounce-back offers to a pair of veterans with past success. But how do they fit, and does this help enough? The current Mets rotation starts with Jacob deGrom, Noah Syndergaard, Marcus Stroman and Steven Matz. Either Wacha or Porcello is fine as a fifth starter, yet they're both a huge step down from the departed Zack Wheeler. Wacha said he was told he'd be in the rotation if healthy, which means the Mets have six starters for five spots. Whether it's a trade or moving Matz to relief, there's another shoe to drop here.

Dec. 11, 2019: P Tanner Roark signs with Blue Jays
Two years, $24 million

The 2019 Blue Jays had only three pitchers throw 100 innings, but two of them -- Aaron Sanchez and Marcus Stroman -- were traded before the season ended. The third, Trent Thornton, had a reasonably fine league-average rookie season. And ... that's it. Twenty-one pitchers started for the Jays, and while some of them were just openers, one of them was also 34-year-old knuckleballer Ryan Feierabend, who hadn't appeared in the bigs since '14.

Needless to say, the Jays entered the winter needing multiple starters. They might still need multiple starters, though adding Chase Anderson (as they did in November) and Roark is a good start, especially if Matt Shoemaker can return healthy. Roark has been a full-time starter in five of the last six years, and in each of those five years, he's made at least 30 starts; his career ERA as a starter is 3.73. He's a perfectly reasonable third or fourth starter, so this is a fine depth deal. The problem is that in Toronto, he may be asked to be more than that.

Dec. 11, 2019: P Josh Lindblom signs with Brewers
Three years, $9.2 million (with incentives that could top $18 million)

There was a time when Lindblom was a reasonably well-regarded Dodger prospect, especially when he posted a 2.73 ERA in 27 games as a rookie reliever in 2011. But he was traded to Philadelphia for Shane Victorino in '12, and to Texas for Michael Young later that year, and then to Oakland in a minor deal in '13. After a 5.79 ERA in 84 innings for Triple-A Sacramento in '14, he departed for Korea, where he'd spend '15 being good (3.56 ERA) and '16 being poor (5.28 ERA), making a cameo for the Pirates in '17, then returning again to Korea.

This time, however, it was different. Lindblom posted a 2.88 ERA for Doosan in 2018 and a 2.50 for them in '19, winning the Korean version of the Cy Young Award both seasons as well as being named Most Valuable Player this past season. While we don't have Statcast data from Korea, the simplest explanation appears to be that Lindblom underwent something of a mini-Gerrit Cole experience, ditching his weaker pitchers to rely more on his higher-spin offerings.

All of which is a long way of saying: the Brewers had a desperate need for starting pitching, they've had success with another Korean returnee in Eric Thames, and this is a bet worth making. He'll likely start the year in the rotation alongside Brandon Woodruff, Eric Lauer, Adrian Houser, and anyone else Milwaukee can add.

Dec. 11, 2019: P Blake Treinen signs with Dodgers
One year, $10 million

In 2018, Treinen had what could legitimately be called one of the greatest seasons in relief pitching history. He allowed 7 earned runs in 80 1/3 innings; the resulting 0.78 ERA was the lowest of any reliever with 80 innings dating back to the advent of divisional play in 1969.

It obviously didn't go quite so well in 2019. Treinen posted a 4.91 ERA. His strikeout rate dropped from 32% to 22%; his walk rate doubled from 7% to 14%. He allowed four times as many homers, and his grounder rate dropped from 52% to 43%. He missed time with a shoulder strain, and his season ended early with a stress reaction in his back. A year after making history, he was non-tendered.

Usually, when that happens, it's because a team thinks he's not worth what he'll get in arbitration, which in Treinen's case was expected to be about $7.8 million. But because he was so good in 2018, and because the relief market was so weak, the Dodgers paid him more, giving him $10 million on a one-year deal. They needed to, because Kenley Jansen isn't what he was, Joe Kelly hasn't earned much trust, and the bullpen was an issue last October. The problem is, it's not clear what happened. Was it just injuries? Was it the seams? Was it something else? If the Dodgers can fix him, this will pay off incredibly well. If not, they'll go into next October with the same bullpen problems they always have.

Dec. 10, 2019: P Gerrit Cole signs with Yankees
Nine years, $324 million, with a player opt-out after 2024

This is it. This is the big one. This is the largest total contract for a pitcher, and it's the largest annual value for a pitcher. We expected Cole would break every financial record, and he did, though even with that context the size of the deal is still stunning. In a sense, it's a nice retro throwback to the days when the Yankees were the Yankees, steamrolling everyone with their financial might.

Before we get to the contract, let's get the obvious out of the way: Cole is a truly elite pitcher, arguably the best starter in baseball, and with almost zero red flags in terms of health, age or performance. He doesn't turn 30 until next September and he just set the all-time baseball record for highest strikeout rate (39.9%) by a starter. It's fair to note that strikeouts are higher now than in the past, but still: It's Cole 2019 ahead of Pedro 1999 and Randy 2001, and you don't even need those last names to know who the latter two players are.

He won 20 games and struck out 326 batters if you like traditional stats; he has 96th percentile fastball spin and 94th percentile curveball spin if you like something more advanced. His career path has been well-documented by now; after being traded to Houston, he ditched his sinker, elevated his fastball and the rest was history. He probably should have won the Cy Young award this year, and he's going to a Yankee team that's nearly as well-regarded as Houston is in terms of analytics.

For a Yankee team that heard all year about their lack of an ace -- though it's worth noting their biggest flaw in the ALCS was an offense that hit only .214/.289/.383 -- this was the player they absolutely needed to acquire, their "white whale," as GM Brian Cashman termed it. Now, instead of relying on James Paxton to be more great than good, and relying on Luis Severino to stay healthy, or worrying about Masahiro Tanaka's splitter issues, they all get pushed down a spot. This adds something like four to five wins right now.

Now: It's worth acknowledging the risk. Nine years is a long time for any player, to say nothing of a pitcher. The odds that $100 million or so of this deal -- three years -- are taken up by an arm injury here or poor performance there are considerable. It's not like Yankee fans haven't seen what happens when a big deal goes south, as Jacoby Ellsbury can speak to. This could end terribly, and it's not like having Cole guarantees a title -- just look at how Houston's season ended.

But if the Yankees missed out on Cole, there was no Plan B. There was no Cole replacement available. If he helps bring a title back to the Bronx for the first time in a decade, Yankee fans will consider it money well spent.

Dec. 10, 2019: SS Didi Gregorius signs with Phillies
One year, $14 million

A year ago, when Gregorius was coming off a 27-homer, 124 OPS+ season, his second in a row gaining down-ballot Most Valuable Player votes as an average fielding shortstop with a plus bat, the idea of him taking a one-year deal would have been unfathomable. But shortly after the 2018 season ended, the Yankees announced that Gregorius had injured his elbow in the ALDS and would require Tommy John surgery, shelving him for the first half of the next season.

To Gregorius' credit, he rehabbed quickly enough to return to the Yankees on June 7, though his season didn't go terribly well -- his .238/.276/.441 line worked out to a below-average 87 OPS+, and his defensive metrics sank to below average. It's fair to blame some of that on the surgery and an entirely missed spring training, but that's not exactly a desirable free-agent springboard, to the point that the Yankees chose not to even extend him a qualifying offer for fear he'd take it. It seems they were correct, as the $14 million he took from Philadelphia was less than the value of the $17.8 million qualifying offer.

Instead, he'll join an interesting Phillies team, likely displacing Jean Segura to second base now that César Hernández is gone, and pushing Scott Kingery to third base now that Maikel Franco is gone. (Or Alex Bohm. Or Josh Donaldson. It's complicated.) If Gregorius can merely rebound to "league average," this is a win, because there's almost no such thing as a bad one-year deal. If he gets back to the four-to-five win player he'd been the previous two years, it's an absolute steal.

This browser does not support the video element.

Dec. 10, 2019: Rangers trade OF Nomar Mazara to White Sox
Rangers receive minor league outfielder Steele Walker

Chicago got its winter off to a great start with the well-received addition of catcher Yasmani Grandal, signaling that a rebuild that had begun in 2016 with the trades of Chris Sale, Jose Quintana and Adam Eaton was nearly over. The next steps were clear: Add an elite starting pitcher, and add a plus outfield bat. But so far, the pitcher has been elusive -- Zack Wheeler reportedly took less money from the Phillies than the White Sox had offered -- and Mazara, while flashing talent at times, isn't the big outfield free-agent bat they need, or the fans were hoping for, like Nicholas Castellanos or Marcell Ozuna.

That's because despite his youth (he'll be 25 next spring) and flashes of occasional talent, Mazara has been the same slightly-below-average bat in each year of his career. Mazara's OPS+ over the last four seasons: 93, 90, 96, 96. For his career: 93 in 2,189 plate appearances. He's been below-average defensively (minus-16 Outs Above Average, minus-19 Defensive Runs Saved), and his hard-hit rate is an average 50th percentile. He's yet to have a season worth even 1 Win Above Replacement. This is a move a rebuilding team makes, not a contending one.

It's fair to note that it doesn't take a star to improve on last year's Chicago's right fielders, who were essentially the weakest group of any team's right fielders in the 21st century, and there's an argument that Mazara is better served as a platoon bat against righty pitchers. If they still get a better outfield bat, then fair enough. If not, and if Mazara is to be their regular right fielder, this probably isn't good enough for a team that needed more.

Dec. 10, 2019: Giants acquire IF Zack Cozart and IF Will Wilson from Angels for P Garrett Williams; Giants sign P Kevin Gausman to a one-year, $9 million deal

Let's actually make a more accurate headline for this one: "Angels trade their 2019 first round pick, Wilson, in order to get Cozart and the $12.7 million still due him off their roster." That's because the first two years of Cozart's three-year, $38 million deal have been nothing short of a disaster, as repeated shoulder injuries have limited him to only 96 games and a .190/.261/.296 line. It's unclear if he'll suit up for the Giants, but that's not the point. The point was to take on some money in order to essentially purchase Wilson, who was the 15th overall pick just six months ago, which is a great move. For the Angels, it's a high cost to pay in order to open up some minor extra payroll room that's unlikely to be the difference between getting an Anthony Rendon or not.

Meanwhile, the Giants made another move almost simultaneously, bringing in Gausman, who turns 29 in January and was available after being non-tendered by the Reds. He'd been something like a league average starter from 2014-18 with Baltimore, but had a 6.16 ERA in Atlanta's rotation in '19 before a summer trade to the Reds. He ended up thriving in relief there, posting a 3.10 ERA and jumping his strikeout rate from 24% to 33%. He'll go back into the rotation in San Francisco, however, slotting in behind Johnny Cueto and Jeff Samardzija.

Dec. 9, 2019: P Junior Guerra signs with D-backs
One year, $2.55 million, with a team option for 2021

Look, they can't all be earth-shattering, and Guerra has had himself an interesting career path. After spending 2009-14 playing in leagues outside of affiliated ball, Guerra's first full season was as a 31-year-old rookie in Milwaukee, and in the four years since, he's given the Brewers 420 2/3 innings of 3.78 ball as a sometimes-starter, though in '19 he was entirely a reliever. His calling card is an elite split-finger, which over the last four years has been one of baseball's best. It's a small deal for a middle reliever, but it's a worthwhile one.

Dec. 9, 2019: P Joely Rodriguez signs with Rangers
Two years, $5.5 million, plus a team option for 2022

You know, the Rangers had Rodriguez once, not that long ago. In 2017, he posted a 6.33 ERA in 27 games for their Triple-A team, then was designated for assignment in September without appearing in the Majors for Texas. At the time, his big league experience consisted of 36 2/3 innings of 5.40 ball for the Phillies over parts of two seasons. Barely more than two years later he's back, with a two-year Major League deal in hand. What happened?

Well, Rodriguez spent the last two seasons pitching for Chunichi in Japan, posting an excellent 1.85 ERA in 87 2/3 innings and striking out 103 batters. The Rangers have had success in bringing back pitchers from Japan -- see Chris Martin and Tony Barnette -- and they don't really have a lefty reliever they can rely on. For a relatively limited outlay, seeing if Rodriguez can bring back some of the magic he found in Japan is a gamble worth taking, especially if -- as an NL executive told Peter Gammons recently -- there's more in there.

Dec. 9, 2019: P Stephen Strasburg returns to the Nationals
Seven years, $245 million

A few days after the World Series, Strasburg did as expected, opting out of the remaining four years and $100 million on his contract. (Nearly half of that was deferred, so the present-day value was more like $88 million.) We knew he'd get more than that, and we figured it was likely he'd return to the Nationals. We just didn't expect it was going to be this much more, to the extent that Washington will pay Strasburg nearly $10 million more annually over his age 31-37 seasons than the Phillies will Bryce Harper.

It's not the same situation, obviously. The Nats had Juan Soto ready to step in for Harper, and they couldn't replace Strasburg as easily. And even though there's a ton of deferrals in this one -- reportedly $80 million -- they come with interest, so it should pay him the actual present-day value of $245 million. Still, it is, for the moment, the largest pitching contract in baseball history both cumulatively and annually, at least for a few days until Gerrit Cole blows it away. There's no opt-outs or options, so Strasburg, who was picked No.1 overall by the Nats in 2009, will likely be pitching in DC through his age-37 season.

Obviously, if Strasburg pitches like he did in 2019 -- 209 innings of 3.32 ERA ball, with 36 1/3 more innings of 1.98 ball in their postseason run -- he'll earn this, and more. Prior to 2019, it felt like he'd be underrated compared to his success, perhaps because of the No. 1 hype and the presence of Max Scherzer next to him, and he was, by nearly any measure, a Top 5 starting pitcher this year. He's already shown he can adapt to somewhat lessened velocity by throwing his elite curveball more than ever (31%), which gives you hope for how he might age. You can't find pitchers this good, so when you have one, you pay what it takes to keep them.

The question, of course, isn't one of talent, but one of durability. Strasburg hadn't made 30 starts or thrown 200 innings since 2014, and he'll turn 32 next July. When the Nationals gave Scherzer seven years and $210 million after '14, he was a year younger and had made 30 or more starts in each of the previous six seasons. There's considerably more risk here; coming off a mere 130 innings in 2018, it wasn't even clear he'd want to opt out at the end of 2019.

This all keeps the team's biggest strength together, as the rotation quartet of Scherzer / Strasburg / Patrick Corbin / Aníbal Sánchez are all back in 2020, and the team had previously brought back Howie Kendrick. We don't know what will happen to Anthony Rendon, or who plays first base, or how the Nats will ever fix that bullpen. But it would have been a disaster, both competitively and emotionally, had both Strasburg and Rendon departed. It certainly didn't come at a discount, and it didn't come without risk. It was simply a deal that needed to get done.

This browser does not support the video element.

Dec 6., 2019: P Jordan Lyles signs with Rangers
Two years, $16 million

Texas already added Kyle Gibson to a rotation headed by Mike Minor and Lance Lynn, and now it's added Lyles, who has slowly been working his way up the transaction ladder from "released by the Rockies in August 2017" to "claimed on waivers by the Brewers in August 2018" to "traded back to the Brewers, July 2019." Now he's earned a two-year deal despite a just-okay 2019, where he threw 141 innings (his most since 2013) of 4.15 ERA ball.

It's fair to note he was much better in 11 starts with Milwaukee, contributing a 2.45 ERA, though the underlying metrics didn't support much of that being sustainable (his strikeout rate actually dropped from what it had been with Pittsburgh), and it's interesting to see that after using his changeup about 6% of the time through the end of August, he used it nearly a quarter of the time in September. Lyles can be a competent fourth or fifth starter, and he's not being paid to do much more than that. If unexciting, it's still necessary. The Rangers may yet be one arm short of a full rotation.

Dec. 6, 2019: Padres trade OF Hunter Renfroe and 2B prospect Xavier Edwards for OF Tommy Pham and IF/P prospect Jake Cronenworth

The 2020 Padres get better and the '20 Rays get worse. It's obviously considerably more complicated than that.

Let's start with the Padres, who finished 36 games out in the National League West in 2019. There's almost nothing a team can do in one winter to try to overcome that kind of deficit, but they've been trying, signing Drew Pomeranz and trading for Jurickson Profar, Zach Davies and Trent Grisham. Now they add Pham, who brings some badly-needed on-base skills (.367 and .369 the last two years, while the Padres had a .308 OBP in 2019, fifth-worst in baseball). Over the last three years, he's been one of the 25 or so best hitters in baseball. There's open disagreement about his defense, as he was +1 in Defensive Runs Saved and minus-11 in Outs Above Average, and it's fair to note that he'll be 32 in March and has gone from a 144 OPS+ to 127 to 119 over the last three years. This isn't without risk.

Still, he's clearly better than Renfroe -- the 80-point gap in OBP from 2019 is enormous -- and he might be the best or second-best Padres hitter right now. Meanwhile, Cronenworth is quietly fascinating as a ready-now prospect who hit .329/.422/.511 in Triple-A last year, might challenge Profar for second base time and actually threw 7 1/3 shutout innings as well. The Padres are better today than they were yesterday, though they still have lineup questions at four spots (catcher, first base, second base and center field), as well as a big rotation need.

As for the Rays? Well, Blake Snell didn't like this very much, though he's probably underrating how strong of a prospect Edwards is. Otherwise, follow the numbers. Renfroe is something like $5 million cheaper than Pham, using estimated arbitration numbers, four years younger and under control for two additional years. That all fits the Tampa Bay aesthetic. Despite the 33 homers, his hard-hit rate was lower than Pham's, though he's got a cannon of an arm and rated as a plus defender in 2019.

If it was just Pham for Renfroe, it would be a clear loss for Tampa Bay. It's not, obviously. Edwards is MLB Pipeline's No. 72 overall prospect, an elite speedster who combines excellent bat control (he struck out only 54 times in 561 Class A plate appearances last year) with absolutely zero power (a single homer in two seasons). He's only 20, and he's not close to helping the Rays. San Diego making a win-now push, and Tampa Bay churning assets for the future? It's the most "these teams" trade you can think of.

This browser does not support the video element.

Dec. 6, 2019: 1B/2B Howie Kendrick returns to Nationals
One year, $6.25 million with a 2021 mutual option

Kendrick is going to live forever in Washington if only because of the two-run go-ahead homer in the seventh inning of Game 7 of the World Series, the blast that put the Nationals ahead for good on their way to their first World Series title. That somewhat overshadows just how fantastic he'd been all season, however, putting up a huge .344/.395/.572 (142 OPS+) year in his age-35 season. It was no fluke, either; looking at an advanced Statcast quality-of-contact metric, Kendrick was the fourth-best hitter in baseball this year behind only Mike Trout, Cody Bellinger and Christian Yelich.

That comes with some caveats, namely that he did it in 370 plate appearances, not full-time play, and that he'll be 37 next July. No one really believes he belongs on any list of "baseball's real five best hitters." But the fact that we can even talk about it that way tells you a lot about how fantastic he was, posting a 13% strikeout rate that was well better than average and pairing it with a 48% hard-hit rate that was also well better than average.

He's not great defensively at this point and he's not going to play every day. He won't, or at least should not be, the full-time first base replacement for Ryan Zimmerman, should the Nationals legend not return in 2020. But there's a spot for a veteran like Kendrick on just about every single team. No one will appreciate him as much as Nats fans do.

Dec. 6, 2019: P Michael Pineda returns to Twins
Two years, $20 million

Let's make sure we get the record straight here -- while it's announced as "two years and $20 million," it's really "two years and $17.6 million," because he won't be paid over the first 39 games of the season while he finishes out the 60-game suspension he picked up last September for violating baseball's Joint Drug Prevention and Treatment Program. That knocked him out of the remainder of the regular season and the postseason, which ended up being a big blow for a contending Twins team; as you may remember, they had to start Randy Dobnak in Game 2 of the ALDS. (It did not go well.)

When he returns in May, he'll join a Twins rotation that has José Berríos and Jake Odorizzi at the top and a whole lot of question marks behind them. The suspension ended what had been a solid rebound season for Pineda, who had injured his elbow in 2017 with the Yankees and signed a two-year deal with the Twins that December knowing that he'd miss all of '18 recovering. He pitched well, too; after a poor April (6.21 ERA), he posted a 3.46 ERA in 20 starts between May 1 and the end of his season. There were 130 pitchers who tossed 100 innings in '19, and only seven of them had a lower walk rate than Pineda's 4.7%.

Assuming that Pineda, heading into his age-31 season, can replicate something along the lines of what he did last year -- and there's no reason to think he can't, since his ERA, strikeout and walk numbers were almost identical to his career marks -- this is a good add for a Twins team that obviously needed the rotation help. The thing is, they still need the rotation help, not just because Pineda won't be available right away, but because you can't just insert Devin Smeltzer, Dobnak and Lewis Thorpe in the Opening Day rotation. What's next?

Dec. 6, 2019: C Alex Avila signs with Twins
One year, $4.25 million

In 2019, Minnesota had righty Mitch Garver post a massive breakout year, smashing 31 homers in a mere 359 plate appearances, pairing him with Jason Castro, a 32-year-old left-handed bat who posted a league-average 101 OPS+. Castro's now off to free agency, so the Twins have replaced him with Avila, a ... 32-year-old left-handed bat who posted a league-average 100 OPS+. Castro was an above-average, but not elite, pitch framer. Avila is an above-average, but not elite, pitch framer. Castro had an above-average 46% hard-hit rate. Avila had an above-average 49% hard-hit rate. If you're thinking there's maybe not a terribly larger difference in Garver's backup, you're right. The Twins retain one of the best catching situations in baseball.

Dec. 5, 2019: OF Jake Marisnick traded from Astros to Mets
Astros receive two Minor League prospects

The Mets' defense needed an upgrade, to put it charitably, especially once they'd declined their 2020 option on the slick-fielding but often-injured Juan Lagares. That left them with an outfield full of lefty swingers (Michael Conforto, Brandon Nimmo, Jeff McNeil if he's not playing third base) and a right-handed masher who is a poor defender in J.D. Davis. If Nimmo is going to play center, as he reportedly will, then a replacement for Lagares, a new right-handed defensive ace, was a necessity.

Enter Marisnick, who has spent the last 5 1/2 years in Houston doing exactly that. Outside of an outlier 2017, he's never really hit, posting a .232/.285/.396 cumulative line for the Astros, though he did pop 36 homers over the last three seasons. Mostly, that's been about the strikeouts, because over those three years, his 33.1% whiff rate is one of the 10 highest in baseball. But he can fly (he's got 95th percentile Sprint Speed) and he's a fantastic oufielder -- over the last four years, his +39 Outs Above Average is tied for ninth, and that's a bigger deal than it sounds, since he's never been an everyday player.

If this sounds a little like last year's Keon Broxton acquisition, in terms of getting a high-strikeout fast strong-fielding righty outfielder, well, it sure does, and that didn't work out terribly well. But with Lagares gone, it was still a need this club had, and he's a solid choice to fill it. For Houston, this also frees up some outfield room for Kyle Tucker and Myles Straw or both, given next year's 26-man rosters.

Dec. 5, 2019: C Omar Narváez traded from Mariners to Brewers
Mariners receive Minor League pitcher Adam Hill and a competitive balance pick

Last year, Milwaukee had the best hitting catcher (over the last three years) in Yasmani Grandal, but he departed to the White Sox via free agency, so instead, they replace him with the second-best hitting catcher in baseball (tied, anyway) over those same three years in Narváez. The appeal on the surface is easy -- in a world where very few catchers can offer any offense at all, the Brewers just added the soon-to-be 28-year-old who hit 22 homers, and who had a 119 OPS+ in 2018 and a 120 OPS+ in '19. They did so for a minimal cost, because Narváez is projected to earn only about $3 million in arbitration and because Hill isn't exactly a highly regarded prospect.

If it feels like there's a "but" here ... there is. The defensive downgrade from Grandal to Narváez is obvious and enormous, particularly in framing, where there's an 18-run difference -- nearly two wins -- between Grandal's plus-13 and Narváez's minus-5. Paired with Manny Piña, a good defender, maybe that's a match that can work.

The more pressing question might be ... can he actually hit? Or perhaps more accurately, will he continue? There's no arguing the fact that he's been 20% better than average over the last two years, and that's a big deal. It's just a little confounding that he's been able to do so without any actual hard-hit abilities. If you were to look at his Baseball Savant page, you'd see a lot of blue-for-poor colors, including an 8th-percentile exit velocity.

Again, none of that matters if he keeps producing. You win games on doubles and homers, not on exit velocities, and moving from Seattle to Milwaukee is generally an upgrade in terms of hitter-friendly parks. It at least gives you pause, though. How did Narváez do it -- and can he keep it up?

Dec. 4, 2019: Phillies sign P Zack Wheeler
Five years, $118 million

The sting of seeing Cole Hamels sign with a division rival lasted for, oh, about three hours, right up until the report that Philadelphia had signed Wheeler away from another division rival, the Mets. For all the talk about how good Wheeler could be, let's start with how good he's already been. Over the last two years, he's thrown 377 2/3 innings with a 3.65 ERA, and he's been worth 8.9 Wins Above Replacement -- and that number is tied for 10th best among starters. Maybe you don't love WAR for pitchers, maybe you don't really think he's a Top-10 starter. That would be perfectly reasonable. But it's unarguable that he has already been an above-average pitcher.

Of course, "above-average pitchers" don't generally get $118 million, and that's where the projection comes in, because this is what teams pay for now. Wheeler's 96.8-mph fastball is in the 94th percentile for velocity. His 91.2-mph slider is second-fastest among starters only to former teammate Jacob deGrom. Wheeler's 32.2% hard-hit rate is in the 82nd percentile, and as MLB.com's Andrew Simon wrote, there are some very interesting comparisons in terms of pitch type, movement and velocity between Wheeler and Gerrit Cole -- the kind that make you wonder if some team could do for Wheeler what the Astros did for Cole once he left Pittsburgh. It's not hard to see the "fewer sinkers and more high four-seamers" plan working here, too.

Maybe the Phillies are that team, and maybe they aren't. But what they are is a team with a thin rotation behind Aaron Nola, especially with Jake Arrieta coming off surgery and not looking anything like the ace he once was, and what they've done here is sign the third-best pitcher on the market, which in and of itself makes this a step forward.

The total dollars might seem like a lot for a pitcher who hasn't necessarily accomplished a ton yet, but he's been better than a Madison Bumgarner or a Dallas Keuchel for the past two years, and he's likely to continue to be. That's why the White Sox reportedly offered even more.

This browser does not support the video element.

Dec. 4, 2019: Orioles trade P Dylan Bundy to Angels
Orioles receive four Minor League pitching prospects

More than eight years ago, Bundy was the No. 4 overall pick in the 2011 draft, behind Gerrit Cole and Trevor Bauer, just ahead of Anthony Rendon and Francisco Lindor in the top 10. It's been a long, winding road, from 2013 Tommy John surgery to various shoulder, ankle and knee problems since. That said, Bundy has been healthy enough to pitch 503 innings over the past three seasons, with a slightly below-average 92 ERA+ to show for it. But it's always seemed like there's more in there -- as we wrote in July, he seemed a wonderful change-of-scenery candidate, thanks to Baltimore's weak supporting staff and hitter-friendly home ballpark.

He'll get that change of scene with the Angels, who desperately needed to add something like three starters this winter to a very thin depth chart. That can and still should be Gerrit Cole, but it was never going to be only him, and Bundy, somehow, represents durability to them. The question, then, is whether the Angels can find a little more production to go with it. There's still some evidence that his slider can be one of baseball's better ones, and there might be some untapped potential yet in his other secondary pitches -- if he might use them to stop relying upon his crushable four-seamer so much. If he's their fourth starter, this is fine. He won't be until they get Cole. They really need to get Cole.

As for Baltimore, we didn't list the prospects because you won't have heard of any of them. Their rotation right now might be headed by John Means, a presumably healthy Alex Cobb and ... Asher Wojciechowski? It might be another long season in one of baseball's most beautiful ballparks.

Dec. 4, 2019: Braves sign P Cole Hamels
One year, $18 million

The Cubs chose not to offer Hamels a one-year, $17.8 million qualifying offer, for fear he might accept it. So instead, the Braves have come in and signed him to essentially the same offer, adding a necessary veteran starter -- replacing Dallas Keuchel, really -- to a group led by Mike Soroka, Mike Foltynewicz and Max Fried.

Hamels, obviously, isn't Gerrit Cole or Zack Wheeler, and he might not even be Madison Bumgarner. Then again, that's not what you're signing up for on a one-year deal, and even at 36, which he'll turn on Dec. 27, there's more to Hamels than his 2019 numbers might indicate. On the surface, "3.81 ERA in 141 2/3 innings" seems fine, if unremarkable, though you're surely scared off by the "2.98 ERA before a June 28 oblique injury and 5.79 after." At his age, that kind of late collapse would be worrisome.

It still is, to some extent, except that just this week, Hamels detailed to local Chicago media that he "rushed back into [his] throwing program and was just never able to get my shoulder the right strength," coming back perhaps sooner than he should have as the Cubs were in a tight playoff race. Hamels was shut down in mid-September -- "which jump-started my body again and my shoulder," he said in the same interview -- and then returned to dominate the Cardinals on Sept. 28, striking out eight in four scoreless innings.

You could see the difference in his four-seamer velocity, too. It was at 91.6 mph through his injury, then dipped to 90.9 mph from his return to the September break. In that final start, it was back up to 91.4 mph.

If the Braves get the same Hamels we saw in 2019, they get a slightly above-average pitcher for a rotation that could use another one. If they get the healthy version we saw before he got injured -- and he'll have a framing upgrade from the below-average Willson Contreras to the excellent Tyler Flowers and solid Travis d'Arnaud -- they'll have added a lot more than that, and likely an upgrade on Keuchel.

Dec. 2, 2019: Marlins trade for 2B Jonathan Villar and claim 1B Jesús Aguilar off waivers
Orioles receive pitching prospect Easton Lucas for Villar

Last year, Miami had the fewest homers and second-fewest runs scored. The Marlins' offense was about as effective as the 1993 expansion team was. It wasn't good enough, obviously, and this club was always going to need to add some bats to support what's become an interesting young starting rotation. On tender day, the Marlins added a pair of interesting ones.

Let's start with Villar, because his path to Miami was a surprising one. He'd bounced around from Houston to Milwaukee to Baltimore, sandwiching some good seasons (62 steals and a 117 OPS+ in 2016, 40 steals and a 109 OPS+ in 2019) around a disappointing 2017-18, where he'd hit just .251/.310/.379 (83 OPS+). There's some evidence that he over-performed his expected Statcast metrics in 2019, but even so, 40 steals and 24 homers from a middle infielder deserved more than a non-tender from a non-competitive team in Baltimore. He's a nice add for a reasonable price, even if, somewhat surprisingly, he may play third base and outfield for Miami.

It's a little different for Aguilar, who had a breakout 2017-18 seemingly out of nowhere -- 51 homers and a 127 OPS+ as Villar's teammate in Milwaukee -- before collapsing somewhat in 2019. Aguilar struck out less (22%, down from 30% and 25% in 2017 and '18, respectively) but found himself worse off for it, as his hard-hit rate dropped from 43% to 38% as his ground-ball rate jumped from 35% to 42%. All told, he hit only 12 homers with an 87 OPS+ for the Brewers and Rays, who had designated him for assignment a few days ago. There might be some redundancy here since Miami already had righty-hitting Garrett Cooper, who posted a strong 110 OPS+ season.

There's risk in each player, that you don't get the "good" version of them. But neither cost terribly much in dollars or prospects, and there's something to be said for competence, too. Last year's 105-loss Marlins didn't have enough of it, with Cooper and Brian Anderson their only above-average regulars. Neither Villar nor Aguilar will single-handedly turn this team around. If they're better than Starlin Castro and Neil Walker, that's good enough.

This browser does not support the video element.

Dec. 2, 2019: 2B/3B Mike Moustakas signs with Reds
Four years, $64 million

“We will have a bigger payroll,” president of baseball operations Dick Williams said in October. “We will have money to spend. It will be a nice increase.”

Consider this a great start. Last year, the Reds, fresh off of four straight 94-plus loss seasons, tried to make a move, adding Yasiel Puig, Matt Kemp, Alex Wood, Kyle Farmer, Tanner Roark, Sonny Gray, Derek Dietrich, Zach Duke and José Iglesias, later adding Trevor Bauer and Freddy Galvis during the season. It was fun, and it was admirable, but it was never going to be good enough, and it wasn't. The 75-87 Reds finished fourth, depleting some of their farm system to do it.

Surprisingly, however, it wasn't the pitching that faltered (the staff was very good, as Luis Castillo and Gray were each excellent). It was the bats. The Reds scored the sixth fewest runs in the game, and they, along with Detroit, were the only teams to have just a single above-average hitter with at least 400 plate appearances (Eugenio Suarez).

Enter Moustakas, who MLB.com's Mark Sheldon reports finally got the long-term deal he long desired after signing back-to-back somewhat stunning one-year deals. Despite the eye-popping 35 homers, Moustakas was basically the same good-not-great, above-average-but-not-elite hitter he'd been for several years.

Perhaps it says something positive about how the free agency market will play out this winter, but that's a big jump from one year to four years without a huge difference in production.

Plus, he won't even be playing third base, the position where he's spent over 96% of his career. Blocked by Suarez at third, Moustakas will play second, where he looked capable in 47 games for Milwaukee in 2019, but also a position he started at just once after June 27. (The ascension of Keston Hiura had something to do with this, surely.) It's good that Moustakas finally got the multiple years he'd previously earned, and there's no question Cincinnati needed to be aggressive to add a bat. It's just a little surprising to see him end up with four years, especially since his primary position isn't even open. However, if that's what Cincinnati needed to do in order to get him, better than than missing out.

Dec. 2, 2019: 2B Jurickson Profar traded from A's to Padres for C Austin Allen and player to be named later

Here's a deal that feels like it's been decades in the making: A decade after San Diego GM A.J. Preller helped sign Profar for Texas as an international free agent, he finally gets his man back, helping to fill the second-base void opened up by his earlier trade of Luis Urias to Milwaukee. Profar has had an odd run of it, going from "highly touted prospect" in 2012-13, missing almost all of 2014 and '15 due to injury, struggling to stick in 2016-17, then finally having what looked like a breakout in 2017, hitting 20 homers with a 107 OPS+ for Texas. Traded to the A's last winter, however, his 2019 season proved disappointing; while he again hit 20 homers, his OPS+ dropped to 90, and he had considerable defensive issues throwing the ball.

That added up to Profar becoming a likely non-tender candidate tonight, especially since the second base free-agent market is pretty flush with players. Instead, Preller surrendered the 25-year-old Allen, who didn't do much in 71 scattered plate appearances in 2019, though he had hit 22, 22 and 21 homers over the last three Minor League seasons, respectively. He's likely a better fit in the American League on 26-man rosters, where he can be a 1B/DH/C hybrid. This might also open up room at second for former top prospects Sheldon Neuse and Franklin Barreto, who are blocked on the left side by Matt Chapman and Marcus Semien.

Dec. 2, 2019: C Sandy León traded from Red Sox to Indians
Red Sox receive Minor League P Adenys Bautista

This wasn't about the appeal of Bautista, who had a 10/15 K/BB -- not a typo -- at two levels of Rookie Ball in 2019. It's that León was almost certainly going to be non-tendered, saving the Red Sox an estimated $2.5 million. That's not a large amount of money for any club, especially Boston, and certainly not worth sending out a valuable player over. Then again, it's hard to conjure any amount of defensive value that's worth accommodating León's non-existent bat (he hit .192/.251/.297 in 2019, a 42 OPS+, and he hit all of .192/.251/.297, a 51 OPS+ over the last three years, making him baseball's weakest hitter among those with as many plate appearances), and most of baseball agreed in March when he cleared waivers. If he makes Cleveland's roster, he'll pair with Roberto Pérez to form what would likely be baseball's best defensive backstop duo.

Nov. 27, 2019: P Drew Pomeranz signs with Padres
Four years, $34 million

To say that Pomeranz has had an up-and-down career is somewhat of an understatement, to the point that the Giants demoted him from a weak rotation just a few months ago, but if you've been paying attention this winter, you knew he was going to get paid. We laid it out on Nov. 16, calling him "the next relief ace" after his incredible showing of 50 strikeouts in 106 batters after moving to the bullpen. Pomeranz checked all the usual starter-to-successful-reliever boxes -- massive velocity increase, dropping ineffective pitches, relying heavily on his outstanding four-seamer and curve -- and the list of recent relievers to do the 50-in-106 thing is incredibly impressive, with a near-perfect level of not-being-a-fluke, historically.

As we said earlier this month:

Despite the inconsistent track record, despite the 4.85 ERA this year, Pomeranz is going to be one of the most sought-after relievers this winter. It's not about his career record. It's about what you think he can do over the next few seasons.

We'll admit, however, that we didn't see four seasons coming. Then again, the relief market was dreadfully weak, especially with Will Smith already off to Atlanta, and we probably would have expected something like 3 for $33 million, so really, what's one extra year for barely any extra dollars? If you buy into what he did in relief, and there's plenty of reason to, this would be more than well worth it. As Padres GM A.J. Preller said: "We're clearly buying into him as a guy that can be part of a dynamic back of the bullpen.”

We are too. If he truly is "the next Andrew Miller," which is a comparison that seems both overplayed at this point and incredibly apt in this case, 4/$34M five years after Miller got 4/$36M will seem like an absolute steal. Put him next to Kirby Yates in San Diego's bullpen and the Padres might have something going here.

Nov. 27, 2019: Padres trade IF Luis Urías, P Eric Lauer, and a player to be named later to Brewers for OF Trent Grisham and P Zach Davies

This is a "good old-fashioned baseball trade," as they say, involving a quartet of relatively young players -- Davies is the eldest, and he won't even be 27 until February -- that is somehow both confounding and satisfying at the same time.

Let's start with the pitcher swap, where San Diego gives up five years of Lauer for two years of Davies. There doesn't seem to be a terribly large difference either way here, as neither throws that hard (88.4 mph for Davies, 91.4 mph for Lauer), neither misses a great deal of bats, and neither induces an interesting amount of grounders. Thanks in part to solid command, they've each been roughly league-average starters, though Davies has a longer track record. Lauer adds a lefty to a righty-heavy Milwaukee rotation. You could reasonably prefer either player. It's a swap of back-end starters.

But the really interesting part of this comes in Urías for Grisham, a challenge trade of two recently highly-regarded prospects. Urías, 22, hit only .221/.318/.331 in 302 scattered plate appearances over the last two years with San Diego, but .308/.397/.433 over his Minor League career. That's not exactly a long enough look, at such a young age, to put much stock into the numbers; then again, it might say something that the Padres were willing to part with him this quickly, without having an obvious replacement for him at second base. He might get more of a look at shortstop for Milwaukee, where the Brewers had baseball's weakest performance at the six.

Grisham was Milwaukee's first-round pick in 2015, and he might be mostly known for the unfortunate error he made in the Wild Card Game against the Nationals. That said, not only did he hit .300/.407/.603 in 441 plate appearances at two Minor League levels, he drew 67 walks against only 72 strikeouts. When we tried to find some very deep 2020 sleepers recently, the method used had Grisham making the cut. Put it this way: Urías probably has a higher upside if it all goes right, but Grisham has a higher chance of being a solid Major Leaguer.

Really, for as intriguing as this all is, it really leads to: Now what? Milwaukee didn't trade for Urías to not play him, but it's unclear if that means at second base (if star hitter Keston Hiura can't handle it defensively), shortstop (if the Brewers have had enough of Orlando Arcia's under-performance), or third base (if neither Mike Moustakas or Travis Shaw are in the 2020 mix). For the Padres, Grisham gets added to a wildly over-stuffed outfield mix including Manuel Margot, Hunter Renfroe, Wil Myers, Franchy Cordero, Josh Naylor, and perhaps catcher Francisco Mejia, with prospect Taylor Trammell coming -- plus second base is now an open question.

This is a fascinating trade all around. We just don't know what it means yet.

This browser does not support the video element.

Nov. 27, 2019: C Yan Gomes returns to Nationals
Two years, $10 million

On the surface, this one looks odd. Gomes hit just .223/.316/.389 (a disappointing 78 OPS+) in his first year with Washington. Even though he's still a reasonably well-regarded defender, that's not usually the type of performance that turns into a multiyear deal. But then you realize how quickly catchers are flying off the board, the presumed value of keeping one who already knows your pitchers, and, perhaps most importantly, that the Nationals declined his $9 million 2020 option earlier this month. What they've basically done this year is pay out that option -- the $1 million buyout gets you to $10 million -- and get an extra year out of it.

Nov. 27, 2019: P Kyle Gibson signs with Rangers
Three years, $30 million

Three year deals for somewhere around $30 million worked out so well for Texas over the last two years with Mike Minor and Lance Lynn -- each threw 208 1/3 innings and collected Cy Young votes in 2019 -- that they decided to give it another shot with Gibson, who bounced around both sides of the "being an average starter" line in seven inconsistent years with Minnesota. It's not terribly hard to see the appeal here, however, which we can some up in just a few bullet points. Gibson has:

• Made 25 starts six years in a row, even with 2019's bout of ulcerative colitis
• Increased his strikeout rate from 16% to 18% to 22% to 23% the last four years
• Held his ground-ball rate steady around an above-average rate of 50% while doing so, and
• Increased his sinker velocity from 91.3 mph to 91.8 to 92.2 to 93.2

Even if he's "only" a league average starter and doesn't get that long-awaited breakout, well, look at the Texas depth chart. They might have only had two reliable Major League starters, in Minor and Lynn. Now they have a third. They probably still need more.

Nov. 27, 2019: P Carl Edwards Jr. signs with Mariners
One year, $950,000

There was a time when Edwards seemed like one of the more interesting young relievers in the Majors, like when he was striking out 52 hitters in 36 innings for the 2016 World Series champs while generating 50% grounders. Then his control betrayed him, as his walk rate jumped from 10% that year -- already too high -- to nearly 17% in 2019, and that grounder rate dropped down to just 24%. It was a bad combination, as were shoulder troubles in both 2018 and '19, and issues with the legality of his mechanics, and so Edwards found himself spending parts of this past season back in Triple-A Iowa before a trade to the Padres, where he made it into just two games. He only just turned 28, so this is exactly the kind of move a rebuilding team like Seattle should be making -- if he can get himself back to form, he might interest a contender come July.

Nov. 26, 2019: C Stephen Vogt signs with D-backs
One year, $3 million, with a 2021 vesting option

The mini-run on catchers continues with Arizona snagging Vogt, who overcame a serious 2018 shoulder injury to post a strong 111 OPS+ (with 10 homers in 99 games) for the Giants in 2019. The D-backs didn't really need a catcher, at least not in the way that some other teams did and do, because young Carson Kelly's first year in the desert after coming over from St. Louis was a resounding success. Still, the lefty-swinging Vogt fills a need by replacing Alex Avila as a lefty-swinging complement to Kelly, giving Arizona a nice option against tough righty pitching (Vogt's career OPS against righties is over 150 points higher than it is against lefties) as well as some positional versatility given that he has some experience at first base and the outfield. Top it off with Vogt's reputation as one of baseball's more entertaining clubhouse members, and this is three million well-spent dollars.

Nov. 26, 2019: C Dustin Garneau signs with Astros
One year, $650,000

You get a catcher, and you get a catcher, and ... well, we have to admit we were a little surprised that Garneau managed to get a guaranteed Major League deal. It's not much -- just $650,000 -- but Garneau is 32 with a mere 381 total Major League plate appearances to his name. In the last two years, he's been claimed off waivers (A's, 2017), designated for assignment four times (A's in 2018 and '19; Angels twice in '19) and served time with five Triple-A clubs. While you might be tempted to say this is the latest guy that the Astros see some hidden magic in, the more likely truth is that with Robinson Chirinos and Martin Maldonado both free agents, the only Houston catcher on the 40-man roster is young Garrett Stubbs -- making Garneau a potential backup behind a starting catcher yet to be acquired.

Nov. 26, 2019: P Nestor Cortes Jr. traded from Yankees to Mariners; P Kendall Graveman signs with Mariners
Cortes traded for international slot money; Graveman signed to one-year deal for $1.5 million

The Mariners had 42 players take the mound in 2019 and had a 5.00 ERA -- the fourth-highest in team history -- so you better believe GM Jerry Dipoto is going to keep on churning to find a combination that works. (Actually, given Dipoto's reputation as baseball's foremost wheeler-and-dealer, he'd probably be doing that even if things had gone well this past season.) Neither Cortes Jr. nor Graveman is likely to be a difference-maker, but they might each help to raise the floor in Seattle. Cortes Jr., 25 in December, averaged only 89.6 mph on his fastball in 2019, but with a funky lefty release point, still managed to get through 66 2/3 innings for the Yankees. They weren't necessarily great innings, but he's a flyball pitcher who was hurt by Yankee Stadium -- as Dipoto said, "We do feel his Major League performance has probably been less successful due to what we think is an unsustainably high home run rate" -- and he could serve as a useful swingman for the Mariners.

Graveman was Oakland's Opening Day starter in 2017 and '18 before he went down with Tommy John surgery, then signed with the Cubs to continue his rehab. Chicago, however, declined his $3 million option for 2020, which was somewhat surprising -- they paid him to rehab without getting the healthy season that usually comes along afterward, so that might not say a lot about their confidence in his ability to contribute. Still, he'll turn 29 in December, and in 407 innings for Oakland between 2015-17, he was basically a league-average pitcher. If he can do that again, he might be Seattle's No. 2 starter.

Nov. 25, 2019: C Mike Zunino signs with Rays
One year, $4.5 million, with a 2021 team option

Considering how much of a wreck Zunino's first season with Tampa Bay was -- he hit .165/.232/.312 in 90 games, hampered at times by a left quad injury -- it was worth wondering if the Rays would non-tender him rather than pay him the nearly $5 million he was projected to collect in arbitration. But then Yasmani Grandal signed with the White Sox and Tyler Flowers signed with the Braves and 2019 Tampa Bay catcher Travis D'Arnaud signed with the Braves, too, and ... well, the Rays certainly weren't going to hand over the job full-time to Michael Perez with no safety net, and there's really no other full-time starting catchers on the market. The Rays may yet import a veteran type like Martin Maldonado or Francisco Cervelli to share the load, but considering how thin things look right now, they had to retain Zunino. He's been rated an average-to-above pitch framer in each of the past five years, anyway.

Nov. 24, 2019: C Travis d'Arnaud signs with Braves
Two years, $16 million

A decade after Braves GM Alex Anthopoulos first acquired d'Arnaud -- then bringing him from Philadelphia to Toronto as part of the Roy Halladay deal -- he does it again, giving him a two-year contract to replace the retired Brian McCann as Tyler Flowers's catching partner. For the Braves, it's the continuation of a busy start to the winter, as d'Arnaud joins Will Smith, Chris Martin, Flowers, Darren O'Day and Nick Markakis as players who have agreed to either return to or arrive in Atlanta. For d'Arnaud, it's the end of a dizzying last twelve months that saw him designated for assignment by the Mets in April, get into a single game for the Dodgers, then pile up enough big hits for the Rays that he was hitting cleanup for Tampa Bay in the American League Wild Card Game.

That tells you a lot about how up-and-down his year was, and it's true about his career too. Despite his first-round (37th overall in 2007) pedigree, and his role in two massive trades (he went to the Mets with Noah Syndergaard), he's had trouble staying healthy enough to ever be a regular catcher, having taken 400 plate appearances in a season just once, back in 2014. For all his Tampa Bay heroics, he was still a league-average hitter in 2019 (98 OPS+) which is about the same as he's been over his career (96 OPS+). Still, 'average hitters' are hard to find behind the plate, and with Yasmani Grandal off the board, the catcher market is thin. The Braves acted aggressively to come up with a second solid catcher, expecting neither Flowers nor d'Arnaud to play every day.

This browser does not support the video element.

Nov. 22, 2019: 1B José Abreu signs extension with White Sox
Three years, $50 million

A day after signing Yasmani Grandal to a well-received four-year contract, the White Sox signed Abreu to perhaps the least surprising extension in baseball history -- after all, both sides have spent months expressing their respect for one another and their desire to extend their relationship. Since Abreu slugged 33 homers and had a 119 OPS+ in 2019, to say nothing about the well-reported impact he's had on Chicago's young Cuban players, it's easy to understand why they'd be so pleased about having him back.

The question, however, was if this was a necessary deal. After all, Abreu had already accepted a one-year, $17.8 million qualifying offer, so this isn't "a three-year deal" so much as it is "a two-year extension" for his age 34 and 35 seasons. Given the fact that Abreu had made it so clear that he wanted to stay on the South Side, presumably the White Sox could have simply retained him for 2021 and/or 2022 a year from now if they'd wanted to. It's not about the money; it's about the risk that a 33-year-old below-average defender might take a step back or get hurt in 2020, in addition to potentially blocking fast-moving No. 3 overall Draft pick Andrew Vaughn in the process. If Abreu keeps hitting, White Sox fans won't mind this at all. If anything goes wrong in 2020, they'll wonder what the rush was.

Nov. 21, 2019: C Yasmani Grandal signs with White Sox
Four years, $73 million

A few weeks back, we said the White Sox could be "2020's breakout team," because a long-running rebuild that had appeared to have stalled out after 2018 finally bore fruit in 2019, with Lucas Giolito, Yoan Moncada, Eloy Jimenez and Tim Anderson all arriving and/or having long-awaited big seasons, with Luis Robert, Nick Madrigal and Michael Kopech all expected to contribute in 2020.

As we said at the time, while it was indeed true that incumbent James McCann had been an All-Star in 2019, every bit of statistical evidence indicates that it was something of a fluky hot start that couldn't be repeated -- to say nothing of his below-average framing numbers. That meant that for a team that seemed to want to make a big move, adding the best available catcher -- arguably the best catcher, period -- would be a big deal on both sides of the ball.

That makes this a really, really big deal. Grandal had a .380 OBP and a .468 slugging in 2019, hitting 20-plus homers for the fourth straight season. He's been a consistent 10-to-20% better than average hitter for six years now; over the last three years, he's pretty easily been the best hitting catcher in baseball. Then there's the pitch framing, which we detailed in a piece counting down his possible homes earlier this week:

Obviously, the other selling point here is his elite pitch framing, which has also maintained a consistent level of excellence. Grandal was second-best at it in 2019, third-best over the last three seasons, and easily the best -- by a huge margin -- since his 2014 full-season debut. (Numbers can vary on this, but by FanGraphs' reckoning, his framing alone has been worth about 11 wins since 2014, an enormous number.)

Put that all together, and Grandal has been a star. In 2019, according to FanGraphs' version of Wins Above Replacement, he was roughly the 20th-best position player in baseball. Over the last three years, he's been 15th. Over the last five years? 12th. You get the idea. This is five straight star-level seasons.

Grandal, by himself, is not enough to put the White Sox into the playoffs. They still badly need at least two starting pitchers, to say nothing of an outfielder. But he improves the lineup, and he improves the pitching staff. It's the largest contract in White Sox history, and a huge move for a long-dormant team that clearly needed to make one.

Nov. 19, 2019: P Chris Martin signs with Braves
Two years, $14 million

Is it too soon to call the Braves the winners of the offseason? Probably, but also they're the only ones who have actually done something. The Braves have jumped all over what was already a pretty weak reliever market by bringing back Martin, originally acquired via trade from Texas last July, after already importing Will Smith and retaining Darren O'Day. Martin's season was unfortunately marred by the oblique injury that knocked him out of Game 1 of the NLDS before he could even throw a pitch, but he'd otherwise been outstanding -- 22 strikeouts against just 1 walk for the Braves, and a wild 65/5 K/BB for the 2019 season as a whole.

Atlanta's bullpen now shapes up to start with Mark Melancon, Smith, Martin, Darren O'Day, Luke Jackson, Shane Greene and possibly Sean Newcomb, if he's not in the rotation. That's looking like it could be a very strong group, and all Alex Anthopoulos had to do was not wait until after Thanksgiving turkey to get a move on it.

Nov. 13, 2019: P Will Smith signs with Braves
Three years, $40 million, with team option for 2023

Qualifying offer? What qualifying offer? Just hours before the deadline for Smith to accept or reject his offer from the Giants -- which he was reportedly using as leverage to get teams to submit their best offers before he returned to San Francisco for one year and $17.8 million -- the Braves stepped up with a three-year deal for the winter's best reliever, and one who grew up in Georgia, to boot. Over parts of three seasons with the Giants (half of 2016 and 2018/2019, since he missed 2017 due to Tommy John surgery) Smith posted a 2.70 ERA and 193 strikeouts in just 136 2/3 innings, throwing his slider more than 40% of the time. He was at his best in 2019, posting a Top 10 strikeout rate (37.4%), and in 2018-19 combined, Statcast quality-of-contact metrics have him as a Top 10 reliever.

That, combined with the relatively weak reliever market, makes this a strong add for an Atlanta bullpen that wasn't a strength; Smith, Mark Melancon, Darren O'Day, Shane Greene and Luke Jackson make for a good start, plus Sean Newcomb, if he's not in the rotation. Entertainingly, the Braves claim that Melancon will remain their closer, with Smith taking important innings ahead of him. We've seen that show before. Bet on it not remaining the same by June.

This browser does not support the video element.

Nov. 12, 2019: P Adam Wainwright returns to Cardinals
One year, $5 million

In 2017, Wainwright had a 5.11 ERA. In '18, he threw just 40 1/3 innings of 4.46 ERA ball. So when the Cardinals brought him back for '19, his age-37 season, you can see why it was for a mere $2 million, though with plenty of incentives. As it turns out, he was productive enough that he maxed out on all of them, earning $10 million, thanks to throwing 171 2/3 innings with a 4.19 ERA, making him basically a league-average starter. That's more than a little impressive at his advanced age with his limited velocity, and considering his status as a Cardinals legend -- '20 will be his 15th season and 16th year with St. Louis -- bringing him back for another year makes all the sense in the world. This time around, he gets a higher base salary of $5 million, with a chance for $5 million more in incentives. It's a move that makes sense for both sides, so long as the Cardinals don't stop here. They still need pitching depth.

Nov. 8, 2019: Braves bring back P Darren O'Day
One year, $2.25 million, with a $3.5 million option for 2021

O'Day was actually traded from Baltimore to Atlanta in July 2018, but due to right hamstring and right arm injuries, he didn't actually make his Braves debut until Sept. 7, 2019. At 37 years old, that's a rough profile to take into free agency, so a reunion makes sense, especially since O'Day reportedly plans to live full-time in Georgia even after baseball. He was effective enough, anyway, allowing one run in 12 regular-season and postseason games.

Nov. 4, 2019: Braves retain OF Nick Markakis and C Tyler Flowers
One year, $4 million (plus $2 million buyout of previous option) for each

The year is 2049. Ronald Acuña III is hitting leadoff for the Atlanta Hover-Braves. Nick Markakis has returned on his 31st consecutive one-year contract as he approaches his 5,000th career hit. That's a joke, obviously, but it does seem like Markakis is going to be playing for the Braves for the rest of time, doesn't it? So long as he's a platoon option, as he reportedly will be, a low-dollar one-year deal for a reportedly plus clubhouse presence seems fine. The problem will be if this causes Atlanta not to add the offensive improvement it still needs, or if he gets another 600 league-average plate appearances, as often seems to happen.

As for Flowers, Braves fans seem to dislike him because he hit .229 and led the Majors in passed balls, and he shouldn't be anyone's starter. That said, he hit 11 homers in only 310 plate appearances, and he is a truly elite pitch framer. For a few million bucks, that's a fantastic backup catcher.

Nov. 4, 2019: P Chase Anderson traded from Brewers to Blue Jays
Brewers receive Minor League 1B Chad Spanberger

Look, not every move that happens this offseason is going to be earth-shattering, but this one's more interesting than it might appear on the surface. Anderson has started at least 20 games in each of the past six seasons, and over the past three years, his 3.63 ERA (118 ERA+) is an above-average mark. (He also showed a very intriguing cutter.) The 2019 Blue Jays had three pitchers make 20 starts, but both Marcus Stroman and Aaron Sanchez are gone, and Trent Thornton isn't exactly the ace of anyone's rotation. It's merely a start, but for a club that probably needs to add three or four starters this winter, a start matters.

Nov. 3, 2019: P Aroldis Chapman signs extension with Yankees
One year, $18 million added to existing two years, $30 million

When we looked at this offseason's qualifying offer choices, we noted that if Chapman opted out, he'd likely receive one, and "that all sounds messy, though, so the best outcome here might be that the two sides just agree to tack on another year or two rather than go through all of this."

Well, yeah. That's exactly what happened. Despite the fact that Chapman's fastball is down to a career-low 98 mph, that's still 98 mph, and he's compensating by throwing his slider more, up to nearly one-third of the time in 2019. That pitch got him 41 strikeouts and a mere .159 average against, because it has the capability to make hitters who are geared up for the heat look silly. In order to keep one of the 10 or so best relievers around, the Yankees turned his two-year deal into a three-year, $48 million pact.

More from MLB.com