Last week, Gerrit Cole, Stephen Strasburg and Anthony Rendon agreed to free-agent deals worth a combined $814 million. Yes, baseball has come a long way from the first free-agent class in the 1976-77 offseason, when an infielder named Paul Dade signed with the Cleveland Indians and, Sports Illustrated later reported, figured he could “start to enjoy life a little.” He bought a new 25-inch color television.

Now we have Madison Bumgarner going to the Diamondbacks on a five-year, $85 million deal — further proof that geography has little to do with where a player ultimately lands. (Many predicted Bumgarner would go to the Braves because he’s from North Carolina.) It’s an intriguing signing for Arizona given that Bumgarner has a 4.61 ERA on the road over the past three seasons (and 5.29 in 2019).

With the three big stars signed and delivered, Zack Wheeler in Philadelphia with the fourth $100 million-plus deal of the winter, Bumgarner staying in the National League West and seven other players landing $20 million-plus deals, let’s check in on where we’re at in free agency.

Keith Law’s top 50 free agents

The big fish

Josh Donaldson (No. 7 on Keith Law’s top 50 free agent list): Five likely playoff contenders need a third baseman — the Braves, Nationals, Rangers, Twins (sliding Miguel Sano to first base) and Brewers — plus possibly the Phillies if they keep Scott Kingery in a super-utility role. A healthy Donaldson proved last season he’s still one of the best all-around players in the game, and even though he’s 34, his broad range of skills and athleticism mean he should age well.

Best fits: Braves, Nationals, Rangers

Prediction: Braves. I love the idea of the Twins doing something very un-Twinslike and signing a big star in free agency, but I’ll go with a return to the Braves. They’ll have to go outside their payroll comfort zone to re-sign Donaldson, and it probably will take a four-year contract, but the front office shouldn’t let that be a deterrent. This is a really good team that needs a cleanup hitter. Right now that would be … what, the Nick Markakis/Adam Duvall platoon?

Second-tier starting pitchers

Hyun-Jin Ryu (No. 5): Ryu pitched like an ace for most of last season before tiring in September, but he still led the NL with a 2.32 ERA and threw 182 ⅔ innings, his most since 2013. That wasn’t a stone-cold fluke either, as he has a 2.21 ERA in 44 starts over the past two seasons. Dodgers president of baseball operations Andrew Friedman told reporters at the winter meetings that he discussed a new deal for Ryu with agent Scott Boras, but Ryu told reporters in Korea, “If the Dodgers wanted to re-sign me, they would have told my agent. I haven’t heard from him yet.”

Best fits: Dodgers, Angels, Cardinals, Blue Jays, Twins

Prediction: Angels. The Blue Jays and Cardinals have been linked to Ryu, with Sportsnet’s Shi Davidi reporting that Ryu is one of the Jays’ top targets this offseason. But the Jays have spent more than $40 million on a free agent just once in the past decade. I say Ryu stays on the West Coast as the Angels keep him in Los Angeles.

Dallas Keuchel (No. 30): I like Keuchel a little better than Keith did in his rankings, and while Keuchel went 8-8 with a 3.75 ERA in 19 starts with the Braves after not signing until early June, there are some possible concerns with him. He allowed a .338 OBP, his highest mark since his breakout season in 2014. His strikeout rate dipped below 20% for the second straight season after peaking at 23.7% in 2015, his Cy Young season. He compensates with a high ground ball rate and by shutting down the running game (no stolen bases allowed in 2019). He’s also the bulldog type that teams love.

Best fits: White Sox, Angels, Twins, Cardinals, Padres, Phillies

Prediction: Twins. Jake Odorizzi accepted the Twins’ qualifying offer and Minnesota re-signed Michael Pineda, but those two and Jose Berrios are the only proven starters on the Minnesota roster.

Bats for a corner

Nicholas Castellanos (No. 13): Castellanos is one of the most divisive free agents of recent years. He can certainly hit — 88 extra-base hits last season, including 58 doubles, the most since Todd Helton hit 59 in 2000. Turning 28 in March, he’s also the youngest of any of the top 50 free agents. While his bat is excellent, it’s not really elite, as he ranked 48th in the majors in wOBA. That’s the concern, because all his value comes in the batter’s box as he’s a below-average defender in the outfield.

Best fits: White Sox, Rangers, Diamondbacks, Indians, Rockies

Prediction: White Sox. This could be a situation similar to that of Mike Moustakas the past two offseasons: a nice player without an obvious match. The Diamondbacks are desperate for an outfielder, but they have placed a big emphasis on outfield defense and Castellanos may be out of their price range anyway. My personal choice would be the Rockies, if only to see how many doubles he could hit at Coors Field. The Rangers just traded Nomar Mazara and the Indians cleared away Corey Kluber‘s salary, so Castellanos fits in either place. But I’ll go with the White Sox, even though they just acquired Mazara. Castellanos can fill the hole at DH and play some right field against left-handers.

