Every offseason, I have a problem. It begins as an innocent whisper but then morphs into a snarling behemoth.

And it goes like this: "Scott, why don't you do a top keepers list?"

I'll tell you why: The correct process for selecting keepers is less about the players themselves than the circumstances by which they're being kept. No list, then, can be all things to all people.

So what should the focus be? Well, for leagues where each team keeps just a handful of players, all on equal terms, the determining factor would seem to be how well the players are expected to perform the following year, and traditional redraft rankings already tell the story there.

But what if teams in your league keep a dozen players or more, again on equal terms? That's more of a dynasty league, and I'll have a separate rank list for that.

No ad available

The variable that neither of those rank lists accounts for is when players are kept on unequal terms, meaning each has an independent keeper cost that's usually tied to a draft pick or some auction dollar amount. It's not just a matter of how good the player is, then, but how big the discount is. And since that discount is usually a function of where the player was originally selected, it rewards Fantasy GMs twice over for landing the big thing no one saw coming.

There are other variables to consider, of course, such as how many years the discount applies and how much the cost rises with each passing year, but again, this list can't be all things to all people. The discount variable was the most glaring omission from all other rank lists, so that's what this list exists to address.

Having said that, the amount of the discount wasn't my No. 1 criteria in forming these rankings but rather the player's upside and likelihood of reaching the upside. Generally speaking, the better the player, the less the discount needs to be. And in the case of obvious first-rounders, there doesn't need to be one at all. When everyone is keeping their most impactful players, you won't like the look of what's available in the first few rounds. What's the point, then, in preserving those picks?

Obviously, there needs to be a starting point for determining the discount for each of these players, and the fairest would seem to be where they were drafted on average in 2019, assuming a 12-team league. The round number is indicated for both Head-to-Head (points) and Rotisserie (categories) leagues.

No ad available

A parting word: While this list is 50 deep, it's only 50 deep, which means each of these players is a quality keeper. And plenty more exist beyond that.

Top 50 keepers for 2020
Ronald Acuna RF
ATL Atlanta • #13 • Age: 26

1

H2H ADP

Round 2

Roto ADP

Round 1
There's still a case for Mike Trout going No. 1 in redraft leagues, but the fact Acuna is already in that conversation at an age when most players are still in the minors tells you he's someone you'll want to staple to your first-round pick for years to come. He offers the ideal combination of ceiling and longevity and is already a proven commodity.
Cody Bellinger CF
CHC Chi. Cubs • #24 • Age: 28

2

H2H ADP

Round 5

Roto ADP

Round 5
Bellinger didn't put himself in the best-in-baseball conversation as quickly as Acuna did, and the damage to his draft stock last year gives you a chance to relive the discount for what's now an obvious first-rounder. Because Bellinger is still on the right side of 25, you'll be looking to keep him over and over again even as the price climbs.
Mike Trout CF
LAA L.A. Angels • #27 • Age: 32

3

H2H ADP

Round 1

Roto ADP

Round 1
With Trout now in his late 20s and having developed a bit of an injury history, it's fair to start asking the longevity question, but until he actually does something to take himself out of the No. 1 overall discussion, you wouldn't dream of throwing him back. He's the most consistently studly player in Fantasy Baseball history and well worth forfeiting your first-round pick year after year.
Christian Yelich LF
MIL Milwaukee • #22 • Age: 32

4

H2H ADP

Round 1

Roto ADP

Round 1
Two consecutive years of MVP-caliber production has made Yelich a slam-dunk keeper regardless of price, but like Trout, he's entering the baseball equivalent of middle age. The top four on this list are the same four who will be debated at the top of every non-keeper draft, so it just makes sense to place the older, non-discounted players lower.
Juan Soto RF
NYY N.Y. Yankees • #22 • Age: 25

5

H2H ADP

Round 4

Roto ADP

