Skip to content

Explore WCWins

Track 4 · Professional Research Lab · Lesson 24 of 24

Write a reproducible research report

Turn an analysis into an auditable memo: question, null hypothesis, data lineage, point-in-time joins, pre-registered rules, confidence bounds, execution assumptions, failure cases, conflicting evidence and an explicit decision — including "no edge demonstrated".

Learning objectives

  • Fill in every field of a research memo template for a betting-rule study.
  • Report a Wilson interval, a ROI standard error and the number of bets needed to detect the claimed edge.
  • State costs, execution assumptions and the number of variants tested.
  • Write a decision that follows from the evidence, including "no bet / no edge demonstrated".

Why a memo, not a screenshot

A profit chart answers "what happened in this file?". A research memo answers "what would an independent analyst find if they re-ran this from raw data?". The cases in this track — a single outlier driving a published profit Clegg & Cartlidge (2025), a corrigendum that turned positive average returns negative Walsh & Joshi (2024) — were caught because someone could re-run the work. Write every report as if that someone will be you, six months from now, with no memory of the choices you made.

The memo template

Research memo template — every field is required, even when the answer is "none"
FieldWhat to write
QuestionOne sentence: which market, which selections, which period.
Null hypothesisWhat you expect if there is no edge (for example, ROI equals the margin-implied loss).
Data lineageSources, versions, download dates, row counts before and after cleaning, and every exclusion rule.
Timestamps and joinsQuote capture time versus kickoff; as-of joins; proof no feature post-dates the decision.
Pre-registered ruleThe exact selection and staking rule, frozen before the test data were viewed.
Variants triedNumber of thresholds, models or leagues tested, and the correction applied.
Results with boundsBets, wins, ROI, Wilson interval, ROI standard error, bets needed to detect the edge.
Costs and executionMargin, slippage, fill rate, stake caps, quote age; executed EV.
Failure casesWhere the rule lost most, and rows that drive most of the profit.
Conflicting evidencePublished studies or your own tests that point the other way.
DecisionAct in simulation / continue paper-tracking / no edge demonstrated / reject.
Replication packageCode, data hashes, random seeds and the command that regenerates every number.

Two fields deserve more care than they usually get. Data lineage means a reader can trace every row back to a source file and every exclusion to a written rule; if 27 rows became 23, the memo says which four went and why. Point-in-time joins mean that each bet is matched to the last quote and the last feature value recorded before the decision, never to a later revision. Odds providers sometimes back-fill or overwrite columns, so store the capture timestamp alongside every price.

The conflicting evidence field is where intellectual honesty shows. If published work finds that a similar pattern did not persist across seasons, or that a similar profit came from a data error, the memo must say so and explain why this study should be read differently — or concede that it should not.

Confidence bounds you must report

Wilson: (p̂ + z²/2n ± z √(p̂(1 − p̂)/n + z²/4n²)) / (1 + z²/n)
Interval for the win rate p̂ = wins / n. Compare it with the break-even probability 1/o.
SE(ROI) = sd / √n sd = √(p(o − 1)² + (1 − p) − EV²)
Standard error of average profit per unit staked for n independent bets at odds o.
n ≈ (z × sd / edge)²
Bets needed before an edge of a given size sits z standard errors from zero (z = 1.96).

The three numbers answer different questions. The Wilson interval asks whether the win rate is clearly above break-even. The ROI standard error says how far the realised return could be from the true one. The detection count tells you whether the sample was ever large enough to answer the question — often it was not, and the memo should say so before anyone asks.

Writing the decision

The decision field must follow mechanically from the evidence fields. Four outcomes cover most studies: act in simulation (bounds clear break-even after costs and corrections, and fresh data agree); continue paper-tracking (promising but under-powered); no edge demonstrated (bounds include break-even, or execution removes the edge); and reject (bounds sit below break-even or the hypothesis failed on held-out data).

Finally, list what would change your mind: the sample size at which the edge would be detectable, the execution assumptions that would make it vanish, and the held-out data you will check next. A memo that names its own falsification test is one other people can trust.

Execution assumptions belong in the decision, not in a footnote. In the mini-memo below, a true win rate of 49% would still sit above the 47.62% break-even at the quoted 2.10 — yet with an 80% fill and 3% slippage the executed EV would be −0.15% per intended stake. An edge that exists only at the quoted price is not an edge you can act on.

Worked example

Worked example · A complete mini-memo on a synthetic result