Marcell Ozuna (No. 14): Ozuna was solid in his two seasons with the Cardinals, averaging 2.5 WAR while hitting .263/.327/.452. He played through some shoulder issues and has elite exit velocity and hard-hit rates, but he hits too many balls on the ground to take advantage of that. We mentioned Castellanos’ 88 extra-base hits last season — that’s almost as many as Ozuna had over two seasons in St. Louis (94). Ozuna projects as an average corner outfielder moving forward, with the slim chance he can match what he did in 2017 with the Marlins. The market for that type of player hasn’t been robust in recent years, and Ozuna is tied to a qualifying offer, which helps explain the minimal buzz around him so far.

Best fits: Diamondbacks, Reds, Giants, Tigers, Cardinals

Prediction: Reds. Heading into the offseason, predictions suggested a contract in the neighborhood of three years, $45 million for Ozuna, but it will be interesting to see if that deal arrives. One team reportedly in on Ozuna is the Reds, who have Jesse Winker and Aristides Aquino in the outfield. Adding Ozuna would give them a little more certainty and allow for a nice Winker/Aquino platoon.

Four more to watch

Julio Teheran (No. 29): Your classic durable innings-eater, Teheran made 30 or more starts in each of the seven seasons he was in the Atlanta rotation. Rick Porcello, coming off a bad season, is a comparable pitcher and signed a one-year, $10 million deal with the Mets. Teheran went 10-11 with a 3.81 ERA with the Braves, and he should get at least a two-year deal based on his durability. He has settled in as a pitcher who walks too many (4.3 walks per nine innings the past two seasons) but can be tough to hit (.213 average allowed past two seasons). It’s a fine line, but he’s been able to make it work.

Best fits: White Sox, Twins, Angels, Phillies

Prediction: Angels. The Angels are running out of options on the pitching market. Given that nobody made 20 starts or pitched more than 102 innings for them last season, they should welcome Teheran’s 30 starts and 175 innings.

Edwin Encarnacion (No. 24): He hit .244/.344/.531 with 34 home runs in just 109 games — his eighth straight season with at least 32 home runs. Heck, he’s up to 414 career home runs; don’t rule out the possibility of him reaching 500 in his career. Incredible. He does turn 37 in January, so the demise could happen overnight.

Best fits: White Sox, Blue Jays, Tigers, Indians, Yankees

Prediction: Blue Jays. Encarnacion started 57 games at first base last season (mostly with the Mariners), but he’s pretty much a DH-only guy, so I ruled out any NL teams. I guess the White Sox are the obvious pick here, except I have them signing Castellanos. I imagine the Indians will give most of their DH time to Franmil Reyes. So maybe it’s Toronto or Detroit on a bargain-bin deal.

Brock Holt (No. 26): Holt bounced back from serious health issues to become one of the best utility players the past two seasons, hitting .286/.366/.407. He played mostly second base for the Red Sox in 2019, but also started games at first base, third base, shortstop, left field and right field. He’s a lefty bat and hit .318/.394/.438 against right-handers in 2019, so he could be deployed as the strong side of a platoon at second base. The Red Sox signed Jose Peraza, so it’s unlikely the popular Holt returns to Boston.

Best fits: Indians, Yankees, Nationals, A’s

Prediction: Indians. The Indians’ website lists Mike Freeman as their starting second baseman — and Freeman was just removed from the 40-man roster following the Corey Kluber trade. Holt won’t be so costly as to be out of Cleveland’s price range. The Nationals have holes at second base and third base (one spot should go to rookie Carter Kieboom) and Howie Kendrick is best suited for first base these days, so Holt could be a fit at second for them.

Will Harris (No. 36): The best reliever on the market — depending on how you evaluate Dellin Betances — Harris is 35, but he has been one of the most consistent relievers in the game for the past half-decade, with a 2.36 ERA since joining the Astros in 2015. Only Zack Britton and Aroldis Chapman have a lower ERA since 2015 among relievers with at least 250 innings.

Best fits: Astros, Mets, Yankees, Nationals, Phillies, Twins

Prediction: Nationals. Really, this could be just about any team. The Yankees have been making noise about adding another bullpen piece, but I’ll go with the Nationals as Harris replaces Daniel Hudson to go with Sean Doolittle on the back end.

Others of note

Starting pitchers: Wade Miley, Gio Gonzalez, Homer Bailey, Ivan Nova, Rich Hill, Taijuan Walker

Relief pitchers: Betances, Steve Cishek, Tyler Clippard, Hudson, David Hernandez, Jeremy Jeffress, Brandon Kintzler, Sergio Romo, Craig Stammen, Pedro Strop

First base: C.J. Cron, Justin Smoak, Mitch Moreland

Second base: Jonathan Schoop, Cesar Hernandez, Brian Dozier

Third base: Todd Frazier, Maikel Franco

Shortstop: Jose Iglesias

Outfield: Yasiel Puig, Avisail Garcia, Corey Dickerson, Cameron Maybin, Hunter Pence, Kevin Pillar, Domingo Santana