offered_home_odds = 2.05
win_prob = 0.36
push_prob = 0.28
lose_prob = 1 - win_prob - push_prob
fair_home_odds = (1 - push_prob) / win_probGambling
Short, random, maybe incomplete thoughts on games of chance.
The Price is Right
A lot of people think of odds as the inverse of the probability of a particular outcome happening. Sure, you could think like that. But it’s wrong. Just picture this scenario:
Pinnacle’s odds for a certain outcome are 2.0. You might assume they predict the outcome to have a probability of 1/2 = 0.5 of happening. This is a very simplified and incorrect calculation for multiple reasons we won’t go into here. The easiest way to disprove the odds-as-inverse-probability claim though, is to simply bet the full limit. Pinnacle’s traders will most likely move the price, say to 1.96.
Have we somehow influenced the outcome of this event so that its probability is now 1/1.96 = 0.51? Assuming we don’t have some kind of superpowers, the answer is of course not.
So how should we think about odds then? To me, it’s easiest to think of it as a price. Odds of 2.0 simply mean that the price I have to pay to win 100 bucks is another 100 bucks. Odds of 1.96 mean I have to pay about 104 bucks, so it’s a worse price. Thinking this way, American odds actually start to make some sense: odds of -110 mean I will have to pay 110 bucks to win 100. Odds of +110 mean 100 bucks will win 110, but for consistency, you can also think of it as (100/110) x 100 = 91 to win 100, so it’s a better price.
Thinking this way, it might be easier for a novice bettor to understand the importance of getting the best price. Another book might offer 2.05 vs. Pinnacle’s 2.0 - higher odds, lower price. Why would you want to pay a higher price for exactly the same thing? You wouldn’t, so you go where the price is best. And you understand that everything, however unlikely, has a price. If the price is right (and that’s a whole different discussion actually involving probabilities), then we bet.
Calculating EV the Correct Way
As I’ve stated in my article on the Kelly Criterion, Expected Value (EV) is often overemphasized in gambling. It’s also often miscalculated in betting situations more complex than a simple win/lose wager. This is because, like with the Kelly Criterion itself, many gamblers are only looking for simple solutions to questions like “How good is this bet?” or “How much should I stake here?” Most of the time, this is fine as it’s more than most gamblers will ever consider in their betting, but for optimal long-term betting, you may want to dig deeper and truly understand how things work.
The naive way of calculating EV (which actually only works for straight win/lose situations) is: EV = odds offered / fair odds. So, the EV for a 1X2 bet with offered odds of 2.1 and fair odds of 2.0 is 2.1 / 2.0 = 1.05. However, this simple approach doesn’t work for most Asian Handicaps and Totals, where you can push (get your money back) on either the entire or half the stake, losing or winning the rest. This is because EV is defined as the weighted average of all possible outcomes, and we ignore the push, half-win, and half-loss outcomes completely.
For calculating different Asian Handicaps and Totals, I usually refer to Teppo Salonen’s How to Calculate Asian Handicap Odds. Though there is some math involved, the many intuitive examples should be enough for most people to get a grasp of this type of bet.
But how bad can it be? Surely the simplified version should be good enough? Well, no. As we have seen in the article above, overbetting your edge is disastrous, so naturally, you want to be able to calculate your edge as precisely as possible. Take a look at the example below of an Asian Handicap of 0 (draw no bet, pick’em, or pk) with the home team offered at odds of 2.05. We are sure of our 1X2 probabilities being 0.36, 0.28, 0.36, making the teams evenly matched, and thus 2.05 on the home team should be a good bet. But how good?
Fair home odds is 2.0
Using our knowledge of Asian Handicaps, we can easily calculate our true price to be 2.0. But what about our EV?
naive_EV = offered_home_odds / fair_home_odds'Naive' EV is 1.025
As mentioned before, what we are missing in this ‘naive’ approach is accounting for all possible outcomes. Here it’s the possibility of a push we need to consider. By calculating our net return on all possible outcomes (and adding 1 for the desired format and consistency), we get:
true_EV = (win_prob * (offered_home_odds - 1) + push_prob * 0 + lose_prob * - 1) + 1True EV is 1.018
But the difference between the ‘naive’ EV and true EV is so small, how can this really matter?
difference = (naive_EV - 1) / (true_EV - 1) - 1Difference between 'naive' and true EV is 38.89%
Well, in absolute numbers, the difference is small, but in relative terms, we are almost 39% off in our calculations. If we want to use any kind of staking strategy like Kelly, this type of error will, over time, affect our betting results significantly. Ensuring precise calculations prevents us from overbetting and helps maintain a sustainable bankroll growth strategy, ultimately leading to long-term success.
Kelly Sizing on Asian Lines
The natural follow-up to the post above is: now that we can calculate EV correctly on a push bet, can we just feed it into the textbook Kelly Criterion formula and be done with it? Unfortunately not. Kelly was written for a bet that either wins or loses, and an Asian push is neither. Just like with EV, we have to account for all possible outcomes.
Take a real example. Pinnacle offers Asian Handicap 0 on the home team in Chelsea-Tottenham at 1.461. We are sure of our 1X2 probabilities being 0.52, 0.26, 0.22, which puts the true price at 1.42, so 1.461 should be a decent bet. The textbook formula f = (bp - q) / b has nowhere to put the draw, so it treats it as a loss, sets q = 0.48, and tells us to stay away:
offered_home_odds = 1.461
win_prob = 0.52
push_prob = 0.26
lose_prob = 1 - win_prob - push_prob
b = offered_home_odds - 1
naive_kelly = (b * win_prob - (1 - win_prob)) / b'Naive' Kelly is -0.5212
A big negative number, which is the formula’s way of telling us to stay away. But a push is not a loss. It hands the stake back and leaves the bankroll exactly where it was, so it should not go into the formula as one. The fix is to condition it out: divide the remaining probabilities by (1 - push_prob) so they sum to 1 again, then run the textbook formula on those.
conditional_win_prob = win_prob / (1 - push_prob)
true_kelly = (b * conditional_win_prob - (1 - conditional_win_prob)) / bTrue Kelly is 0.0578
About 5.8% of the bankroll, not ‘stay away’. The textbook version had us dropping a bet we should be taking.
Quarter lines take a bit more work. On AH ±0.25 the middle outcome wins or loses half the stake instead of returning it, so there is nothing to condition out and we have to go back to what Kelly actually does: maximise the expected log of the bankroll after the bet, this time with three outcomes that all matter. That gives a quadratic rather than the one-liner above, and the stake we want is the root between 0 and 1. It is still a closed form, so every Asian line fits in one function, with integer and half lines taking the linear path and quarters the quadratic one.
Pinnacle offers AH -0.25 on Chelsea in the same match at 1.716, where a draw now half-loses the stake instead of pushing:
quarter_kelly = kelly_asian(win_prob, push_prob, 1.716, -0.25)
integer_kelly_check = kelly_asian(win_prob, push_prob, 1.461, 0.00)Kelly fraction on AH -0.25 home at 1.716: 0.0402
Sanity: AH 0 home at 1.461 with the same function: 0.0578
About 4% of the bankroll on AH -0.25, a smaller stake than on AH 0 because the half-loss on the draw eats into the edge. As a check, the same function on AH 0 gives back the 5.8% we worked out by hand, which is what should happen: with nothing won or lost on the middle outcome, the quadratic collapses into the linear version above. Half lines like AH ±0.5 are the plain win-or-lose case, so they go through the same function with a push probability of 0.
The point is the one from the Kelly post. Treat a push as a loss and you understate your edge every time, and here that was enough to turn a perfectly good bet into no bet at all. Get the stake wrong and the growth you give up compounds over time.