The Rotoquant

Describing and predicting the world of sports in the language of mathematics

Month: October, 2014

We Got 99 Problems but Fraud Ain’t One

Running a real-money gaming site is wrought with challenges. Whenever there’s money being transacted, and particularly money given away, nefarious agents emerge from every corner of the internet trying to run scams and see just how much they can get away with without being caught. There are some tools for sites to defend themselves against fraud – but the bad actors can be highly clever and aggressive. Often times basic data-driven analytics isn’t enough to really figure out what’s going on.

I’m the CIO at, a daily fantasy sports site that hosts real-money games weekly. We’ve got single prize pools in the works for $100,000’s of dollars. We are running a free-money giveaway campaign where new users can earn up to $30 in free play on the site, and an additional $20 for referring friends who play. Needless to say the stakes are high, and the incentive for multi-accounting and other unsavory practices is real. To catch these problems before it’s too late requires an advanced toolset, going beyond traditional tables of data, unique e-mail verification and other standard practices.

Here’s where advanced analytics come in. We can use a type of mathematical object called a graph to visualize how our users, and our users’ technology and devices, relate to one another. Graphs can be constructed on any set of dyadic data, or in english, data of the type: A is related to B, B is related to C, A is related to C, B is related to D. These data dyads can be strung together, analyzed and visualized (using the branch of mathematics that focuses on theses sorts of things, the aptly named ‘graph theory’) to see if, for instance, D is related to A through any path (it certainly is).

Applying some network graph visualization algorithms from Mathematica 10 to a random sample of Victiv‘s affiliate data, we can see an interesting sample of the types of graphs formed by our affiliate partners and their affiliated users:

AffiliateSampleAs is often the case in real-world graph data, we see a distribution of affiliate sizes that can be inferred from the size and density of the ‘hub and spoke’ structures they are attached to. Small affiliates might form a sparse star, or even a single  line. Others form large clusters, with affiliated users who are themselves affiliated with other users, and so on. Interesting, yes, but this wouldn’t help us identify fraud unless we were able to add some important contextual information.

In practice this referencing information might include things like ‘what percentage of affiliated users are depositing players?’ or ‘how many have verified accounts through some form of social media’? But these data-driven items can’t always capture the whole story, and they certainly aren’t as cool to visualize. So let’s focus on another bit of data – the relationship between users and their devices. Most fraud is perpetrated by a single user, connected on one or a few devices, pretending to be many unique users.  Checking the IP data can help get a handle on how many devices each user is connecting with – instances where users are sharing devices are situations that are potential fraud risks. I say potential here because most of the time there is a perfectly mundane reason behind IP sharing and many other apparent anomalies in user data. Operators need to check every possible angle to be 99% certain that something is amiss before taking action on any account. The fallout for acting brashly towards an innocent user can be just as bad as being the victim of fraud.

Below is a random sample of network graphs produced using Victiv‘s database of anonymized users and their IP addresses:


Notice how much more rich and complex this data is compared to the affiliate-relationship data. The number of IP addresses for a user is not as subject to power-law like forces as abstract things like human-to-human relationships. Devices are tangible and real, whereas human relationships in the digital world are ephemeral and nearly limitless. As a result there are far fewer giant starburst type graphs present in the IP sample. Instead we see more complex organic looking patterns emerging and long strings of connected users and devices. There is evidence of some fraud in these images alone – obviously the details of who these users are have been obfuscated for the purposes of this post – but to get some more insight about what we might look at next, let’s focus on the largest connected network of IP addresses and user accounts. Zooming in on that network looks like this:


Spaghetti anyone? Obviously this graph stands out from the others as being odd, a testament to the power of visualization to help identify anomalies in complex data. Who are these users and why are they so intra-connected? How can so many distinct users share so many IP addresses? There’s got to be something strange going on here, right?

Well, yes and no. It turns out that this is the graph of the administrative accounts at Victiv. We all share the same few dozen IP addresses from our offices in Austin TX! When I saw this, without knowing where it came from, I was immediately excited (and terrified) to think I had found my first great case of fraud on Victiv. Digging into the details I was relieved and slightly humored to find out that the detective, in this case, had only managed to snoop out himself.

As an aside – some of the other large network graphs which at first glance appear like possible fraud candidates have geo-locations remarkably close to the locations of the headquarters of some of our most well known competitors in the daily fantasy sports space. No fraud involved, but apparently Victiv has aroused their attention as the most rapidly growing daily fantasy sports site in the industry.

