How I Used Data Science to Make Money in Sports Betting

A few years ago, I stumbled across a bunch of guys talking about sports betting on Discord. They shared screenshots of some 4 figures wins very frequently. That got me wondering if making money in sports betting is legit. Seeing them makes money so easy with sports betting, I decided that I want to learn this game as well.

I bought “The Everything Guide to Sports Betting” by Josh Appelbaum as my 1st book on sports betting. It was a solid introduction book that gave me some basic understanding of this game. After that, I needed to figure out which sport to bet on. As a kid, I was never into sports which is why I never truly understand the rules of the vast majority of sports. That is when I decided to go with Mixed Martial Arts (MMA) since it seems to be very popular, and fighting can be fairly easy to understand.

From Josh’s book, I learned that if I bet based on my intuition like most people, I’ll lose like most of them. Due to that, I knew that I need to find my own edge. Something that is proven and quantifiable.

I started to look through the historical fights data way back in 2010 (nearly 5000 fights). Then, I dissected the data left and right trying to see if anything stands out. Eventually, I found that there are some factors that help to predict the outcome of a fight. Some of these factors or variables are Age, Height, Significant Strike, Accuracy, Take Down, Current Streak, Number of Days Since Last Fight. The last one is basically how active a fighter has been. If he or she has not been fighting for over a year or two, chances are they’re more likely to lose in their upcoming fight.

From there, I built a decision tree model using these variables to predict the outcome of a fight. To avoid overfitting, I kept my model very simple. There were only a handful of variables. I also did a walk-forward testing for a 2-month period. In addition, I tested different parameters for my variables to ensure the robustness of the model.

Here are some statistics for this model assuming that I bet $100 per fight.

Notice that the win rate is very high. A whooping 66.44%! This is because the model bets a lot on the favorites which usually means the fighter that is ranked higher than their opponent. In the UFC, the fighter that is ranked higher than their opponent wins about 58% of the time. Nevertheless, if you always bet on the favorites, you’re guaranteed to lose money. The reason is that when you bet on the favorites, your payout is a lot worse than betting on the underdogs. For example, if you bet $100 on the favorite, you can expect to win a lot less than $100. Sometimes, it can be as bad as $20 if it’s a huge favorite. If you bet $100 on the underdog instead, you can generally expect to win a lot more than $100. Sometimes, it can be as good as 5 times your betting amount ($500).

Anyway, another thing to point out is that the average win for my model is $69.43, while the average loss is $100. So, my wins are smaller than my losses. Thanks to a high win rate, this is not a problem though. The expected value (EV) for my model is $9.13. This means that on average, every time I bet $100, I can expect to win $9.13 or nearly 1/10 of the betting amount.

On 11/03/2021, I bought $1000 of Bitcoin to deposit to BetOnline. With transaction fees and how Bitcoin’s price fluctuates, by the time my $1000 arrived at BetOnline, it was only $962.12 left.

I used their promo code BOL1000 to gets a 50% bonus for an addition $481.06. These bonuses are not free money. The catch is that I have a 10x rollover meaning that I have to bet around $14,431.80 before I can withdraw any money. Bookmakers love to do this because most people lose their entire deposits before they can clear this rollover.

For this experience, I’ve set aside $2000. if I lose it all, then I’ll stop sports betting. So far, I only deposited $1000. With the bonus money, I had roughly $1500 on BetOnline. In total, my bankroll was about $2500.

In general, sizing is very important. If I size too small, my account will never grow. However, if I size too large, there is a risk of ruin even with a positive EV strategy. As I have accepted the risk of losing all this money, I decided to bet $250 per fight which is 1/10 of my bankroll. In the scenario, where I lose 10 fights in a row or have a drawdown that wipe out my bankroll, I would have stopped sports betting.

On November 2021, I placed my 1st real money bet. Today is 7/16/2022, I completed my rollover after 255 days and 94 bets. Here is my result:

Notice that when I lose, I always lose the fixed amount of $250. However, when I win, most of my wins are much smaller than the risk amount ($250). As mentioned earlier, this is because I bet mostly on favorites. Anyway, below are the statistics of my live betting result not including the bonus money:

The live result is very similar to the projected result of my model. The win rate is high, the expected value is roughly 1/10 of the betting amount, and the average win is less than the average loss. This is really good because it is showing that the model was able to predict the outcome of the fights accurately enough to generate a net profit of $2,282.63 dollars during this period.

Here is the final balance including the bonus money:

Overall, this experience has turned out way better than I’ve imagined. Nevertheless, my sample is small (only 94 bets), so I am still skeptical of this result. It seems too good to be true… Perhaps, this was just all luck, and I was simply fooled by randomness… (Nassim Taleb). Nevertheless, I’ll continue to follow this model for a while, and we’ll see how things go. May luck be by my side and happy sports betting!

Disclaimer: I am not a financial advisor. All information in this blog is for educational purposes only.