Round 3
Given how established he already is at such a young age, Soto might go right after Acuna and Bellinger in a dynasty startup, but in a league with keeper parameters closer to the ones established in this piece, where more roster turnover is expected from year to year, age is a secondary factor. Soto is the first player on this list who isn't a clear-cut first-rounder in redraft leagues, but it's likely in his future.
Mookie Betts SS
LAD L.A. Dodgers • #50 • Age: 31

6

H2H ADP

Round 1

Roto ADP

Round 1
At this time a year ago, Betts was regarded about the same way Yelich is now, and if a "down" year still yields first round-caliber production, yeah, that's marriage material. Maybe the steals bounce back in 2020 or maybe they don't, but he's well-rounded enough that you won't regret the investment in him either way.
Alex Bregman 3B
HOU Houston • #2 • Age: 30

7

H2H ADP

Round 1

Roto ADP

Round 1
Bregman doesn't ever get mentioned as a possible No. 1 overall pick, but because the players who do are all sure to be kept, it doesn't make sense to throw him back. He doesn't offer as much hope for stolen bases, but as a hitter, he's beginning to resemble Trout and Yelich, developing big power to go along with an elite batting eye and superior bat control. At 25, he's an MVP candidate for years to come.
Gerrit Cole SP
NYY N.Y. Yankees • #45 • Age: 33

8

H2H ADP

Round 2

Roto ADP

Round 3
It's a shame Cole has only now found his way to the top of the pitching perch, on the verge of his 30th birthday, but as pivotal as high-end pitching is in this power-laden environment, you don't pass up even a one-round discount for the biggest difference-maker at the position. Pitchers will never be as dependable as hitters, making this one potentially a short-term investment, but they're just more important right now.
Fernando Tatis RF
SD San Diego • #23 • Age: 25

9

H2H ADP

Round 18

Roto ADP

Round 18
Some would rank him higher because of his youth, his demonstrable upside and his steep discount, but Tatis is less of a sure thing than the eight players ahead of him, judging by his bloated strikeout rate and unsustainable BABIP. It's certainly within the realm of possibility that his power/speed combo makes him a perennial first-rounder, though.
Yordan Alvarez LF
HOU Houston • #44 • Age: 26

10

H2H ADP

Undrafted

Roto ADP

Undrafted
For some players, it just comes naturally, and Alvarez would seem to be a shining example, taking a wrecking ball to the minors for the first two months before transitioning to majors, where his exit velocity and launch angle readings backed up his production completely. While their profiles are slightly different, it's reminiscent of Juan Soto's rise to prominence a year earlier and should be similarly revered.
Francisco Lindor SS
NYM N.Y. Mets • #12 • Age: 30

11

H2H ADP

Round 2

Roto ADP

Round 2
Most keeper leagues of this variety impose some sort of markup from one year to the next, so it's hard to imagine anyone who drafted Lindor in the second round last season, ignoring concerns about his ankle, would be able to keep him for less than a first-rounder this season. He has clearer weaknesses than the other first-round keepers but is still in his prime and should hold his value.
Trea Turner SS
PHI Philadelphia • #7 • Age: 30

12

H2H ADP

Round 1

Roto ADP

Round 1
Well, you need steals, don't you? If the answer in your format is "not necessarily," then maybe Turner wouldn't be the wisest use of your first-round pick. But if you play in a traditional 5x5 league, locking up the surest source of stolen bases (who also happens to be a pretty good hitter) gives you so much more maneuverability in the draft that it's worth doing just for the peace of mind.
Trevor Story SS
BOS Boston • #10 • Age: 31

13

H2H ADP

Round 4

Roto ADP

Round 2
You might remember there was some reluctance surrounding Story following his breakthrough 2018, but now that the improved strikeout rate has stuck and the stolen base impact has been proven twice over, a first-round price tag is justifiable. Getting him for anything less than that, particularly in a thin-air environment that should mitigate risk, is an easy call.
Nolan Arenado 3B
STL St. Louis • #28 • Age: 33

14

H2H ADP

Round 1

Roto ADP

