Can't be done.

Those one-size-fits-all keeper rankings you're hoping to find? Might as well stop looking now. They don't exist.

It's the nature of the keeper format. As soon as players are kept, a league's draft pool becomes one-of-a-kind, as unique to it as a fingerprint.

And then there are the rules. My God, the rules.

Maybe teams in your league keep four players. Maybe 40. Maybe it varies from team to team based on what each owner is willing to forfeit on Draft Day. Maybe nobody forfeits anything, and every team starts over with the best of what it already had.

Give me three identical lists of five, and I might choose to keep two different players from each, depending on the rules.

So I'm telling you upfront: This list doesn't apply to every keeper league. And if we're being super technical, you could also say it doesn't apply to any keeper league.

But I have to address keepers somehow, right? I could focus on leagues where players are kept on equal footing, paying no mind to where they were drafted initially, but it seems like standard single-season rankings provide enough answers there. And long-term considerations? Some sites offer dynasty rankings -- and this one will as well -- but not all keeper leagues emphasize prospects so much. And dynasty rankings still don't take into account what an owner may be forfeiting to keep a certain player.

That's what I'm looking to address: Those instances where an owner can keep a great player for a high pick or a lesser player for a lower pick. Which way does he go? It's not so straightforward, and there aren't many resources to help with that decision. This can be one.

I weighed four factors when determining these rankings:

  1. How good is the player? Pretty straightforward, really.
  2. How affordable is the player? What separates these keeper rankings from others, I would say.
  3. How old is the player? Because affordability only matters to the extent you can enjoy it.
  4. How trustworthy is the player? The better value isn't necessarily the better keeper if you can't count on him to repeat his success.

To gauge "value," I use last year's ADP (average draft position) for both Head-to-Head and Rotisserie leagues, assuming a 12-team format. It's an approximation of what you'll be giving up to keep the player, if not a dead-on representation.

One last thing: All of these players are good keepers at these values, so in a perfect world, you won't have to throw any of them back into the draft pool. But in case you do, I've done the nitpicking for you.

