2019 Fantasy Football Week 2 Remaining Season Projections – MSilb Analytics

Updates for Week 2 including roster moves, signings, trades, and updated depth charts. No notable waiver wire picks are popping out this week. Most notable, Derrick Henry moves up the #1 or #2 RB in most formats.

Click Here for Google Sheets Link

2019 Fantasy Football Draft Rankings – @MSilbAnalytics

2019 Rankings Link TO DOWNLOAD

2019 Fantasy Football Rankings and Point Projections are ready to go. Updates will continue as cuts, signings, and trades are made. Read below for rankings, players to target, players to avoid, and sleepers.
Last Updated: 09/07/2019

Stay tuned to www.MSilbAnalytics.com for week-to-week updates, and follow @MSilb7 and @MSilbAnalytics on Twitter.

Roster Updates Reflected:
– LeSean McCoy cut from Buffalo, still unsigned – SIGNED
– Ezekiel Elliott likely to sign before week 1 (included in rankings) – SIGNED
– Melvin Gordon not expected to sign (excluded from rankings).
– LeSean McCoy > KC RB2. Carlos Hyde > HOU RB2.
– Josh Doctson > MIN WR3.
– Official Week 1 Depth Chart Updates
Antonio Brown released from the Oakland Raiders (?!?!?!?!?!)

2019 RANKINGS LINK (Google Sheet – Open for a better view)

Pos Rank – Rank of each player within their position by fantasy points
– Fpts – Projected Fantasy Points.
PosIndex (NEW) – PosIndex is a 100-based index based around the ‘replacement starter’ at each position (QB – 12th ranked, RB/WR – 24th, TE 12th). Ex: JuJu Smith-Schuster has a 157 index in standard leagues, which means he’s 57% better than the ‘replacement’ WR option.
ADP – Average Draft Position
– ADR – Average Draft Round (12-team league)

Best High ADP Players
NamePosTeamPosIndexADR (ADP)
Christian McCaffreyRBCAR2701 (2)
JuJu Smith-SchusterWRPIT1572 (14)
Travis KelceTEKC1562 (15)
James ConnerRBPIT1452 (16)
Todd GurleyRBLAR1431 (9)
Zach ErtzTEPHI1413 (28)
Adam ThielenWRMIN1403 (30)
High ADP Players to Avoid?
NamePosTeamPosIndexADR (ADP)
Stefon DiggsWRMIN843 (36)
Odell Beckham Jr.WRCLE872 (13)
Tyreek HillWRKC881 (5)
Devonta FreemanRBATL893 (26)
Kerryon JohnsonRBDET953 (29)
Derrick HenryRBTEN983 (34)
Le’Veon BellRBNYJ1081 (6)
Austin Ekeler*RBLAC1497
Ben Roethlisberger QBPIT1449
Nick FolesQBJAX13717
Duke Johnson Jr.RBCLE1367
Sterling ShephardWRNYG1367
Eric EbronTEIND12911
Marcus MariotaQBTEN12618
Jordan Reed*TEWAS11812
Jimmy Garoppolo*QBSF11216
Adrian PetersonRBWAS10315
Will DisslyTESEA101
Paul RichardsonWRSEA100

Draft Strategy

As mentioned previously, use PosIndex and ADP in conjunction to build your personal strategy and make round-by-round decisions. The chart below shows a macro look:

Stack Ranked PosIndex by Position

The chart above shows the stack ranked PosIndex for each position. At RB there’s a by far and away #1 (McCaffrey), with a tier drop-of around #1. Between ~12-32, RBs and WRs have equal value off the board, and RB drops off around #35 to a new tier, but WRs never show a clear drop-off point through #65 (aside from slight tier breaks around #11 and #24.

My Takeaway: Grab RBs early if you can, and avoid getting duped by WRs 12-32 as WRs have the highest value late, whereas RBs do have a drop-off point. This new wave of drafting WRs like RBs is a losing strategy.

PosIndex Stack Ranked by ADR (Avg Draft Round) within each position

Looking at PosIndex through the lens of Average Draft Round (ADR) for a 12-team league helps us think through this strategy a bit more. We can see some of the same trends (WR value maintaining throughout the draft), but we also see when we need to prioritize specific positions:
RB: If you don’t get a top guy, you’re still safe in rounds 5-7, however once you hit round 8, there is a HUGE drop-off. Having your starters + bench RBs done by round 8 is a must.
TE: The drop-off through the first few rounds is intense, so don’t reach if you don’t grab a top guy early. We don’t see another drop-off until round 13, so you have time.
QB: Nobody knows anything, pick your poison.

