Most of what gets repeated about racing form has never been measured against the price. We have measured a fair amount of it, and most of it is worth nothing. Here is the list, including the parts of our own engine that failed and were taken out.
14 tests · every figure read from the report that produced it
Ideas that are repeated as fact and do not survive contact with the price. A/E near 1.00 means the market has already taken whatever the angle was worth.
Six ways of describing how a horse spends itself, and every one of them runs at the market price. Knowing a horse burned its energy early tells you nothing about whether it wins next time.
| Runners | Won | Market expected | A/E | z | Placed | ROI at SP | |
|---|---|---|---|---|---|---|---|
| burned it early | 1650 | 11.3% | 11.4% | 0.99 | -0.2 | 31.7% | -16.3% |
| no more gears | 2833 | 11.3% | 10.6% | 1.07 | +1.2 | 31.7% | -22.0% |
source: energy_effect.md
The oldest line in the game. C&D winners win more often — 15.5% against 10.5% — and are priced for it almost exactly.
| Runners | Won | Market expected | A/E | z | Placed | ROI at SP | |
|---|---|---|---|---|---|---|---|
| course-and-distance winner | 2582 | 15.5% | 16.0% | 0.97 | -0.7 | 38.5% | -26.4% |
| ran at course and distance, no win | 10057 | 11.1% | 10.6% | 1.05 | +1.6 | 30.0% | -20.1% |
source: theory_tests.md
No. Across 118,000 priced runners the horse’s own course experience is worth nothing the market has not already taken.
| Runners | Won | Market expected | A/E | z | Placed | ROI at SP | |
|---|---|---|---|---|---|---|---|
| never run here | 87246 | 10.1% | 10.1% | 1.00 | -0.1 | 27.2% | -27.9% |
| run here 2+ times | 11927 | 11.8% | 11.6% | 1.02 | +0.6 | 32.1% | -19.5% |
source: course_fit_tests.md
One of the more elaborate ideas we tried, and a clean null: no band separates from the market.
| Runners | Won | Market expected | A/E | z | Placed | ROI at SP | |
|---|---|---|---|---|---|---|---|
| runs much better on tracks like this (+10 or more) | 5594 | 12.3% | 12.7% | 0.97 | -0.8 | 32.5% | -26.7% |
| runs much worse on tracks like this (-10 or worse) | 4017 | 11.3% | 10.7% | 1.05 | +1.2 | 29.7% | -16.5% |
source: course_fit_tests.md
If anything the opposite. Horses that met trouble last time win slightly less than their price implies, and lose heavily.
| Next runs | Won | Market expected | A/E | z | Placed | ROI at SP | |
|---|---|---|---|---|---|---|---|
| met trouble | 2415 | 10.0% | 10.8% | 0.93 | -1.2 | 28.4% | -40.3% |
source: signal_backtest.md
Flat both ways on 20,000 runners.
| Runners | Won | Market expected | A/E | z | Placed | ROI at SP | |
|---|---|---|---|---|---|---|---|
| ground much softer than last time | 10301 | 10.5% | 10.5% | 1.00 | +0.0 | 28.4% | -24.8% |
| ground much quicker than last time | 10185 | 10.3% | 10.8% | 0.95 | -1.6 | 28.2% | -28.2% |
source: theory_tests.md
Effects that are genuinely there — some of them large — and still will not pay as a bet. These are the useful ones: they sharpen how a race is read without pretending to beat the market.
This one is real, and it is not the horse. Yards that are regulars at a course beat their price; yards that rarely attend fall short of it, at three standard deviations. Both still lose money at SP, so it sharpens a read rather than paying as a bet.
| Runners | Won | Market expected | A/E | z | Placed | ROI at SP | |
|---|---|---|---|---|---|---|---|
| yard is a regular (10%+) | 31985 | 10.4% | 10.0% | 1.04 | +2.3 | 28.2% | -20.1% |
| yard rarely comes here (under 3%) | 24387 | 11.2% | 11.9% | 0.94 | -3.2 | 29.9% | -31.4% |
source: course_fit_tests.md
Strongly, and it survived a holdout window. A horse that pulled hard last time does it again at well over the base rate, and is markedly more likely to end up in front — which is a pace fact, not a betting one.
| Next runs | Happens | Base rate | Lift | z | |
|---|---|---|---|---|---|
| pulled hard, and does so again | 3090 | 10.6% | 4.9% | 2.16x | +10.3 |
| pulled hard, then led | 1959 | 17.7% | 13.6% | 1.30x | +4.8 |
source: energy_persistence.md
The mechanism is real and large — front-running winners rise from almost none under no pressure to roughly a third under heavy pressure — and every price cell sits on the market. The shape of a race is readable; it is not mispriced.
| Runners | Won | Market expected | A/E | z | Placed | ROI at SP | |
|---|---|---|---|---|---|---|---|
| heavy pressure: usually led | 4443 | 12.2% | 12.0% | 1.02 | +0.4 | 30.9% | -17.3% |
| heavy pressure: usually held up | 4577 | 10.5% | 10.2% | 1.02 | +0.5 | 29.0% | -29.6% |
source: pace_pressure.md
Our own machinery, tested the same way and taken out when it did not earn its place. These cost the most to find out.
No. Across 7,871 races the three labels produce front-running winners at almost the same rate, and the contested label — which should suppress them — produced as many as the slowly-run one. The call was removed from the engine in October.
| Races | Winner led | Prominent | Midfield | Held up | |
|---|---|---|---|---|---|
| Slowly Run | 4100 | 23% | 40% | 16% | 21% |
| Contested | 1447 | 23% | 40% | 16% | 21% |
| Genuine Pace | 1144 | 19% | 43% | 18% | 20% |
source: pacemap_accuracy.md
It bought two tenths of a point of accuracy and cost five sixths of the leader calls: the share of real leaders the map found fell from 12.0% to 2.2%. Removed.
| Runners | Right group | Within one | Said "leads" | Of those, led | Of leaders, found | |
|---|---|---|---|---|---|---|
| weighted 6 | 8722 | 41.4% | 71.7% | 3.9% | 36.2% | 12.0% |
| weighted 6 + gate (live) | 8722 | 41.6% | 72.0% | 0.7% | 38.3% | 2.2% |
source: style_rule_test.md
Not in any way you can bet. Horses that led won 26% more often than their starting price implied and those held up 22% less, on 9,902 and 25,817 runners — but that is only knowable once the race has been run. Graded on what could be known beforehand, horses called to lead come in at A/E 1.01 (0.95-1.06) and lose 20p in the pound. That interval excludes the 25-40% premium this site used to claim; it does not exclude a small one, and the splits by trip and code are too thin to exclude much at all. The fourth row is the control: favourites alone run at 1.11, so any pace finding has to beat the favourite-longshot bias rather than rediscover it. The shape decides the race; the market has already priced the part of it that is easy to call. GB, April to October 2026. The homepage claimed otherwise until October 2026 on the strength of the retrospective figure, and was corrected.
| Runners | Won | Market expected | A/E | 95% range | z | ROI at SP | |
|---|---|---|---|---|---|---|---|
| Called to lead | 7,232 | 13.4% | 13.3% | 1.01 | 0.95-1.06 | +0.3 | -19.6% |
| Actually led | 9,902 | 18.8% | 14.9% | 1.26 | 1.22-1.30 | +11.7 | +19.1% |
| Actually held up | 25,817 | 6.3% | 8.1% | 0.78 | 0.75-0.82 | -10.8 | -49.2% |
| Favourite | 8,257 | 36.1% | 32.6% | 1.11 | 1.08-1.14 | +7.2 | -4.3% |
source: pace_value.md
No. With the market price held as a baseline, the gap between our rating and the handicapper’s adds nothing a punter could use.
edge: +0.0004 (z +0.2)
source: edge_diagnosis.md
What survived. Small, specific, and stated with the sample size so you can judge it.
After a break of four months or more, yes — the only group in the whole theory file to clear significance, and the only one with a positive return at SP. The sample is small and it needs a second window before anyone should lean on it. After a shorter break, nothing.
| Runners | Won | Market expected | A/E | z | Placed | ROI at SP | |
|---|---|---|---|---|---|---|---|
| second run after a 120+ day break | 359 | 13.4% | 10.0% | 1.34 | +2.2 | 32.9% | +5.9% |
| second run after a 60-120 day break | 2025 | 9.9% | 10.1% | 0.98 | -0.4 | 27.9% | -41.1% |
source: theory_tests.md
A/E is how often a group won against how often its starting prices said it should. 1.00 means the market had it exactly right. z is how far that is from chance: beyond about ±2 is unlikely to be luck, and anything inside that is a result we do not claim.
Nothing here is a betting system. Almost every group on this page loses money at starting price, including the ones that beat the market on A/E — the margin takes care of that. The value of knowing an angle is dead is that you stop paying for it.
The figures are read out of the reports at build time rather than written here, and the build refuses to run if a row it cites has changed. The windows differ between tests because the data behind them does; each table says how many runners it covers.
We publish the failures too.
Tonight’s free races, in your inbox
Every free race on the card, mapped in full: how each should be run, who is likely to lead, and where every runner is expected to race. One email a morning. No tips, no selections.
One email a day. Unsubscribe whenever. Every race, every meeting →