Top 50 keepers for 2018 based on 2017 ADP
Mike Trout Los Angeles Angels CF
H2H ADP: Round 1 / Roto ADP: Round 1 / Age: 26
Unless you're picking 1-1, keeping Mike Trout with a first-round pick is in fact keeping him at a discount. And even if you're picking 1-1, well, you're obviously picking him, so why bother throwing him back?
Bryce Harper Washington Nationals RF
H2H ADP: Round 1 / Roto ADP: Round 1 / Age: 25 
He's a little frustrating at times, but given that he's only now entering his prime and already has an MVP in the bag, Bryce Harper is obviously a player to build around, regardless of the cost.
Jose Altuve Houston Astros 2B
H2H ADP: Round 1 / Roto ADP: Round 1 / Age: 27 
Jose Altuve still isn't at a point where age is a concern and has become the most reliable first-round hitter this side of Trout. Throw him back, and you're downgrading for sure.
Nolan Arenado Colorado Rockies 3B
H2H ADP: Round 1 / Roto ADP: Round 1 / Age: 26
Like the three ahead of him, Nolan Arenado seems like a lock for first-round production for the foreseeable future, but the equation changes if he leaves Coors Field after the 2020 season. Good news is the Rockies are looking into an extension.
Cody Bellinger Los Angeles Dodgers 1B
H2H ADP: Undrafted / Roto ADP: Round 30  / Age: 22 
Finally, a true bargain pick. The pedigree and peripherals support everything Cody Bellinger did in 2017, and the chance to lock up a perennial MVP candidate with a late-round pick is exactly why you play in these leagues.
Carlos Correa Houston Astros SS
H2H ADP: Round 2  / Roto ADP: Round 2  / Age: 23 
As the game's preeminent offensive shortstop, Carlos Correa figures to have a permanent home in the first round, so getting to keep him just a round later, especially after a season in which he showed signs of meeting his full potential, is a triumph.
Aaron Judge New York Yankees RF
H2H ADP: Round 22  / Roto ADP: Round 24  / Age: 25 
He's on shaky ground with the strikeouts and is older than you might think, but now that we've seen the upside, Aaron Judge is a no-brainer to keep at this price.
Mookie Betts Boston Red Sox RF
H2H ADP: Round 1 / Roto ADP: Round 1 / Age: 25 
The dip in batting average was kind of fluky, and yet Mookie Betts still came close to first-round production. You can't expect to do better with a first-round pick, especially factoring in his age.
Kris Bryant Chicago Cubs 3B
H2H ADP: Round 1 / Roto ADP: Round 1 / Age: 26
Kris Bryant has become a better all-around hitter since entering the league three years ago, raising his floor to the point you can commit to him as your No. 1 player for the long haul.
Manny Machado Baltimore Orioles 3B
H2H ADP: Round 2  / Roto ADP: Round 1 / Age: 25 
Manny Machado has delivered enough first round-caliber seasons pre-age 25 that you can forgive the time he falls short, especially with the way he rebounded down the stretch. You're married to him at this point.
Trea Turner Washington Nationals SS
H2H ADP: Round 2 / Roto ADP: Round 1 / Age: 24 
Last year's No. 1 on this list obviously isn't the bargain he was then, but Trea Turner validated the choice with stud numbers in spite of a suspiciously low line-drive rate. There's more than just speed here.
Jose Ramirez Cleveland Indians 3B
H2H ADP: Round 7  / Roto ADP: Round 8  / Age: 25 
He may deserve to be higher given the bigger discount, but as unexpected as Jose Ramirez's rise to prominence was two years ago, his power breakthrough last year was even more surprising. Slim chance you'll regret him at this spot, though.
Luis Severino New York Yankees SP
H2H ADP: Round 24  / Roto ADP: Round 29  / Age: 23 
Pitchers are riskier long-term investments than hitters, but at this price, Luis Severino is the best arm to keep, having emerged as a top-10 Fantasy option last year.
Francisco Lindor Cleveland Indians SS
H2H ADP: Round 3  / Roto ADP: Round 3  / Age: 24 
Francisco Lindor isn't as affordable as his teammate Ramirez, but I find myself questioning the power breakthrough just as much. The shortstop eligibility isn't worth the four-round upcharge to me, but it's close.
Corey Seager Los Angeles Dodgers SS
H2H ADP: Round 3  / Roto ADP: Round 2  / Age: 23 
He might actually go later this year than he did last year in re-draft leagues, but the floor is so high and future so bright at a perpetual position of need that you can't afford not to keep Corey Seager.
Rafael Devers Boston Red Sox 3B
H2H ADP: Undrafted / Roto ADP: Undrafted / Age: 21 
It was a brief glimpse, but Rafael Devers showed the ability to hit the ball to all fields and dominate same-handed pitching, portending greatness for a player regarded as a top prospect since age 17.
Ronald Acuna Atlanta Braves CF
H2H ADP: Undrafted / Roto ADP: Undrafted / Age: 20 
The Braves have already freed up an outfield spot for Ronald Acuna -- a player who climbed three levels in the minors last year, improving at every stop, to emerge as the top prospect in baseball. If anyone's worth a prospective stash, it's him.
Anthony Rendon Washington Nationals 3B
H2H ADP: Round 12  / Roto ADP: Round 9  / Age: 27 
Coming off his best season -- and at an age that would suggest a legitimate breakthrough -- Rendon is an obvious keeper at his 2017 price tag, but it's worth noting he has faked us out in the past (e.g., 2014).
Giancarlo Stanton New York Yankees RF
H2H ADP: Round 4  / Roto ADP: Round 3  / Age: 28 
Giancarlo Stanton's best season and biggest career move both came just after his draft stock slipped a little, which is good timing for those who kept the faith. Depending how you think he'll age, he could rank higher here. 
Freddie Freeman Atlanta Braves 1B
H2H ADP: Round 3  / Roto ADP: Round 3  / Age: 28 
By now, we're all pretty much on board with the idea that Freddie Freeman is a first round-caliber hitter, even if a surplus occasionally pushes him to Round 2 in re-draft leagues. The discount is small, but there are assurances attached.
J.D. Martinez Arizona Diamondbacks RF
H2H ADP: Round 9  / Roto ADP: Round 7  / Age:  30 
A player's long-term prospects start to get dicey at age 30, which is why J.D. Martinez is this far down the list even though the keeper discount (a second-round talent in Round 7) is comparable to Jose Ramirez. 
Rhys Hoskins Philadelphia Phillies LF
H2H ADP: Undrafted / Roto ADP: Undrafted / Age: 25
A personal favorite of mine since well before he set the league ablaze last August, Rhys Hoskins did slow down over the last couple weeks and doesn't offer the can't-miss pedigree of a Bellinger or Devers. It's nitpicking, I know.
Robbie Ray Arizona Diamondbacks SP
H2H ADP: Round 15 / Roto ADP: Round 14  / Age: 26
Though 2017 certainly looks like a breakout season for Robbie Ray, the underlying improvement was mostly confined to his BABIP, which went from unusually high to unusually low in a year's time. Otherwise, he'd rank up there with Severino.
Gary Sanchez New York Yankees C
H2H ADP: Round 4 / Roto ADP: Round 5 / Age: 25 
Catchers are greater injury and attrition risks than most position players and don't offer the same longevity as a result, but Gary Sanchez has emerged as the best at the position, which could earn him looks as early as Round 2 in re-draft leagues.
Andrew Benintendi Boston Red Sox LF
H2H ADP: Round 7  / Roto ADP: Round 10  / Age: 23 
Andrew Benintendi's 2017 production was about in line with his 2017 cost, but at 23 he has both longevity and projection going for him. He should hit for both a higher average and more power in the long run.
Alex Bregman Houston Astros 3B
H2H ADP: Round 10 / Roto ADP: Round 6 / Age: 23
Alex Bregman is kind of in the same boat as Benintendi, lacking the sort of production that makes him an obvious value, but if you measure from July 4 on, he was a stud -- and one with shortstop eligibility to boot. 
Marcell Ozuna St. Louis Cardinals LF
H2H ADP: Round 14 / Roto ADP: Round 16 / Age: 27 
I haven't embraced Marcell Ozuna the way I have some of these other players, believing he benefited from some BABIP luck in 2017, but it doesn't explain the power bump. Regardless, you can't pass him up at this price.
Chris Sale Boston Red Sox SP
H2H ADP: Round 1 / Roto ADP: Round 2 / Age: 28 
Committing your first-round pick to a pitcher is less than ideal, but assuming all the other first-rounders I've advised keeping are actually kept, it doesn't make sense to forfeit one as consistently studly as Sale, who's still on the right side of 30. 
Paul Goldschmidt Arizona Diamondbacks 1B
H2H ADP: Round 1 / Roto ADP: Round 1 / Age: 30
Seeing the three at the front of the age column makes me uneasy, but disciplined hitters who man corner positions typically age well. For now, there's no disputing who's your best player if you keep Paul Goldschmidt
Clayton Kershaw Los Angeles Dodgers SP
H2H ADP: Round 1 / Roto ADP: Round 1 / Age: 30
Once a lock at any cost, Clayton Kershaw now has definite longevity concerns after missing time three of the last four seasons with back issues. Still, inning for inning he's the best starting pitcher in baseball.
James Paxton Seattle Mariners SP
H2H ADP: Round 11 / Roto ADP: Round 12  / Age: 29
Speaking of longevity concerns and dominating inning for inning, that's James Paxton in a nutshell, whose ace turn came a little later than ideal and who has yet to throw even 140 innings in a major-league season. But if he does, what a value.
George Springer Houston Astros CF
H2H ADP: Round 4 / Roto ADP: Round 3 / Age: 28 
Projection is no longer applicable to the 28-year-old George Springer, but he's good enough as is to keep at this price. His World Series performance excuses his second-half power outage.
Gleyber Torres New York Yankees SS
H2H ADP: Undrafted / Roto ADP: Undrafted / Age: 21 
Whether he claims it in spring training or not, the Yankees have freed up second base for Gleyber Torres, who they've resisted moving in their pursuit of another ace. He has the feel of another Correa to me.
Jonathan Schoop Baltimore Orioles 2B
H2H ADP: Round 20 / Roto ADP: Round 17 / Age: 26
Jonathan Schoop's gradual improvement culminated in him reaching the upper rung of the second base ladder last year, but that's partly because the position is thin at the top. He lacks game-changing upside, but you obviously can't expect to draft him late again.
Eloy Jimenez Chicago White Sox RF
H2H ADP: Undrafted  / Roto ADP: Undrafted / Age: 21
Though the White Sox have offered no indication of his timetable, Eloy Jimenez might be the best pure hitter left in the minors. Now's when to get in at the ground room floor.
Nick Senzel Cincinnati Reds 3B
H2H ADP: Undrafted / Roto ADP: Undrafted / Age: 22
Ditto for Nick Senzel. Because they're with rebuilding clubs, you can bet he and Jimenez will get more time to marinate, but I'm confident enough in both players' offensive potential that I wouldn't wait around for word of a promotion. You risk sacrificing too much value that way.
Yoan Moncada Chicago White Sox 2B
H2H ADP: Round 21 / Roto ADP: Round 20 / Age: 22
Sometimes reaching the majors can actually hurt a player's keeper appeal, but Yoan Moncada's strong September gives some hope he's on the verge of capitalizing on all his ability -- all but the base-stealing, anyway. Now's not the time to give up.
Francisco Mejia Cleveland Indians C
H2H ADP: Undrafted / Roto ADP: Undrafted / Age: 22
Francisco Mejia's hitting ability is rare among catchers, but he's not as exciting of a prospect if he winds up at third base, where he played some this winter. Of course, a position change might also hasten his arrival.
Tommy Pham St. Louis Cardinals LF
H2H ADP: Undrafted / Roto ADP: Undrafted / Age: 30
The concerns with Tommy Pham are twofold: He didn't break out until age 29, and he needed until 29 because of injuries. He could be a top-10 outfielder this year or out of the Fantasy Baseball consciousness by mid-May, so while the value is great, you'll want to proceed cautiously.
Sonny Gray New York Yankees SP
H2H ADP: Round 21 / Roto ADP: Round 24 / Age: 28 
Sonny Gray was a trendy bust pick before he actually did bust in 2016, which made him a little too affordable in 2017. Now, he's missing bats like never before with a supporting cast you wouldn't believe.
Zack Godley Arizona Diamondbacks SP
H2H ADP: Undrafted / Roto ADP: Undrafted / Age: 27 
Zack Godley has some of Pham's too-out-of-nowhere-to-believe stench on him, but considering his top-10 swinging strike rate and top-10 groundball rate, you have to buy him at this price.
Luis Castillo Cincinnati Reds SP
H2H ADP: Undrafted / Roto ADP: Undrafted / Age: 25 
The most impressive rookie pitcher of 2017 dominated despite mostly unsavory matchups and an uncharacteristically high walk rate. Feels a bit like Luis Severino 2.0 but obviously has something to prove still.