Fantasy Football Toolbox: Depth Charts and Schedules

It’s the 2018 NFL Season, and @MSilbanalytics is back! Full rankings should be expected over the next few days – 1 week, but I’ll start off by sharing some of the data I’ve collected to build a Fantasy Football Toolbox.

Depth Charts: The big advancement in my 2018 projection models is including team depth charts to add an element of passes/rushes/targets. The struggle here is that it’s incredibly difficult to track down historical depth charts. As an assumption, the lead rusher (by carries) for a team each week will be determined to be the #1 RB, the lead receiver (by targets) for a team each week will be #1 WR or #1 TE, and so on.

Schedules: On top of depth charts, this year I’ll be implementing schedule impact on individual games and individual positions. Luckily, schedules are easier to come across, but I only went back to 2016 to stay consistent with the depth chart data that we have.

See the google sheet below (hopefully embedding works – LINK)

Technical Tools: For those interested, I used python to extract this data. You wold 100% hate your life if you tried to get this information manually. More detail:

  • Jupyter Notebooks: Python IDE (user interface)
  • URLlib + BeautifulSoup (html extraction)
  • Pandas (I like dataframes better than tables)
  • NumPy (to do math)
  • RE (to work with text)
  • OrderedDict (unordered would be nonsense)
  • csv (to make csv files).

NFL Divisional Round Fantasy Football DFS Player Projections

Click here for NFL Divisional Round DFS Fantasy Football Player Rankings (.xlsx)

Get ready for the NFL Divisional Round Playoffs slate of games!  Player Projections are listed below.  Choose wisely and try to get some wins this week!  Connect with me on Twitter as @MSilbAnalytics to talk strategy for the week.

SEA @ ATL – Sat 4:35 PM
HOU @ NE – Sat 8:15 PM

GB @ DAL – Sun 4:40 PM
PIT @ KC – Sun 8:40 PM

As usual, the Green Value categories are adjusted for player salaries on FanDuel and DraftKings respectively.  All positional rankings are sorted by the average of these two values (AVG V+)

Check you Over/Under lines for high scoring games, keep up to date on injury news, and WIN!





Week 10 NFL Intriguing Fantasy Football Plays

Click here for Week 10 Fantasy Football Rankings

Week 10 of NFL Sunday is almost upon us!  Take a look at the link above to see position-by-position breakdown for projected values across FanDuel and DraftKings as well as a pure Season-Long projection for the week.  We have all of the bases covered.  Here’s some names to make you go “hmm” when thinking about your lineups for the week.  We’re not listing the obvious stars, there’s nothing interesting about saying that Tom Brady and Matt Ryan might have good days.  As always, DO YOUR INJURY RESEARCH!  We can’t project a spot-start, so those are complete leaps of faith.

Name – Matchup – (FD $/ DK $)


Eli Manning – NYG v CIN – (7600/5900)
Kirk Cousins –  WAS v MIN – (7100/5400)
Ben Roethlisberger – PIT v DAL – (7700/6800)
Philip Rivers – SD v MIA – (8100/6700)
Carson Palmer – ARI v SF – (7900/6500)


Jordan Howard – CHI v TB – (6900/6000)
Lamar Miller – HOU v JAX – (7500/6400)
Mark Ingram – NO v DEN – (6300/5400)
Jeremy Hill – CIN v NYG – (6100/4400)
Devonta Freeman – ATL v PHI – (7000/6800)


Eddie Royal – CHI v TB – (5100/3700)
Jordan Matthews – PHI v ATL – (5900/5900)
Kenny Britt – LA v NYJ – (6400/4900)
Cole Beasley – DAL v PIT – (6500/5400)


Zach Miller – CHI v TB – (5400/3600)
Lance Kendricks – LA v NYJ – (4500/3000)
Coby Fleener – NO v DEN – (5600/3300)

2016 Fantasy Football Value Projections

2016 Score+ Fantasy Football Value Rankings (Download .xlsx file)


View Full Rankings Here

2016 Fantasy Football Individual Player Value Projections are linked above.  The “Score+” column represents a player’s projected added value to a team with a score of 0 meaning no added value.  The higher a player’s Score+, the more value they add to your team relative to their position.