Round 1
As a corner infielder in a forgiving offensive venue, Arenado figures to age well, and the consistency of his production at a place where he's now locked up long-term makes him among the safer choices with a first-round pick. Yeah, it'd be nice to get some steals there, but you don't give up someone so bankable in the other four categories.
Shane Bieber SP
CLE Cleveland • #57 • Age: 28

15

H2H ADP

Round 10

Roto ADP

Round 12
It's obviously a nice discount for a pitcher who was correctly in the Cy Young conversation, but pitchers are inherently risky, particularly when the track record is limited. Bieber specifically has shown some vulnerability to left-handers and to hard contact, so while he's a no-duh keeper at a multi-round discount, he's not totally foolproof.
Rafael Devers 3B
BOS Boston • #11 • Age: 27

16

H2H ADP

Round 13

Roto ADP

Round 12
An obvious keeper as a top prospect made good right when the drafting public had grown disenchanted with him, Devers' ultimate ceiling is still open to interpretation. At 23, he likely isn't a finished product, but at the same time, the batted-ball data from 2019 suggests his second-round production may have been too good to be true.
Jacob deGrom SP
TEX Texas • #48 • Age: 35

17

H2H ADP

Round 1

Roto ADP

Round 1
A few months back, Jacob deGrom didn't seem like an obvious choice to go in Round 1, which made keeping him there an iffy call. But with the usual onslaught of injuries to the pitcher ranks, he's now the clear No. 2 behind Gerrit Cole in a year when high-end starting pitchers are going earlier than ever.
Walker Buehler SP
LAD L.A. Dodgers • #21 • Age: 29

18

H2H ADP

Round 4

Roto ADP

Round 4
Buehler's rise to prominence hasn't caught anyone by surprise, which is why he's already a second-rounder even though he hasn't handled a true ace workload yet. If this is what it takes to lock in what figures to be a perennial Cy Young contender, so be it.
Jack Flaherty SP
DET Detroit • #9 • Age: 28

19

H2H ADP

Round 6

Roto ADP

Round 6
It took an historic second half, but Flaherty ultimately did make good on the preseason breakout hype, not only salvaging the investment but also positioning himself among the game's elite. The discount may only be a round or two, depending on the markup your league uses, but when you consider that aces are about the only trustworthy pitchers in today's environment, you don't discard an up-and-comer.
Ketel Marte 2B
ARI Arizona • #4 • Age: 30

20

H2H ADP

Round 18

Roto ADP

Round 22
Arguably the biggest surprise of 2019, Marte is sure to be met with widespread skepticism even though much of what he did is backed up by data. Still, if his keeper cost is at all proportional to his going rate a year ago, as this exercise presumes, he doesn't have to be even a top-five second baseman again, much less No. 1, to justify it.
Pete Alonso 1B
NYM N.Y. Mets • #20 • Age: 29

21

H2H ADP

Round 17

Roto ADP

Round 15
The nitpickiest among us will say that for a guy who hit 53 home runs, Alonso's ability to impact a baseball isn't on the level of, say, an Aaron Judge or Joey Gallo, but it comes off like sour grapes after so many overlooked him and what most prospect publications considered to be an 80-grade power bat. Even if he cuts back to more like a 40-homer pace this year, you're still playing with house money.
Gleyber Torres 2B
NYY N.Y. Yankees • #25 • Age: 27

22

H2H ADP

Round 8

Roto ADP

Round 6
Torres isn't as obvious of a choice here as his stature would suggest. True, he came close to stud production in 2019, but with middle-of-the-road quality-of-contact numbers. The improvement from Year 1 to Year 2 was evident, though, and for him to have already made this sort of impact by his 23rd birthday suggests he's going to be a significant contributor for years to come. Now may be your last chance to seize a discount.
Lucas Giolito SP
BOS Boston • #54 • Age: 29

23

H2H ADP

Undrafted

Roto ADP

Undrafted
A guy once regarded as the game's top pitching prospect couldn't find any takers this spring despite having only one full major-league season under his belt, which seems a little ridiculous in retrospect. Granted, it was a really bad 2018, which is sure to keep the naysayers close, but the changes Giolito made were widespread. And the price tag is, of course, as good as you could ask for.
Austin Meadows LF
DET Detroit • #17 • Age: 29