Taking our fake analysis one step further – we can use Mathematica‘s powerful network graph analysis tools to do all sorts of analytics on these graphs. We can identify what we think of as a ‘typical’ user to IP mapping, and from this we can find the cases that most greatly diverge from the expected pattern. Complex sounding properties like the global and local clustering coefficient, cumulative degree distribution, and resilience can be calculated and compared between each graph. Depending on the problem being addressed these properties can tell us interesting and actionable things about our user’s behavior. One of the easier advanced tactics is just using the CommunityGraphPlot function and letting Mathematica find clusters of users and IP addresses for you. Below is the community graph plot of the admin accounts and their associated IP addresses from


The algorithms have cleanly identified groups of likely related users and devices, and separated them out into identifiable communities. If this weren’t a bunch of our in-house developers I might be inclined to suspect a very large, very coordinated syndicate of multi-accounting users was at play here. Fortunately for Victiv, that’s not the case.

Anyway – even if you aren’t interested in the tangible insights that can be gleaned from this sort of analysis, the pictures themselves are simply really, really cool. I’m always excited when I encounter a problem that I know will benefit from network analysis, and fortunately fraud in real-money gaming is the perfect candidate. If you like this content, are interested in fantasy sports or data analytics feel free to follow me on Twitter @ TheRotoquant. Also – sign up today at for a shot at winning $30 free playing fantasy football against our cyber-intelligent daily fantasy sports bot dubbed the #VICTRON! We’ve also just announced the $300,000 VICTIV Bowl for the end of this football season – we are awarding $100 tickets to it each week in guaranteed tournaments. This weekend we’re running $50,000 in guaranteed and free contests for the NFL and NHL – sign up today to win big!

A Ghost In The Machine and Week 9 NFL Picks

People liken math to science. Statistics, as a branch of mathematics, gets lumped into this relationship as well – people think of the process of doing statistics as unambiguous, direct, causal and clear. You have a set of data, you want to know some quantifiable information about that data, you apply whatever functions you need to get that information and you’re done. No wiggle room, no potential errors of interpretation, no room for art or creativity. People, as it turns out, are wrong.

Doing real world statistics and predictive modeling is inherently messy. The statistician is required to make creative, educated guesses at every step in the process. How should missing data be treated? How should outliers be handled? Should any variables be transformed or combined? Which variables should be included / excluded and what tools should be used for feature selection? What method should be used to produce the eventual model? How should backtesting be designed and tested? The list goes on. There are guidelines for each of these questions but there aren’t definitive rules. Every step in the process holds the potential for error, and many of the errors end up being subtle and hard to identify until it’s too late. You often don’t discover your errors until a model is set free in the world and starts behaving in unexpected and potentially dangerous ways.

Such is the case with the Machine, and the backdrop to the absence of picks last week.  The Machine’s picks had been doing well so far, but not quite as well as I expected in backtesting. In the LVH Supercontest – the world’s premier NFL handicapper contest that pays out first place prize of over $750,000 – one of my entries was inside the top 50 (out of 1400) and my second was inside the top 200.  My best entry used only the machines picks and had been picking games at roughly 67% against the spread. So while I wasn’t quite living up to backtesting, I was doing well enough to win (last year’s winner was 67% ATS) and feeling otherwise fairly optimistic about things. Plus, I reasoned, many of the variables the machine uses are moving averages – so as the season moved along I expected the performance to improve compared to a ‘pick from your gut’ method of handicapping.

Week 6 came along and the Machine had its first losing week. My LVH Supercontest cards dropped out of the top 100 and 300 respectively. It could have just been a 1% chance variance event, but the evidence had mounted to the point that I would have been crazy to not look in the code for potential issues. Where there’s smoke there’s fire, goes the saying, and it applied here as well. I found several key issues that caused the machine’s performance to degrade over time, and another major issue that caused me to distrust the backtesting I had done on last years data. The Machine certainly was doing something right in the first 5 weeks – but what that something was was difficult to say. It was a very sophisticated hybrid of solid predictive analytics and modeling and a few nasty bugs and, from that discovery on, it’s picks could not be trusted. Add this discovery to the fact that Victiv – the site that’s taking over the Daily Fantasy Sports industry, where I work as CIO – was exploding onto the DFS scene… needless to say I had a full plate these last few weeks. I started tearing apart the nefarious parts of the machine to rebuild them from scratch without the bugs… I thought I could do all of this in a single week, but I was wrong. Come Friday of last week I had no picks and was forced to simply guess on both of my LVH Supercontest cards. The results were a disastrous 1-4 on both cards, knocking the once promising tickets all the way back to tied for 239th (23 of 40 – 57% ATS) and 532nd (52.5%). The current leaders sit at 31 of 9 (77.5% ATS).