To generate the projections, I used historical position data from 2010-2015 to calculate the correlation of each individual statistic to future fantasy points performance.  These correlations contributed to a composite statistic consisting of the strongest predictive statistics for each position in each across the major fantasy scoring categories.

QB: Completions, Passing TDs, Interception %, Air Yards/ Attempt, Passing Yards / Game, QBR, Rushing TDs

RB: Rushing TDs, Rush Yards/ Attempt, Rushing Yards/ Game, Rushing Attempts/ Game, Receptions/ Game

WR/TE: Targets, Receiving TDs, Receptions/ Game, Yards/ Game

K, DEF were not included.

Each individual players’ 2015 statistics were then used to create this composite Score+ statistic heading into the 2016 season.  This means that players who did not play in 2015 will not appear (Rookies, Suspensions, Injuries).  Also suspended players Tom Brady (4 games), and Le’Veon Bell (3 games) had the worth of their suspensions replaced by the value of a replacement/average player.  It’s worth nothing that Brady and Bell still rank toward the top of Score+.  Watch out for retired or injured players as well who are included in the rankings.

In intermediate steps of the model, each player is given a raw score, which is then converted to Score+ to standardize the scores across positional groups.  Since the scores are generated by position, I think it’s more beneficial to view the rankings position by position.


I’m a big believer in analytics, but I think they’re best used to support and guide your decisions, not replace your ultimate decision making.  I used the rankings in my leagues primarily to understand the landscape of each positional group, but secondly in comparison to the pre-draft rankings or Average Draft Position (ADP) of my respective league.  As an example, Antonio Brown is ESPN’s #1 player, and my Score+ #1 player.  Therefore, I’d conclude that Antonio Brown is a safe selection at the top of the 1st round.  In contrast, Todd Gurley is ESPN’s #5 overall, #2 RB, but my Score+ has him at #35 overall, #6 RB.  So Todd Gurley still projects well, but you would be passing on value to take him in the first round.  Same goes with Dez Bryant who (even before the Romo injury)  projected at Score+ #146 overall, and ESPN #15.

