Arbing the welcome bonuses provided by bookmakers is a surprisingly simple process.
It’s also the most profitable type of sports betting arbitrage there is, although you can unfortunately only do it once per bookmaker.
How much money you’ll be able to make from this will depend strongly on where you live since different bookmakers and promotions will be available for you.
If you live in the US for example you may get lucky and live in a state where sports betting is perfectly legal or you may live in one where it’s illegal and you can’t do this arb at all (You technically still can using VPNs and that sort of stuff).
If you live in the UK on the other hand you’ve hit the jackpot.
Before we get started, here is an important piece of intuition:
A bet on a certain outcome of a game is the exact same as any other financial instrument.
On betting exchanges like Betfair you will also have bids and asks for those bets.
If you end up enjoying this article consider getting the paid sub, that way you can support me and I can write even more articles!
Here is a discount code for those interested: https://www.vertoxquant.com/62375e34
Table of Content
Basics of Sports Betting
Arbitrage in Sports Betting
Welcome Bonus (Promotions) Arbitrage Step by Step
+EV betting
Market Making in Sports Betting
Final Remarks
Basics of Sports Betting
In sports betting we are betting on or against certain outcomes of games.
We can bet on who wins a boxing match, the number of goals in a football game, the fastest horse, and so on.
There are 2 places where you can place such bets: Bookmakers and Betting Exchanges.
Bookmakers give you their own odds, they have teams that try and find fair quotes for games and then give you worse odds than that, that is how they make money.
Betting Exchanges on the other hand are just like any other exchange, people can place bids and asks on bets. That is also why Betting Exchanges have the most fair odds.
Odds are the implied probability of a certain outcome happening and can be thought of as the price of that bet.
If a certain outcome has a really low probability of happening and you bet on it, you would get a lot of money if that outcome does end up happening.
There are a couple of different ways those odds are presented but they all mean the same thing (implied probability).
Here are the 3 most common ones:
British/Fractional Odds:
Some examples of fractional odds are 6/4, 3/6, 10/1, etc.
6/4 means you would win $6 for $4 wagered. So a total payout of $10.
3/6 means you would win $3 for $6 wagered.
10/1 means you would win $10 for $1 wagered.
It also means how much you would make for every $1 wagered.
6/4 means you would win $1.50 for every $1 wagered.
etc.
We can convert this to implied probabilities using the following formula:
So odds of 6/4 imply that the event has a probability of 1 / (1 + 1.5) = 0.4 = 40%.
European/Decimal Odds:
Those are represented your payout for every $1 wagered.
Decimal odds of 4.0 mean you would have a total payout of $4 for every $1 wagered or $3 in profit.
1.4 means you would make $0.40 profit for every $1 wagered.
We can convert that to implied probabilities using the following formula:
So decimal odds of 1.4 means the event has a probability of 1 / 1.4 = 0.714 = 71.4%.
American/Money Line Odds:
Those are the most confusing. (American love their weird measuring units!)
The more likely outcome will have a - in front of it and the less likely outcome will have a + in front of it.
Some possible money line odds are -275, -400, +850, +170.
-275 means you need to wager $275 to win $100 ($375 total payout).
-400 means you need to wager $400 to win $100 ($500 total payout).
+850 means you win $850 for every $100 wagered ($950 total payout).
+170 means you win $170 for every $100 wagered ($270 total payout).
We can convert those to implied probabilities with the following formulas:
Now let’s say you have a football game between Arsenal and Crystal Palace.
There are in total 3 outcomes, Arsenal wins, Crystal Palace wins, draw.
If you sum up the implied probabilities of those 3 events you should get 100%.
Let’s see if this is the case on Betfair:
Arsenal winning has an implied probability of 75.76%.
Crystal Palace winning has an implied probability of 8.33%.
A draw has an implied probability of 16.66%.
We get a total implied probability of 100.8%.
So Betfair seems to have pretty fair odds.
Now let’s look at a bookmaker, 888sport:
Arsenal winning has an implied probability of 50.35%
Crystal Palace winning has an implied probability of 9.09%
A draw has an implied probability of 18.18%
We get a total implied probability of 77.62%. (This is a huge arb which was surprising to see)
This is really odd for a bookmaker, normally you would have a total implied probability of above 100% since the bookmaker wants to make a profit.
In this example the implied probability of the bookmaker for Arsenal is way lower than what the market thinks the implied probability is. It would likely be +EV to bet on Arsenal here.
Let’s run a monte-carlo simulation for this:
We assume that 75.76% is the real probability.
import numpy as np
import matplotlib.pyplot as plt
probability = 0.7576
profit = 0.986
simulations = []
for _ in range(100):
simulation = [0]
for i in range(1000):
num = np.random.uniform()
if num <= probability:
simulation.append(simulation[-1] + profit)
else:
simulation.append(simulation[-1] - 1)
simulations.append(simulation)
for sim in simulations:
plt.plot(sim)
plt.title("PnL")
plt.show()
Let’s look at the usual case now:
As you can see this time 888sport is giving you worse odds for every single outcome with a total implied probability of 106.7%.
You can imagine those like prices. You can buy the 3 outcomes from 888sport for $106.70 and then sell them on betfair for $100, losing $6.70.
Arbitrage in Sports Betting
Promotions/Welcome Bonus:
Imagine the following scenario:
Binance just gave you free $100 worth of BTC and said you can sell it tomorrow.
Would you be able to turn this into an arb? Yeah, you would just hedge on some different exchange until you can sell your free BTC.
Your total profit would then be $100 - Hedging Costs.
We can do exactly that Sports Betting, a lot of bookmakers have promotions like those where they give you free money to bet with. (They know that there are some people arbing those, yet they can lure in more gamblers with that than they lose to arbitrageurs like us.)
I will go over this step by step in the next section as this is the most profitable and quickest type of arb. Doing this for every bookmaker that offers a welcome bonus can easily make a couple of thousand dollars.
There are also other promotions like free bets during christmas, free roulette spins on weekends etc. you will usually find out about those by being subscribed to their newsletter.
Binary outcome arb:
Football game outcomes themselves are not binary, a team can win, lose or draw.
The most common type of binary bets however are the amount of goals.
For example over or under 3.5 goals.
Now imagine the following scenario:
Over 3.5 goals has odds of 2.2 at one bookmaker and Under 3.5 goals has odds of 2.1 at another bookmakers.
This is an arb since the sum of implied probabilities is 93.07%!
We want to make the same amount of money no matter what outcome happens so:
PnL if Over 3.5 = PnL if Under 3.5.
Those PnLs will depend on how much we bet on each outcome.
Let’s denote the amount we bet on over 3.5 as “A” and the amount we bet on under 3.5 as “B”.
Our equation is now:
Solving for B we get:
So for every $1 we bet on Over 3.5 we have to bet $1.05 on Under 3.5.
Let’s walk through both possible outcomes if we bet $1 on Over and $1.05 on Under:
Outcome 1 (Over 3.5 Goals): We make $1.2 on bookmaker 1 and lose $1.05 on bookmaker 2. Our total PnL is $0.15
Outcome 2 (Under 3.5 Goals): We make $1.155 on bookmaker 2 and lose $1 on bookmaker 1. Our total PnL is $0.155
So no matter what outcome happens we make roughly 15 cents per $1 bet!
Non-Binary Outcome Arb:
This can be football games, horse races etc.
If the total implied probability of all outcomes is below 100% you can arb by betting on everything.
Let’s go through our 888sport example:
We again want to make the same amount of money no matter what outcome happens so we have to figure out what to bet on Arsenal, Draw and Crystal Palace.
You would simply solve for B and C this time. If there are a total of N outcomes then you will need to solve for N-1 variables.
You would first solve for variables B.
Then plug your solution for B into the next equation to solve for C.
Plug your solution for C into the next equation to solve for D.
etc.
Can easily code this up and get a solution and use that to build a screener to find arbs on every bookmaker.
Cross-Bookie Arbs:
Having an arb on one bookmaker is usually extremely rare, most of the time you will get an arb across multiple different bookmakers.
For example betting on Arsenal on bookie 1 and betting on Draw and Crystal Palace on bookie 2.
You may think that this exponentially increases the amount of arbs you need to check but that’s not true.
You will always bet on the best outcome across all bookies.
If you have odds 1.3, 1.35, 1.2, 1.6 across different bookies you would bet on 1.6 in every scenario so the other bookies can be ignored.
Welcome Bonus (Promotions) Arbitrage Step by Step
The general process is gonna look something like this:
Acquire Bonus
Place bet using bonus money
Hedge bonus bet on another bookmaker or betting exchange (usually betting exchange due to fairer bets)
Profit
You don’t need to build any screeners or that sort of stuff yourself, there are a TON of services that find the best bets to do this on (Losing the least amount of money).
One example is Ninja-Bet which is a german one, there is also OddsMonkey and more, will need to use one that makes sense for your region.
Let’s walk through an example for bet365.
They have the following promotion:
Place a 100€ bet with a minimum Quote of 1.2 to receive a 100€ free bet.
Deposit 100€ on Bet365
Place a 100€ bet on Bet365 and a hedge on another bookmaker / betting exchange.
Here I’m gonna be using 888sport since betting exchanges aren’t available in germany.Here we have the best bets using 888sport as a hedge.
Let’s take a closer look at one of them:We bet 100€ on under 3.5 goals and 40€ on over 3.5 goals.
No matter what happens we lose 7€ but receive the 100€ free bet.Place the 100€ free bet and hedge on another bookmaker / betting exchange.
We do the same process again but this time our one bet has no risk since it’s free money:We place our 100€ free bet on under 1.5 and place 217.65€ of our own money on above 1.5 on 888sport.
No matter what happens we make 57.35€Our total pnl comes out to 50.35€!
Different bookmakers will have different promotions with different rules, those tools will always tell you exactly what to do.
One example is receiving 5€ of slot machine spins on for example a holiday.
You would just do a ton of tiny spins to maximize your chances of winning something.
Stuff like this will only make you a buck or two though.
+EV Betting
+EV betting is pretty self-explanatory, you take bets that you think have +EV.
We first figure out the fair odds using betfair, let’s say some outcome has odds of 1.5.
If any bookmaker gives you higher odds than 1.5, for example 1.7, we would take that bet.
You would determine your bet size using something like the Kelly Criterion, let’s go through an example.
Our betting size is gonna be given by:
Here o are the odds of the bookmaker, p is the true probability we get from betfair and K is the fraction of our bankroll that we bet.
Let’s find an example and run a simulation:
As you can see betfair is giving us fair odds of 3.4 for Sheffield Utd while BetUK is giving us odds of 3.55.
This means our implied probability is 29.41%.
Plugging the values in we get K = 0.017 so we want to play 1.7% of our bankroll on this bet.
(While it is +EV, there is barely any, you wouldn’t trade this in reality and would instead look for higher EV trades but let’s use this for demonstration)
Let’s say we have a bankroll of $100.
Here is a monte-carlo simulation for this bet:
import numpy as np
import matplotlib.pyplot as plt
probability = 0.2941
odds = 3.55
bankroll = 100
K = (odds*probability - 1)/(odds - 1)
simulations = []
for _ in range(1000):
simulation = [bankroll]
for i in range(100):
betsize = K*simulation[-1]
num = np.random.uniform()
if num <= probability:
simulation.append(simulation[-1] + (odds-1)*betsize)
else:
simulation.append(simulation[-1] - betsize)
simulations.append(simulation)
for sim in simulations:
plt.plot(sim)
plt.title("Equity")
plt.show()
That isn’t really that profitable, imagine we got odds of 4 instead, we would then bet 5.87% of our bankroll and get the following monte-carlo simulation:
+EV betting is all about figuring out the true fair odds / probability.
We’ve just used to markets expectation as the fair probability, that’s like using the binance price as fair price.
This can be done using all sorts of models, using multiple betting exchanges into account for example or building actual pricing models.
After that you just look out for bookmakers who give you better odds and take those trades.
Market Making in Sports Betting
This is gonna be done on betting exchanges since you can’t place bets on bookies.
You are again gonna figure out fair price and just quote around that.
The tough part is gonna be figuring out our risk.
The more inventory you put on the more you want to skew your fair price in that direction so that the opposite side is more likely to get filled.
If you are just betting on a single outcome that’s pretty straightforward but different outcomes are gonna be correlated.
Imagine you already bought a bet on over 2.5 goals, this outcome is gonna be positively correlated with over 3.5 goals so buying a over 3.5 goals bet is gonna be more risky so you will want to skew your fair value in a way that selling over 3.5 goals becomes more likely.
As you can see this is exactly like market making in financial markets.
If you guys want to see a dedicated post on a sports betting market making model let me know, if any of you want to take the challenge of building such a model let me know too, it’s a fun project and I’d love to help.
Final Remarks
There is 1 dark side behind arbs and +EV betting: You are gonna get banned eventually. Your goal is to push that as far back into the future as you can by doing things like not betting on extremely unknown and obscure games, placing some bad bets as well, having favorite teams etc. basically behaving like a real gambler.
Especially arbs are gonna get you banned quickly, bookies aren’t stupid, they know if you are arbing them.
Being profitable on Betting Exchanges is gonna be fine on the other hand since you are betting against other people and not a company.
So if you can end up profitable on a betting exchange it can become a long and consistent income stream.