Aaron Nola Philadelphia Phillies SP
H2H ADP: Round 15 / Roto ADP: Round 14 / Age: 24
Aaron Nola's 2017 was still marked by unsteadiness, but he looks like he's on the verge of putting it all together, having upped his swinging strike rate while demonstrating his usual command and poise.
Elvis Andrus Texas Rangers SS
H2H ADP: Round 15 / Roto ADP: Round 14 / Age: 29
Shortstops have been known to reach their expiration date sooner than other players, which makes Elvis Andrus' newfound production especially difficult to navigate. He was must-start even before his unexpected power breakthrough, though.
Travis Shaw Milwaukee Brewers 3B
H2H ADP: Round 25 / Roto ADP: Round 27 / Age: 27
Already well into his prime, Travis Shaw's long- and short-term production are both in question after he hit just .232 over the final two months. Can't argue the value, of course, but understand he's not a sure thing.
Domingo Santana Milwaukee Brewers RF
H2H ADP: Round 30 / Roto ADP: Round 25 / Age: 25
Hitters who strike out as frequently as Domingo Santana are always risky long-term investments, but the quality of his contact -- specifically in terms of line-drive rate -- assures him a high BABIP. And the power was never in question.
Matt Olson Oakland Athletics 1B
H2H ADP: Undrafted / Roto ADP: Undrafted / Age: 24
Compared to Santana, the strikeouts aren't so bad for Matt Olson, but he's totally sold out for power, which is fine if he can sustain the 70-homer pace he was on last year. (He won't, but 50 is possible.)
Byron Buxton Minnesota Twins CF
H2H ADP: Round 19 / Roto ADP: Round 15 / Age: 24
Byron Buxton has disappointed us so many times already that it's easy to forget he's only 24. His second half may have been a little too good to be true, given how much he struck out, but it's renewed reason for optimism. 
Alex Reyes St. Louis Cardinals RP
H2H ADP: Undrafted / Roto ADP: Undrafted / Age: 23
Alex Reyes put together a 1.57 ERA in 46 big-league innings two years ago, looking every bit the prospect he was hyped to be, and now he's on the verge of returning from Tommy John surgery. It's your second chance to lock him up at a discount.
Whit Merrifield Kansas City Royals 2B
H2H ADP: Undrafted / Roto ADP: Undrafted / Age: 29
Sometimes you have to live in the present, and while Whit Merrifield probably doesn't have too many years of Fantasy viability ahead of him, he's a rare source of speed at a middle infield spot. And the batted-ball data supports what he did at the plate last year, too.