That’s the bad news. The good news is that the Machine has been reborn. I’m not going to claim it’s better than ever – but it’s functional again and the bugs have been resolved. This week is sort of a ‘minimum viable’ version – where the bugs are gone but it has yet to be optimally tuned with new parameters. Based on backtesting, which I now trust, I expect these picks to be 58% overall ATS in the longer term, and higher confidence picks to fare even better (3.0 factor and above – 64% ATS, 7.0 factor and above – 69% ATS). It’ll be a long road to get back on top of the leaderboard and I may be too far behind now to catchup – but comebacks always make for a better story anyway … Let’s do this.

Here are the week 9 picks from the Machine:



Good luck in all your week 9 contests.

On the fantasy football front – the NFL Megatool is now web-embedded! Do all of your fantasy football research each week on this sophisticated analytics application (requires a download of the Wolfram CDF player plug-in, just click on the image of the tool to be redirected).

At Victiv we’re running $50,000 in guaranteed and free NFL contests in week 9 – once again our biggest week ever! We just announced our $300,000 VICTIV Bowl guaranteed contest for week 16 of the NFL season. The first entry tickets can be earned in this week’s NFL coaching legends themed GP contests which will run every week leading up to the big event. To get your $100 ticket to the VICTIV Bowl just enter the $20,000 Lombardi, the $10,000 Lambeau or our over $2,000 in free roll contests that all pay out$300,000 VICTIV Bowl tickets to the top finishers. Start earning tickets today for your chance to win big!

Follow me on Twitter @TheRotoquant.


Week 7 Picks from the Machine!

See the post from earlier this week about last week’s performance. It was a strange blend of good and bad news – on the good side my Supercontest picks went 4-1, on the bad the Machine had it’s first losing week overall going 7-8 ATS.

Things are very busy going into the weekend and I need to get my LVH Supercontest picks in so I’m going to get straight to the goods… below are the week 7 Machine’s picks:


A lot of middling range factors this week – hoping for another solid week on my Supercontest entries. My picks will be as follows:

TheSanction (currently tied for 43rd out of 1400 entries) – PIT, ATL, SEA, BUF, TEN

Rotoquant (currently tied for 205th out of 1400 entries) – PIT, ATL, SEA, TEN, CHI

I’m seriously in the running for the top prize of $750,000 big ones – and there’s a lot of games left to play. I couldn’t handle giving up 6 points on a sub-par Buffalo team against an unknown quantity in Teddy Bridgewater – but other than that I’m duplicating my picks across both cards.

And, as always, we are putting out $45,000’s worth of guaranteed and free contests  at for week 7! We’ve also added NHL to our lobby – so all you puck heads can get your fantasy hockey fix. Games have been filling up fast so be sure to jump in early and secure your spot.

Good luck in all your contests this week.


Official NFL Megatool User Guide

The NFL Megatool from is in its fourth iteration for week 7. Already it’s been downloaded and used by 1,000’s of fantasy sports fanatics to set lineups, make start/sit decisions, and dominate their daily fantasy sports contests. The biggest complaint to date? It does too much. It’s tough for users to understand what they can see with the tool, and all the ways they can use it to inform their decisions. There have been many requests for an instruction manual to explain how it works. Ask and ye shall receive.

In this post I’ll walk through how someone might use the Megatool to optimize their week 7 lineups. This post will be updated as Megatool functionality is expanded to explain each new feature in turn. Let’s get into it…

Setup: Running the Megatool

Step 1 – download and install the Wolfram CDF player from

The Megatool uses a free, innovative technology provided by Wolfram Research called Computable Document Format or CDF for short. The resemblance to PDF here is intended – this document type is like a PDF with dynamic data-driven content and user interface elements that can be adjusted on the fly. One of the coolest things about CDF technology is that it allows you go beyond static, single-graphic style communication of statistical findings to a more dynamic, user-driven two-way tool for generating insights from data. This plug-in is required to pull of this techno-magic; downloading and installing it is step one to using the Megatool.

As a side note here: CDF technology represents a fundamental change in how we interact with data that can often times be overwhelming to an average person. People are used to having data insights force fed to them in stale, static graphics – sometimes the freedom to explore the data dynamically and discover unique insights on your own can seem like a burden: “Just tell me what to do, dammit!” is not an uncommon complaint. If you want to be force fed your fantasy decisions, this tool is not for you.

Step 2 – download and open the tool from (note: this link changes weekly to incorporate the latest data. Eventually it will be embedded at Victiv as a web-based interface.)

Once you’ve downloaded and installed the CDF player, you are ready to download the tool and start making better fantasy decisions.

