August 1, 2025
Fantasy football data analysis has been beaten to a pulp. It seems every possible drafting strategy has been outlined somewhere online. However, my league has a simple nuance that urged me to create a unique approach to drafting.
Each team can retain one player (their “keeper”) for the upcoming season under specific draft pick cost rules. The decision is about ROI: which player delivers the most value relative to its cost? I created a framework to help me 1) select my own keeper, and 2) predict who my friends will keep to exclude them from my mock drafts.
League structure:
12-team
PPR scoring
15 round snake draft
One keeper per team
The cost of a keeper is the pick in this years draft one round sooner than where they were drafted last year. Any player who was picked up from waivers can be kept for the fifth round pick. In order to be eligible, the player must have been drafted by your team last year and held for the duration of the season (or have been picked up on waivers).
For example: if I drafted Brock Bowers in the 10th round last year, I could keep him for my 9th round pick this year. This year, I have three realistic keeper options that I was having trouble selecting between:
The greater the difference in the overall 2025 pick for these three players, and their ADP, the better the value. The difference between lower picks is much greater than the difference between higher picks. In other words, value falls off more from the 1st to 12th pick than from the 31st to the 52nd. So, how do we weigh these options?
Step 1: Define Evaluation Criteria
I started by taking my favorite redraft PPR rankings and making league-specific adjustments based on roster limits and scoring. I am keeping my source of rankings a trade secret in case my league mates read this.
We can define a surplus value by the following formula:
Surplus Value = Player Value – Expected Pick Value
The player value comes simply from the rankings. The expected pick value is determined by the pick number where I could keep that player. I will break down the way these are calculated next.
Step 2: Adjust Data for League
First, I applied weights to the data based on positions. This filter devalues quarterbacks by a significant amount, devalues tight ends slightly, and increases running back value. For reference, our roster limits look like this (shoutout to my league-winning team last year):
We have to filter the data to create a list of all eligible keepers. This removes 2024 1st round picks, players acquired in a trade, and anyone already kept twice (we do not allow keeping a player thrice. The new data set is organized by team; within each team, there is a list of eligible keepers, followed by their value, and what pick they could be kept for.
Step 3: Quantify Surplus Value
The data is already populated with the player values. To find the expected pick value, we plot the value of each player against their ranking to generate the curve below:
The dark blue line shows the actual player values. To find the expected value at a certain pick, we create a moving average, f(x). The expected value of a player is simply f(keeper pick).
Notice the near-exponential decay in value throughout the draft. This graph has flat sections and steep sections corresponding to small-scale even pick and uneven pick values respectively. There is a steep drop-off from pick 3 to 4 according this, but picks 6 and 7 are essentially interchangeable. If you pick at 6, you might want to trade down to increase capital, and if you are at 4, you might want to trade up.
Step 4: Select and Rank Optimal Keepers
Running this simulation suggests the optimal keeper from my team is Jaxon Smith-Njigba. Full results below:
This intuitively makes sense; Malik Nabers has a very high ceiling, but there is not a huge drop off from pick 10 to 13. Lamar is intriguing, especially since I pick at the end of round 3 and have a pick immediately after. Knowing my league and how much they devalue quarterbacks, I am willing to bet that if I wanted Lamar in the third/fourth round, I could draft him then. We'll see. JSN is a great player in an exciting offense with a competent QB, who should have an improved target share.
I did not include this in the analysis, but JSN also has value in my being able to keep him for fifth rounder next year; I likely would not keep Nabers for a first rounder or Lamar for a second. If I am really betting on myself, that fifth round pick could be late round too.
The best keeper for each team is shown in the table below:
Will and Drew drafting Achane and Nico in the 11th and 10th rounds two years ago provided an excellent ROI.
Positional scarcity, such as at the RB position, significantly impacts decision making. From this list I predict the keepers from 10 teams, decide who I will be keeping, and discover that Alex does not have a single player worth keeping. I used this information in my mock drafts which was helpful leading up to the draft knowing who is off the board.
There are a few risk and limitations associated with this strategy. First, forecasts are uncertain. There is no perfect ranking, and this analysis solely relies on the rankings I have chosen. As previously mentioned, this does not take into account being able to keep a player in future years. I do not think this would change selections this year, but that could influence my friends' decisions. Lastly, player value could shift leading up to the draft; one injury or trade could drastically alter a depth chart.
This was primarily for fun, but I will continue to update the valuations of players to see if keeper value changes at all. Our keeper selections lock August 17th, so until then this is a tool to predict what my league mates will do.
I have a spreadsheet I use for drafting where on draft day, I update the picks live. It suggests who to pick based on what positions I still need to fill, what value is on the board, and how much value at each position is left. I plan to integrate these two projects together in some sort of app in the future. For now, I the output of this keeper project is an update ranking with keepers removed. This allows me to use my draft aid as a mock draft aid and strategize should I find the time.
Throughout the draft and the season I plan to take note of how these strategies plan out. Should I have kept Nabers, say, perhaps I can adjust the weights of each position and improve my model for 2026.