Our Blog


What Facebook Taught Me About DFS

Happy Birthday, Little Bro

Last week, my brother had his 27th birthday. So, like most big brothers, I forgot about it until Facebook sent me a reminder. I logged into Facebook and saw this notification atop my timeline:

facebookdfs1

 

If you’re thinking, “That would be a pretty weird picture to tag someone with in a birthday post,” that’s basically what I thought too. And then I started thinking about it a little bit more. Before we go further, you should understand my level of activity on Facebook over the past couple of years — practically zero.

Practically Zero

I have posted very few photos to my Facebook account and this is very likely the only picture that I have personally posted and tagged both myself and my brother in.

As a quick aside: Here’s a short list of items I don’t remember:

  1. Why I posted this photo in the first place.
  2. Why I tagged my brother in it.

The photo is from 2009.

Anyway, on Facebook, you could probably define a successful post as one that generates the most engagement. Let’s lump all of the smiley faces, thumbs-up, hearts, likes, shares, and whatever else under one heading called Facebook Engagement. Now, let’s start thinking about Facebook Engagement like the FantasyLabs Plus/Minus metric. We know we want a high score, but how do we get there?

Plus/Minus and other premium exclusive metrics are accessible via our free Ratings page.

Maybe Facebook’s algorithms have identified that when Person A posts an image on Person B’s birthday and both people are tagged in the photo then there is usually a high Engagement Score. That’s great, but is it as effective for users who have posted a small amount of images over their history? Probably not.

If I had posted 5,000 images over my Facebook account’s existence and my brother was tagged in 100 of them, Facebook probably could have pulled a great choice from that sample. But, in actuality, I’ve only posted around 50 total images and in only one of them have I tagged my brother . . . and it’s ‘stump.jpg.’ That’s probably not the best choice.

stump.jpg

Now, let’s think about MLB DFS. Over a large sample, batters who have averaged a home run once every 20 at-bats have added 0.20 fantasy points per game on DraftKings, per this trend:

hrsperab

 

For an unparalleled DFS edge, try our free Trends tool, through which you can access our massive database of advanced data and leverage our premium exclusive metrics, such as Bargain Rating, Upside, Consistency, and Plus/Minus.

That’s an impressive trend, considering that it screens for just one factor. For players like Edwin Encarnacion and Nelson Cruz, who have matched the trend across a large number of games, it’s predictive. But is this trend predictive for batters who have met the criteria only once in their careers?

facebookdfs3

 

Probably not.

Regardless of Where Babies Come From, Facebook is Where They Go

I have a young daughter and I have relatives who have Facebook accounts, so as you might imagine I am sometimes tagged in family pictures that people upload, and these pictures include my daughter and myself. Sometimes, my brother is in these pictures as well. I’d have to imagine that if I posted a picture of myself, my brother, and a baby, the Engagement Score would have been higher than it would have been if I posted stump.jpg. Facebook was practically made for baby pictures.

But since these pictures were not uploaded by me — they were uploaded by my relatives and in-laws, some of whom are not Facebook friends with my brother — Facebook missed them. That happened because the positive ‘baby picture’ classification was one level below the negative ‘posted by non-mutual Facebook friend’ classification. I’m obviously making some assumptions about Facebook’s algorithms here, but bear with me.

Back to DFS: We know that batters usually perform better when facing pitchers of the opposite handedness. But that’s not true for all batters. Here are some batters who have done very well for themselves on DraftKings when facing a pitcher of the same handedness:

facebookdfs4

 

Here, we took an irregular route to get to the positive split — righty vs. righty rather than righty vs. lefty — but in the end we still found positive Plus/Minus values. The positive ‘wOBA split above +.050’ classification was under the negative ‘righty vs. righty’ classification. DFS players have undoubtedly passed on the above players in righty-righty matchups without digging deep enough into the numbers.

In both of the above cases, we missed the right information merely because it was located in the ‘wrong’ place.

How Long Are You Going to Keep Talking About a Stump?