Explore: Using the Megatool in Analysis Mode

When you open the tool you should some version of this:

Screen Shot 2014-10-16 at 12.56.23 PM

This is a list of players at a position of your choice, ranked by a statistical category of your choice, normalized by some other statistical category of your choice. That’s a loaded statement, so let me unpack it one control at a time.

The first control element is the Megatool Mode, which can be set to either Analysis (analyzing historical data) or Projection (projecting fantasy points for next week). While Projection is certainly the most popular mode – more along the ‘just tell me what I need to do dammit!’ lines, there are plenty of important insights to be found in the Analysis mode.

The next control element is Position – you can chose from QB, RB, WR and TE (soon to include DST).

The next control, Stat of interest, allows you to select from a variety of statistics relevant to your selected position and determines the foundational stat on which you’ll be ranking and comparing players at this position.

Screen Shot 2014-10-16 at 1.06.16 PM

The full list of available stats as of the time of this post is:

  • Passing Attempts (QB only)
  • Passing Completions (QB only)
  • Passing Yards (QB only)
  • Passer Rating (QB only)
  • Rushing Attempts
  • Rushing Yards
  • Targets
  • Receptions
  • Receiving Yards
  • Opponent passer rating allowed (at position, QB only)
  • Opponent passing yards allow (at position, QB only)
  • Opponent rushing yards allowed (at position)
  • Opponent receptions allowed (at position)
  • Opponent receiving yards allowed (at position)
  • Opponent touchdowns allowed (at position)
  • Opponent fantasy points allowed (at position)

Note: opponent allowed statistics here represent a player’s strength of schedule with regard to that statistical category. So, for example, if the player’s ‘Opponent fantasy points allowed at position’ is 17.5 it means that for the time span specified, the athlete has faced opponents who, on average, have allowed 17.5 points in the 10 games preceding their matchup against this athlete. That’s a convoluted way to say if a guy has a high Opponent fantasy points allowed stat, he has been going up against opponents who give up a lot of points to his position – he’s had an easier strength of schedule. 

Once you’ve selected the stat you’re interested in, the graph and player list will update to reflect the rankings for that stat. So far so good, this in and of itself is a handy way to explore basic stats. But basic stats doesn’t win leagues. The Megatool has baked in statistical knowledge to allow you to normalize all these stats based on relevant normalization measures. In english – if you’ve selected ‘Rushing Yards’ as your stat of interest, the next control Normalize by allows you to normalize that number by ‘Rushing Attempts’ to rank all the RB’s by their yards per carry (YPC).

While YPC is an important stat, normalization in the Megatool allows you to see so, so much more. If your Stat of Interest is set to ‘Rushing Attempts’, you can normalize by ‘Team Rushing Attempts’ to see what percentage of a teams attempts are being handed off to that RB. Also interesting is to normalize by ‘Offensive Plays’ to figure out what percentage of the offensive snaps are going to that back. To show this in action – check out how far of an outlier DeMarco Murray is on this measure below, with 40% of the Cowboy’s offensive plays being rushing attempts to this workhorse:

Screen Shot 2014-10-16 at 1.24.31 PM


Immediately you can see some interesting insights here. Many people are blaming the emergence of Darren Sproles in the Eagle’s backfield for the falloff in LeSean McCoy’s fantasy numbers – but his rushing attempts as a percentage of the Eagle’s offense are 3rd highest for RB’s in the league! Also did you realize that running the ball through Arian Foster accounts for 36% of Houston’s offensive plays this year? This is just one setting, for one position, that I basically picked at random – but already you are discovering things that can help you make better fantasy decisions.

Note: notice that for players with an injury, the injury status is listed as well (in red). This injury status is current from whenever the tool is published, so final injury status should still be verified prior to making final start/sit decisions. 

I’ll do one more example here before moving. Austin Davis has emerged as a serviceable fantasy QB this year… So I was curious whether I should buy in, or disregard Davis’ performance so far as fluky. The Megatool can help clarify the issue. Check out how Austin’s opponent fantasy points allowed (that measure of strength of schedule I mentioned earlier) stacks up to the other QB’s:

Screen Shot 2014-10-16 at 1.34.00 PM

What do you know! In the games he’s played so far Austin has faced the easiest strength of schedule among all QB’s, allowing an average of 20.5 fantasy points per game to their opposition. So when you’re buddy wants to make a bar bet that Davis will end the year as a top 10 fantasy QB, you can take him up on it with confidence – as Austin faces tougher opposition it’s almost certain his productivity will come back down to earth.