24

H2H ADP

Round 25

Roto ADP

Round 18
Meadows himself was sort of a post-hype prospect last year with lingering questions about both his ceiling and projected role on a team that liked to mix and match. Fair to say he has answered those questions in the affirmative. And though it was a season of peaks and valleys, the end result is backed up by data, giving him the profile of a player who should hit for average and power.
Luis Castillo SP
SEA Seattle • #58 • Age: 31

25

H2H ADP

Round 12

Roto ADP

Round 11
Turns out Castillo needed to take a step back before taking a step forward, but those who kept the faith will reap the benefits twice over. There's still work to be done with command, so it's not guaranteed the gains stick, but seeing as Castillo was top five in both ground-ball rate and swinging-strike rate, you'll want to hitch your horse to this wagon.
Anthony Rendon 3B
LAA L.A. Angels • #6 • Age: 33

26

H2H ADP

Round 3

Roto ADP

Round 4
Rendon took his game to MVP levels last year -- enough that he should probably go in the first round but may not because of his injury history and the fact that only 12 players can. You may not get much of a discount by keeping him, in other words, but when you get a look at the player pool after all your league's keepers have been cleared out, you'll be glad you held on to the one who carried you last year.
Freddie Freeman 1B
LAD L.A. Dodgers • #5 • Age: 34

27

H2H ADP

Round 3

Roto ADP

Round 2
One of just a handful of players from this list who are the wrong side of 30, Freeman has the sort of profile that should age well, being bolstered by bat skills and plate discipline rather than pure athleticism. He's consistently studly, the sort of player you would never see fit to upgrade, so committing your first- or second-round pick to him seems reasonable, particularly since he may well be the best unkept player otherwise.
Keston Hiura 1B
DET Detroit • Age: 27

28

H2H ADP

Undrafted

Roto ADP

Undrafted
While a little more speculative than most of the players on this list, Hiura did deliver half a season of high-end production with a pedigree to back it up. The 30.7 percent strikeout rate is alarming, and he wouldn't be the first the first up-and-comer to take the league by storm before taking a step back the following year. But the price is right for a player with five-category potential.
Bo Bichette SS
TOR Toronto • #11 • Age: 26

29

H2H ADP

Undrafted

Roto ADP

Undrafted
Bichette wasn't around for as long as Hiura, but he also put up stud numbers in the time he played -- and without so obvious a pitfall. The ceiling may be slightly less, particularly if he doesn't come through on the base paths, and he of course plays the deeper position.
Xander Bogaerts 2B
SD San Diego • #2 • Age: 31

30

H2H ADP

Round 4

Roto ADP

Round 4
After seemingly peaking in 2018, Bogaerts upped his production again, namely in the home run column, to make him a surefire second-round pick. His batted-ball profile hardly changed from one year to the next, though, which suggests he's more likely to take a step back than find another gear. The discount here is fairly minimal to begin with, and if a keeper markup pushes his price tag into more of the first-round range, you might consider throwing him back.
Ozzie Albies 2B
ATL Atlanta • #1 • Age: 27

31

H2H ADP

Round 6

Roto ADP

Round 6
After a front-loaded 2018 did little to clarify his his Fantasy standing, Albies turned in a more even 2019 in which he played more to his strengths, emphasizing line drives over the long ball, and it's given him a much rosier outlook overall. His upside may be limited to that of a top-50 player rather than a top-20 player, making him a moderate keeper priority despite his youth and proven-ness.
Chris Paddack SP
MIN Minnesota • #20 • Age: 28

32

H2H ADP

Round 18

Roto ADP

Round 17
Anytime a pitcher shows up in the majors and does the sorts of things Paddack did, it's impressive -- an answered prayer, even, in today's warped pitching environment. But he was already a trendy pickup by the time Draft Day arrived and isn't a finished product, needing to improve his home run prevention and develop a trustworthy breaking ball.
Mike Clevinger SP
CHW Chi. White Sox • #52 • Age: 33

