Sports intelligence · Cricket

IPL CRR vs market: a 186-innings ball-by-ball backtest

Backtested the cricket-engine CRR model ball-by-ball over 186 IPL innings against mid-innings book pricing. MAE landed at 0.41 rpo with the model out-edging the book by ~1.8% on fair-price-deviation staking.

MAE 0.41 rpo · +1.8% paper edge over 186 innings

MAE vs actual CRR
0.41 rpo
Paper edge vs close
+1.8%
Innings in window
186
Decision latency
< 800ms

The question

How accurately can a ball-by-ball match-state model predict end-of-innings CRR (current run rate / runs-per-over), and does the residual vs. book pricing produce a paper edge when staking is gated on fair-price deviation?

IMAGE SLOT Baseline book mispricing distribution 1280×720 · alt: "Distribution of mid-innings book pricing residuals against actual CRR over 186 IPL innings"

The setup

  • Window: 186 IPL innings across two recent IPL seasons (exact seasons withheld pending data-license review — replayable from Cricsheet + contemporaneous odds snapshots).
  • Engine: cricket-engine match-state model. Features include ball-by-ball scorecard, pitch context, head-to-head, bowler type vs. batter hand, venue priors, and match phase.
  • Baseline: mid-innings book pricing sampled from two majors at fixed overs over=6, over=10, over=14 for every innings in the window.
  • Staking rule (paper): fractional Kelly, capped at k = 0.25, only when the model’s fair CRR deviated from the book-implied CRR by more than 0.6 rpo. No live stakes — paper ledger only.
  • Latency budget: every decision had to land inside 800ms of the ball being committed to the feed. Anything slower was discarded to simulate a realistic live-edge window.

What the model had to beat

Two things the book already does well:

  1. End-of-innings expectation shrinks fast after ball 60. Most of the paper edge had to come from the first two decision points (over=6 and over=10).
  2. Book pricing is sharp at the extremes. If the model only traded obvious mispricings (team 120 for 1 chasing 140), book closes fast and edge evaporates before the ball-to-decision budget.

Results

Across 186 innings:

  • CRR model MAE: 0.41 rpo. Compared against actual end-of-innings CRR.
  • Paper edge: +1.8% per staked ball — measured against mid-innings book close, not opening price, so the edge is the residual after the market has settled on a post-toss expectation.
  • Hit rate on directional call: 58.2% (book-implied CRR directionally correct = coin-flip 50% baseline).
  • Decision latency: p50 412ms, p95 780ms. Stayed inside the 800ms budget.
IMAGE SLOT Model vs book — residual over innings phase 1280×720 · alt: "Residual of model-implied CRR vs book-implied CRR binned by innings phase"

Where the model lost

Honestly reporting the losing windows:

  • Rain-affected innings — model priors didn’t condition on DLS tables in this version; that’s a known gap, fixed in the next iteration.
  • Late-innings collapse regime — the sequence head under-reacts when a set batter falls within a two-over window. Targeted fix: train a small specialist on post-collapse continuations.
  • Toss-heavy venues — a handful of venues where the toss winner wins ~65%+ of innings. Priors were not venue-tossed-conditioned, so calibration drifted early.

What this means operationally

The 186-innings backtest is sample enough to promote the CRR model from shadow to sample-gated paper, not live stakes. Under the paper-first policy the next step is a 30-day shadow run on live IPL innings with the 0.6 rpo deviation gate held constant. Only after the live paper-run replicates the backtest Sharpe inside a ±20% band does the model become eligible for fractional live staking — with a kill-switch on any three-innings drawdown breach.

Model details, feature list, and the exact venue/phase breakdowns are in the internal research doc. If you’re running a book on IPL and want to see the full breakdown, ask for the research pack on the first call.