When you use our Player Models (particularly the Optimizer) and the tool makes a player recommendation that you think is weird, it isn’t because we’re trying to mess with you. Our tools are designed to answer the question, “Which are the best plays based on the provided settings?” When we run into problems, it’s because we are taking the same question and applying it to vastly different circumstances.

In order to recommend the most applicable birthday-post-image for its users, Facebook asks a question that goes something like this: “Which image was posted by Bill, contains his brother, and received a high Facebook Engagement Score?” The answer for me was ‘stump.jpg.’ In many cases, that would have been the right question to ask, but in my case it was the wrong question. To Facebook’s algorithms, I am an atypical variable, due to my limited number of posts and images.

Getting to Yes

So that brings up something else: What if we know the answer we’re looking for but we don’t know the right questions to ask? When I was thinking about that, the phrase “Getting to Yes” popped into my head. I’ve never read the bestselling book of the same name, but I’m going to judge it by its cover and use it anyway.

facebookdfs5

 

In negotiations, we know what answer we want to hear, we just have to find the best and most efficient path to get to that answer. In DFS, we are all trying to get to the same answer, which is, “The best fantasy baseball team today consists of Player X, Player Y, Player Z, and definitely not Player A (because he sucks).” FantasyLabs, like other sites in the industry, attempts to find that answer every day through the use of sophisticated tools and advanced data.

But, as we saw with stump.jpg, you can’t always ask the same question to get the answer you’re hoping for. And that’s where FantasyLabs is different. If you are using an optimizer on some of the other sites in the industry, you’re honestly not even going to know what question is being asked. You will click ‘Run’ and it will provide you with a lineup of the best players. The ‘best’ based on what? The reality is that you don’t know.

Questions Are More Important Than Answers

FantasyLabs shows you exactly what question you are asking when you run the optimizer. If you open the ‘Build’ tab in Models, you will see what you are asking the optimizer to do. In the image below, I’m asking something like this:

Among batters who have been hitting the ball hard recently and are facing a weak pitcher tonight, which are best given the provided salary constraints?

Of course, it’s more complicated than that, but you get the idea.

facebookdfs6

 

This image shows part of one of the projection models that I’ve used this season in MLB. It has been decent overall but far from perfect.

June 15th

Now, if on June 15th you had asked this model the question, “Who is the top hitter tonight on FanDuel?” the answer would have been “Jon Jay.”

Here’s some more information about the June 15th slate: The Padres were playing at home in Petco Park, one of the worst parks for hitters in the league, and the Yankees were in Denver for a tilt with the Rockies at Coors Field, by far the most hitter-friendly venue.

But what’s important is that this wasn’t the ‘wrong’ answer. “Jon Jay” was the right answer based on the question I was asking. I just wasn’t asking the right question to get the answer I was looking for.

If you blindly optimize a lineup on another site in the industry every day, you’re going to lose. If you hit ‘Optimize’ on OUR site using the same model every day without taking into account the nuances of that day’s slate, then you’re also going to lose. If you take a thoughtful approach and consider which factors are the most important given the matchups on a slate — and then you use our tools accordingly — you are putting yourself in a much better position to win.

Test Case: LAD @ COL

Now, let’s run through a couple example scenarios.

Let’s say that today the Dodgers and Rockies are playing at Coors Field and their pitchers in the matchup are average. In this hypothetical slate, there are also two or three mid-salary pitchers whom we would be fine with rostering. We’ve decided that we want to use one of them and stack Coors in cash games.

But is stacking Coors actually the optimal way to build a roster in this slate? Might there be other, better options that we’re overlooking? We need to use the Player Models to ask these questions and to test our assumptions about Coors.

In this scenario, you might increase the following variables in a cash game model:

Batters
• Weather: Coors Field almost always achieves a Weather Rating of 90-100. But there could be other parks in the slate that have comparably good weather.
• Vegas Score: Vegas will almost certainly project at least 10 runs to be scored in the Coors game. But, again, there could be other high-scoring games in the slate.
• Lineup Order Percentile: To this point, we have asked nothing about the batters themselves. In cash games, we want batters in the first half of the order. It’s possible that, even if Coors lineups as a whole are more advantaged, the top batters at Coors will be less optimal than the top batters in other games.

Pitchers
• Bargain Rating: We anticipate paying up with our batters, so we will need to be value-conscious at pitcher.
• Vegas Score: Since we’re probably not going to be able to afford an elite strikeout pitcher, let’s at least look for one who is favored to win.

By placing an emphasis on the above variables, we’ve formed a question such that the answer — the optimal lineup — might contain several Coors batters. It probably will. More importantly, though, we’ve asked the question in such a way so as to find non-Coors batters who, given the slate, might be even better for our lineup. We haven’t just assumed that Coors batters are the best. We’ve entertained that possibility but also allowed for the chance that other batters deserve consideration.

We’ve also formed a question with an answer that leads to a value pitcher. Had we instead placed a heavy emphasis on the following pitcher variables, the optimal lineup would have more likely contained an expensive pitcher with fewer high-impact batters:

• Strikeout Percentile: High-K pitchers tend to cost more.
• WHIP Percentile: Surface-level stats are very likely to be priced into the pitcher’s salary.
• Consistency: It’s much harder for a value pitcher to maintain a high Consistency score.

Given the slate, the Player Model needs to be adjusted so that the right questions are asked.

Test Case: GPPs

In the next scenario, we want to build lineups for guaranteed prize pool contests (GPPs). Since we want to find low-ownership plays, let’s place a heavier emphasis on data that isn’t available outside of FantasyLabs and as a result is more likely to be overlooked by the masses:

Pitchers
• Pro Trends Rating
• Strikeout Prediction
• Pitch Speed Differential Score

Batters
• Pro Trends Rating
• Batted-ball Distance Differential Score
• Exit Velocity Differential Score

The optimal lineup produced by a model that weights these factor heavily will differ greatly from the lineup produced by the model of the previous example. And that’s as it should be.

It all goes back to adjusting to the circumstances and using available data the ‘right’ way.

Sum Up the Last 2,000 Words in One Sentence?

Failing to put data into the proper context will lead to both bad lineup choices and bad birthday wishes:

facebookdfs7

Happy Birthday, Little Bro

Last week, my brother had his 27th birthday. So, like most big brothers, I forgot about it until Facebook sent me a reminder. I logged into Facebook and saw this notification atop my timeline:

facebookdfs1

 

If you’re thinking, “That would be a pretty weird picture to tag someone with in a birthday post,” that’s basically what I thought too. And then I started thinking about it a little bit more. Before we go further, you should understand my level of activity on Facebook over the past couple of years — practically zero.

Practically Zero

I have posted very few photos to my Facebook account and this is very likely the only picture that I have personally posted and tagged both myself and my brother in.

As a quick aside: Here’s a short list of items I don’t remember:

  1. Why I posted this photo in the first place.
  2. Why I tagged my brother in it.

The photo is from 2009.

Anyway, on Facebook, you could probably define a successful post as one that generates the most engagement. Let’s lump all of the smiley faces, thumbs-up, hearts, likes, shares, and whatever else under one heading called Facebook Engagement. Now, let’s start thinking about Facebook Engagement like the FantasyLabs Plus/Minus metric. We know we want a high score, but how do we get there?

Plus/Minus and other premium exclusive metrics are accessible via our free Ratings page.

Maybe Facebook’s algorithms have identified that when Person A posts an image on Person B’s birthday and both people are tagged in the photo then there is usually a high Engagement Score. That’s great, but is it as effective for users who have posted a small amount of images over their history? Probably not.

If I had posted 5,000 images over my Facebook account’s existence and my brother was tagged in 100 of them, Facebook probably could have pulled a great choice from that sample. But, in actuality, I’ve only posted around 50 total images and in only one of them have I tagged my brother . . . and it’s ‘stump.jpg.’ That’s probably not the best choice.

stump.jpg

Now, let’s think about MLB DFS. Over a large sample, batters who have averaged a home run once every 20 at-bats have added 0.20 fantasy points per game on DraftKings, per this trend:

hrsperab

 

