Win Your Fantasy Football Auction Draft: Determine the Optimal Players to Draft with this App

In this post, we use a Shiny app in R to determine the best possible players to pick in a fantasy football auction draft. The app includes the most accurate fantasy football projections available, and calculates a robust average of more sources of projections than any other website (see here for a list of the sources of projections). You can even choose how much weight to give each source. Based on your league settings, it determines which players you should draft to maximize your starting lineup’s projected points. It also allows you to change your risk tolerance to avoid picking risky players. Best of all, the app updates the selections automatically with your inputs, and you can download the data for yourself. So let’s get to it. Here’s a more thorough description:

Sixth, we take players’ average auction values (AAV) from the source you select (e.g., Yahoo, ESPN), and adjust them based on the league cap and the number of teams in your league. Seventh, we calculate a player’s cost by deflating/inflating the adjusted AAV according to your inputs. Consistent with a Harvard analysis on the optimal draft strategy, by default, we apply a 10% premium to the top players and a 10% discount to the lower-tiered players. According to the study, the majority of one’s excess cap should be spent on the starting lineup, and you should spend less on bench players. This is because bench players do not contribute much to the team’s projected points. Although bench players are important in the case of a starter’s injury or under-performance, it is generally best to draft starters with minimal risk to ensure solid, if not superior, performance. On the other hand, one should accept more risk with bench players because such a move has a low risk, high reward potential. This 10% adjustment results in a (projected) cost that reflects the cost you can expect and should be willing to pay for a player if he is selected by the optimizer. Note: The projected costs don’t always map onto the projected points because the projected cost is derived from the AAV of the site you selected and not the projected points. That’s because your draft costs will be in large part driven by your site’s AAV, which greatly influences what other people in your league will be willing to pay for each player.

Then, based on how many starters you need for each position, your cap available, the players already drafted, and your maximum risk tolerance, we use the Rglpk package to find your optimal starting lineup by selecting the remaining players available that maximize the starting lineup’s sum of projected points while meeting all of the constraints. For a similar execution using Excel’s Solver function, see here.

We also display the “dropoff” in projected points for the next best 2 players at the same position. If a player has a high dropoff, you should consider targeting him because that position drops in value very quickly. For more info on how projected cost is calculated, see here.

Note on risk: although bench players are important in the case of a starter’s injury or under-performance, it is generally best to draft starters with minimal risk to ensure solid, if not superior, performance. On the other hand, one should accept more risk with bench players because such a move has a low risk, high reward potential. For bench players, value over replacement may be less important than a player’s upside. We include players’ upside potential (ceiling) in the output, as defined by the players’ 90th percentile of their projected points across analysts.

Note on VOR: you may notice that the top Defenses and Kickers have a negative VOR value. Why? We added a penalty to the VOR values for DSTs and Kickers to make the rankings more realistic and to reflect the fact that DSTs and Kickers are the least predictable. The penalty was based on where the DST and Kickers were placed before penalty. The Kickers were about 17–20 points over where the Expert Consensus Ranking (ECR) would have placed them and DSTs were 5–7 points over, so the VOR penalty is -18 for Kickers is -6 for DSTs.

Spend most (or even all) of your cap on starters. A Harvard analysis showed that most people over-spend on bench players and under-spend on key starters. Bench players only benefit your team if a starter gets injured or they outperform a starter. In a standard league, 1500 points would likely put you in the top 10% of teams. Your goal is to maximize your starting lineup’s projected points, as discussed in the next item.

For starters, pick the players with the highest sum of projected points (especially floor), while minimizing risk (i.e., a low risk and a high floor).

For bench players, pick the players with a high ceiling. That way, one or more of your bench players has a chance to outperform your starters or be a solid replacement if your starters get injured. You should be willing to accept a higher risk for bench players than for starters.

Give players more weight if they have a high dropoff (the player is projected to score many more points than the next best players at the same position)

User Inputs

Season: which season of projections to use.Week: which week(s) of projections to use.Number of Teams: the number of teams in your league.League Cap: the cap available for each team at the beginning of the draft.Cap Reserved for Bench: how much cap to reserve for your bench players.Total Players on Roster: the total number of players on roster, including bench players.Number of Starters by Position: how many players in your starting lineup at each position.High Rank: the rank of the highest tier of players for inflating costs.Low Rank: the rank of the lowest tier of players for deflating costs.High Rank Cost Multiplier: the inflation/deflation multiplier for players with a High Rank (or higher).Mid Rank Cost Multiplier: the inflation/deflation multiplier for players with between the High Rank and Low Rank.Low Rank Cost Multiplier: the inflation/deflation multiplier for players with a Low Rank (or lower).AAV: source of average auction values.League Scoring: source of scoring settings.Positions: which positions of players to include in calculations.VOR Baseline: the position rank set to be the “typical replacement player” for each position. We set the default baseline VOR value as the number of players drafted at each position within the top 100 picks, based on ADP on MyFantasyLeague.com. You can modify the VOR baseline values. For info on how to select a typical replacement for each position, see here.Impute Replacement-Level Points for Missed Games: Select yes to add points of the “typical replacement player” for each game a player is expected to miss due to suspensions. For example, if Player X is projected for 180 points over 12 of a possible 16 games, and our calculation determines 10 points per game as replacement-level production, the points column will show 220 points (180 + 4*10). Select no to avoid imputing replacement-level points for missed games. Projected number of games missed comes from ProFootballFocus.com.Calculation Type: the type of average to calculate: mean, weighted average, or robust average. By default, a weighted average is used with analysts weighted by their historical accuracy. You can modify the weights in the weighted average. The mean is equivalent to a weighted average where all analysts are equally weighted (weight = 1). The robust average gives less weight to outliers (crazy projections).Analysts: Select which analysts to include and, if weighted average, the weights for each analyst (i.e., how much weight to give each source of projections when calculating projected points). For instance, if you want to exclude ESPN projections, you would give them a weight of 0. If you want to give Yahoo projections twice the weight of CBS, you would give Yahoo a weight of 2 and CBS a weight of 1. The default weights reflect historical accuracy (higher = more accurate). Note that FantasyPros shows a default weight of zero because we already include all of their sources in our projections, so it would be double counting to give them a weight above 0. You can certainly do so, though, if you’d like. FantasyFootballNerd also shows a default weight of zero because it uses the same projections as FantasyData.Scoring Settings: specify the number of points for each statistical category and position.

Sidebar

Maximum Risk Tolerance: Selects the maximum risk allowed for any player to be considered for inclusion in the optimal starting lineup. Players’ risk levels have a mean of 5 and a standard deviation of 2 (see below for more info on how risk is calculated).Remaining Cap for Starters: How much cap you have remaining to spend on starters.Players You Drafted: Select all players you’ve already drafted (click “Pick” button next to player or type player’s name).Other Players Drafted: Select all players that other teams have drafted (click player’s name or type player’s name).

Output

Lineup with Highest Points: Players with highest sum of projected points within your league cap and risk tolerance.Lineup with Highest Floor: Players with highest sum of projected floor within your league cap and risk tolerance.Lineup with Highest Ceiling: Players with highest sum of projected ceiling within your league cap and risk tolerance.Pick: Click “Pick” button next to player to add to “Players You Drafted”.Rank: Overall rank by VORPlayer (Team): Player name and team. Click player’s name to add to “Other Players Drafted”.Pos: Position.VOR: Value Over Typical Replacement Player. Used to rank players across positions. Calculated by comparing players’ projected points to a “typical” replacement player at the same position (determined by VOR baseline values). For more info on how VOR is calculated, see here.Points: Average projected points for a player across analysts.Ceiling: A player’s upside, calculated as the 90th percentile of a player’s projected points across analysts.Floor: A player’s downside, calculated as the 10th percentile of a player’s projected points across analysts.ECR Rank: Expert Consensus Ranking from FantasyPros.Pos Rank: Position rank.AAV: Average auction value.Dropoff: The “dropoff” in projected points for the next best 2 players at the same position.Risk: Risk of injury and degree of uncertainty of players’ projected points, calculated as the average of: 1) injury risk from Sports Injury Predictor, and 2) the standard deviation of the players’ projected points and rankings across analysts. Standardized within position to have a mean of 5 and a standard deviation of 2 (higher values reflect greater risk).