A better strategy would be to go after Antonio Brown, Julio Jones (ESPN: #4 ovr, #3 WR Score+: #2 ovr, #2 WR), Odell Beckham Jr. (ESPN: #2 ovr, #2 WR Score+: #11 ovr, #5 WR), or Adrian Peterson (ESPN: #3 ovr, #1 RB Socre+: #23 ovr, #2 RB) in the early 1st, or DeAndre Hopkins (ESPN: #7 ovr, #3 WR Score+: #8 ovr, #4 WR), Le’Veon Bell (#17 ovr, #1 RB), Devonta Freeman (ESPN: #9 ovr, #5 RB Socre+: #24 ovr, #3 RB) later in the 1st.  These are players that have top value, but are only available during the 1st, maybe early 2nd round.  This represents a prime example of using analytics to guide your decision, but NOT be your ultimate decision maker.  Adrian Peterson is my #23 overall value player, but there is absolutely no way to expect that he’ll be around past about the 5th pick of your draft.  Be smart with your value, but you can only get it if it’s available.

Since Score+ essentially shows you a player’s value over their position, the accumulation of TEs near the top of Score + overall rankings show that there is a large range of value for tight ends, but that the position is also extremely top heavy.  Score+ shows Delanie Walker, Jordan Reed, Rob Gronkowski, Greg Olsen, Zach Ertz, Travis Kelce, Antonio Gates, and Jason Witten all in the top 25 overall.  it is ridiculous to suggest that all of these TEs should go in the top 25 (remember to play to pre-rankings and ADP) but there is plenty of value in that group, so it may not make complete sense to reach for Rob Gronkowski, ranked #11 overall by ESPN with the cluster of other TEs at the top.  WR seems to have deep value as well, with RB looking very thin.  This leads me to prefer RBs early in the draft.  I’ve been targeting guys like Jamaal Charles, Demaryius Thomas, Allen Robinson, and Brandon Marshall in rounds 2-3, with strong value in Jarvis Landry, Keenan Allen, and Larry Fitzgerald in rounds 4-6 among a huge group of quality WRs.  Notable low ranking WRs and RBs include Mike Evans, Dez Bryant, Lamar Miller, David Johnson, and Eddie Lacy.

The Quarterback position is deep just as it has been in the past, and there’s not much separation in the position.  So, there’s no reason to reach in an early round for a QB, get your value at RB and WR.  The biggest discrepancy is ESPN’s #1 QB Cam Netwon comes in at #13 in Score+.

Stay away from the busts, and use Score+ to maximize your value!  I’ll be answering Fantasy Football questions on Twitter @msilb7 throughout the season.

Thanks to Pro-Football-Reference for the historical data, ESPN for being my fantasy league host, and Stack Overflow for answering my Python and SQL questions.

S_ATTsd : Phase 2 (Formerly S_ATTws)

See: S_ATTws : Phase 1info

Here is Phase 2 of my statistic comparing a team’s payroll to their attendance, and adjusted by winning percentage.  New for this version is the method in which teams from different eras are set to an equal standard.  For Phase 1, the salary and attendance numbers were taken as a fraction of the league total, which led to skewed results.  In this version, the ratios are determined by standard deviations away from the mean.  Also a set starting value of 10 was used to adjust for the additions and subtractions caused by the formula.  Without further ado, I present to you Phase 2.meansdev

topAbove are the top 25 teams ranked by S_ATTsd from 1990 to 2010.  The 1994 strike-shortened Montreal Expos top the list.  This is an extremely interesting team to look at.  The early 90’s were one of the most dominant periods in baseball history for the Expos.  Fan interest was high, and the team was on the verge of emerging as one of baseball’s best.  However, no team was hurt worse by the strike than the Expos.  The loss in revenue from ticket sales, TV and radio contracts, as well as the almost certain playoff games left the Expos franchise with little financial freedom.  The team was forced to send away centerpieces Larry Walker,  John Wetteland, Ken Hill, and Marquis Grissom due to the potential revenue lost by the strike.  A decade later, the team relocated to Washington D.C.

Also at the top of the list are Billy Beane’s famous Moneyball Oakland Athletics, the record setting 2001 Seattle Mariners, and the 2008 “new look” Tampa Bay Rays.  With the exception of the Mariners, these teams were able to win a ton of games with a limited payroll, and bringing out a good amount of fans.  The Mariners are an example of the ideal goal of my statistic.  This isn’t just a list of teams who win while not spending, it shows teams who spend well.  The 2001 Seattle Mariners team spent a ton; They had the league’s 11th highest payroll, which made up 3.81% of the league total.  However, the Mariners set the Major League record for wins that year, finishing at 116-46.  This legendary Mariners squad, as well as the 2004 St. Louis Cardinals are examples of teams who spent a lot, but did so wisely.

botThe bottom 25 is about what you would expect.  Here, teams are listed who lost a lot of games and spend a fortune in order to do so.  Some of these teams spent over $100 mil in payroll, just to finish the season nowhere close to the playoff hunt.  The 2003 Tigers have a Z-Score of 4.238. To put that in perspective, CERN needed 5-sigma level confidence to confirm the discovery of the Higgs Boson particle.  The 2003 Tigers vary from the mean by 4.238 sigma.  That team was almost confirmed to be awful on a high-speed particle physics level.  That’s not good.

distribThe above plot shows the distribution of S_ATTsd values.  They appear to be normally distributed with a slight skew to the right.  This skew means that it is more common for teams to spend efficiently than inefficiently.  However, the long right tail shows that there have been cases of teams with unnaturally high S_ATTsd values.

I’ve uploaded my spreadsheet in the downloads section.

S_ATTws : Phase 1

Click for a full-size image

After spending some time looking through the database from Baseball-Databank, I started looking into something that I found interesting.  I began examining a team’s total payroll as it relates to their attendance.  The correlation between the two isn’t phenomenally strong, but it’s an interesting topic to examine.  Payroll is a component of a team’s expenses, and fans attending the games bring in revenue.  So this lead to a thought; “Which teams are spending most efficiently”?  I’ve seen opinions where payroll is analyzed directly with wins.  This is a logical thing to look at, but having a winning team doesn’t guarantee that the organization is earning a return for their spending.  They make money by putting people in the seats.  A pure payroll / attendance figure shows which teams pay the least per every fan in the stands, but it doesn’t take the quality of the teams into account.  So, I decided to look further into this, and try to come up with a statistic which measures a team’s spending efficiency, while taking team performance into account.  It can also be thought of as efficiently spending for a successful team.


S_ATTws1HEADThe image to the right explains the context of the table.  It is organized by S_ATTws in ascending order, showing the top 25 teams from 1990-2009.  The 2006 Florida Marlins top the list, featuring young superstars such as Dontrelle Willis, Miguel Cabrera, Josh Johnson, Hanley Ramirez, and Dan Uggla.  After dismantling the 2003 World Series Championship winning team in the off-season, the ’06 Marlins had a payroll of just $15 million, less than 1% of the total MLB payroll.  The Marlins have historically struggled to bring fans out to the ballpark, but they show how a team’s success with limited financial commitments reflects well in S_ATTws.  A polar opposite would be the 1993 expansion Colorado Rockies, who come in at 20th on the list.  Their payroll and attendance numbers are astounding.  In the scatter plot at the top of the page, they’re the dot in the upper-left.  They averaged around 55,000 fans per game, and almost doubled the average total attendance for the year.  They led the league in attendance, while having the lowest payroll in the MLB.  Although the team wasn’t very competitive, as is the norm for first-year expansion teams, their payroll to attendance ratio skews their S_ATTws value downwards.  At 18th are the famous 2002 Moneyballing Oakland Athletics, who won 100+ games, while only making up 1.72% of the total MLB payroll.  However, the 2001 pre-Michael Lewis team is ranked 6 spots higher.  The trend that jumps out to me the most, is how successful the Montreal Expos of the early-mid 90’s were.  They appear in the top 25 six times with a data set range of 8 years.  The Expos are a prime example of the negative affects of the 1994 labor strike.  During the best season in team history, the season was canceled.  Due to the lost revenue from attendance and media contracts, one of the best organizations in MLB history (with the best logo) was forced to the cellar of the NL East, and had to pack up for a move to Washington D.C.  

S_ATTws1MEANstdevThe table above shows the worst 25 teams according to S_ATTws listed in descending order. The 2008 New York Yankees top the list. They went 89-73 while making up 7.74% of the MLB payroll, and led the league in attendance.  The Yankees have been notorious for spending big time money on big time stars ever since the late George Steinbrenner bought the team in 1973.  This table is relevant because it brings up an irregularity in S_ATTws that I will be fixing for Phase 2.  The attendance and salary numbers are ran through the formula as a fraction of the league totals.  This leads to a large difference between the rich and poor teams, due to the overall payroll numbers being spread far apart from each other.  Instead of using ratios, I’ll need to report the numbers as standard deviations away from the mean.  This way, the ratio will be standardized, and big-spending teams will not be penalized as harshly.  I’ve been struggling to calculate the correct standard deviations using SQL, but I’m making progress.  My code is a little bit of a mess right now, I’m sure I’ll look back on it one day and laugh at how sloppy and confusing everything is put together.  Phase 2 will be released when I fix this problem.

I exported the data from the SQL search query into an excel spreadsheet and have placed it in the downloads section.


P.S. In reviewing my post, I’ve realized that I need to standardize a team’s spending based on their market size.  You can’t fault the Yankees for spending all of this money when it’s there at their fingertips.  Maybe also adjust the attendance based on stadium capacity, but I’m leaning against it.  You make money for the pure number of tickets sold, not the percentage of seats filled.

And So It Begins…


So as my winter breaks ends, I’m embarking on a new task. Statistical databases are what makes analytics and sabermetrics possible, so it’s time that I throw myself into that. Through researching on the internet, I’ve found that MySQL is the most useful free tool for databases and search queries. I went ahead and downloaded that along with the MySQL Workbench GUI and the Baseball-Databank Database. I have no previous experience with databases, so this a completely new venture for me. I’m learning SQL along with general information about how databases work. In the image above, I modified code from Hardball Times and Statistically Speaking to output the career home run leaders for the formerly named Florida Marlins (through 3/28/11).

As I explore more into SQL and learning everything that I can do, I’ll start posting my own sabermetric analyses. I’m also looking into script for pulling data from MLB Gameday and Pitch f/x to have the most current and usable information.

Program Progress #3: v1.0 Released


The third update of my program is the release of version 1.0 . The format of entering and printing data was updated. To enter players, follow the menu prompt by entering “1” and then select hitter or pitcher with “1” or “2”. The program will then ask for the player’s name, and then statistics. To print players on the screen, start by entering “2”, then select hitters or pitchers with “1” or “2”. This C++ program is complex as far as data management and output formatting, but is extremely simple in terms of baseball analytics. This program is my first baby step, and my next one will not be so simple I’m now moving into SQL programming which is much more useful for this type of data collection, along with researching and implementing sabermetric statistics.

Future Updates: Including HBP, SB, SF to make OBP numbers accurate. Allowing users to edit or delete players.

The program will be posted in the “Downloads” tab.

Download: Link