Question: does rule R — back the home side in a fictional league when a model's edge is at least 4% — beat break-even? Synthetic result for illustration: 400 bets, all at hypothetical odds 2.10, 205 wins, one-unit stakes. Twelve threshold variants were tried before choosing 4%.

  1. Null hypothesisTrue win rate equals break-even 1/2.1047.62%
  2. HeadlineProfit 205 × 2.10 − 400; ROI 30.5 / 400+30.5 units, ROI +7.63% (win rate 51.25%)
  3. Wilson 95% intervalWilson interval for 205 of 40046.36% to 56.11%: contains break-even 47.62%
  4. ROI standard errorsd 1.050 / √4005.25 points; approx. 95% range −2.66% to +17.91%
  5. One-sided testP(X ≥ 205) for X ~ Bin(400, 0.4762)8.02%: not significant at 5% even before correction
  6. Multiple variants1 − 0.95¹² for independent null tests; Bonferroni 0.05 / 12Illustrative FWER 45.96%; bar p < 0.0042
  7. Executionexecuted EV: p 0.5125, odds 2.10, fill 80%, slippage 3%+3.52% per intended stake, assuming the observed win rate is true (optimistic)
  8. Precision illustration (not power)n ≈ (1.96 × SD / edge)²; no alternative-hypothesis power is specified729 bets for the observed ROI; 10,580 for a 2% edge
  9. DecisionBounds include break-even; 12 variants; execution halves the edgeNo edge demonstrated; continue paper-tracking with the rule frozen

A +7.6% ROI on 400 bets reads like a result, but the interval spans break-even, the one-sided p-value is 8%, twelve variants were tried, and realistic execution roughly halves what remains. The memo's conclusion is no edge demonstrated. Its falsification test: track the frozen rule on the next 729 synthetic bets and report the result whichever way it falls.

Practice · Check the memo's bounds in the EV lab

Open the Fair odds and EV lab with odds 2.10, estimate 51.25% and the Wilson bounds 46.36%–56.11% as the range. Read the verdict, then write the one-line decision for the memo.

Lab 1 · Fair odds and expected value

Synthetic · deterministic
Enter a decimal price and your probability estimate, with an honest range for how wrong it could be.
Break-even probability47.62%
Theoretical EV at estimate+7.5%
EV at range low−2.6%
EV at range high+17.8%
Fair odds of estimate1.953
Probability edge3.58 pts
Full Kelly (estimate)6.84%
Full Kelly (range low)0.00%

No clear advantage. Your range straddles break-even. Whether the bet has value depends on which end of your estimate is right, so there is no clear advantage. A careful analyst treats this as a pass unless better evidence narrows the range.

Expected value against the true probabilityExpected ROI per unit staked at odds 2.10 if the true probability were each value on the horizontal axis. EV crosses zero at the break-even probability, 47.62%.-20%0%20%40%40%50%60%True probability (%)Expected ROI (%)Break-even
Expected ROI per unit staked at odds 2.10 if the true probability were each value on the horizontal axis. EV crosses zero at the break-even probability, 47.62%.
Show data table
True probability (%)Expected ROI
36%-24%
37%-22%
38%-20%
39%-18%
40%-16%
41%-14%
42%-12%
43%-10%
44%-8%
45%-5%
46%-3%
47%-1%
48%1%
49%3%
50%5%
51%7%
52%9%
53%11%
54%13%
55%16%
56%18%
57%20%
58%22%
59%24%
60%26%
61%28%
62%30%
63%32%
64%34%
65%37%
66%39%
67%41%

Educational calculator. Uses only the numbers you enter or seeded synthetic data — no live prices, no staking, no real money.

Show what you should find

Break-even is 47.62%. EV at the estimate is +7.63%, but the range runs from about −2.6% at 46.36% to about +17.8% at 56.11%, so the verdict is 'depends on the estimate'. Decision line: "Rule R: no edge demonstrated (Wilson interval includes break-even; 12 variants tested); continue paper-tracking for 729 further bets with the rule frozen."

Common mistakes

  • ✗ Reporting ROI without an interval.Always pair ROI with a Wilson interval for the win rate and a ROI standard error; +7.63% ± 5.25 points means something very different from +7.63% alone.
  • ✗ Leaving out the variants that did not work.State how many thresholds, models or leagues were tried and apply a correction; twelve variants give a 45.96% chance of a false positive.
  • ✗ Ignoring execution in the conclusion.Report executed EV under explicit fill and slippage assumptions alongside the nominal figure.
  • ✗ Treating "no edge demonstrated" as a failed project.It is a valid, publishable conclusion when the evidence supports it, and it prevents costly false positives.

When it fails

Supporting research

Check your understanding

1. 400 bets at 2.10 with 205 wins: what does the Wilson 95% interval (46.36%–56.11%) imply?
2. Which memo field records whether any feature was available only after kickoff?
3. Roughly how many bets are needed before an observed ROI of +7.63% at odds 2.10 sits two standard errors from zero?

Practice only: saved on this device, no XP and no account record.

Saved on this device only.
Write a reproducible research report · Value Academy · WCWins