Graph

Displays two types of graphs:

A density plot of projected points by analyst

Line plot of each optimal starting lineup by projected points, floor, and ceiling

A density plot shows, for each analyst, what proportion of players are projected to score a given number of points. Density plots can be helpful for comparing analysts and finding analysts with wildly different projections. In the line plots, the dot represents the average (mean, weighted average, or robust average) estimate of projected points for each player. The line shows the range from a player’s floor to ceiling.

The Auction Draft Optimizer App

Share this:

Related

My name is Isaac and I’m an assistant professor with a Ph.D. in Clinical Psychology. Why am I writing about fantasy football and data analysis? Because fantasy football involves the intersection of two things I love: sports and statistics. With this site, I hope to demonstrate the relevance of statistics for choosing the best team in fantasy football.

No worries at all! We usually draft after the last pre-season game to cover unexpected injuries, etc. so towards the end of the pre-season would be great.

Also, one quick question: After filling in my league settings and downloading the data, I noticed there is a column for both “points” and “projectedPts.” What is the utility of the “points” column? I noticed the risk column is next to “points.” Thanks! Great stuff!

Thanks for your interest! Unfortunately, I haven’t been able to find a way to auto-update the data when FantasyPros updates their projections. I just updated the data for you, though, so it should be up to date. I plan to update the data every few weeks. Feel free to let me know a week before your draft, and I’d be happy to update it beforehand.

Thanks Oz. The app does not currently adjust for the number of teams in a league. I’d imagine that the number of teams in a league could affect players’ costs (with more teams leading to higher player costs). This could be a pretty easy fix if you know how to adjust for the number of teams. How would you propose adjusting players’ costs depending on the number of teams in one’s league? The FantasyPros average costs are calculated with 10 teams. Thanks for the suggestion!

Great stuff. Probably a stupid question: What do “cost” and “projectedCost” reflect? It seems to me that if either one is supposed to reflect the auction “value” of a player, all the values should add to about 2000 (10 teams x $200 per team). For the settings I tried, both columns added up to well above 2000.

Thanks for your work! I may too be asking for this to be updated before my draft. 🙂

Isaac, is there any way to add additional point categories? For instance, my main league gives 0.2 points per rush attempt and decent points for big games, i.e. 300 yard passing and 100 yard rushing/receiving.

Hey Kevin: I could add point categories for any category that has a projection. FantasyPros does have projections for rushing attempts, but does not have projections for “big games”. Would you like me to add rushing attempts as a point category?

1. To calculate for different league sizes can be done but it is a little harder. Basically all of your values will go up because there is more overall money available but the same amount of players. You would have to build up from the bottom. take all the money that will be spent, subtract out your dollar players and then allocate the rest similar to how it is now. An easier way would be to have a percentage increase for the higher percentage of money available. Probably could acheive the same goal by just increasing the Budget to what it would be for the new number of teams. (240 for a 12 team which is 12*200/10)

2. How are you generating the list of 7 starters on the right side of the calculator? I want to do something similar in an offline excel file.

Isaac, great tool! Thanks so much for sharing. I have one request that would be very helpful for me. We do an auction keeper league, so each of us starts out each draft with up to four players and a certain amount less than the total cap. For instance, we have 10 teams, 20 roster spots, and $250 cap each. But there are 39 players being kept for a total value of $893. So the total cap available to be used on the remaining players should be deducted by that amount to get a better estimation on each player’s worth. Would it be possible for you to account for this in the app? Basically you would need to ask how much total cap money has been spent prior to the draft and then figure the remaining values accordingly. That would be awesome if you could that. Not sure if you would have time to add this beforehand, but my draft is next Saturday. Thanks so much for all the work you have done already!

Well, the available cap will be different for every team, but if I understand what you are saying, I would take the total cap available and divide by 10? So the original cap is $250 per team (or $2500 for the league). The total cap used is $893. So $2500-$893=$1607 / 10 = $160.7. So I would enter $161 in the available cap? Thanks for your time.

Ok, thanks for the clarification. Yeah, that’s not doing what I was hoping it was. When you have some teams you acquired players at less than their going rate (for instance, I picked up Alfred Morris for $1 off waivers last season), then you need to have a way to evaluate the value of the remaining draftable players. The total available cap (all teams) need to be considered in relation to the players still available. Naturally, a premium will be placed on the remaining players. I am just trying to figure out a way to get a proper value on the remaining players. See this for an idea of what I am talking about: http://espn.go.com/fantasy/football/story/_/page/NFLDK2K13_inflation_calculation/how-calculate-inflation-fantasy-football-auction-keeper-league.

Hey Scott. Thanks for your interest! If I understand correctly, what might be easiest would be to set your league cap to your “available cap” when accounting for the keeper players. Then it should give you what you’re looking for. In other words, if your 4 keeper players cost $120 total, input your league cap as $130 for the draft optimizer (250-120 = 130). Does that make sense?

Hey Scott, each team has different numbers and costs of keeper players, right? If so, you’ll have to calculate the cost of *your team’s* keepers and subtract that from 250 to determine your team’s available cap. If each team has the same number and cost of keeper players ($893/10 = 89.3), you’ll subtract 89.3 from 250 to get your team’s available cap (160.7).

Isaac, thanks for this tool, it’s fantastic. If I understand this correctly, can I update while drafting in my actual league? Also, any plans to allow input on who was drafted and for what price to see if that would update the projected cost?

Hey Hank, yes, you absolutely should be able to use the tool and update it while drafting. Just add the players that you draft and that others draft, and the cap that you spend, and it will update with the best available remaining players.

It’s a very intriguing idea you have to update the projected costs based on the costs of other players who are drafted. I imagine the user would need to input every player and what cost they were drafted for, so it would be pretty tedious. I’d have to think about the correction that would be applied to the remaining players. Any suggestions? Nevertheless, the tool will update with the best available players for your remaining cap space.

The AAV should change as each pick is made. For example, if Team 1 takes Quincy Carter for $150 with the first pick in the draft the remaining player values become inflated to the other teams in the draft since Team 1 has spent their money elsewhere.
Here is a link that better describes the adjustment needed: http://www.rotowire.com/basketball/showArticle.htm?id=21393

Even though it is tedious to input all the amounts paid, I would do so as the draft progesses to get accurate bid up to amounts and projected costs.

I just received this response from the server admin: “We recently switched the way we communicate between Shiny Server and Shiny, to use Unix domain sockets instead of the normal way (TCP connections). When testing under load we’ve found Unix domain sockets to be less stable after all, so we’ve gone back to TCP connections–this should be deployed to glimmer and spark on Friday of this week. It should fix this problem.”

Thanks man! I haven’t included bye weeks for two reasons: 1) FantasyPros does not include bye weeks on their projection pages, so I would have to merge them from somewhere else, which is more complicated and could be messy, and 2) it makes sense to draft the best possible team regardless of bye weeks because you don’t know how the bye weeks will help or hurt your chances. For instance, it might actually be beneficial for all of your starters to have the same bye week. Yes, you might lose that particular week, but you’ll be more likely to win all of the other games. Nevertheless, I might consider adding them if I can be convinced they’re useful for picking the best team.

It applies a 10% premium to the highest-tier players and a 10% discount to the lowest-tier players. It adjusts the projections according to the number of teams and the league cap (from the original projections derived from a league with 10 teams and a cap of $200).

I’m planning to update the data when sites make their 2014 projections available (still waiting on ESPN, NFL.com, and FantasyPros). The app uses projections as opposed to rankings (you can derive rankings from projections but not other way around), so unfortunately I wouldn’t be able to use preseason rankings for the app. Check back soon, though, for update data based on preseason projections. Regarding a 32-team league, the app allows you to specify how many teams, so it feasibly could be customized, but I don’t know how well the cost values would extrapolate to a 32-team league. Might take a look at it to seem if the values seem reasonable.

Exactly the tool I was looking for (you should try to monetize it). What you may consider factoring in is Yahoo’s and ESPN’s projected auction values which is what many auctioneers will be referencing when drafting on one of the two fantasy hosting services. Then you apply the inflated values for the top end players. Again, awesome tool and I will have this up and running during my draft this year!

