Separate inputs, decisions and outcomes
The separation below preserves chronological evidence in the same spirit as ordered model evaluation:
Use three protected sheets or tables:
- Forecasts: immutable pre-event model outputs and versions.
- Decisions: price captures, EV, sensitivity, passes and execution.
- Settlement: results, accepted stakes, returns, voids and notes.
Do not overwrite a forecast after a lineup or result arrives. Use a new timestamped row and preserve the original.
Minimum columns
| Group | Required fields |
|---|---|
| Identity | Event ID, competition, kickoff, market ID, selection |
| Forecast | Cutoff, model version, probability, lower and upper sensitivity |
| Price | Source, quote time, offered price, accepted price, availability |
| Decision | Break-even probability, EV, threshold, action, reason |
| Stake | Intended and accepted stake, bankroll snapshot, sizing rule |
| Settlement | Outcome, status, gross return, net profit, costs |
| Later review | Defined close, CLV formula, data-quality flags |
Betfair's historical feed specification illustrates useful market IDs, timestamps, status, prices and volume fields. A sportsbook record should capture equivalent provenance where available.
Checked formulas
Assume probability is in cell H2 and accepted decimal price in M2.
- Break-even probability: = 1 / M2
- EV per unit: = (H2 * M2) - 1
- Probability edge: = H2 - (1 / M2)
- Net profit: = gross return - accepted stake
- Yield: = total net profit / total accepted stake
For H2 = 0.48 and M2 = 2.20, EV = (0.48 * 2.20) - 1 = 0.056 units. OpenStax's expected-value chapter supports the weighted-payoff logic.
Validation rules
- Probability must be between 0 and 1.
- Decimal price must exceed 1.
- Forecast cutoff must precede price decision and kickoff.
- Accepted price is blank when no bet was accepted.
- Settled rows require a settlement status and result source.
- Mutually exclusive model probabilities must pass a sum check.
- Formula cells are locked and recalculated independently in tests.
Preserve passes and failures
A decision table that contains only placed bets cannot audit selection. Add action values such as bet, pass, unavailable, rejected, suspended and data failure. Keep the model probability and price capture for every rule-qualified row. This local completeness rule prevents later outcome knowledge from changing the evaluated set; ordered evaluation guidance supports preserving time order.
Evaluation sheet
Report coverage, proper probability scores, calibration bands, total decisions, accepted bets, stake, return, yield, maximum drawdown and uncertainty. Calibration guidance supports reliability checks, while TimeSeriesSplit provides one chronological development pattern.
Verification checklist
- Import a known row and compare every formula with hand calculation.
- Test blank, void, rejected, partial-stake and price-change cases.
- Protect raw forecasts from editing.
- Version formulas and selection thresholds.
- Export a read-only snapshot before each evaluation period.
Trace one row through its lifecycle
Create an illustrative fixture row with a frozen 0.48 probability and a 2.20 offered price. The decision sheet calculates EV of 0.056 units, records a pass or intended stake, and then stores the accepted price without altering the forecast. The settlement sheet later joins by stable event and market IDs.
If the accepted price changes to 2.12, the original quote remains in its own field and accepted EV = (0.48 * 2.12) - 1 = 0.0176 units. If no bet is accepted, leave settlement profit blank rather than zero and set an execution status. Unit-test that each status flows into coverage, turnover, and performance denominators correctly.
Next step
Use Expected Value Betting for the next part of this topic.
Continue learning
- Next guide: Finding Value in Asian Handicap Markets
- Related guide: Finding Value in Over/Under Goals Markets
Assumptions and limitations
The cell references are illustrative and assume a binary back bet. Quarter lines, exchanges and promotions require payoff-specific formulas. A spreadsheet improves traceability but cannot make an invalid model accurate or a non-executable price real.