Another interesting insight that stands out is Drew Brees being a very close #2 on this measure. Brees is having a notoriously bad fantasy year compared to expectations – and this graphic shows that his year is actually worse than it seems on the surface. Brees’ poor performance has come against defenses that are, on average, very favorable fantasy match ups for QBs. So am I buying low on Brees? Maybe… but I’m being extra cautious about it. Something just isn’t right in NO so far this year.

Last example of normalization so I can get the point across of just how powerful this tool can be. If you follow fantasy football it’s probably no surprise to you that the top two fantasy QB’s this year are Andrew Luck and Peyton Manning, who are averaging 27.6 and 24.5 points respectively so far in 2014. It might be slightly interesting to note that Phillip Rivers, whose career seemed all but finished just a few years ago, is eeking out a distant third (22.6 points per game) over Jay Cutler (22.2 points per game).

Screen Shot 2014-10-16 at 2.01.31 PM


But looking at raw fantasy points per game is a shallow way to understand the data, the statistical story is much deeper and nuanced. In order to contextualize the data, we should normalize it by the number of fantasy points allowed on average by opponents these QB’s have faced so far by setting the Normalize by  control to ‘OppFantasyPointsAllowed’. When we do this we see that Rivers actually surpasses Manning – having put up 137% of the average fantasy points his opponents were allowing in the 10-games prior to their matchup.

Screen Shot 2014-10-16 at 2.06.18 PM

It’s easiest to understand this normalized stat with an example. Let’s say that the opponents Rivers has faced were allowing an average of 16.5 fantasy points to QBs, and against those opponents he put up 22.6, he has averaged:

22.6 points produced / 16.5 average points allowed = 137% of the average fantasy points allowed by his opponents  

In english: when we adjust for strength of schedule, Philip Rivers emerges as the second best fantasy QB to date behind Andrew Luck. Notice that Andrew luck is averaging an astonishing 158% of the average allowed by his opponents. Even if Luck is facing a very stiff defense allowing only 15 fantasy points on average to opposing QBs, if he maintains this level of outperformance we’d expect a solid 23.7 point performance. Getting at these sorts of figures takes a lot of data, a lot of data juggling, and the application of some careful mathematics – but it’s the type of information that can take your fantasy performance to the next level in any format, and help you make the most informed possible decision in all situations.

There is one final control I’ve yet to review in Analysis mode: Time Span. This control designates which set of statistics you’re most interested in exploring and can be set as last year’s stats (2013 Season), this year to date (2014 Season YTD), the last 5 games, last week, or next week (which only includes the opponent strengths at position categories). Time Span setting does not impact how the other controls operate, it just allows the analysis to be run on different sets of historical data.

Dominate:  Using Megatool Projection Mode 

Now that you’ve got your mind around some of the things the tool can do, it’s time to flip it into ‘Projection’ mode and start making your fantasy decisions for next week. When you switch to Projection mode, the controls will change to the following:

Screen Shot 2014-10-16 at 1.45.21 PM

Position here is self explanatory and works the same as in Analysis mode.

Projection method allows you to choose between standard and strength of schedule adjusted projections. What does this mean? For a standard projection you are looking at each player’s productivity over the Time Span specified, and blending it using the setting of Matchup weight with the average fantasy points allowed by their opponent in their upcoming matchup. As an example, if Eli Manning has averaged 18.5 points in the last 5 games and he is going against Dallas who has only allowed 15 points on average to QB’s over the last 5 games, and the matchup weight is set at 20%, the projection for Eli will be calculated as:

18.5 x 80% + 15 * 20% = 17.8

So this is great – and blending average productivity with average opponent fantasy points allowed is a very sensible way to make a projection. Having this all in one simple application is definitely handy. But the Megatool doesn’t just want to be handy, it wants you to dominate your league. Ok, it’s a bit of software, it doesn’t want you to do anything. But I want you to dominate your league, and I wrote it – so whatever.

To best project fantasy productivity you need to account for the athlete’s historical strength of schedule in order to put their performance into context (remember Austin Davis above?). Setting the Projection method to ‘Strength of schedule adjusted’ changes the background equation from being additive to being multiplicative. So, if Philip Rivers has put up 137% of his opponent’s fantasy points allowed so far this year, and he’s going against an opponent who is allowing 18.7 points to opposing QB’s on average, and you set the Matchup weight to 30%, the strength of schedule adjusted projection method computes his projection as follows:

137%*(18.7*70%) + 18.8*30% = 23.5

In Projection mode the Time span is restricted to only 2014 Fantasy Points and Last 5 Games Fantasy Points – obviously using 2013 stats to project 2014 outcomes doesn’t make much sense.

Hopefully the power of this type of analysis is apparent to you, and you aren’t scared off by the nuances and complexity of the tool. Sports data analytics is not a straightforward task – in the Megatool I try to package up the detailed type of analysis many experts use in as simple and comprehensive interface as possible. The updates to the tool that are in the works include the addition of DST information and a method for creating complete Victiv rosters based off of your projection mode settings.

Please put any feedback in the comments, or Tweet to me @TheRotoquant.

GL in all your week 7 contests. We’re running $45K in free and guaranteed contests at Victiv, so you can use the insights gleaned from the Megatool to cash in today!

Week 6 Supercontest Pick Review

Let me tell you the twisted story of last week.

It was the first week I went with identical cards, both chosen exclusively by the Machine. Naturally I was concerned – both of my LVH Supercontest cards are in striking distance of the leader and if they both took a big hit, I could fall dramatically in the rankings. It was also the first week of a switch in methodology, from updating the lines on Thursday mornings and picking the weekend games prior to the Thursday night game, to updating on Friday morning to get the latest possible line and injury information. Of course this change seems simple and obviously beneficial – but whenever something is working as the Machine has been so far this year, I’m hesitant to rock the boat.

All this was the backdrop to the picks I released Friday.

How did the weekend work out?

1) Both my cards went 4 wins and 1 loss, shooting me into multi-way ties for 43rd and 205th respectively on TheSanction and TheRotoquant.

2) The Machine had it’s first losing week going 7-8 overall.

… Huh?! I’m no rocket scientist (switched from aerospace engineering to physics as an undergrad) but that seems unlikely…

I’ve never seen such a polarized set of games. Behold the week 6 results:


The LVH Supercontests cards currently stand as follows:

TheSanction (tied for 43rd out of 1400): 20 wins, 10 losses

Rotoquant (tied for 205th out of 1400): 18 wins, 12 losses

Feeling good about both cards. As an aside – the current leader went 5-0 with an amazing record of 26 and 4 (86.7% against the spread!). It just goes to show that to win this contest you need to be really, really good over the course of the entire season.

I’ll put up the week 7 picks on Friday, and will be Tweeting out the Thursday night pick from @TheRotoquant. Payouts on Victiv just keep growing, and if you haven’t signed up yet you just keep missing out – week 7 we are running an whopping $45,000 in guaranteed and free payouts, if you don’t get some of that cash you can’t blame me.  Seriously – if you like fantasy sports, and you like money, you should really just sign up and give it a shot.

Lastly – to help you grab all that money I’ve re-updated the NFL MegaTool (now on version 4.0!) to include injury information. This stand-alone application lets you analyze everything all the relevant fantasy stats including targets, participation, yards, td’s, strength of schedule, fantasy production and strength of schedule adjusted fantasy production, next week’s matchup strength and more through an easy to use interface. It’ll even let you make tailored projections where you can adjust how much you consider the matchup in the calculation, and whether or not you normalize athlete performance for historical strength of schedule vs that position. Download the tool here, and make your winning lineups at today.

Good luck in all your contests – talk to you later in the week,


Week 6 Picks from the Machine!

Last week was decent – outside of the confusion of doing late-breaking updated picks. The Machine went 8-7 ATS, and above the 3.0 threshold it went 6 and 4. Supercontest cards went 4-1 and 3-2, moving them into many-way ties for 128th and 423rd out of 1400 respectively. Both cards are still in striking distance of the leader and there’s a lot of football left to be played.  As an aside – my dearest mother, knowing the emphasis I’d be putting on picking the NFL contests this year, entered a nation-wide contest that picks every game each week without the spread. She’s used the Machine’s picks to determine when to take an underdog and currently ranks 45th out of 170,000 entries. That’s right… My mom is out-picking you all. You should be ashamed of yourselves.

Without any further fanfare – here are last week’s results:


And here are the Machine’s picks for week 6:



Plenty of big factors in play this week – hoping for a big week on my Supercontest entries. My picks will be as follows:

TheSanction – BAL, CLE, DAL, SF, ATL

Rotoquant – BAL, CLE, DAL,  SF, ATL

That’s right – for the first time this season I’m not varying my two cards. Up to this point I’d been using 100% pure Machine picks for TheSanction’s card, and taking the Machine + personal preference into consideration when making picks for my Rototquant card… So it’s no surprise that TheSanction stands at 16-9 while Rotoquant is lagging at 14-11 on the season. It’s going to be double the pressure this weekend with both cards stacked up – here’s hoping for the best!

Finally – we are still putting out $10,000’s worth of guaranteed and free contests  at! They’ve been filling up fast so be sure to jump in early and secure your spot.

Good luck in all your contests this week.


Week 5 Picks from the Machine – UPDATED!

Sorry for the late notice, but I decided I should re-run the algorithms closer to Sunday to see if the predictions changed once the most up to date injury/weather information became available. In backtesting the data is frozen in the state it was in *as of kickoff* – obviously I can’t run the Machine in that state, but the closer to Sunday I can get the better. The last day I can enter my LVH Contest picks through my proxy is Friday morning – so from now on that’s when I’ll run the algo. I will not include the Thursday night game in interpreting backtesting results.

Alright, getting these out quickly as certain games have changed, most notably the ARI v DEN game, which now has ARI as a high-confidence pick. Unfortunately I’ve got DEN on my LVH card… Next week will be much more organized with only one set of picks coming on Friday morning.

Week 5 picks from the Machine:



Also – we’ve still got $10,000 + in overlay at! Jump in the contests and grab your share!

Week 5 NFL: VICTIV Value Plays, plus MEGATOOL 2.0

Look, I’m a nerd. Numbers are my friends. The Mathematica programming language might be considered my girlfriend (sorry real girlfriend). I sometimes creep around with R on the side. As a nerd, when I make decisions I make them in the nerdiest way possible: with facts and numbers. To facilitate the nerd decision making process I build nerdy tools to analyze said facts and numbers; which is where my newborn nerd-child The Megatool comes in.

The Megatool is an interactive dynamic stats analysis platform to help people make fantasy football decisions. It requires a nifty bit of technology put out by my former employer Wolfram Research called the CDF (Computable Document Format) player – free download available here. The tool itself is hosted on the CDN, this weeks version can be downloaded here, and I’ll continue to publish (and improve it) throughout the NFL season. Instead of describing it, I’ll use the Rashad Jennings case to show how the Megatool helped me uncover him as a potential value plays in week 5.



Eli Manning ($8,900) – It’s tempting to say that Eli of 2011 is back the way he’s played so far this season. The west-cost offense is fitting him nicely and his supporting cast is coming into form. Interested in matchup strength? Checkout the Megatool’s rankings of next week’s matchups in terms of fantasy points allowed to opposing QB’s – Atlanta allows the 8th most points to opposing fantasy QB’s.



Rashad Jennings ($7,000) – The only thing worse than Atlanta’s pass defense is their rush defense (see below). Jennings is a workhorse, and a solid pick here despite the elevated price, particularly given the matchup.

Screen Shot 2014-10-03 at 12.16.04 PM

 Jennings is facing the second worst rush defense next week. Other insights from the tool:

– Over the first 4 weeks Jennings averages the fourth most rushing attempts per game when he starts.

– Over the first 4 weeks, Jennings has put up 117% of the fantasy points put up by the average RB put up against the opponents he’s faced.

– All this productivity and Jennings has yet to reach his full potential as a pass-catcher out of the backfield. In 2013 he averaged 3.75 targets per game. In 2014 that number has dropped a full target per game to 2.75 – in this west-coast offense I expect Jennings to get more involved in the passing game as the season progresses.


Reggie Bush ($6,400) – Bush will be facing a stout Buffalo rush defense, but I like his value here as every other RB option in Detroit is beat up. I expect him to see an increase in touches, and potentially do damage catching passes out of the backfield – work that was previously being split with Joique Bell.



Brandin Cooks ($4,200) – Cooks is the second most targeted pass catcher in NO behind Graham. I think Brees is going to go off against this terrible TB defense who ranks 8th in the league defending QB’s having playing half their games against the likes of backups Austin Davis and Derek Anderson. Brees should have a field day, and Cooks should be the beneficiary.


Brian Quick ($3,600) – Quick is the number one option on the Rams. Going against the high-flying eagles – this salary is a nice spot for Quick and represents significant value.


Larry Donnell            ($4,200) – Donnell has emerged as the new hot thing in TE. I’m buying in – see Eli and Jennings.



Chargers ($4,300) – The Jets are terrible. The chargers are not. Playing at home, I can see this game getting ugly. If Geno Smith is forced to play from behind, the Chargers DEF could put up big numbers.

To convert your football knowledge into real cash prizes each week, check out the action at This week get your piece of our $38,500 in promotional contests – they are filling fast!

Good luck to all in your week 4 action. Follow me on Twitter @TheRotoquant for more picks, insights, content and updates every week.



Week 4 Review and Week 5 NFL Picks from the Machine

I don’t have a lot of time to pontificate this week so I’ll get straight to the analysis.

Below are the Machine’s week 4 results:


Last week was mediocre at best from the Machine. It went 7 wins and 6 losses against the spread, which might be considered an average week for many handicappers (53.8% makes you almost break even depending on VIG and operating costs). But I was definitely disconcerted by the way the losses came in. The performance curve was inverted with respect to the absolute size of the factor – the Machine was 5 of 7 for picks under the critical 3.0 threshold and a putrid 2 of 6 for games above the threshold.

The LVH Supercontests cards took a hit with TheSanction going 2/5 and Rotoquant going 1/5. They currently stand as follows:

TheSanction (tied for 259th out of 1400): 12 wins, 8 losses

Rotoquant (tied for 453rd out of 1400): 11 wins, 9 losses

So what happened? Above the 3.0 threshold, based on backtesting and last years performance, we expect picks to be correct 70% of the time. So a reasonable question to ask, one we should be asking every week as we compile more data, is this: how likely is it that we got these results if the edge is really 70%?  To answer questions like these we need something called the binomial probability formula, which computes for us the probability of achieving exactly k successes in n independent trials with probability of success for each trial of p. This sounds simple enough but the formula is fairly complicated looking – if you’re interested you can find out more about the binomial probability formula here, and it’s buddy the binomial coefficient formula here.

The answer is that if your edge is truly 70% there is a 7.01% chance you will see 2 or fewer correct picks in any set of 6 picks – which amounts to about once every 14 weeks assuming 6 games above 3.0 each week.  This number is not yet in the realm of the impossible with only a 6 trial sample size, but it certainly isn’t encouraging. Fortunately we can put this performance in the context of the performance so far this season to get an idea of whether or not we should start to worry about our method. Through four weeks the algorithm has 16 wins and 10 losses ATS above the 3.0 mark, including last week. The probability of this performance assuming a 70% edge is still fairly low at 12.5% – if we flip the equation on its head and ask ‘what’s the edge at which this performance becomes more likely than not?’ we backdoor calculate the likely edge at a still healthy 59.5%.

This isn’t terrible – you could make a living picking games 59.5% ATS… But, as conscious as I am of falling into the trap of making excuses for a mathematical method instead of honing up to it not quite being performant, I think there are valid excuses for why it’s not tracking exactly to the 70% mark as expected (and, like I said, 59.5% is still good but I’m expecting great).  The first and most obvious is sample size, but let’s skip over this for now because it’s always a concern when testing any method of prediction and there’s no point in beating a dead horse. The second, more interesting possible reason for underperformance has tangible ties to the real world… Although the method is highly sophisticated, math is still math and numbers are still numbers – they don’t know a teams strategy or understand key personnel moves the way that a head-coach or NFL insider might. There’s no way to get around using moving averages, for instance, to characterize a team’s performance, and moving averages beyond a 4-week window will necessarily include some of last year’s data. As the season goes on – and as was reflected in the backtesting – these moving averages will converge on the true values for each team for this season. Last-year’s less-than-perfect figures will be relied on less and less to determine the picks, and as a result we might expect algorithmically driven picks that use these measures to improve as the season goes along… or so the theory goes.

Anyway – every week is interesting and gives us more data to comb through.  This week the Machine took it on the chin for games over the 3.0 factor. The two weeks prior it made a killing. We will keep checking week by week, but so far I’m staying the course and pressing ahead.

In a side note about last week – my life-long battle with Tom Brady and Bill Belicheck continues. I hate them, they hate me, it’s well understood and documented in the Rotoquant archives – they threw the game to piss me off … and it worked.

Moving along. Below are the week 5 picks:


My card picks will be as follows:

TheSanction – DAL, SD, DEN, CLE, SEA

Rotoquant – DAL, SD, DEN, SEA, CHI

Good luck in all your contests in week 5. We’ve increased our payouts at Victiv for the 5th week in a row, running  $38,500 in guaranteed payouts and free contests this weekend… People keep getting money and having a blast playing DFS at Victiv, and you continue to not be one of them – what are you waiting for?!

To help you grab all the money the MegaTool 2.0 has been released this week and is available for download here (it requires the free Wolfram CDF player, available here, to run). This fantasy sports weapon of mass statistical destruction gives you data-driven visualizations and dynamic access to advanced statistics to help you win your daily or season long leagues. Analyze utilization, player participation, target breakdowns, strength of schedule and next week’s matchups in a single high-powered app … This tool is still evolving, but so far the it has been met with rave reviews. Teaser for next week – I hope to integrate a user-driven fantasy point projection mechanism in version 3.0 … stay tuned… Finally, for sports, fantasy sports and sports betting analytics updates throughout the year Follow me on Twitter @TheRotoquant.

Good luck in all your contests – see you next week.