The 0.5 does work – my apologies. However, now the ‘Players You Drafted’ and ‘Other Players Drafted’ are not working properly. When I click to type in there is only 1,2,3 etc. and not the list of names as before then if I type in a name it gets deleted after entered. I tried using the optimizer tool on both Chrome and Safari with the same result.

Another quick comment – could you order the player output by projected cost rather than first name?

Just fixed the “Players Drafted” bug to show player names instead of numbers. Let me know if you still have problems with it. Is there a reason for sorting by cost? I thought it’d be best to be able to see all players sorted by name so you can easily find any player. If you want to find players the fastest, typing in their name is probably best (it will autofill based on what you type). What are your thoughts?

My thought was that auction drafts typically start with the highest projected players and you are thinking in a top down approach. If I dont win this player, who is the next best player I can spend my money on?

Do you mean sorting the player list or the table of players in the output? If the former, that’s easy. If the latter, I found a way to do that, but I won’t be able to release the update until we upgrade our Linux server (it requires a newer version of R packages). We’re looking to pay someone to upgrade our Linux server. Hopefully this happens soon, but if you know someone qualified let me know!

Hey Brent, the standard deviation reflects the variability/consistency from source to source in a player’s projections. If you want an estimate of a player’s week-to-week consistency, we conducted a simulation to calculate that (http://fantasyfootballanalytics.net/2014/07/weekly-variability-simulation.html). It would be difficult to incorporate this into the app because a simulation takes time to run, and its results would depend on your league scoring settings (so it wouldn’t be very user friendly because the app would be slow). That being said, the code is on GitHub, so you can run it for your custom league settings to get an idea of players’ week-to-week consistency for your league settings.

This is fantastic! Great work!
Im a little confused on the snake draft “typical replacement” options. Can you clarify exactly what those are please?
Also, wouldn’t it matter how many starters/teams there are in the snake draft in order to calculate best picks?

The snake app shows the two best players remaining at each position. You can then pick which player to draft based on which players have highest VOR and which positions you need. Not sure why the best remaining players at each position would depend on roster/league size.

Thanks for all of the work you’ve put in to this and for not putting it all behind a paywall. Your effort is much appreciated.

My question relates to the AAV. Why are there multiple options and why does it change the results so much? Shouldn’t the dollar value for each player be calculated by league settings, dollars remaining, and available players?

Good question. The multiple options are to select which auction values you want to use. If you’re drafting in Yahoo, I’d use one of theirs. If ESPN, use theirs. The short answer is that each site provides considerably different auction values, so I’d recommend using the site you’re using for your draft. Yahoo provides 2 different ones (AAV and projected value). I like to use the average of the two in my personal drafts, but that’s personal preference. You’ll want to pick whichever will most closely align with the costs people will bid in your draft.

The auction values are further scaled to your league cap and the number of teams in your league. The top players receive a 10% premium and the worst players get a 10% discount.

Doesn’t using the dollar values from just one site nullify the aggregation of the different predictions? Shouldn’t the value you’re willing to pay for a player be totally dependent on his projected stats?

What *you* bid should absolutely depend on a player’s value. There are two problems in this context: 1) it’s difficult to determine a player’s value in terms of cost because it’s not a linear transformation. Here’s my attempt to calculate a bid-up-to value: http://fantasyfootballanalytics.net/2013/08/calculating-bid-up-to-values.html. 2) More importantly, what *others* will bid will depend largely on the site you’re using. As a result, you wouldn’t want the draft optimizer to tell you to draft a player at a cost lower than you will be able to be draft him for.

I’m still confused. So, you use projections to get projected fantasy points. Then you use the auction values as the cost of the player for the optimizer? Stately differently, the projections determine their points and the auction values represent the cost to get that player. You’re not generating an independent auction value based on projections before generating the final auction values.

If that’s true, then the site’s auction values serve as the base, correct? None of your values will be lower than ESPN’s auction values?

You are correct that I am generating the projections and costs separately. The costs come from the different sites (Yahoo, ESPN, etc.). I then scale them to the number of teams in your league (more teams = higher cost) and your league cap (higher cap = higher cost). Then, as suggested by a Harvard study (http://harvardsportsanalysis.files.wordpress.com/2012/04/fantasyfootballdraftanalysis1.pdf), I apply a 10% premium to top players and a 10% discount to bottom players. The costs could be lower than ESPN’s if you have fewer than 10 teams, a lower cap than 200, or are looking at bottom players. Hope that clarifies!

If others are “overbidding” based on the stats a player is projected to generate, how could that be an optimal selection? Regardless of the site you’re drafting on, every player has to have a projected value based on your leagues scoring rules, roster size, and budget.

When you mention “Bid up to” earlier in your comments for deciding how much to bid on a player, you are referring to the projectedCost on your stats? We shouldn’t pay more than the projectedCost (generally speaking), but getting someone for less than that variable would be a “success”?

It calculates the optimal value for each player. It is different than the projected cost, which is the cost you can expect each player to go for in your league (i.e., what you would have to bid in order to win a player). Unfortunately, there’s not an easy way to add Bid-Up-To value to the app because it is a simulation that takes several minutes to run, so it would be too slow for users in the app. I don’t think the Bid-Up-To value is crucial, however, because if you know about how much each player will go for, you can estimate fairly well the best lineup to draft given your league settings and constraints.

Excellent tool for fantasy. One question I have is the projected cost vs. position rank. It appears that in some instances lower ranked players have a higher projected cost. If the definition of projected cost is “cost you should allot to pay for a player” why would one pay more for a lower ranked player?

For example, Cam Newton is the 8th ranked QB with a projected cost of $11, while Andrew Luck is the 4th ranked QB with a projected cost of $7. Why would one allot more money to pay for Newton when he is projected to do worse than Luck?

Great question. The projected cost is how much you can expect players to go for in your league. It comes from your site’s AAV. As a result, it is not necessarily how much you should bid for a player (that’s the Bid-Up-To value, see here: http://fantasyfootballanalytics.net/2013/08/calculating-bid-up-to-values.html). Obviously, for your league, Luck is a better value than Newton. The app is just telling you that Newton is likely to cost more than Luck in your league’s draft according to the site’s AAV that you selected. As a result, the tool would be more likely to select Luck than Newton because he contributes more points to your lineup with a lower cost.

These tools are simply fantastic. One question I have is whether there is a way to figure out bid-up-to value using the projections or auction optimizer without using the optimizer loop in R? I have absolutely no experience or understanding with R, so I was hoping I could use the other tools available to figure out a rough estimate for bid-up-to value.

Any ideas on that front? Again, thank you again for putting these tools out there and making them freely available. Easily the best analytical tools I’ve seen.

Many people have requested this feature, so I’ve spent some time thinking about how to incorporate it. One way would be to calculate the Bid-Up-To value only for the selected players (and not all available players). That would be a much faster loop than estimating it for all players. I’ll look into this when I get back from travels.

It appears that when I download the results I get something very different from the top 5 preview shown on the page. Would you expect QBs to take all the top spots? Did I do something strange in the settings to make that happen?

Also, if you don’t have a cost cap in your league, is there a way to deactivate that?

Alright – I get that the downloaded sheet contains everyone, not the suggested drafts, but I’m still confused that it appears that all the top values/costs/ranks go to QBs – how do I need to sort the sheet to make sense of it? And what about teams where there is no cost cap – just a draft order consideration?

The rankings depend on your league scoring settings and your “typical replacement” selections. If your league scoring settings weight QBs highly, then the rankings will favor QBs. The default scoring settings don’t appear to favor QBs, though (Peyton is the only QB in the top 20). This suggests to me that some of your inputs (e.g., league scoring settings like points per passing TD) are giving more weight to QBs.

That’s really helpful – thanks. It does seem partially to do with the league scoring rules, but also that the page I was looking at doesn’t seem to have values for some of the things we add points for (field goals, defensive stuff that isn’t safeties)… I’ll look more closely to see if I’m missing anything.

You got it! Thanks and if it wouldnt be too much of a bother can you comment here if you update them friday- will give me a little more peace of mind Sunday when I’m relying on this app to win my league

The app doesn’t seem to factor in the roster size in calculating auction values — instead, it seems to allocate 99% of the cap to a starting lineup, in which case a team would have zero dollars for bench players. Is that the intention or am I doing something wrong?

We have a larger roster of 15 players in our league, and spending 5-15% of the cap on bench players has been a successful strategy to mitigate injury disasters, stash breakout candidates, and make weekly substitutions based on matchups.

Sorry, I just looked and we now have a roster of 20 players, and the minimum cost for the additional 13 players would be 5% of the cap, and 10% allocated would probably enable an owner to get the best pickings of players who would other be waiver wire material.

The default settings leave $1 for each bench player, and find the starting lineup with the highest sum of projected points with your remaining dollars. That’s because bench players don’t contribute to your starting lineup unless they outperform starters. If you want to allocate more dollars to bench players, put the extra amount you want to reserve in the “cap spent” section, and it will be taken out of the pool you can spend on starters. The projected costs do take into account roster size. They are scaled proportionately. It’s not clear to me how accurate this scaling is with super large leagues (e.g., 20 players), however. Take a look and see if the costs seem reasonable. If not, you may want to enter fewer teams in the app until the costs seem appropriate.

There’s not currently a way to do this in the app because the auction costs are derived from average auction values (AAV) and not other teams’ remaining cap per se. I can consider adding this, though I suspect it would be fairly complicated.

I can’t tell you how much I love this website. I have played with the auction app everyday for the last two weeks in preparation for my draft this Sunday. I too am a statistics nerd, and I love the fundamentals you’ve applied to fantasy football.

I have a couple of questions for you:
1. Will you be doing any projections updates between now and Sunday? I want to make sure I have all the latest information on all of my printouts.
2. It looks like the apps are down right now. You can promise me that they will be working at 1 PM Central on Sunday right? 🙂

1) I’ll be traveling this weekend, but I just updated them last night, so they should be ready to go.
2) The apps are back up now. Sorry about the downtime! That’s one of the downsides of running a free operation — we don’t have the largest server capacity. We are looking into creating standalone software so people don’t have to rely on an internet connection or on our server. Should be good for Sunday, though.

I think the Shiny app is really good, but I think the one area for improvement would be in customizing expected auction values. The method of maximizing points works better when expected auction values are more accurate.

I think an easy solution would be to provide sliders to inflate or deflate expected values for certain classes of players. For example, you could have a slider for the top 10 most expensive players that would allow you to inflate or deflate those values. Then you could have a slider for 11-20, or any other kind of combination. You could do it by position or do it overall with, obviously, more sliders allowing for more customization. This would allow people to get closer to what they think they’re league will spend on players.

Thanks for the suggestion, Andy. The number of players in the dataset will likely be very large when we include D/ST and IDP, so there would be hundreds of sliders if we adjusted costs by 10 players at a time. It might make more sense to do adjustments in 10% groups (top 10% of players, 11-20%, 21-30%, …, bottom 10%). That would be 10 sliders for all players and would be more manageable. I’ve also considered allowing users to upload a .csv file with player costs from a template. This would be more time-consuming than 10 sliders, but would allow more user control. I want to find the best system for allowing user customizability, but still ensuring ease of use. Thoughts?

Personally, the .csv file would be best. It would allow for estimation that you expect for every single player. I would guess most people using this site are proficient in editing a .csv file or, at the very least, have Excel or Libreoffice.

I know nothing about the Shiny App, so I don’t want to cause a ton of work. Sliders would be good enough for me.

Hi Isaac – do you still have plans to update the Github code to reflect updates for 2015? Most of the projection scraping is broken right now. I’m looking forward to using your code base offline for an auction draft. Great work on the site!

I’m really enjoying using your VOR analytics to help me choose which players to draft. I’ve started keeping track of the total VOR score for my starting line-ups (from mock drafts) as a way to compare various drafting strategies. I’ve found that my total VOR usually comes in between 400-450. Has anyone else tried calculating this? Any ideas on what is a good total VOR to shoot for in a starting line-up?

This may have been answered many times over, but I wanted to ask direct. In an auction league, do you have a way to account for a keepers league? Payton Manning is a high auction value yes, but not for a dynasty league. Thanks for this great app!

Isaac, you have a great site here. Pardon if this has been posed before. In the Lineup Optimizer (draft tool), you allow us to set, among other things obviously, how many starters we have at each position. The resulting suggestions for what lineup gives you the most total points is perfect. However, as you draft players and the engine updates, it doesn’t seem to account well for the picks you’ve made. For instance, I just ran a simulation where I took two WRs in the first two rounds, and my highest ranked suggestions were two more WRs. This came at great cost to the other positions. Would there be value in specifying how many of each position you wanted as a max? Perhaps I’m not understanding fully the results I’m seeing, in which case could you please explain it to a simpleton 🙂

Thanks for all your hard work on the site. I love just reading through all the articles and comments. Do you have an ETA on the draft tool? I’m so curious to see how it works. And where will it be? Under Apps?

I play in a keeper league, and you are able to keep previous years players (often for a slight or even major reduction).

So…

1. Not all players are available
2. Players are kept for less than they would have been drafted for.

How does this affect the prices of players left in the draft?

I would imagine that if I entered every player that was drafted (and their price) your auction draft tool should be able to manage this… If the top 3 RBs are kept at half price, what would that do to the other players? Does it affect the remaining RBs more than other players? (It seems like it should)…

So, it sounds like more than you may be able to delve into now, but here’s the idea behind it (it is a fun/interesting way to play, that makes drafting more difficult):

Every keeper league is different, and there is no accepted standard for each player. Eddie Lacy for instance is a top tier RB and in a 10 team standard league starting with $200 has a value somewhere between $55-$65. So far, this is a normal auction league.

The difference comes in the keeper part. Each league has it’s own set of keeper rules. My keeper league for instance lets you keep 4 players from last year’s roster. You can keep them for whatever price you acquired them for last year, but you have to add $5. So Lacy’s owner from last paid $37. So this year, he gets to keep Lacy for $42! A great bargain! Peterson was dropped last year, and a player grabbed him off of waivers for $8!! He only has to pay $13 to keep him this year!

So as you can imagine, there is more money to spend on less players, which will inevitably drive the prices of the remaining players up. I’m just not sure how to account for a reasonable price for the remaining players. With DeMarco and Latavius Murray, Jeremy Hill, CJ Anderson, Lamar Miller, Adrian Peterson, Jonathan Stewart, LeVeon Bell, Mark Ingram, and Carlos Hyde already gone, you’d have to imagine that is going to drive Charles, Lynch and Forte up, up, up. But where is the smart cut off?

Just putting this out there for you to mull over. Again, all these numbers are so fun to play with… 🙂

Hey Issac,
Love the draft optimizer. I even gave a donation. Being able to custumize the auction values with the high rank/low rank percentages is great and gets me close to my auction’s top heavy values from last year. A suggestion though, when the app gets to the drop from high to mid or mid to low, can you make it so there is a gradual drop to the next percentage? I use 120% to 100% and changing the high rank number from 24 to 25 can make a big difference. Just a suggestion. Great app.

Awesome app. I saw a reference in an old post that you made about “bid up to” costs (the cost up to which a particular player remains in the optimal lineup). Would it be possible to include a column of this nature in the app…or maybe something like a buy now cost (i.e., the cost at which a player is low enough that they would be in the optimal lineup assuming all other players go at expected values)?

We’d have to think how to calculate the “Bid-Up-To” value in the webapp. In the past, we’ve calculated it with a simulation (http://fantasyfootballanalytics.net/2013/08/calculating-bid-up-to-values.html), but that takes a while to calculate and is impractical for a webapp. Open to ideas for how to estimate a player’s cost value if you have any. One of the tricky things is that it’s a huge (false) assumption that all players will be drafted at their expected values.

Great work with this. Do you have any plans on open sourcing any of the R scripts that you used? On a similar note, any ideas on an API for this data source?

I’d be happy to help creating an API if that’s interesting to you. Furthermore, if you want to talk about improving or polishing up the interface, I’d be more than happy to contribute.

Last note – if the engine could also take into account the cost of other players picked by other coaches, I believe that you can in real time adjust projections on what you should pay for players on your optimal lineup, relative to the budget. This might require a more complicated parallel analysis but I think it can be done relatively efficiently.

Our R scripts are open source on our GitHub repo, though we haven’t had a chance to update most of them for this season—that’s on our to-do list. The idea of adjusting costs relative to other players drafted is a complicated one and would considerably slow down the tool because it would have to re-generate after every selection. Will consider it though.

I love the idea of an API but have no idea how to set one up (or if it costs money). Let me know if you’d like to take the lead setting one up! Always open to ideas on polishing the UI.

I know this is probably a tough question to answer, but when would you say is a good time to pick a player who isn’t in the optimize? How good a deal does it have to be before I should move? Is it just if a player with a higher projected points than the one in my optimizer is going for less than the optimized player’s cost?

This is a very good question and, as you suspected, a challenging one. I’m not sure the best way to calculate the highest value you should be willing to bid on a player who isn’t selected by the optimizer. In the past, we’ve calculated the “Bid-Up-To” value using a simulation that finds the cost up to which each player is selected by the optimizer:http://fantasyfootballanalytics.net/2013/08/calculating-bid-up-to-values.html

The simulation takes a while to run, however, so it would not be practical for a webapp. Nevertheless, if you are interested in calculating the Bid-Up-To value, you might look at running the R script (it will likely need to be adapted for this season—we haven’t gotten around to updating the scripts on the repo yet). Otherwise, I would suggest deviating for a player not selected by the optimizer if (1) it’s for a starter, (2) the player is projected to score more points than the player at the same position selected by the optimizer (unless it’s K/DST/IDP), (3) you don’t bid above the “Cost”, and (4) the player is within your risk tolerance. It’s not a fool-proof system, but it might help get you started.

Wow! I am a stock quant … so this is my site! Question, I am in a keeper auction league. Is there anyway to include the price paid for the “other players taken” to compensate for the inflation in keeper auction leagues. Thanks.

I’ve noticed that even though I specify that my league has an DL/LB/DB starter slot, the program does not recognize this when calculating the ideal starting lineup. Is this a bug in the program? My league has 11 starters: QB, WR, WR, RB, TE, K, DST, DL/LB/DB, W/R, W/R/T, W/R/T. Am I doing something wrong?

For the past two weeks, I’ve been getting this message from Lineup Optimizer:
Error
An unexpected error has occurred. Please contact the system administrator.
Exception: Packets larger than max_allowed_packet are not allowed.
Controller: lineupoptimizer
Action: Index

Also, if the page loads and I change the data to Draft Kings, it doesn’t load Draft Kings info.

I’m no math expert, so when I read that section I found it confusing. How can comparing AV to rank add up to being accurate? In baseball I’ve seen auction values created by using a quantified number like Standard Gain Points (SGP) or in football you can use VOR or VBD to get your auction value. Since all those stats are based on your league’s scoring and roster size, they already take into account position scarcity. I only ask because you have Andrew Luck as the 4th best QB, that makes him elite at his position and yet Newton who is the highest ranked QB, is only worth $89. My league is 10 Team, starts 2 QB, and has a team CAP of $680. In 2QB leagues, QBs are valuable due to scarcity, as is true with any position that doesn’t have the depth of talent for the players at the position that would be started. The app has Luck’s value at $52.43. In my league, elite QBs go for over $100, in fact, Luck has never been owned at less than $126 (high of $154). We can convert that to a $200 CAP of $37-45. So seeing Luck so low in price has me questioning.

With the model you are using, aren’t you ignoring the value of position scarcity? Surely in a 1QB league, QB’s are not as valuable, but in a 2QB league or a league that starts 3-4RBs instead of 2RBs, the value of the position’s depth of talent would affect the AV. Right? If that is true, then wouldn’t the model be wrong as it doesn’t account for that factor? Again, I’m no math major, just trying to get a better understanding.

The model for calculating cost accounts for AAV, league cap, number of teams in your league, and position rank (for inflation/deflation). You are correct that the model does not currently account for roster settings. We’d be open to ways to consider that if you have formulas that adjust based on roster settings. The statistician George Box wrote, “All models are wrong, but some are useful.” There are infinite variables to consider in a model like this (e.g., all possible roster adjustments, all possible scoring setting adjustments, who’s been drafted, the price at which each player has been drafted, which teams need which positions, how the teams in your league have drafted in the past, etc.). Models are inherently a simplification—nevertheless they can still be useful. Either way, we’re hoping to allow users to input custom costs in the future.

I use a modified version of Larry Schechter’s model for SGP (baseball). Instead of SGP I convert to VBD (similar to VOR). Total VBD of all draftable players (10 team, roster size of 21 = 210). So in this example, of the 210 players they account for 10,658 VBD points. Now we take the league’s budget ($680 x 10 teams = $6,800) and subtract 210 draftable players to get $6,590. Our goal is to get a dollar value per VBD. So we divide the $6,590 by 10,658 VBD to get $0.62. To create the auction value per player, we take the player’s VBD x $0.62.

VBD or VOR are basically the same thing. They identify the replacement player for each position. That player is the baseline to subtract the player’s fantasy points from. By using VBD, you are taking into account position scarcity and increasing the value of players who are in a weaker value-wise position, like RB or QB (2 QB leagues).

The formula easily scales for any league setup. I use excel still as i’m still learning R. But I can’t imagine this would be difficult to add to the app.

You can even add inflation into the mix. Inflation formula is the same, but the draftable players subtracts as players are won. In turn, the remaining VBD total will also get reduced as players are won. That takes away from the total, which in turn adjusts the dollar value per VBD, creating an inflation value.

Again all of this can be found in the Winning Fantasy Baseball book by Larry Schechter. These formulas are easy to convert to football. Since SGP is simply a quantifiable value of worth, just like VOR and VBD are.

New to the apps this year, and loving them as I prepare for multiple auctions. I’ve noticed a recent data refresh and many of the floor values came down noticeably, especially among top WRs. An example, Antonio Brown’s floor points went from 404 to 384 for my league settings. Is that level of swing in projected points normal for the projections you are pulling in or was there a formula change somewhere in the site?

So for negative VOR, you default to the minimum bid ($1). Every player has a value of the minimum bid regardless of how low their VOR or VBD value is.

My apologies on the league size aspect of your question. There is another part of the formula that I didn’t explain. I make a small chart in my Settings tab that helps determine the VBD. As an example, I’ll do QBs.

Part 1 – The formula is designed as a multiplier to give us a baseline for how many of that position get drafted. For a 1 QB league, it would be 0.9*(10*1)= 9. (10*1)=(Teams*QBs started). For a 2 QB league, it would be 1.5*(10*2)= 30. To provide a better average, I do a -2 and a +2 off that value in the next 2 columns. So now we have 30, 28, 32.

So that you have all the formulas in case you want to implement this theory. Flex positions needs to be considered for RB and WR.

Flex has 3 values: It’s a really long formula so I’ll just share the results. The Flex values are created using percentages of your starting roster setup. If want any of this, just email me and I’ll be happy to break it all down.
2.7, 3.3 and 1.0

Part 2 – Will identify the QB who ranks 30th, 28th and 32nd (from above) and return their projected fantasy points. So that gives us 215, 235 and 150. We average those 3 values and get 215. This number represents the VBD amount to subtract from a QB’s fantasy points.

So as you see it very much does take into account league size and roster size at the same time. It’s also important to note that every league is different. My league overpays for elite talent. To adjust for that you change the percentage multiplier that determines replacement level (in our example that was 90% and 150%). Moving the value lower will increase auction prices. I know my QBs need be around $120-160 for the top 4. So i adjust accordingly, but I have found most of the time these values get the job done.

Again this is not my formula. VBD was invented by Footballguys and the dollar conversion formulas was provided by Larry Schechter. But they work perfectly together. I win all the time and usually have one of the best drafts in my many leagues. Projections are the key to finding value.

The auction app optimal floor lineup was loading 2 TEs even though I had selected only 1 starting TE and no option for a TE in Flex. It sorted itself out through the draft, but seemed odd that would happen given I didn’t have the ability for two TEs to start. FYI

i was wondering if there was a way for the max auction price to pay value to change during the draft to adjust for inflation.

For example, player A max price of $50 and B max price $20. Player A is drafted for $1 so now there is $49 more cap money than expected to bid with. Therefore player B should now have his max price raised.

i noticed this issue last year as I firmly held at the max values suggested but left money on the table artthe end of the auction as I wasnt bidding the extra dollars i had saved or accounting for higher max values from everyone else having extra money from players being drafted for less than their worth.

We aren’t aware of a good formula that calculates a dynamic Bid Up To value. Consistent with a Harvard analysis on the optimal draft strategy, by default, we apply a 10% premium to the top players to help ensure you get strong starters. Based on your league’s draft history, however, you might modify the premium and discount values to other values. Currently, you’ll still have to (manually and mentally) adjust your notion of a player’s value as the draft proceeds. Let us know if you know of a good formula to calculate a dynamic Bid Up To value.

(Total league budget – total cost of drafted players) / (total league budget – total original projected fair value of drafted players)

For example my league is full PPR,12 people $200 budget each. Antonio brown fair value is $65 and say he went for $1.

(2400-1)/(2400-65) = 1.027 inflation

Now remaining players fair value should all be multiplied by 1.027 to account for more money than expected chasing the same amount of value.

If this could be incorporated into the tool to re-optimize based off the inflated values to maximize point potential I think it would help from leaving money on the table / prevent dropping out of a bid war too early and missing a valuable pick.

This will be my 3rd year using this tool, so I’m extremely grateful for the work that you guys do and familiar with the methodology.

It looks like something isn’t working for the AAV right now. If I just use the default settings and set the AAV field to ESPN, the optimizer says Antonio Brown’s AAV = 44.8 and Cost = 50. However when I look at the page where the values are scraped from, it shows AB’s AAV = 59.7.

Am I missing something here? I would think that the AAV should equal 59.7 and the Cost would be 66.

Thanks for catching that. We’re aware that the AAV is not updating in the lineup optimizer currently when selecting different sources. It’s working in the Projections tool now, however. Hope to fix it in the lineup optimizer soon.

Any ballpark estimate as to when you guys will have the AAV update working? I’d like to get a couple of mocks done in the next week or so in prep for my draft. I just want to make sure I don’t need to be prepping for different draft strategy than FFA.

First off, great stuff! This is my second year on your site and I have really bought in to what you do.

I have a question regarding strategy. I think this is similar to a question from William Spratt further up the message board. What approach do you recommend when the top tiers of positions, particularly RB/WR, get bid up over the AAV or recommended cost?

I ask because as amazing as your tool is it seems to me that it always assumes bids will fall in line with rational behavior on the part of other owners. It seems to me when the top tiers are bid up in value the recommended cost for subsequent tiers could/should increase because of reduced cap within the rest of the league. I also believe this dynamic introduces a situation where there is a danger of waiting too long for value based drafts and missing out on top tier talent.

Thanks for any input you have, and thanks again for all that you have done here.

Totally agree that if you determine a player’s value solely based on their AAV, then you might miss out on the best starters and wait too long to pick. It is for this reason that, by default, we apply a 10% premium to the cost of the top players to help ensure you get strong starters (consistent with a Harvard analysis on the optimal draft strategy). Based on your league’s draft history, however, you might modify the premium and discount values to other values.

Do you have a good way to use this if our league’s roster is relatively nonstandard?

I realize it’s in theory totally adjustable, but since we play 2QB, my league members aren’t really meaningfully influenced by Yahoo’s AAV, and consequently, the prices listed for top players are way off the mark.

When I edit the scoring variables and click update it doesn’t seem like the projected points totals change? Why would this be?

Example would be changing the scoring manually to include 100yd bonuses – and on update no values change. Or if I manually input .5 into each of the reception fields for half point PPR when I update the projected points are the same.

Hmm, both the 100yd bonuses and receptions categories are working for me when they change. Could you give me a test case so we can reproduce? What specific changes you made, and what a given player was before the update and after the update.

I’m having the same problem as Bobby. Before I make any data changes, the default lineup with the highest points is 1788.79 with Antonio Brown at 239.15, Lamar Miller at 208.41, etc.

When I click on change data settings I only change receptions from 0 to 1 for RB, WR and TE. Then I click Load at the bottom of the page. After “Generating Optimized Lineup” leaves the screen, all the values are still the same (highest points 1788.79, and so on).

I tried using different browsers in case that was the problem (safari, chrome) but got the same result.

Thanks in advance, I love the site and got awesome results using the apps last season!

I noticed that the AAV is off…for instance, Antonio Brown’s AAV is around $6 and others are similarly priced. I used the average of all the sources for AAV and then tested it with ESPN’s as well but still not working correctly. Am I missing something? Thank you!

I really am loving this site! Why is there no download button on the auction optimizer but there is on the snake version? Usually this wouldn’t be a problem and I’d just be able to copy all the data but that is seeming impossible, too.

I had a similar error running this in the Safari browser. I tried running it in google chrome and it is also generating a similar error. I have some unique league point settings and I wonder if this may be messing up the algorithm.

Thanks for all the great work you’ve done! I just ran into a weird problem with the app. I changed the settings to roster size of 15, $6 for bench, 3 WRs, 0 TE/WR/RB, and Yahoo scoring. But after I bought Antonio Brown and Golden Tate, the lineup optimizer was still telling me I needed 2 more WRs. So it was budgeting for 10 starters when I only needed 9. I have screenshots of the exact circumstances if you have problems replicating it and need more information. Thanks for your help!

I typed in Tate’s name instead of clicking on him because he wasn’t in the optimized lineup at the time, and then it still had 7 players in the optimized lineup including T.Y. Hilton and Michael Floyd. Interestingly, when I drafted my 9th starter the optimized lineup dropped from 2 players to 0.

Also, I was able to fix it by “picking” another wr at $0 so it didn’t end up affecting my draft, but I wanted to make sure you were aware.

My league has ESPN standard scoring with 1 QB, 2 RBs, 3 WRs, 1 TE, 1 K & 1 D/ST. We have an auction draft with $200 budgets and allow teams to keep 3 players from their squad from last year. The keepers cost what was paid for them last year + $5. Because teams keep players for cheaper than they’d go on the market normally, auction costs are typically 40% higher than normal, but every year is different, and I can’t calculate inflation until after the keeper deadline. I’m definitely keeping Cam Newton for $13 and Dez Bryant for $42. What other player do you think I should keep? My main options are Coby Fleener for $5, AJ Green for $54, or Jamaal Charles for $59.

This is absolutely awesome! Exactly what I had been looking for. I did have one quick question and I don’t know if it was posted on here already or not. I noticed that the rushing bonus points for 100, 150, & 200 yards were only applied to the running back. If I apply points to that will it also be taken into account for QBs? Same with receiving yard bonus being applied to RBs as well when calculating. Thanks.

Isaac – how does this tool value the flex position. As example – here is the my league positions: (QB, WR, WR, RB, RB, TE, Flex, Flex (QB included), K, DEF in a PPR format. Does the tool optimize for flex and two QB leagues?

Also, is there a way for the tool to sit locally on my pc such that I can store my custom scoring and jump between projections and lineup optimizer during my draft?

I love this site. I’m currently working on a project, designing an autodrafter for an auction draft. I’m somewhat confident that using some statistics and machine learning, I can let a computer out-draft my friends. I like your projections and advice, but I’m wondering if you have any insight into a deeper system. Let’s define some requirements:

– The system should make no assumptions about nomination order. (That is, the league will nominate players in an order it sees fit)
– The system should take into account other players needs (i.e. If the 11th QB off the board is up, its value will be higher than its VOR because of need). This implies that, even given the same projections for all participants, the current player has different values for different bidders.
– The system should be able to incorporate real-time inflation estimates.
– The system should run in less than 1 min (the bid time)

As learning inputs I have 5 years of projections from fantasypros (although I can get more) and corresponding actual output. I also have 5 years of auction data from my league. (I’d love to get even more)

I have a few ideas for how to proceed. I could implement one of the known strategies, or alternatively, just a knapsack problem solver. But VOR with adjustments doesn’t accurately reflect the way a real auction works and so static projections are insufficient. If Aaron Rodgers is the 10th QB off the board his value will be very different than if he’s the first.

Ok So I’ve read a bunch of stuff in this thread, so I figured I’d make some further comments:

– We can assume that inflation is temporally accurate -> That is to say that if the inflation over our previous N-1 bids was +.7 then the value per point is .7x higher and we don’t need to recalculate for anyone other than the currently nominated player.
– Each player has needs, but positional scarcity should be easy to calculate. Thus, if there are only 2 remaining QBs who are startable, then those players who don’t have QBs should be willing to pay more for them, even if every prior QB has no inflation. We should be able to approximate positional scarcity by calculating all points available at a position and the number of players available at that position. This is not the same as VOR, instead taking into account what percentage of available points at that position the current player accounts for.
– We don’t need to optimize for nominations. We can just hard-code a list
– We don’t need an ideal output, just a “good enough” output.

Interesting ideas! I agree that it’s a good idea to read through the thread as there are a lot of good ideas in the other comments. There are limitless numbers of factors one could consider when creating an auction draft algorithm. As with any model (which is an over-simplification of reality), I think it makes sense to start simple with the most key factors and gradually add complexity. Did you have specific questions that I/we could help you think through?

Let us know if you’d be interested in contributing to the site!
-Isaac

I’m seeing strange behavior when attempting to use ESPN’s AAV as my baseline in the optimizer. The returned values for players is extremely low, resulting in an optimal team that costs way below the maximum spend for a given team. For instance, I see Antonio Brown as having an AAV of $12.91, and therefore the optimizer thinks I should be able to get him for $15. This means that my list is all of the top players at each position, and it’s only going to cost me $82!

If I switch AAV source to AVG, I get much more rational values, but since my league is going to be staring at the ESPN values when we draft, I’d strongly prefer that those be my baseline. I’ve tried this in both Chrome and IE, and get similar results either way.

It looks like it’s not specifically a problem with setting AAV to ESPN, but when I try to troubleshoot it myself by setting a small handful of changes, updating to see if it breaks, and then making more changes, I eventually run into an error like:

An error has occurred:

“annot allocate vector of size 127”, Production server: True

This makes determining exactly where the problem lies a particular challenge.

I’ve run into this error on 3 different browsers (Chrome with and without Adblock, IE, and a brand new installation of Firefox), so I don’t know if there’s a particular setting that creates this problem.

The AAV seems to fluctuate wildly though – on separate instances within a 15-20 minute window of refreshes, I’ve seen Antonio Brown have an AAV of:
$4.80
$46.59
$60.88
$8.23

Isaac – I see that the link to the excel solver version of the optimizer tool is broken. Do you have one that works? The site runs a bit slow for me so I’d like to build an excel version for my draft on Saturday (or if an excel of offline version exists, I’d love to track that down as well.)

I’m also having a problem using the ESPN AAV. When I select those values and then edit the data to add 1 point per reception, on the projection app all the auction values go to “—“, and on the lineup optimizer, all the auction values turn into oddly low numbers. For example, just by adding 1 point per reception, Antonio Brown’s AAV goes from $67.24 (based on my other league settings) to $4.70. If I use AVG AAV, I don’t get these weird results, but the numbers are too low for ESPN.

It looks like the apps are down. I’m getting the error (An unexpected error has occurred. Please contact the system administrator.) on multiple devices. Any estimate as to when the apps will be up and running again?

app looks awesome cant wait to use it for my draft tomorrow. Is there a way to get a total lineup draft including my bench players. I see it leaves me 11 dollars for bench players? if I’m reading this right. Also not by much but the cost of players seems to vary a little. Example my last 5 mocks Thomas Rawls has never went under 23 projections says I should be able to get him for 19? Thanks again

The lineup optimizer is for selecting your starting lineup. You can change the amount of cap you reserve for your bench in the app. You could use our Projections tool for selecting your bench. Costs are based on AAV from different sites (you can select the source of AAV). You can modify the costs’ inflation/deflation.

I cant seem to get the data to change it keeps reverting back to the baseline scoring. I’m even went to put like 100 points per yard and the projected points all stayed the same when I uploaded. Any idea what I’m doing wrong?

Hello Isaac, I was wondering if you could take a look at this math to tell me if anything is wrong. I want to be able to come up with the amount of VOR points I should be getting with each auction dollar.

Step 1
Use fantasyfootballanalytics.net to assimilate a list of VOR values. I’m going to be using a 10 man league standard scoring from ESPN.
Baselines used:
• 11 for QB
• 11 for TE
• 30 for RB
• 37 for WR

Step 3
• Create a sum of all the positive VOR values from the table you created in step 1.
• My total VOR sum is 2945.562, which went down to around the 88th player in my table.
• Divide total VOR by the total buying power: 2945.562/1910 = 1.542179
o This number means every $1 is worth 1.542179 VOR points.

Step 4
• Download your projections to get it into excel
• Make a new column to the right of the VOR column, name it ‘Auction Value’
• Divide each players VOR by 1.542179

Conclusion
You now have a column that will tell you exactly how much each player is worth.

Isaac – when changing the data settings and then hitting the load button the settings are not being saved….consequently the tool does not update any projections. any ideas? just joined and paid today and don’t have a programming background to download R and learn this tool. thoughts?

Hi Isaac, I’m very impressed with your site. I’d love to use your auction draft optimizer for my upcoming draft, but when I add players that have been picked to the simulation it doesn’t not update fast enough to keep up. Can you make any recommendations on how to improve solving speed so I can use the tool in real time?

Isaac,
I’m trying to run the auction draft optimizer, but keep getting the following error. Can you please assist?

Server Error in ‘/’ Application.

Runtime Error

Description: An exception occurred while processing your request. Additionally, another exception occurred while executing the custom error page for the first exception. The request has been terminated.

Hey Isaac. I apologize if this has already been asked or is explained elsewhere but I couldn’t find anything. A friend just told me about this site yesterday and I’m still trying to get the hang of it (as well as being new to fantasy). Is there a way to input my full team (bench players and all), and the site to compute the best lineup I should start each week? I’ve been trying to mess around with the lineup optimizer, but not sure if that is what that’s for?

You can use the Projections tool (for more info, see here) to compare projections for players in your lineup. To compare the projections for players in your lineup, open the Projections tool, set your league scoring settings, click “Load”, and (on the right side of the page) type the names of the players you want to compare in the “Compare Players” textbox.

1) what browser (and version) you’re using: Chrome Version 53.0.2785.143 (64-bit)
2) your computer’s operating system (and version): OS X El Capitan 10.11.4
3) what error you’re getting: None of the interactive elements on the page are working, just the direct RESTful routes. The main app for projections is not loading or filling at all. Upon opening the console, I get these errors:

