Updated . The three most valuable keepers on the board today are Bobby Witt Jr. (KC), Junior Caminero (TB), and James Wood (WAS).
These are the same player ranks as our dynasty rankings, read for keeper leagues. The board does not change between the two formats, because a player's long-term value does not change based on what your league calls itself. What changes is the price. In a keeper league you are not buying a player at market, you are paying a fixed cost to hold one, usually a draft round or an auction salary, and that cost is what turns a rank into a keep or a cut.
So keeper value is dynasty value adjusted for the price you pay to keep. Find your candidate on the board, work out where he would actually go in this year's draft, then compare that to what keeping him costs. A player ranked 60th who costs a 14th-round pick is an easy keep: you are getting a top-60 asset for a pick that normally buys a bench bat. The same player at a 3rd-round cost is not, because that pick could buy someone ranked near 30 instead. Run every candidate through that one comparison and most keeper decisions answer themselves.
How hard you lean on long-term value depends on how long you actually hold players. In a deep keep-forever league, read this board straight: age and years of team control are worth paying for. In a shallow format where you keep one to three players for a season or two, a 29-year-old in his peak years usually beats a 21-year-old who is two seasons away, because you will not own the 21-year-old when the value arrives. In those leagues, check your candidate against the consensus redraft rankings too and weight the near-term line ahead of the rank here.
The columns are built for the other comparison you keep making: a cheap keeper against a better player at full price. Every row carries the staff rank, where the expert consensus has the player, the high and low across sources, and the community FRV rating. A wide source range on a cheap keeper means you are buying a disagreement, which is usually where the surplus lives. A tight range on an expensive keeper means you are paying market for something nobody argues about. Filter by position to see how thin your league gets behind the player you are about to keep, and price both sides of any offer in the keeper trade calculator.
| Rank | Player | Team | Pos | Age | FRV | Sources | Range |
|---|---|---|---|---|---|---|---|
| 1 | Bobby Witt Jr. | KC | SS | 25 | 100.3 | 9 | 1-6 |
| 2 | Junior Caminero | TB | 3B | 25 | 84.4 | 9 | 3-11 |
| 3 | James Wood | WAS | OF | 23 | 81.4 | 9 | 3-9 |
| 4 | Nick Kurtz | ATH | 1B | 22 | 82.2 | 8 | 7-14 |
| 5 | Juan Soto | NYM | OF | 27 | 93.1 | 9 | 1-8 |
| 6 | Pete Crow-Armstrong | CHC | OF | 24 | 78.0 | 9 | 5-26 |
| 7 | Shohei Ohtani DH | LAD | DH | 31 | 93.6 | 9 | 1-4 |
| 8 | Yordan Alvarez | HOU | OF | 28 | 81.8 | 9 | 9-40 |
| 9 | Elly De La Cruz | CIN | SS | 24 | 80.5 | 9 | 5-20 |
| 10 | Jacob Misiorowski | MIL | SP | 23 | 82.4 | 9 | 5-14 |
| 11 | Julio Rodriguez | SEA | OF | 25 | 87.2 | 9 | 13-30 |
| 12 | Ben Rice | NYY | 1B/C | 26 | 77.1 | 9 | 19-34 |
| 13 | CJ Abrams | WAS | SS | 25 | 73.0 | 9 | 17-55 |
| 14 | Kevin McGonigle | DET | 3B/SS | 23 | 72.4 | 9 | 14-24 |
| 15 | Jackson Chourio | MIL | OF | 21 | 83.5 | 9 | 11-67 |
| 16 | Corbin Carroll | ARI | OF | 25 | 81.8 | 9 | 5-12 |
| 17 | Oneil Cruz | PIT | OF | 27 | 67.3 | 9 | 34-117 |
| 18 | Tarik Skubal | LAD | SP | 29 | 83.5 | 9 | 9-20 |
| 19 | Cam Schlittler | NYY | SP | 24 | 74.6 | 9 | 14-33 |
| 20 | Cristopher Sanchez | PHI | SP | 29 | 75.6 | 9 | 13-34 |
| 21 | Fernando Tatis Jr. | SD | SS/OF | 27 | 79.6 | 9 | 13-33 |
| 22 | Kyle Schwarber | PHI | OF | 32 | 73.8 | 9 | 8-66 |
| 23 | Aaron Judge | NYY | OF | 33 | 81.3 | 8 | 2-26 |
| 24 | Yoshinobu Yamamoto | LAD | SP | 27 | 76.2 | 9 | 13-31 |
| 25 | Ronald Acuna Jr. | ATL | OF | 28 | 87.3 | 9 | 12-37 |
| 26 | Chase Burns | CIN | SP | 23 | 70.3 | 8 | 13-45 |
| 27 | Jordan Walker | STL | OF | 23 | 52.1 | 8 | 16-44 |
| 28 | Zach Neto | LAA | SS | 22 | 76.0 | 9 | 39-72 |
| 29 | Payton Tolle | BOS | SP | 23 | 55.8 | 9 | 45-71 |
| 30 | Sal Stewart | CIN | 1B/3B | 22 | 65.7 | 9 | 15-50 |
| 31 | Riley Greene | DET | OF | 25 | 70.9 | 9 | 33-66 |
| 32 | JJ Wetherholt | STL | 2B/SS | 23 | 67.1 | 7 | 20-51 |
| 33 | Vladimir Guerrero Jr. | TOR | 1B | 26 | 78.8 | 9 | 26-59 |
| 34 | Nolan McLean | NYM | SP | 24 | 67.1 | 9 | 37-168 |
| 35 | Konnor Griffin | PIT | SS/OF | 19 | 79.5 | 7 | 10-35 |
| 36 | Jesus Made (P) | MIL | SS/2B | 18 | 74.8 | 24 | 31-86 |
| 37 | Francisco Lindor | NYM | SS | 32 | 74.6 | 8 | 7-92 |
| 38 | Logan Gilbert | SEA | SP | 28 | 72.1 | 9 | 37-136 |
| 39 | Miguel Vargas | CWS | 1B/3B | 26 | 55.6 | 9 | 25-113 |
| 40 | Paul Skenes | PIT | SP | 25 | 86.7 | 9 | 4-15 |
| 41 | Roman Anthony | BOS | OF | 21 | 72.9 | 7 | 29-89 |
| 42 | Brice Turang | MIL | 2B | 26 | 69.8 | 9 | 24-64 |
| 43 | Jackson Merrill | SD | OF | 24 | 70.1 | 9 | 48-87 |
| 44 | Dylan Cease | TOR | SP | 30 | 66.8 | 9 | 32-49 |
| 45 | Gavin Williams | CLE | SP | 26 | 60.0 | 9 | 43-128 |
| 46 | Drew Rasmussen | TB | SP | 30 | 57.3 | 9 | 106-285 |
| 47 | Andy Pages | LAD | OF | 25 | 67.5 | 8 | 34-92 |
| 48 | Shea Langeliers | ATH | C | 28 | 66.5 | 8 | 30-98 |
| 49 | Chase DeLauter | CLE | OF | 24 | 57.8 | 9 | 50-144 |
| 50 | Jose Ramirez | CLE | 3B | 33 | 76.3 | 9 | 5-42 |
| 51 | Kyle Tucker | LAD | OF | 29 | 75.4 | 9 | 39-119 |
| 52 | Pete Alonso | BAL | 1B | 31 | 69.5 | 9 | 19-81 |
| 53 | Gunnar Henderson | BAL | SS | 24 | 83.1 | 9 | 19-54 |
| 54 | Michael Harris II | ATL | OF | 24 | 65.2 | 9 | 27-200 |
| 55 | Bryce Harper | PHI | 1B | 33 | 72.1 | 9 | 60-96 |
| 56 | Drake Baldwin | ATL | C | 24 | 67.3 | 9 | 25-92 |
| 57 | Matt Olson | ATL | 1B | 31 | 67.3 | 9 | 22-87 |
| 58 | Leodalis De Vries (P) | ATH | SS | 20 | 73.4 | 24 | 38-167 |
| 59 | Otto Lopez | MIA | SS/2B | 27 | 51.0 | 9 | 84-134 |
| 60 | Wyatt Langford | TEX | OF | 24 | 77.0 | 9 | 25-96 |
| 61 | Eury Perez | MIA | SP | 23 | 67.8 | 9 | 36-151 |
| 62 | Byron Buxton | MIN | OF | 32 | 60.0 | 8 | 60-113 |
| 63 | Seiya Suzuki | CHC | OF | 31 | 62.2 | 9 | 75-180 |
| 64 | William Contreras | MIL | C | 28 | 67.5 | 9 | 89-127 |
| 65 | Bryan Woo | SEA | SP | 25 | 72.9 | 9 | 22-61 |
| 66 | Hunter Brown | HOU | SP | 27 | 72.7 | 8 | 40-74 |
| 67 | Chris Sale | ATL | SP | 36 | 63.3 | 8 | 60-196 |
| 68 | Mason Miller | SD | RP | 27 | 66.2 | 9 | 23-183 |
| 69 | Ketel Marte | ARI | 2B | 32 | 72.0 | 9 | 15-93 |
| 70 | Randy Arozarena | SEA | OF | 30 | 52.1 | 9 | 68-173 |
| 71 | Walker Jenkins (P) | MIN | OF | 21 | 66.2 | 24 | 57-142 |
| 72 | Jesus Luzardo | PHI | SP | 28 | 59.6 | 9 | 45-90 |
| 73 | Parker Messick | CLE | SP | 25 | 51.5 | 9 | 75-177 |
| 74 | Bryce Eldridge | SF | 1B | 21 | 64.8 | 9 | 62-131 |
| 75 | Samuel Basallo | BAL | C/1B | 21 | 67.0 | 7 | 52-203 |
| 76 | Alec Burleson | STL | 1B/OF | 27 | 53.5 | 9 | 62-185 |
| 77 | Hunter Goodman | COL | C | 26 | 62.6 | 9 | 55-127 |
| 78 | Max Fried | NYY | SP | 32 | 64.6 | 9 | 39-102 |
| 79 | Sebastian Walcott (P) | TEX | SS/3B | 19 | 68.0 | 24 | 67-204 |
| 80 | Jeremy Pena | HOU | SS | 28 | 58.4 | 9 | 56-203 |
| 81 | Eli Willits (P) | WAS | SS | 18 | 56.6 | 23 | 43-194 |
| 82 | Travis Bazzana | CLE | 2B | 23 | 67.4 | 9 | 54-249 |
| 83 | Jazz Chisholm Jr. | NYY | 2B/3B | 27 | 67.2 | 9 | 28-147 |
| 84 | Rafael Devers | SF | 1B | 29 | 70.4 | 9 | 38-95 |
| 85 | George Kirby | SEA | SP | 27 | 70.3 | 9 | 62-235 |
| 86 | Zack Wheeler | PHI | SP | 35 | 55.0 | 8 | 71-132 |
| 87 | Joe Ryan | MIN | SP | 29 | 66.8 | 9 | 44-79 |
| 88 | Kyle Harrison | MIL | SP | 24 | 53.5 | 8 | 71-174 |
| 89 | Logan Webb | SF | SP | 29 | 65.9 | 9 | 42-103 |
| 90 | Munetaka Murakami | CWS | 1B/3B | 25 | 61.1 | 9 | 48-88 |
| 91 | Trea Turner | PHI | SS | 32 | 64.5 | 9 | 58-167 |
| 92 | Gerrit Cole | NYY | SP | 35 | 55.5 | 8 | 122-230 |
| 93 | Freddie Freeman | LAD | 1B | 36 | 62.2 | 8 | 64-169 |
| 94 | Garrett Crochet | BOS | SP | 26 | 74.0 | 7 | 17-62 |
| 95 | Nico Hoerner | CHC | SS/2B | 28 | 58.8 | 8 | 140-253 |
| 96 | Kade Anderson (P) | SEA | SP | 21 | 55.5 | 25 | 34-68 |
| 97 | Dillon Dingler | DET | C | 27 | 51.3 | 8 | 104-171 |
| 98 | Logan Henderson | MIL | SP | 23 | 53.6 | 9 | 29-173 |
| 99 | Kyle Stowers | MIA | OF | 28 | 58.2 | 9 | 61-196 |
| 100 | Cade Smith | CLE | RP | 26 | 58.8 | 9 | 61-158 |
Most keeper leagues are won in the weeks before the keeper deadline, when the managers who are out start selling. Run any offer through the fantasy baseball keeper trade analyzer: it prices both sides off this same board, names the winner, and shows how much of a margin the verdict really has. Then apply keeper cost to each side, because a player at a cheap keeper price is worth more to you than his rank alone, and a player you would cut rather than pay is worth very little. Every player's number is listed on the trade value chart.
Keep every player whose rank clearly beats what the keeper slot costs you, and stop there. The number of slots your league allows is a ceiling, not a target. If only two of your four keeper spots return real surplus, use two and take the other picks at market. Auction keeper leagues run the same rule on dollars: keep the players whose salary sits under what they would cost you in the draft, and put the rest back in the pool.
The player ranks are identical. FanRanked publishes one hand-built board, so a player sits in the same spot whether you are reading it for a dynasty league or a keeper league. The difference is the question you ask of it. Dynasty asks who is worth more over the next five years. Keeper asks whether that rank is worth the round or the salary it costs to hold the player, and in shallower formats it asks how much of the long-term value you will still own when it shows up.
Only if your league keeps players long enough for the prospect to arrive and produce. Prospects are ranked inline on this board on the same value scale as established big leaguers, so you can see exactly which veterans a prospect is worth. In a keep-forever league that trade is often the right one. In a league that keeps three players for two years, a prospect who debuts next August will spend your entire keeper window in Triple-A.
Whenever your keeper window is shorter than the dynasty asset's timeline. Keep one to three players for a year or two and the win-now bat in his prime is worth more than the 21-year-old with the higher long-term rank, because your league will hand the young player back to the draft pool before he pays off. The deeper and longer your keeper rules run, the more the board's rank order should drive the decision on its own.
Price both sides on the same board, then adjust for keeper cost. The FanRanked trade calculator handles the first part: add the players on each side and it returns a winner, a fairness margin, and how confident that verdict is. Then apply the price. A player you would happily keep at a 12th-round cost is worth more to you than his rank alone says, and a player you would cut rather than pay is worth close to nothing no matter where he ranks.
The board is updated regularly through the year as roles change, players are traded, and prospects graduate, and every published update is logged in the change history on the staff dynasty board. Check it again in the week before your keeper deadline instead of trusting a list you saved in March.
Each position page slices this same board, so a keeper's positional rank always matches where he sits overall: