---
title: "Prediction and Sports Market Making"
book: "Market Making and High-Frequency Trading"
subject: quant
language: en
chapter: 26
exercises: 8
source: https://one-course.com/books/quant/11/en/chapter/26-prediction-and-sports-market-making
---

# Chapter 26 — Prediction and Sports Market Making

A goal is scored, and the television picture arrives several seconds after the stadium’s. The betting exchange holds every in-play order for a few seconds before it matches, so that the fans in the stands do not win every race. In this chapter’s model, a market maker in a match-winner market whose data feed reports goals three seconds after they happen loses $236 per goal to courtsiders at the ground when the exchange matches at once; a three-second [bet delay](#def-hf-prediction-and-sports-market-making-delay) cuts that to $66, a six-second delay to $1, and its spread income of $90 a match becomes a profit.

## 26.1 Pricing models for events and matches

Prediction markets and betting exchanges (One Quant Book 3, chapter 27) trade contracts that pay if an event happens; their prices are probabilities. A football match is modelled well enough for a market maker by independent Poisson goals for each side (One Quant Book 4, chapter 6): with rates of 1.5 and 1.1 goals a match, the home side wins with probability 0.464 at kick-off. In play, the probability is recomputed from the score and the time left: one goal up at half-time, 0.760. Each goal is a jump in the [fair price](https://one-course.com/books/quant/11/en/chapter/2-fair-value#def-hf-fair-value-fair), and the whole of the market maker’s problem is the seconds after it ([Figure 26.1](#fig-hf-prediction-and-sports-market-making-match)).

![The fair probability of a home win, minute by minute, through one simulated match with Poisson goals at 1.5 and 1.1 a match; the dashed lines are the home side’s goals at the first, 74th and 79th minutes. The probability drifts as time passes and jumps at each goal. Data: hf_sports.match_path.](https://one-course.com/images/onecourse/chapters/quant-11/hf-prediction-and-sports-market-making/fig-a19e289f216e.svg)

***Figure 26.1.** The fair probability of a home win, minute by minute, through one simulated match with Poisson goals at 1.5 and 1.1 a match; the dashed lines are the home side’s goals at the first, 74th and 79th minutes. The probability drifts as time passes and jumps at each goal. Data: `hf_sports.match_path`.*

Croxson and Reade used exactly that clean news, a goal, to test the efficiency of betting prices on high-frequency data: on their evidence, prices update swiftly and fully. Swiftly is the point: someone must be first.

## 26.2 Making markets on exchanges and prediction venues

A market maker on an exchange quotes both sides of a contract: it lays the home win at the fair probability plus a half-spread and backs it at the fair probability less one. At 0.46 with a one-point half-spread, a bettor gets decimal odds of 2.13 on the home win and 1.82 on the other side, a book with an overround of 2% (Book 3’s `firm.odds`). On a prediction venue organised as a central limit order book the same quote is a bid and an offer on a contract priced between 0 and 1. Recreational bettors pay the spread; the chapter’s staking twice a minute at 50 gives the market maker $90 a match.

**As of September 2026 — Where these contracts trade, and the delay.**

A betting exchange’s developer support explains that in-play markets carry a delay on placing bets, varying from 1 to 12 seconds, to allow customers to cancel unmatched orders when market conditions change. In the United States a federal district court ruled on 12 September 2024 that the CFTC had exceeded its authority in blocking a designated contract market’s election contracts; the CFTC’s appeal was voluntarily dismissed on 7 May 2025. In January 2022 the CFTC settled charges against a crypto prediction market for offering event-based binary options without registration, with a $1.4 million penalty (One Quant Book 3, chapter 27).

## 26.3 In-play latency and the bet delay

**Definition 26.1 (Courtsiding).**

*Courtsiding* is trading on an event from inside the venue where it happens, faster than the official data feed and the television broadcast carry it, so as to take quotes that do not yet reflect it.

**Definition 26.2 (Bet delay).**

A *bet delay* is the time a betting exchange holds an in-play order before it can match, so that market makers can cancel their quotes after an event before orders placed on knowledge of the event reach them; it is an [asymmetric speed bump](https://one-course.com/books/quant/11/en/chapter/9-latency-arbitrage-and-its-defence#def-hf-latency-arbitrage-and-its-defence-bump) (chapter 9) for sport.

![The race after a goal: a courtsider at the ground sends an order after half a second; the exchange holds it for the bet delay; the market maker’s feed reports the goal after about three seconds and it cancels at once. With a three-second delay the maker’s cancel, at 3 seconds, lands before the order can match, at 3.5; with a two-second delay it does not. Latencies vary around these medians. Source: this chapter.](https://one-course.com/images/onecourse/chapters/quant-11/hf-prediction-and-sports-market-making/fig-dd7d000c47f6.svg)

***Figure 26.2.** The race after a goal: a courtsider at the ground sends an order after half a second; the exchange holds it for the [bet delay](#def-hf-prediction-and-sports-market-making-delay); the market maker’s feed reports the goal after about three seconds and it cancels at once. With a three-second delay the maker’s cancel, at 3 seconds, lands before the order can match, at 3.5; with a two-second delay it does not. Latencies vary around these medians. Source: this chapter.*

The chapter’s race ([Figure 26.2](#fig-hf-prediction-and-sports-market-making-race), [Listing 26.1](#lst-hf-prediction-and-sports-market-making-trade)): at each goal the courtsider acts after a median of half a second, the maker’s feed after a median of three, both lognormal with a log standard deviation of 0.3; the courtsider’s order, held for the delay, takes the maker’s 1 000 units at the stale quote if it arrives before the cancel. The maker loses the stake times the probability’s jump, less its half-spread.

![The market maker’s loss per goal to courtsiders and the share of goals on which they reach its stale quote, against the exchange’s bet delay; 2 000 simulated matches (5 241 goals), courtsiders half a second and the maker three seconds after each goal (lognormal). Data: hf_sports.by_delay.](https://one-course.com/images/onecourse/chapters/quant-11/hf-prediction-and-sports-market-making/fig-0948f9a0c139.svg)

***Figure 26.3.** The market maker’s loss per goal to courtsiders and the share of goals on which they reach its stale quote, against the exchange’s [bet delay](#def-hf-prediction-and-sports-market-making-delay); 2 000 simulated matches (5 241 goals), courtsiders half a second and the maker three seconds after each goal (lognormal). Data: `hf_sports.by_delay`.*

With no delay every goal is sniped and the maker loses $236 a goal, $528 a match net of its spread income ([Figure 26.3](#fig-hf-prediction-and-sports-market-making-delay)). Delays shorter than the maker’s own latency help little: at two seconds, 72% of goals are still sniped. At three seconds, 29% and $66; at four, 8% and $20, and the market pays; at six, $1 a goal, under 1% of the no-delay loss. The delay must exceed the market maker’s data latency less the courtsider’s, with a margin for the spread of both.

## 26.4 Limits and counterparty selection

**Definition 26.3 (Stake limiting).**

*Stake limiting* is a bookmaker’s or market maker’s restriction of the stakes it accepts from an account whose bets have proved informed, measured by the mark-out of its past bets, leaving its prices open to others.

A bookmaker sees the account on every bet and can limit it; an exchange market maker sees only anonymous orders, but a venue can offer it tools (minimum delays by market, caps by account). In the model, capping any one courtsider’s stake at 100 units instead of the 1 000 quoted cuts the loss per goal from $236 to $24, and at 50 units to $12. [Courtsiding](#def-hf-prediction-and-sports-market-making-courtsiding) itself sits in a legal grey zone: in 2014 Victoria’s prosecutors withdrew a charge of conduct that would corrupt a betting outcome against a man accused of sending live scores from the Australian Open to a betting agency, because there was no reasonable prospect of a conviction.

## 26.5 Strategy files

**Strategy file 26.1 — Prediction-market making on a central limit order book.**

**Who pays you, and why.** Traders expressing views on events, and hedgers of event risk, who pay the spread.

**Instruments and venues.** Event contracts on designated contract markets and crypto prediction venues.

**Signal.** A model probability (polls, models, related markets) and the order book’s flow.

**Sizing and execution.** Quote both sides around the model; skew with inventory; cap exposure per event; widen near resolution news.

**Costs.** Fees; capital locked until resolution; resolution-source risk.

**How it dies.** Informed flow near news, and regulation: the dated box’s court rulings and settlement show how fast the permitted set changes.

**Horizon, capacity, infrastructure.** Hours to months to resolution.

**Backtest honestly.** The venue’s book at each time and its fees; resolution as it happened.

**Sources.** One Quant Book 3, chapter 27; the dated box.

**Strategy file 26.2 — In-play exchange trading with the bet delay.**

**Who pays you, and why.** Recreational in-play bettors, through the spread; the delay protects the maker from courtsiders.

**Instruments and venues.** Match-odds and other in-play markets on betting exchanges.

**Signal.** An in-play model (Poisson goals for football) updated from an official data feed.

**Sizing and execution.** Quote around the model; cancel on every event from the feed; size by the delay’s margin over the feed’s latency.

**Costs.** Exchange commission on net winnings; losses when the feed is slower than the delay.

**How it dies.** Delays shorter than the feed’s latency: $236 a goal with no delay, $66 at three seconds; faster data for courtsiders.

**Horizon, capacity, infrastructure.** Seconds; the fastest official feed available.

**Backtest honestly.** Event timestamps from the ground, the feed’s and the exchange’s, and the delay by market.

**Sources.** Croxson and Reade (2014); the exchange’s developer support (dated box); this chapter.

**Strategy file 26.3 — Cross-venue event arbitrage.**

**Who pays you, and why.** Traders on the venue whose price lags, or bettors with bookmakers whose overround leaves room.

**Instruments and venues.** The same event on exchanges, bookmakers and prediction venues.

**Signal.** Implied probabilities across venues, net of commissions and overrounds (Book 3’s `firm.odds`).

**Sizing and execution.** Back on one venue and lay on another when the combined odds lock in a profit; small stakes where limiting bites.

**Costs.** Commissions, stake limits, capital on several venues, differing settlement rules.

**How it dies.** [Stake limiting](#def-hf-prediction-and-sports-market-making-limiting) of accounts that win, and differences in how venues settle the same event.

**Horizon, capacity, infrastructure.** Minutes to the event.

**Backtest honestly.** Prices available to the account at the time, commissions, and each venue’s rules.

**Sources.** One Quant Book 3, chapter 27.

## 26.6 Tutorial: faster than the television

**Goal.** Price a match in play, quote it on an exchange, and measure what courtsiders take at each [bet delay](#def-hf-prediction-and-sports-market-making-delay). **End state:** the three figures and the numbers of the text.

1. **The match model** : the probability of a home win from the score and the time left ( `firm.sportsmm.home_win` ).
2. **The race at each goal** and the maker’s loss. `def trade_match (m: Match, delay_s: float = 5.0 , mm_lat: float = 3.0 , fast_lat: float = 0.5 , size: float = 1000.0 , half_spread: float = 0.01 , rec_per_min: float = 2.0 , rec_stake: float = 50.0 , cap: float | None = None , lat_sd: float = 0.3 ) -> dict : """Latencies are lognormal around their medians (log standard deviation lat_sd). A courtsider's order matches if it arrives, after the bet delay, before the market maker's cancel; it takes min(size, cap) at the stale quote and the market maker loses that stake times the probability's jump (less the half-spread).""" diff, loss, sniped, goals = 0 , 0.0 , 0 , 0 for g, (t, side) in enumerate (zip (m.times, m.sides, strict=True )): left = (90.0 - t) / 90.0 before = home_win(m.lh, m.la, left, diff) diff += int (side) after = home_win(m.lh, m.la, left, diff) goals += 1 a_fast = fast_lat * math.exp(lat_sd * m.z[g, 0 ]) a_mm = mm_lat * math.exp(lat_sd * m.z[g, 1 ]) if a_fast + delay_s < a_mm: q = size if cap is None else min (size, cap) loss += q * max (abs (after - before) - half_spread, 0.0 ) sniped += 1 spread = 90.0 * rec_per_min * rec_stake * half_spread return {" spread " : spread, " loss " : loss, " net " : spread - loss, " goals " : goals, " sniped " : sniped}` **Listing 26.1.** The probability’s jump at a goal; the courtsider’s order against the maker’s cancel; the loss on the stale quote. code/firm/sportsmm/firm_sportsmm.py
3. **A season** of 2 000 matches for each delay and each stake cap ( `hf_sports` ).

**What to change next.** Suspend the market for the delay instead of holding orders; add a second, slower data feed for part of the market makers; add red cards and penalties as events.

## 26.7 Build: the sports market maker

**Purpose.** Price matches in play, make markets on an exchange with a [bet delay](#def-hf-prediction-and-sports-market-making-delay), and limit counterparties.

**Interface.** `home_win(lh, la, t_left, score_diff)`, `Match(lh, la, seed)`, `trade_match(match, delay_s, mm_lat, fast_lat, size, half_spread, rec_per_min, rec_stake, cap, lat_sd)`, `season(n, delay_s, seed)`, `odds_quote(p, half_spread)`. Built on Book 3’s `firm.odds`.

**Rules.** Probabilities in $[0,1]$; stakes in units paying one; latencies lognormal around their medians.

**Acceptance tests.** `code/firm/sportsmm/tests/`: home, draw and away sum to one; the end of a match resolves the probability; a goal raises it; with no delay every goal is sniped, with ten seconds none; a cap scales the loss; the quote’s odds and overround by hand.

**Stretch.** Market suspension; red cards; slow and fast feeds among makers.

Sources and further reading

- K. Croxson, J. J. Reade, Information and efficiency: goal arrival in soccer betting, *Economic Journal* 124(575), 2014, 62–91.
- Betfair developer support, “Why do you have a delay on placing bets on a market that is in-play”.
- ABC News, Australian Open illegal betting charges dropped, 6 March 2014.
- One Quant Book 3, chapter 27, and its sources for the dated box.

## 26.8 Exercises

**Exercise 26.1 ★.**

A market maker quotes the home win at 0.46 with a one-point half-spread. What decimal odds does a bettor get on each side, and what is the overround?

**Solution of Exercise 26.1.**

Backing the home win at $1/0.47=2.13$; backing the other side at $1/0.55=1.82$; implied probabilities sum to 1.02: an overround of 2%.

**Exercise 26.2 ★.**

A goal lifts the home win from 0.46 to 0.70. A courtsider takes 1 000 units at the stale quote of 0.47. What does the maker lose?

**Solution of Exercise 26.2.**

$1\,000\times(0.70-0.47)=\$230$.

**Exercise 26.3 ★.**

The maker’s feed reports goals after three seconds and courtsiders act after half a second. What delay just protects the maker, ignoring variation?

**Solution of Exercise 26.3.**

More than $3-0.5=2.5$ seconds; with the latencies’ variation, about six seconds make the loss negligible.

**Exercise 26.4 ★★.**

Why does a two-second delay still leave 72% of goals sniped?

**Solution of Exercise 26.4.**

The courtsider acts after about half a second and the maker cancels after about three: a two-second delay puts the order’s matching at about 2.5 seconds, still before most cancels.

**Exercise 26.5 ★★.**

Why is the [bet delay](#def-hf-prediction-and-sports-market-making-delay) an [asymmetric speed bump](https://one-course.com/books/quant/11/en/chapter/9-latency-arbitrage-and-its-defence#def-hf-latency-arbitrage-and-its-defence-bump), and what would make it symmetric?

**Solution of Exercise 26.5.**

It delays the placing of orders but not their cancellation, so makers can withdraw stale quotes before new orders reach them; delaying cancellations too would make it symmetric and useless.

**Exercise 26.6 ★★.**

What did Croxson and Reade test, and why are goals a clean test?

**Solution of Exercise 26.6.**

Whether betting prices incorporate news swiftly and fully; a goal is news that breaks cleanly, at a known moment, with no leakage, and the contracts have terminal values. They found prices update swiftly and fully.

**Exercise 26.7 ★★★.**

*Coding.* Halve the market maker’s feed latency to 1.5 seconds. What delay now makes the loss negligible?

**Solution of Exercise 26.7.**

With a 1.5-second feed the loss per goal is $112 at one second, $10 at two and $0.6 at three: three seconds make it negligible instead of six.

**Exercise 26.8 ★★★.**

*Find the flaw.* “Our in-play model is better than the market’s, so we can quote tighter than anyone and still win.”

**Solution of Exercise 26.8.**

A better model does not protect against being slower than the event: after a goal, the courtsider knows more than any model. The quotes must be cancelled before orders based on the goal can match, whatever the model’s quality.

## 26.9 Problem: Faster Than the Television

**Problem 26.1.**

Weekend problem — faster than the television

A market maker quotes football match-winner markets in play on an exchange with a [bet delay](#def-hf-prediction-and-sports-market-making-delay).

**Part I — Pricing.**

1. Write the home-win probability with Poisson goals and give it at kick-off and one goal up at half-time.
2. What did Croxson and Reade find?
3. Convert the maker’s quote to odds and an overround.
4. Summarise the dated box.

**Part II — The race.**

5. Define [courtsiding](#def-hf-prediction-and-sports-market-making-courtsiding) and the [bet delay](#def-hf-prediction-and-sports-market-making-delay) .
6. Describe the race after a goal.
7. Give the loss per goal and the share sniped at delays of 0, 2, 3, 4 and 6 seconds.
8. When does the market pay the maker?

**Part III — Counterparties.**

9. Define [stake limiting](#def-hf-prediction-and-sports-market-making-limiting) .
10. What do caps of 100 and 50 units do?
11. What happened in the 2014 [courtsiding](#def-hf-prediction-and-sports-market-making-courtsiding) case?
12. Why can an exchange maker not limit accounts itself?

**Part IV — The verdict.**

13. State the *named result* : the market maker’s loss per goal to courtsiders as a function of the [bet delay](#def-hf-prediction-and-sports-market-making-delay) , and the delay that makes it negligible.
14. Who pays for the delay?
15. What would faster official data change?
16. Which strategy file is most exposed to regulation?
17. How would you measure your feed’s latency against the ground?
18. How does the problem compare with [latency arbitrage](https://one-course.com/books/quant/11/en/chapter/9-latency-arbitrage-and-its-defence#def-hf-latency-arbitrage-and-its-defence-arb) in equities (chapter 9)?
19. What should a venue do besides the delay?
20. In one sentence: what does a [bet delay](#def-hf-prediction-and-sports-market-making-delay) protect?

**Solution of Problem 26.1.**

1. $P=\sum_{i,j}p_h(i)p_a(j)\mathbf 1\{d+i-j>0\}$ with Poisson goals over the time left; 0.464 and 0.760.
2. Prices update swiftly and fully after goals.
3. 2.13 and 1.82; overround 2%.
4. In-play [bet delays](#def-hf-prediction-and-sports-market-making-delay) of 1 to 12 seconds on one exchange; the 2024 court ruling for election contracts and the dismissed appeal; the 2022 settlement with a crypto prediction market.
5. See [Definition 26.1](#def-hf-prediction-and-sports-market-making-courtsiding) and [Definition 26.2](#def-hf-prediction-and-sports-market-making-delay) .
6. Courtsider at 0.5 seconds, held for the delay; maker cancels at 3 seconds; the order takes the stale quote if it can match first.
7. $236 and 100%; $168 and 72%; $66 and 29%; $20 and 8%; $1 and 0.5%.
8. From about four seconds of delay the spread income exceeds the losses.
9. See [Definition 26.3](#def-hf-prediction-and-sports-market-making-limiting) .
10. Cut the loss per goal to $24 and $12.
11. The charge was withdrawn in 2014 for lack of a reasonable prospect of conviction.
12. Exchange orders are anonymous to it; only the venue can limit accounts.
13. $236 a goal with no delay, falling to $66 at three seconds, $20 at four and $1 at six; about six seconds, twice the maker’s feed latency, make it negligible.
14. Every in-play bettor, who waits; mostly the fast ones, who lose their edge.
15. A shorter delay would suffice (three seconds with a 1.5-second feed).
16. Prediction-market making.
17. Record the ground’s events with timestamps and compare with the feed’s.
18. The same race, measured in seconds instead of microseconds, with the delay as the [speed bump](https://one-course.com/books/quant/11/en/chapter/9-latency-arbitrage-and-its-defence#def-hf-latency-arbitrage-and-its-defence-bump) .
19. Offer faster official data, caps by account, and suspension on events.
20. The market makers’ quotes, and through them the liquidity of in-play markets.

## 26.10 Interview questions

**Interview question 26.1 ★ trader.**

A team is 1–0 up with ten minutes left. Roughly what should its win probability be if both teams score 1.3 goals a match?

**Solution of Interview question 26.1.**

About 0.88: in ten minutes each side scores about 0.14 goals, and the leader wins unless the other side scores more.

*What the interviewer is looking for: Poisson over the time left.*

**Interview question 26.2 ★★ researcher.**

How would you estimate a match’s goal rates from pre-match odds?

**Solution of Interview question 26.2.**

Remove the overround, then solve for the two rates that reproduce the home, draw and away probabilities (and the total-goals market if available).

*What the interviewer is looking for: inverting the model from prices.*

**Interview question 26.3 ★★ developer.**

Design the system that cancels 2 000 quotes across 300 matches within 100 milliseconds of a goal in any of them.

**Solution of Interview question 26.3.**

One event bus from the fastest feed; per match, a precomputed cancel-all message per venue session; mass cancels where supported; monitoring of the feed’s latency.

*What the interviewer is looking for: mass cancel on events.*

**Interview question 26.4 ★★ risk.**

Your in-play losses tripled in one league. What do you investigate?

**Solution of Interview question 26.4.**

The league’s delay and data latency (a slower feed, a shorter delay), new courtsiders, and events the model misses.

*What the interviewer is looking for: latency against delay.*

**Interview question 26.5 ★★ trader.**

Why might a bookmaker welcome a sharp bettor’s account for a while before limiting it?

**Solution of Interview question 26.5.**

Its bets reveal the right price; a bookmaker can follow them before limiting the account.

*What the interviewer is looking for: information from sharp accounts.*

**Interview question 26.6 ★★★ researcher.**

With lognormal latencies, derive the probability that a courtsider’s order, held for the delay, arrives before the maker’s cancel.

**Solution of Interview question 26.6.**

With $\ln A_f\sim N(\ln a_f,s^2)$ and $\ln A_m\sim N(\ln a_m,s^2)$, $P(A_f+D<A_m)$ has no closed form; condition on $A_f$ and integrate $P(A_m>A_f+D)$ over its density numerically.

*What the interviewer is looking for: convolution of the two latencies.*