4) what you did to receive the error (i.e., all the steps you took or changes you made in the app): All I did was attempt to load the page. I have tried all of the advice listed in the FAQ, and nothing seems to be working.

Hi, apps aren’t loading at all.
1) I’m using newest versions of Chrome and Firefox
2) 64 bit Windows 7 pro
3) When I open the projections page, it stays blank and none of the links work. Sign in–change settings–about–graph–nothing works. The URL changes but nothing loads. Started happening out of nowhere.
4)I updated my flash player, however it doesn’t seem to be running on flash. Other than that I cleared the cache, tried using chrome instead of firefox, disabled popups, and still nothing works.

Okay, so I’m having a bit of problems with my projections app. As you had asked I will post it here with as much detail as possible. I am using safari 10.1.1, OS X El Capitan v. 10.11.6 on my mac. I am not receiving any specific errors, but am experiencing some irregularities with it.

First, if I go to Scoring Setting and customize it to my league it updates the projections accordingly. If I then go to League Setting and set my number of teams to 12, roster size to 17 and change starting WR’s to 3 the custom scoring settings are reset to default. Also, if i reopen League Settings the number of teams remains at 12 but roster size has reset to default 9 and starting WR’s has reset to 2. If I change them again and save it is correct.

The next problem is with the AAV. It seems something isn’t right. If I set my setting to my leagues custom scoring settings, the values are so low I could have the top players from every position on my team. As an example David Johnson is valued at 22.81. My Scoring Settings are default with the following changes: passing 1 pt per 20 yards, 2 pts for 40 yd td, 2 pts for 400 yd pass bonus, INT=-2. Rushing; 40 yd rush td=2, 200 yd rush bonus=2. Revieving; receptions=1, 40 yd rec td=2, 200 yd rec bonus=2; Fumbles=-2; Return yards are 1 pt per 25 yards.