33

H2H ADP

Round 4

Roto ADP

Round 5
Drafting Clevinger where he went last year may have seemed like a reach made necessary by a shortage of competent alternatives, but then he showed up throwing harder than ever to bring the bat-missing component of his game to new heights. He's a surefire ace now, albeit one who doesn't come at a huge discount and may have some durability concerns.
Tyler Glasnow SP
LAD L.A. Dodgers • #31 • Age: 30

34

H2H ADP

Round 15

Roto ADP

Round 15
The transformation for Glasnow has been startling, much like that of fellow Pirates castoff Gerrit Cole, and the Rays made similar changes to unlock the potential we all knew was there, having Glasnow ditch his sinker and pitch-to-contact approach for an elevated fastball and power breaking ball. He gave us only 60 innings worth, though, and durability remains a question.
Yoan Moncada 3B
CHW Chi. White Sox • #10 • Age: 28

35

H2H ADP

Round 16

Roto ADP

Round 15
In a season defined by the long ball, a breakout like Moncada's, which peaked at 25 homers, might have fallen by the wayside. But the former top prospect did exactly what he needed to do to get the most out of his high-BABIP profile, going from striking out about a third of the time to about a quarter. It'll take another step forward to move him into the elite at third base, but the discount is a steep one.
Vladimir Guerrero 1B
TOR Toronto • #27 • Age: 25

36

H2H ADP

Round 7

Roto ADP

Round 6
An odd case all around. Guerrero's rookie season clearly didn't live up to the hype, which doesn't preclude him from developing into a first round-caliber bat someday. In fact, I'd still bet on it. But do you risk throwing him back knowing you could get assured production in the round you'd be keeping him? In a league with a low keeper count and significant roster turnover, you might.
Shohei Ohtani DH
LAD L.A. Dodgers • #17 • Age: 29

37

H2H ADP

Round 18

Roto ADP

Round 16
For a third consecutive year, nobody knows exactly what to expect from Ohtani, the two-way player who was far enough along in his recovery from Tommy John surgery last year to hit, but not to pitch. He's pretty great at the one, but if he's as good at the other as he showed prior to hurting his elbow in 2018, that's where he'll matter most in Fantasy. It pays to keep the faith now, while the cost is down.
Josh Bell 1B
MIA Miami • #9 • Age: 31

38

H2H ADP

Round 21

Roto ADP

Round 23
A bumpy second half left a sour taste in the mouths of those who would otherwise be thanking their lucky stars for stumbling into Bell. It also raised questions about the legitimacy of his breakout. The batted-ball data fully backs up the production, which was made possible by a better launch angle and harder contact, but batted-ball data can sometimes fib, too.
Matt Olson 1B
ATL Atlanta • #28 • Age: 30

39

H2H ADP

Round 16

Roto ADP

Round 15
A sophomore slump had Olson in the doghouse on Draft Day a year ago, but he came roaring back with massive power production even in a year in which he suffered a dreaded hamate bone injury. Better yet, his xBA and xwOBA both suggest he actually underachieved, so while there are some concerning splits in his profile, the arrow is pointing up.
Joey Gallo 1B
WAS Washington • #24 • Age: 30

40

H2H ADP

12

Roto ADP

8
Gallo has always been in the top percentile in terms of hitting the ball hard, which has always led to big enough power production to make up for his shortcomings, but he seemed to put a dent in those shortcomings in a rather unexpected way last season, refining his launch angle for a better line-drive rate. If the change sticks, he's a value at last year's going rate, but the strikeouts are still egregious.
Brandon Woodruff SP
MIL Milwaukee • #53 • Age: 31

41

H2H ADP

Round 23

Roto ADP

Round 22
For as short-handed as the Brewers' starting rotation has been the past few years, they sure took their sweet time developing Woodruff, who led the minors in strikeouts as far back as 2016. Hope doesn't spring eternal, in other words, for a pitcher who turns 27 before opening day, so if the improvements don't stick, he might be a one-and-done keeper for you.
DJ LeMahieu 3B
NYY N.Y. Yankees • #26 • Age: 35