For an unparalleled DFS edge, try our free Trends tool, through which you can access our massive database of advanced data and leverage our premium exclusive metrics, such as Bargain Rating, Upside, Consistency, and Plus/Minus.

That’s an impressive trend, considering that it screens for just one factor. For players like Edwin Encarnacion and Nelson Cruz, who have matched the trend across a large number of games, it’s predictive. But is this trend predictive for batters who have met the criteria only once in their careers?

facebookdfs3

 

Probably not.

Regardless of Where Babies Come From, Facebook is Where They Go

I have a young daughter and I have relatives who have Facebook accounts, so as you might imagine I am sometimes tagged in family pictures that people upload, and these pictures include my daughter and myself. Sometimes, my brother is in these pictures as well. I’d have to imagine that if I posted a picture of myself, my brother, and a baby, the Engagement Score would have been higher than it would have been if I posted stump.jpg. Facebook was practically made for baby pictures.

But since these pictures were not uploaded by me — they were uploaded by my relatives and in-laws, some of whom are not Facebook friends with my brother — Facebook missed them. That happened because the positive ‘baby picture’ classification was one level below the negative ‘posted by non-mutual Facebook friend’ classification. I’m obviously making some assumptions about Facebook’s algorithms here, but bear with me.

Back to DFS: We know that batters usually perform better when facing pitchers of the opposite handedness. But that’s not true for all batters. Here are some batters who have done very well for themselves on DraftKings when facing a pitcher of the same handedness:

facebookdfs4

 

Here, we took an irregular route to get to the positive split — righty vs. righty rather than righty vs. lefty — but in the end we still found positive Plus/Minus values. The positive ‘wOBA split above +.050’ classification was under the negative ‘righty vs. righty’ classification. DFS players have undoubtedly passed on the above players in righty-righty matchups without digging deep enough into the numbers.

In both of the above cases, we missed the right information merely because it was located in the ‘wrong’ place.

How Long Are You Going to Keep Talking About a Stump?

When you use our Player Models (particularly the Optimizer) and the tool makes a player recommendation that you think is weird, it isn’t because we’re trying to mess with you. Our tools are designed to answer the question, “Which are the best plays based on the provided settings?” When we run into problems, it’s because we are taking the same question and applying it to vastly different circumstances.

In order to recommend the most applicable birthday-post-image for its users, Facebook asks a question that goes something like this: “Which image was posted by Bill, contains his brother, and received a high Facebook Engagement Score?” The answer for me was ‘stump.jpg.’ In many cases, that would have been the right question to ask, but in my case it was the wrong question. To Facebook’s algorithms, I am an atypical variable, due to my limited number of posts and images.

Getting to Yes

So that brings up something else: What if we know the answer we’re looking for but we don’t know the right questions to ask? When I was thinking about that, the phrase “Getting to Yes” popped into my head. I’ve never read the bestselling book of the same name, but I’m going to judge it by its cover and use it anyway.

facebookdfs5

 

In negotiations, we know what answer we want to hear, we just have to find the best and most efficient path to get to that answer. In DFS, we are all trying to get to the same answer, which is, “The best fantasy baseball team today consists of Player X, Player Y, Player Z, and definitely not Player A (because he sucks).” FantasyLabs, like other sites in the industry, attempts to find that answer every day through the use of sophisticated tools and advanced data.

But, as we saw with stump.jpg, you can’t always ask the same question to get the answer you’re hoping for. And that’s where FantasyLabs is different. If you are using an optimizer on some of the other sites in the industry, you’re honestly not even going to know what question is being asked. You will click ‘Run’ and it will provide you with a lineup of the best players. The ‘best’ based on what? The reality is that you don’t know.

Questions Are More Important Than Answers

FantasyLabs shows you exactly what question you are asking when you run the optimizer. If you open the ‘Build’ tab in Models, you will see what you are asking the optimizer to do. In the image below, I’m asking something like this:

Among batters who have been hitting the ball hard recently and are facing a weak pitcher tonight, which are best given the provided salary constraints?

Of course, it’s more complicated than that, but you get the idea.

facebookdfs6

 