Finally, the Auction Settings for rank and multiplier do nothing no matter what I change the values to.

As a side, I seem to get kicked from the server randomly. I chalked this up to the server being busy and my account being a free one. Do paying account get priority or would being disconnected continue?

To what extent do the consensus projections typically vary between June and week 1? Will data downloaded today be reliable for a draft that takes place between preseason game 4 and week 1, or are there material updates to the source projection data throughout camp and preseason?

Hi Isaac,
Great site! A couple questions on the app: When determining how much to bid vs. aav is that what the cost column is for? For example, if David Johnson AAV is $50 do I use the cost column to determine my max bid? Also, what platform runs the app best, mobile phone or desktop windows 10? Thanks Steve

Question on using the app. How do I pick players for other teams during the draft? if I search for a player and the name comes up, the only option I see is to pick, which puts them on my team. What am I missing? Also, using windows 10 does the app run better on IE or Edge, any difference?

Thanks Isaac, FYI I am clicking on the bottom table, I even tried players not in the suggested lineup and get the same result. One other question, in the league settings is there a way to set custom scoring options?

We believe we have fixed the issue. Clicking the player’s name should allow you to set the player’s cost and send them to “Other Players Drafted”. Click the “Settings” tab to set custom scoring options.

Hey Isaac, unfortunately still not working on my end. I tried clearing my cookies etc. on IE, also tried Chrome but the only option I get is to pick player. If I adjust the price I still just have the option to cancel or pick player…