42

H2H ADP

Round 21

Roto ADP

Round 19
Wouldn't you know LeMahieu would turn in a career season the very same year everyone assumed he'd take a step back, his numbers no longer being bolstered by the thin air of Coors Field? The data basically backs up his MVP turn, but players who break through on the wrong side of 30 are deserving of skepticism. And at his age, it wouldn't be a long-term investment anyway.
Marcus Semien 2B
TEX Texas • #2 • Age: 33

43

H2H ADP

Round 25

Roto ADP

Round 24
Another heretofore serviceable infielder who took an MVP turn at an unexpected point in his career, Semien might be an even more difficult buy-in than LeMahieu since he doesn't have all the advantages of a Yankees hitter. His improvement is clearer to see, though, both in the plate discipline and his continuing efforts to keep the ball off the ground, which paid big dividends in the second half.
Mike Soroka SP
CHW Chi. White Sox • #40 • Age: 26

44

H2H ADP

Undrafted

Roto ADP

Undrafted
With Soroka already being mentioned in the same breath as tried-and-true aces, this modest ranking is sure to draw the ire of some of those weighing the potential long-term impact against the keeper cost. Well, he's on this list because I think he comes out favorably in that regard, too, but for now, he profiles as more of a stable option than a dominant one, even if I'm not ruling out a strikeout increase going forward.
Jesus Luzardo SP
MIA Miami • #44 • Age: 26

45

H2H ADP

Round 19

Roto ADP

Round 20
In leagues that allow for just a handful of keepers, unproven prospects will all be fairly cheap to keep, but prioritizing one over a more assured contributor is always a gamble. Luzardo cracks this list because he's already promised a job and looks like a finished product with three plus pitches and excellent control.
Eloy Jimenez DH
CHW Chi. White Sox • #74 • Age: 27

46

H2H ADP

Round 9

Roto ADP

Round 8
Similar to Vladimir Guerrero except that a late-season surge mostly redeemed last year's ADP, it would nonetheless be difficult to describe Jimenez as a "value" keeper unless you're anticipating further growth. The specific keeper parameters of your league will ultimately determine if he's worth locking in at the price, but I will point out that, in the long run, I prefer Guerrero's ceiling to his.
Luis Robert CF
CHW Chi. White Sox • #88 • Age: 26

47

H2H ADP

Undrafted

Roto ADP

Undrafted
The White Sox's offseason maneuvers suggest Robert will be up at the start of the year, and his minor-league numbers suggest he could be an impact five-category player right away. If you were clever enough to pick him up down the stretch last year, well, this is how you capitalize. And if it works out, you might be reaping the benefits for years to come.
Jeff McNeil 2B
NYM N.Y. Mets • #1 • Age: 32

48

H2H ADP

Round 25

Roto ADP

Round 22
Sure, he's just getting started in the majors, but seeing as McNeil will turn 28 soon after opening day, you have to recognize it's not a long-term investment you're making in him. He's also far from a proven commodity, his keeper appeal fueled by a second-half power surge that's, yes, partially supported by his minor-league track record but still cause for suspicion.
Sonny Gray SP
STL St. Louis • #54 • Age: 34

49

H2H ADP

Round 21

Roto ADP

Round 22
Gray has made a career of faking out keeper owners, ping-ponging between looking like an ace and looking like a lost cause, so by now, we should know better, right? Never before, though, has he shown the kind of swing-and-miss potential he did in 2019, which combined with his ground-ball tendencies to give him a sub-3.00 ERA in an outrageously hitter-friendly environment. Worth a shot, right?
Frankie Montas SP
CIN Cincinnati • #47 • Age: 31

50

H2H ADP

Undrafted

Roto ADP

Undrafted
Most people had already moved on from the possibility of Frankie Montas being a high-end hurler, so between that and the PED suspension that cost him the better part of his breakout season, a great deal of skepticism surrounds it. It seems to have a plausible explanation, though, with a new splitter being the key ingredient that brought his arsenal together.