This image shows part of one of the projection models that I’ve used this season in MLB. It has been decent overall but far from perfect.

June 15th

Now, if on June 15th you had asked this model the question, “Who is the top hitter tonight on FanDuel?” the answer would have been “Jon Jay.”

Here’s some more information about the June 15th slate: The Padres were playing at home in Petco Park, one of the worst parks for hitters in the league, and the Yankees were in Denver for a tilt with the Rockies at Coors Field, by far the most hitter-friendly venue.

But what’s important is that this wasn’t the ‘wrong’ answer. “Jon Jay” was the right answer based on the question I was asking. I just wasn’t asking the right question to get the answer I was looking for.

If you blindly optimize a lineup on another site in the industry every day, you’re going to lose. If you hit ‘Optimize’ on OUR site using the same model every day without taking into account the nuances of that day’s slate, then you’re also going to lose. If you take a thoughtful approach and consider which factors are the most important given the matchups on a slate — and then you use our tools accordingly — you are putting yourself in a much better position to win.

Test Case: LAD @ COL

Now, let’s run through a couple example scenarios.

Let’s say that today the Dodgers and Rockies are playing at Coors Field and their pitchers in the matchup are average. In this hypothetical slate, there are also two or three mid-salary pitchers whom we would be fine with rostering. We’ve decided that we want to use one of them and stack Coors in cash games.

But is stacking Coors actually the optimal way to build a roster in this slate? Might there be other, better options that we’re overlooking? We need to use the Player Models to ask these questions and to test our assumptions about Coors.

In this scenario, you might increase the following variables in a cash game model:

Batters
• Weather: Coors Field almost always achieves a Weather Rating of 90-100. But there could be other parks in the slate that have comparably good weather.
• Vegas Score: Vegas will almost certainly project at least 10 runs to be scored in the Coors game. But, again, there could be other high-scoring games in the slate.
• Lineup Order Percentile: To this point, we have asked nothing about the batters themselves. In cash games, we want batters in the first half of the order. It’s possible that, even if Coors lineups as a whole are more advantaged, the top batters at Coors will be less optimal than the top batters in other games.

Pitchers
• Bargain Rating: We anticipate paying up with our batters, so we will need to be value-conscious at pitcher.
• Vegas Score: Since we’re probably not going to be able to afford an elite strikeout pitcher, let’s at least look for one who is favored to win.

By placing an emphasis on the above variables, we’ve formed a question such that the answer — the optimal lineup — might contain several Coors batters. It probably will. More importantly, though, we’ve asked the question in such a way so as to find non-Coors batters who, given the slate, might be even better for our lineup. We haven’t just assumed that Coors batters are the best. We’ve entertained that possibility but also allowed for the chance that other batters deserve consideration.

We’ve also formed a question with an answer that leads to a value pitcher. Had we instead placed a heavy emphasis on the following pitcher variables, the optimal lineup would have more likely contained an expensive pitcher with fewer high-impact batters:

• Strikeout Percentile: High-K pitchers tend to cost more.
• WHIP Percentile: Surface-level stats are very likely to be priced into the pitcher’s salary.
• Consistency: It’s much harder for a value pitcher to maintain a high Consistency score.

Given the slate, the Player Model needs to be adjusted so that the right questions are asked.

Test Case: GPPs

In the next scenario, we want to build lineups for guaranteed prize pool contests (GPPs). Since we want to find low-ownership plays, let’s place a heavier emphasis on data that isn’t available outside of FantasyLabs and as a result is more likely to be overlooked by the masses:

Pitchers
• Pro Trends Rating
• Strikeout Prediction
• Pitch Speed Differential Score

Batters
• Pro Trends Rating
• Batted-ball Distance Differential Score
• Exit Velocity Differential Score

The optimal lineup produced by a model that weights these factor heavily will differ greatly from the lineup produced by the model of the previous example. And that’s as it should be.

It all goes back to adjusting to the circumstances and using available data the ‘right’ way.

Sum Up the Last 2,000 Words in One Sentence?

Failing to put data into the proper context will lead to both bad lineup choices and bad birthday wishes:

facebookdfs7