Thanks Val my mistake. I didn’t realize the pick player in green was different than the pick player in blue… One other question. When I change the league settings, scoring settings etc. is there a way to save those settings so that next time I log in they are there? Or do I need to put them in each time I want to see projections?

I also have this problem and was wondering if it is an issue with my browser? I only have the option to click the blue “Pick Player” button and thus cannot move players into the “Other Players Drafted” pool…Has this been resolved? My draft is this afternoon, so thanks for any insights!!! AMAZING SITE!

Nevermind, I figured it out…You click on the blue “PICK” button when you have picked the player.

When someone else has drafted the player, you click on the PLAYERS NAME and it presents the green button to put it in the other players drafted list…This app is awesome. Thanks for making this platform a reality Isaac!

Hi, I am using safari 10.1.1, OS X El Capitan v. 10.11.6 on my mac. When i try to open the projections app “loading data” flashes across the screen really quickly then disappears and I am left on a white screen that never changes. Every once in a while when I open the app it will flash “loading data” then the screen will turn gray and the disconnected from server dialogue box will pop up (though this isn’t very often). It does work for me with another browser, but I felt like I should bring this to your attention since it was working just a few days ago with safari.

Using the Auction / Lineup Optimizer – the optimized lineup is not updating based on picks made. The lineup remains static once determined. I expect the lineup to optimized based on available players and the players I have picked.

Any thoughts on building a feature into the auction optimizer to “test” whether a given player is part of the point-maximizing lineup at a cost that his higher or lower than projected? For example, in the default settings it looks like David Johnson is part of the optimal lineup. But suppose he gets bid up to $80. Is he still worth acquiring at this higher price? Or conversely, Antonio Brown isn’t part of the optimal lineup at $67, but is he worth bidding $60 for?

Correct me if I’m missing something, but right now it looks like the tool doesn’t have a way of answering that question. Thanks in advance for all your work on this. It’s truly a phenomenal tool!

Isaac,
When using the auction draft optimizer app, whenever I go to “auction settings” and try to change the source I get disconnected from the server. The average settings results seems way off on some players so I wanted to try different sources. Thx

I am using Google Chrome. I cleared the cache, logged in again and same result. If I change the source for auction settings from avg to ESPN, the screen goes grey and there is a message on the bottom of the screen that says “disconnected from server” and “reload” underneath. Tried this on two different computers and two different browsers.

This is a great app, I especially like the way it shows AAV vs. Cost. However due to the speed of the auction I am in I don’t think using the app during the draft will be practical. Is there a way to print out or download the rankings from the app? If not, is there a way to include the cost as a field when downloading the projections?

Hi Isaac,
Love the concept of this app. Just wanted to point out a few small bugs that could use fixing. 1. On the Lineup Optimizer, I am unable to pick beyond the top three players when simply sorted by rank. Not sure if the selection buttons are broken but they don’t even want to show up. 2. I’m confused on how to select players that other teams have chosen. The pick buttons that work only seem to want to direct the player to my team. 3. If I want to modify the selected columns that are shown I can’t select the ones that are further down the list. Happy to provide more information if needed.

Hey Blake, can you provide some more detail on error 1. What are you seeing when you look for players beyond the top 3? For error 2, please click the player’s name to exclude from you team. We will look into the UI issue in error 3. Thanks!

Thanks for the quick response. For error 1, looks like there doesn’t always seem to be an issue with it. For instance, if I just click through the ranking filter it seems to give me the option to make the pick selection again. Just right off the bat all of the player data shows up including the image of the pick button but when going to select it and add the player to my team I was unable to. The arrow didn’t switch to the pointer either. Thanks for the clarification on error 2.

In the Lineup Optimizer, I’m having trouble saving custom league scoring across sessions. I can create and save custom league settings, and I can even change scoring rules. I don’t see any errors and don’t get any browser messages about blocked content. However, when I log out and log back in, the custom scoring rules revert back to default. The custom league is still available and the league settings are still accurate, but scoring is back to default.

I am using Chrome Version 60.0.3112.113 (Official Build) (64-bit) on Windows 10. I have tried on Firefox and Edge on same computer w/ same result. I have cleared cache, don’t have an adblocker and am allowing js.

To give you an example of what is and isn’t saved.

Starters by Position – I set kickers to 0 (we use kickers by I’m trying to reflect some weird salary rules we have). This is always saved in a custom league even after I log out and log in.

Scoring – I set passing TDs to 125pts per TD. This is only saved in the current session. If I log out and log in, it reverts to 4.

I need to change almost all of the scoring rules, but have been testing just the one noted because I’m tired of continually retyping them.

Hello,
1. When selecting League=DraftKings Scoring for Def TDs is 0. I believe it shoud be 6 if I understand correctly.
2. When selecting League=DraftKings … the Points change but not to the DraftKings scale. I have noticed if I change something in the General settings it will force a recalc and the player points then show correctly.

I have been unable to load the Lineup Optimizer for week 2 all week. I have tried on Chrome and Chrome Mobile (one on Mac and one on Android 8). Both in regular and in incognito mode. Each time I try to load Week 2, I get a “Disconnected From Server” message. Season lineups and Week 1 lineups load fine.

Thanks Val. It looks like there is a separate issue with the lineup optimizer. It’s selecting Michael Thomas (New Orleans) and attributing the cost of the New Orleans Michael Thomas and the Minnesota Michael Thomas. I think this is isolated to fanduel. There is a workaround to the issue by selecting Thomas as drafted by another player. Something you’ll probably want to look into though.

Using Google Chrome, Version 60.0.3112.113 (Official Build) (64-bit). Tried in Incognito and regular Chrome. Also tried in Safari. Cleared my cache and verified Java and AdBlocker. Using macOS Sierra Version 10.12.6. When I try to load the Lineup Optimizer it says “Disconnected from the server” and has a button to reload that doesn’t work. It also shows a script on the right side of the page that says “Data Redistributions” and is forever trying to load. In Safari (Version 10.1.2 (12603.3.8)), when I try to load the rankings/projections for your league app it comes up a blank page. Please advise. Thank you.

1) I am receiving an error when I try to load the LineUp Optimizer application. It says “Disconnected from Server. Reload” Obviously I have tried clicking reload, along with all of your other troubleshooting steps. 2) I have tried the latest versions of both Chrome and Firefox and 3) Windows 7.