The Record
Flat 1u · losses count the same as winsFlat-$2 = one $2 win bet on every flag. Losses are counted identically to wins.
Why the counts on this page differ. 184 scored selections = 47 wins + 125 losses + 12 voided by scratch. The 172 settled bets behind the ROI exclude the voids, because a scratched runner is money returned, not a bet lost. The closing-line table below is smaller again. It only covers selections we have a closing price for. Calibration is larger than all of them: it scores every runner we priced, not just the ones we flagged.
Read the range, not the headline. On 172 settled bets the ROI figure could comfortably be anywhere from -32% to +21%, and on this record there is roughly a 70% chance the true long-run figure is negative. A few months is nowhere near enough racing to tell a real edge from a hot streak, and anyone quoting the headline number at you , including us, is quoting the least reliable part of this page.
The record is concentrated: 2026-07-26 contributed +39.98 units across both tracks. Every other race day combined — 27 of them — comes to -62.60 units. We would rather you learned that here than worked it out yourself.
Flat-$2 running total, one point per graded card. Losses are plotted identically to wins. The dashed line is the same record with SAR 2026-07-26 removed; it ends at −43.00 units. One card carrying that much of the net is the most important thing on this page, so it is drawn rather than described.
| Date | Track | Picks | W–L | Flat-$2 | ROI | Drift |
|---|---|---|---|---|---|---|
| Fri Aug 28 | SAR | 3 | grading pending, results not yet posted; the picks are locked in the ledger | |||
| Fri Aug 28 | DMR | 4 | grading pending, results not yet posted; the picks are locked in the ledger | |||
| Thu Aug 27 | SAR | 4 | 1-3 | -4.10 | -51.2% | +44.9% |
| Thu Aug 27 | DMR | 2 | 0-2 | -4.00 | -100.0% | +86.6% |
| Wed Aug 26 | SAR | 4 | 2-2 | +16.98 | 212.2% | -5.8% |
| Sun Aug 23 | SAR | 4 | 0-4 | -8.00 | -100.0% | +19.9% |
| Sun Aug 23 | DMR | 2 | 1-1 | +1.60 | 40.0% | +26.6% |
| Sat Aug 22 | SAR | 4 | 0-4 | -8.00 | -100.0% | +15.2% |
| Sat Aug 22 | DMR | 4 | 1-3 | +2.40 | 30.0% | +44.3% |
| Fri Aug 21 | SAR | 4 | 2-2 | -0.88 | -11.0% | +81.1% |
| Fri Aug 21 | DMR | 3 | 1-1 | -0.60 | -15.0% | +79.9% |
| Thu Aug 20 | SAR | 4 | 0-3 | -6.00 | -100.0% | +69.2% |
| Thu Aug 20 | DMR | 3 | 0-3 | -6.00 | -100.0% | +66.8% |
| Wed Aug 19 | SAR | 4 | 1-3 | -4.60 | -57.5% | +22.5% |
| Sun Aug 16 | SAR | 4 | 0-4 | -8.00 | -100.0% | +14.5% |
| Sun Aug 16 | DMR | 4 | 1-3 | -5.40 | -67.5% | -1.5% |
| Sat Aug 15 | SAR | 4 | 2-1 | +15.04 | 250.7% | +13.2% |
| Sat Aug 15 | DMR | 3 | 1-2 | -1.00 | -16.7% | +56.4% |
| Fri Aug 14 | SAR | 4 | 1-3 | -2.20 | -27.5% | -0.3% |
| Fri Aug 14 | DMR | 3 | 0-3 | -6.00 | -100.0% | +40.9% |
| Thu Aug 13 | SAR | 4 | 1-3 | -4.80 | -60.0% | +59.9% |
| Thu Aug 13 | DMR | 3 | 2-1 | +6.00 | 100.0% | +8.7% |
| Wed Aug 12 | SAR | 2 | 2-0 | +8.54 | 213.5% | +52.8% |
| Sun Aug 9 | SAR | 4 | 0-4 | -8.00 | -100.0% | +39.4% |
| Sun Aug 9 | DMR | 2 | 0-2 | -4.00 | -100.0% | +47.2% |
| Sat Aug 8 | SAR | 4 | 0-4 | -8.00 | -100.0% | +3.8% |
| Sat Aug 8 | DMR | 4 | 2-2 | +3.20 | 40.0% | +73.3% |
| Fri Aug 7 | SAR | 3 | 1-2 | +0.52 | 8.7% | +18.8% |
| Fri Aug 7 | DMR | 3 | 0-2 | -4.00 | -100.0% | +50.7% |
| Thu Aug 6 | SAR | 4 | 2-2 | +3.34 | 41.8% | +36.6% |
| Thu Aug 6 | DMR | 1 | 1-0 | +2.60 | 130.0% | +73.9% |
| Sun Aug 2 | SAR | 4 | 2-2 | +4.28 | 53.5% | +43.1% |
| Sun Aug 2 | DMR | 4 | 1-3 | -1.40 | -17.5% | +56.6% |
| Sat Aug 1 | SAR | 4 | 2-2 | +8.94 | 111.8% | +21.0% |
| Sat Aug 1 | DMR | 4 | 0-4 | -8.00 | -100.0% | +50.4% |
| Fri Jul 31 | SAR | 3 | 1-0 | +5.68 | 284.0% | +4.2% |
| Fri Jul 31 | DMR | 4 | 0-3 | -6.00 | -100.0% | +5.4% |
| Thu Jul 30 | DMR | 4 | 0-4 | -8.00 | -100.0% | n/a |
| Sun Jul 26 | SAR | 4 | 2-2 | +20.38 | 254.8% | -26.3% |
| Sun Jul 26 | DMR | 4 | 3-1 | +19.60 | 245.0% | +14.4% |
| Sat Jul 25 | SAR | 4 | 1-3 | -0.16 | -2.0% | +56.9% |
| Sat Jul 25 | DMR | 4 | 1-3 | -2.60 | -32.5% | +96.3% |
| Fri Jul 24 | SAR | 4 | 0-4 | -8.00 | -100.0% | +22.0% |
| Fri Jul 24 | DMR | 4 | 0-4 | -8.00 | -100.0% | +42.0% |
| Thu Jul 23 | SAR | 4 | 1-3 | -3.28 | -41.0% | +23.7% |
| Thu Jul 23 | DMR | 4 | 0-3 | -6.00 | -100.0% | +32.0% |
| Sun Jul 19 | SAR | 4 | 1-3 | +0.30 | 3.7% | +29.1% |
| Sun Jul 19 | DMR | 4 | 0-4 | -8.00 | -100.0% | -0.7% |
| Sat Jul 18 | SAR | 4 | 2-0 | +4.70 | 117.5% | +32.1% |
| Sat Jul 18 | DMR | 4 | 2-1 | +5.20 | 86.7% | +78.7% |
| Fri Jul 17 | SAR | 4 | 1-2 | +0.40 | 6.7% | +44.3% |
| Fri Jul 17 | DMR | 4 | 1-3 | +0.40 | 5.0% | +32.4% |
| Thu Jul 16 | SAR | 3 | 1-2 | +0.30 | 5.0% | +6.4% |
Did our price hold to post?
Did our flagged price hold to post?Our flags are straight win bets. In a pari-mutuel pool your payout is set by the final odds no matter when you bet, so there is no price to hold you to . This table is a model diagnostic, not a bet rule. Overlay at close counts the flags whose closing odds still beat our fair number: the value we saw was real at post. Value at the close is the stricter test. the close also reached the reference price we recorded before the race. When these run low, it means our fair line is too long, usually because it is anchored to a generous morning line rather than the real market. That is the known v0 weakness the version notes track. ML→close is the opposite signal: how far the crowd moved toward our flags after we published.
| Date | Race | Horse | Our call | Ref≥ | Closed | At close | ML→close | Result |
|---|---|---|---|---|---|---|---|---|
| Thu Aug 27 | R8 | Titan Ready | Likely bet down | 6/5 | 5/2 | value | -1.1 | lost |
| Thu Aug 27 | R5 | Jet Black Jewel | Price may move | 5/2 | 3/5 | short | +2.3 | lost |
| Thu Aug 27 | R4 | First Call Bob | Price may move | 9/2 | 7/2 | short | +4.3 | lost |
| Thu Aug 27 | R3 | Yinzer | Likely bet down | 5/2 | 5/2 | value | -0.5 | lost |
| Thu Aug 27 | R2 | Wingfoot | Price may move | 7/2 | 1/1 | short | +2.5 | won |
| Thu Aug 27 | R1 | Silkie Sevei | Price may move | 5/2 | 9/5 | short | +1.1 | lost |
| Wed Aug 26 | R7 | Go For Launch | Price may move | 7/2 | 10/1 | value | -4.0 | won |
| Wed Aug 26 | R7 | Shining Moment | Price may move | 7/2 | 10/1 | value | -4.5 | lost |
| Wed Aug 26 | R5 | Al Mowashaah | Likely bet down | 2/1 | 8/5 | short | +0.9 | lost |
| Wed Aug 26 | R2 | Unit Economics | Likely bet down | 4/5 | 1/2 | short | +0.3 | won |
| Sun Aug 23 | R9 | Syntax | Likely bet down | 4/1 | 9/2 | value | -0.4 | lost |
| Sun Aug 23 | R8 | Tough Street | Likely bet down | 3/1 | 5/2 | short | +1.1 | lost |
| Sun Aug 23 | R5 | Run Curtis Run | Likely bet down | 5/2 | 3/1 | value | -0.6 | lost |
| Sun Aug 23 | R5 | Maggles Mcgee | Likely bet down | 5/2 | 9/5 | short | +1.7 | won |
| Sun Aug 23 | R3 | Hot Currency | Likely bet down | 8/5 | 3/5 | short | +1.1 | lost |
| Sun Aug 23 | R1 | Ice Chocolat | Likely bet down | 6/5 | 2/1 | value | -0.1 | lost |
| Sat Aug 22 | R12 | Mary Lois | Likely bet down | 5/2 | 7/2 | value | +0.0 | lost |
| Sat Aug 22 | R10 | Segesta | Likely bet down | 7/5 | 4/5 | short | +0.5 | lost |
| Sat Aug 22 | R9 | Playa Del Mar | Likely bet down | 3/1 | 4/1 | value | +0.2 | lost |
| Sat Aug 22 | R9 | Kensington Lane | Likely bet down | 7/2 | 9/5 | short | +1.3 | lost |
| Sat Aug 22 | R7 | Centrodelantero | Price should hold | 13/2 | 9/1 | value | -0.6 | lost |
| Sat Aug 22 | R3 | Ventry Strand | Price may move | 4/1 | 5/2 | short | +2.3 | lost |
| Sat Aug 22 | R1 | Modest Maclean | Likely bet down | 8/5 | 1/1 | short | +0.6 | lost |
| Sat Aug 22 | R1 | Flamboyant | Price should hold | 6/1 | 4/1 | short | +3.8 | won |
| Fri Aug 21 | R8 | Boston's Phinest | Likely bet down | 8/5 | 3/5 | short | +0.8 | won |
| Fri Aug 21 | R7 | Georgia Magic | Likely bet down | 3/1 | 1/1 | short | +3.0 | won |
| Fri Aug 21 | R5 | Seeking Attention | Likely bet down | 5/2 | 3/5 | short | +1.8 | won |
| Fri Aug 21 | R3 | Hurricane Way | Likely bet down | 3/1 | 8/5 | short | +1.4 | lost |
| Fri Aug 21 | R2 | Quick To Accuse | Price may move | 5/1 | 2/1 | short | +2.9 | lost |
| Fri Aug 21 | R1 | Cugino | Likely bet down | 3/2 | 1/1 | short | +0.6 | lost |
| Thu Aug 20 | R8 | Birkin Girl | Price may move | 4/1 | 9/2 | value | +0.6 | lost |
| Thu Aug 20 | R7 | A Little At First | Likely bet down | 2/1 | 8/5 | short | +1.3 | lost |
| Thu Aug 20 | R7 | Spirit Of New York | Price may move | 9/2 | 11/2 | value | +0.6 | lost |
| Thu Aug 20 | R5 | Himothy | Price should hold | 6/1 | 7/2 | short | +6.6 | lost |
| Thu Aug 20 | R3 | Missed Fortune | Likely bet down | 5/2 | 6/5 | short | +2.4 | lost |
| Thu Aug 20 | R1 | Wiki Kane | Likely bet down | 3/1 | 1/1 | short | +1.5 | lost |
| Wed Aug 19 | R8 | Paula's Choice | Likely bet down | 2/1 | 3/5 | short | +1.8 | won |
| Wed Aug 19 | R7 | Celtic Dawn | Likely bet down | 2/1 | 5/2 | value | +0.6 | lost |
| Wed Aug 19 | R5 | Hot Off The Beach | Likely bet down | 7/2 | 6/1 | value | -2.1 | lost |
| Wed Aug 19 | R2 | Concurrently | Likely bet down | 7/2 | 7/2 | short | -0.1 | lost |
| Sun Aug 16 | R9 | Intricate Spirit | Price may move | 11/2 | 13/2 | value | -0.3 | lost |
| Sun Aug 16 | R9 | Gettinby | Likely bet down | 7/2 | 7/1 | value | -2.9 | lost |
| Sun Aug 16 | R8 | Inspeightofcharlie | Likely bet down | 4/1 | 2/1 | short | +1.3 | lost |
| Sun Aug 16 | R7 | Instantly | Likely bet down | 2/1 | 2/1 | short | +0.5 | lost |
| Sun Aug 16 | R7 | Cipriani | Likely bet down | 7/2 | 12/1 | value | -10.0 | lost |
| Sun Aug 16 | R5 | Sweet Azteca | Likely bet down | 6/5 | 1/4 | short | +0.5 | won |
| Sun Aug 16 | R4 | Scene By Me | Likely bet down | 4/1 | 2/1 | short | +1.9 | lost |
| Sun Aug 16 | R3 | Limes Don't Lie | Likely bet down | 3/1 | 5/2 | short | +0.1 | lost |
| Sat Aug 15 | R10 | Cadenza | Likely bet down | 3/1 | 4/1 | value | -0.5 | won |
| Sat Aug 15 | R9 | Survie | Price may move | 3/1 | 9/2 | value | +1.5 | won |
| Sat Aug 15 | R8 | Vronti | Likely bet down | 5/2 | 3/2 | short | +1.0 | won |
| Sat Aug 15 | R7 | Candytown | Price may move | 7/2 | 7/2 | value | +1.0 | lost |
| Sat Aug 15 | R6 | Grand Slam Smile | Likely bet down | 2/1 | 3/5 | short | +1.0 | lost |
| Sat Aug 15 | R2 | Wildcatter | Likely bet down | 3/1 | 2/1 | short | +2.0 | lost |
| Fri Aug 14 | R9 | Miss Vyvyanne | Likely bet down | 5/2 | 5/2 | value | -0.2 | lost |
| Fri Aug 14 | R8 | Danzing Daisy | Price may move | 5/2 | 9/5 | short | +3.2 | lost |
| Fri Aug 14 | R6 | Pokerknightatvees | Price should hold | 7/2 | 10/1 | value | -1.8 | lost |
| Fri Aug 14 | R4 | Zalamo | Price may move | 5/1 | 9/2 | short | +1.4 | lost |
| Fri Aug 14 | R3 | Intellect | Likely bet down | 9/5 | 9/5 | value | -0.1 | won |
| Fri Aug 14 | R2 | Southern Kiss | Likely bet down | 9/5 | 1/1 | short | +1.1 | lost |
| Fri Aug 14 | R1 | First Blessing | Price may move | 9/2 | 11/1 | value | -5.7 | lost |
| Thu Aug 13 | R7 | Shoot It True | Likely bet down | 6/5 | 3/5 | short | +0.4 | won |
| Thu Aug 13 | R7 | Rethink | Price may move | 3/1 | 8/1 | value | -2.4 | lost |
| Thu Aug 13 | R6 | Fionn | Likely bet down | 6/5 | 4/5 | short | +0.3 | lost |
| Thu Aug 13 | R5 | Elite Heat | Likely bet down | 5/2 | 3/1 | value | +0.3 | won |
| Thu Aug 13 | R4 | Majaz | Likely bet down | 9/5 | 2/1 | value | -0.2 | lost |
| Thu Aug 13 | R1 | Liberty's Advance | Price may move | 3/1 | 1/1 | short | +4.0 | lost |
| Thu Aug 13 | R1 | Mr. A. P. | Likely bet down | 6/5 | 4/5 | short | +0.8 | won |
| Wed Aug 12 | R9 | Gum | Price may move | 9/2 | 2/1 | short | +2.5 | won |
| Wed Aug 12 | R5 | Artistic Success | Likely bet down | 3/1 | 5/2 | short | +0.7 | won |
| Sun Aug 9 | R11 | Bostontonian | Price should hold | 13/2 | 10/1 | value | -2.3 | lost |
| Sun Aug 9 | R10 | Ciao Chuck | Likely bet down | 3/1 | 5/2 | short | +1.1 | lost |
| Sun Aug 9 | R6 | Capricious Outcome | Likely bet down | 9/5 | 4/5 | short | +1.6 | lost |
| Sun Aug 9 | R5 | All Star Leigh | Likely bet down | 3/1 | 6/5 | short | +1.3 | lost |
| Sun Aug 9 | R5 | Enterdadragon | Likely bet down | 3/1 | 4/1 | value | +0.0 | lost |
| Sun Aug 9 | R1 | Ulysses Rose | Likely bet down | 9/5 | 4/5 | short | +1.7 | lost |
| Sat Aug 8 | R10 | Rhetorical | Likely bet down | 5/2 | 9/2 | value | -2.0 | lost |
| Sat Aug 8 | R8 | Sweet Rebecca | Likely bet down | 3/1 | 5/2 | short | +0.8 | lost |
| Sat Aug 8 | R8 | Warming | Price may move | 5/1 | 9/5 | short | +4.2 | won |
| Sat Aug 8 | R7 | Write Off Jerry | Price should hold | 6/1 | 9/1 | value | +2.9 | lost |
| Sat Aug 8 | R6 | Conquer We Must | Likely bet down | 4/1 | 9/5 | short | +1.7 | lost |
| Sat Aug 8 | R5 | Fact | Price may move | 4/1 | 7/2 | short | +1.2 | lost |
| Sat Aug 8 | R4 | Code Duello | Likely bet down | 5/2 | 9/5 | short | +1.7 | won |
| Sat Aug 8 | R3 | Yo Daddy | Price may move | 7/2 | 5/1 | value | -0.3 | lost |
| Fri Aug 7 | R10 | Fitz Right | Likely bet down | 3/1 | 7/2 | value | -0.8 | lost |
| Fri Aug 7 | R8 | Joint Venture | Likely bet down | 3/1 | 2/1 | short | +1.3 | lost |
| Fri Aug 7 | R6 | Make Me Money | Likely bet down | 7/2 | 9/5 | short | +1.7 | lost |
| Fri Aug 7 | R3 | Coach Ryan | Likely bet down | 3/1 | 5/2 | short | +0.7 | won |
| Fri Aug 7 | R2 | Midtown Mischief | Likely bet down | 5/2 | 7/5 | short | +1.2 | lost |
| Thu Aug 6 | R8 | A Bourbon For Toby | Likely bet down | 7/2 | 5/2 | short | +0.8 | lost |
| Thu Aug 6 | R7 | Risk Tolerance | Likely bet down | 6/5 | 1/1 | short | +0.0 | won |
| Thu Aug 6 | R4 | Play Good Pay Good | Price should hold | 15/2 | 6/1 | short | +4.1 | lost |
| Thu Aug 6 | R4 | City Blocks | Price may move | 5/1 | 5/2 | short | +2.3 | won |
| Thu Aug 6 | R1 | Nokie | Likely bet down | 5/2 | 6/5 | short | +1.7 | won |
| Sun Aug 2 | R10 | Little Hidden Port | Price should hold | 5/1 | 9/2 | short | +3.4 | lost |
| Sun Aug 2 | R9 | Jolene Fury | Price may move | 2/1 | 5/2 | value | +2.3 | lost |
| Sun Aug 2 | R7 | Nobals | Price should hold | 13/2 | 4/1 | short | +6.2 | lost |
| Sun Aug 2 | R7 | Keewaydin | Price may move | 11/2 | 15/2 | value | -1.7 | lost |
| Sun Aug 2 | R4 | Dividend Recap | Likely bet down | 5/2 | 8/5 | short | +0.9 | won |
| Sun Aug 2 | R3 | O K Rose | Price should hold | 3/1 | 13/2 | value | +1.6 | lost |
| Sun Aug 2 | R2 | Avalon Rose | Price may move | 9/2 | 5/2 | short | +2.7 | won |
| Sun Aug 2 | R1 | Silly Season | Likely bet down | 5/2 | 5/2 | value | +1.0 | won |
| Sat Aug 1 | R12 | Nonconsecutivetrms | Likely bet down | 5/2 | 2/1 | short | +0.6 | won |
| Sat Aug 1 | R11 | Illmatic | Price may move | 4/1 | 5/2 | short | +2.0 | lost |
| Sat Aug 1 | R10 | Seismic Beauty | Likely bet down | 5/2 | 3/2 | short | +1.0 | lost |
| Sat Aug 1 | R9 | Owl | Price should hold | 9/1 | 8/1 | short | +6.7 | lost |
| Sat Aug 1 | R7 | Silkie Sevei | Likely bet down | 4/1 | 9/5 | short | +2.2 | lost |
| Sat Aug 1 | R6 | Booked | Likely bet down | 9/5 | 2/1 | value | -0.6 | lost |
| Sat Aug 1 | R3 | Tuscan Sky | Price may move | 11/2 | 9/2 | short | +1.4 | won |
| Sat Aug 1 | R1 | Maggles Mcgee | Likely bet down | 2/1 | 5/2 | value | +0.4 | lost |
| Fri Jul 31 | R6 | Sogno Di Vino | Price may move | 5/1 | 12/1 | value | -6.1 | lost |
| Fri Jul 31 | R6 | Kokosan | Likely bet down | 7/2 | 9/5 | short | +1.3 | lost |
| Fri Jul 31 | R4 | March Of Time | Price may move | 5/1 | 5/1 | value | +0.9 | lost |
| Fri Jul 31 | R3 | Mursal | Likely bet down | 7/2 | 3/1 | short | +0.2 | won |
| Sun Jul 26 | R9 | Gold Phoenix | Likely bet down | 3/1 | 9/2 | value | -1.7 | won |
| Sun Jul 26 | R8 | Maida | Price may move | 7/2 | 7/1 | value | -1.8 | won |
| Sun Jul 26 | R6 | Samartina | Likely bet down | 4/1 | 11/2 | value | -1.9 | won |
| Sun Jul 26 | R5 | Come On Om | Likely bet down | 3/1 | 3/1 | value | +0.8 | won |
| Sun Jul 26 | R4 | Rabeeba | Price may move | 4/1 | 3/1 | short | +2.1 | won |
| Sat Jul 25 | R11 | Tuthilltown | Price should hold | 9/1 | 9/2 | short | +7.3 | lost |
| Sat Jul 25 | R10 | Cornucopian | Likely bet down | 3/1 | 6/5 | short | +1.8 | lost |
| Sat Jul 25 | R9 | Can't Sleep | Price should hold | 9/2 | 3/1 | short | +5.1 | lost |
| Sat Jul 25 | R8 | Paige Turner | Price should hold | 15/2 | 10/1 | value | +1.8 | lost |
| Sat Jul 25 | R7 | Ventry Strand | Likely bet down | 5/2 | 7/5 | short | +2.1 | lost |
| Sat Jul 25 | R6 | Emerging Market | Likely bet down | 9/5 | 3/5 | short | +1.1 | lost |
| Sat Jul 25 | R4 | Inspeightofcharlie | Likely bet down | 3/1 | 3/1 | short | +0.6 | won |
| Sat Jul 25 | R1 | Kinzlee'scharisma | Likely bet down | 7/2 | 9/5 | short | +2.3 | won |
| Fri Jul 24 | R10 | War And Majesty | Price may move | 4/1 | 9/2 | value | +1.6 | lost |
| Fri Jul 24 | R9 | Spirit Of New York | Price may move | 3/1 | 5/1 | value | +1.2 | lost |
| Fri Jul 24 | R8 | Flash Of Lightning | Likely bet down | 3/1 | 5/2 | short | +1.1 | lost |
| Fri Jul 24 | R7 | Mommy's Turn | Likely bet down | 3/1 | 8/5 | short | +1.3 | lost |
| Fri Jul 24 | R6 | Bad Uncle Barry | Price may move | 9/2 | 3/1 | short | +1.9 | lost |
| Fri Jul 24 | R4 | City Exile | Likely bet down | 2/1 | 1/1 | short | +1.5 | lost |
| Fri Jul 24 | R4 | Lord Bullingdon | Likely bet down | 7/2 | 5/2 | short | +0.5 | lost |
| Fri Jul 24 | R3 | Krissys Star | Price should hold | 15/2 | 15/1 | value | -1.9 | lost |
| Thu Jul 23 | R8 | Suntory Time | Price may move | 11/2 | 11/2 | short | +0.5 | lost |
| Thu Jul 23 | R7 | Celtic Dawn | Likely bet down | 5/2 | 2/1 | short | +0.5 | lost |
| Thu Jul 23 | R6 | Canto Della Terra | Likely bet down | 7/2 | 9/2 | value | -0.3 | lost |
| Thu Jul 23 | R4 | Spirit Of St Louis | Likely bet down | 5/2 | 9/5 | short | +0.3 | lost |
| Thu Jul 23 | R4 | Salamis | Likely bet down | 3/1 | 7/5 | short | +1.1 | won |
| Thu Jul 23 | R2 | Practical Jack | Price should hold | 7/1 | 11/2 | short | +6.3 | lost |
| Thu Jul 23 | R1 | Bounding Along | Likely bet down | 3/1 | 3/1 | short | +0.7 | lost |
| Sun Jul 19 | R11 | Zalamo | Price may move | 4/1 | 5/1 | value | +0.9 | lost |
| Sun Jul 19 | R7 | Fair Question | Price should hold | 13/2 | 15/1 | value | -6.0 | lost |
| Sun Jul 19 | R5 | Pelican Pride | Price should hold | 6/1 | 9/1 | value | -0.6 | lost |
| Sun Jul 19 | R4 | Hot Gossip | Price should hold | 4/1 | 8/1 | value | +0.1 | lost |
| Sun Jul 19 | R3 | Motorious | Likely bet down | 9/5 | 8/5 | short | +0.4 | lost |
| Sun Jul 19 | R2 | Emergency Nine | Price should hold | 11/2 | 3/1 | short | +4.8 | won |
| Sun Jul 19 | R1 | American Grant | Price should hold | 7/1 | 11/1 | value | +0.5 | lost |
| Sun Jul 19 | R1 | Freddy Five Four | Price should hold | 13/2 | 15/2 | value | +0.6 | lost |
| Sat Jul 18 | R11 | Koekkoek | Likely bet down | 3/1 | 3/1 | short | +1.0 | won |
| Sat Jul 18 | R8 | Cy Fair | Likely bet down | 9/5 | 1/2 | short | +0.1 | won |
| Sat Jul 18 | R7 | Centrodelantero | Likely bet down | 4/1 | 8/5 | short | +2.4 | lost |
| Sat Jul 18 | R6 | Net Par | Likely bet down | 3/1 | 3/5 | short | +1.9 | won |
| Sat Jul 18 | R4 | Shape Note | Likely bet down | 7/2 | 9/5 | short | +1.7 | won |
| Fri Jul 17 | R9 | Deep Satin | Price may move | 15/2 | 7/2 | short | +1.6 | lost |
| Fri Jul 17 | R8 | Secured Freedom | Price should hold | 9/1 | 15/1 | value | -4.0 | lost |
| Fri Jul 17 | R5 | Boston's Phinest | Price may move | 6/1 | 2/1 | short | +2.8 | won |
| Fri Jul 17 | R4 | Code Duello | Likely bet down | 7/2 | 5/2 | short | +1.0 | lost |
| Fri Jul 17 | R3 | Charlie's Clock | Likely bet down | 5/2 | 4/5 | short | +1.1 | lost |
| Fri Jul 17 | R2 | Victorious Dream | Price may move | 7/2 | 3/1 | short | +2.8 | won |
| Fri Jul 17 | R1 | Beijing | Likely bet down | 4/1 | 7/2 | short | +0.5 | lost |
| Thu Jul 16 | R7 | English Law | Likely bet down | 6/1 | 2/1 | short | +1.4 | won |
| Thu Jul 16 | R6 | Jadorlinija | Price may move | 15/2 | 15/2 | short | -1.4 | lost |
| Thu Jul 16 | R2 | Irish Goodbye | Likely bet down | 7/2 | 3/1 | short | -0.3 | lost |
ML→close = to-1 points the price moved from the morning line to post. Positive means it shortened. This is descriptive only: because your payout is the final price regardless of when you bet, our “play at” figure is a reference price and not a rule. There is no earlier price to catch and nothing to hold you to. To be unambiguous, because it matters: a flag that closes below that figure is still graded on the public record, win or lose. It does not become a pass after the fact. A run of “short” closes is a sign our number was set against a loose morning line, not the real market.
Our call is an early hold/shorten read set from each flag’s committed board price. Long-priced flags the crowd tends to leave alone hold, short ones get bet down. It is a heuristic on a small sample, shown next to what actually happened so you can watch it prove out or fail in public. Not a bet-timing tip: you are paid the closing price whenever you bet, so a flag we call “likely bet down” is simply a likely pass. The read is versioned: cards locked before August 24, 2026 carry the call they were published with, from one pair of thresholds used at both meets, and cards from that date use thresholds set separately for each track. This column therefore mixes two versions on purpose. A call we have already published is not restated.
Calibration
When we say 30%, do they win 30%?Across every runner we priced, not just the flags, binned by our model win probability against how often they actually won. The probabilities were hash-chained before post, so this is an honest reliability check, not a backtest.
Brier score: lower is better (0 = perfect). Ours and the morning line’s sit within a thousandth of each other, and that is the honest headline: a standalone Brier comparison cannot tell a real model from a plausible one. Both numbers are dominated by the fact that most horses lose, and a model that did nothing but copy the board would score the same as the board.
So we ask the question that separates them: does our number add anything the board does not already contain? Fit the outcome on the market’s estimate alone, then again with ours added, and test whether the second fit is genuinely better.
The answer is suggestive, at the edge of significance, on a sample too small to lean on. We are publishing all of it rather than the flattering part.
The test was chosen and written down before we ran it, by someone other than the person who built the model. That matters more than the result. Anyone can fit models until one of them clears a threshold and then publish that one; the only defence is to fix the method in advance and be bound by whatever it returns. The estimator below, a conditional logit on race choice sets, was specified, written and frozen by a separate reviewer before any of these numbers existed, and we are reporting exactly what it produced, including the two checks that go against us.
Frozen analysis, as of 2026-07-31. Every figure in this section is pinned to the ledger as it stood that day and is deliberately not re-fit as new races are graded. Re-fitting a pre-registered test to newer data is the thing pre-registration exists to prevent. The race and runner counts below are therefore smaller than the calibration counts above, and that is expected, not an error. When it is re-run, it will be re-run in full and dated again.
The pre-registered test is a conditional logit over race choice sets, 138 races, 1,170 runners. Our estimate carries a coefficient of +0.6643 (standard error 0.3013) once the board is already in the model, likelihood-ratio χ²(1) = 4.833, p = 0.0279.
Two robustness checks disagree with that, and they matter more than the headline. Allowing for the fact that horses in the same race are not independent gives a cluster-robust p of 0.0548, the wrong side of the conventional 0.05 line. And when whole races are resampled and the test refit, 41% of those refits fail to reach significance at all. A result that disappears two times in five under resampling is not a finding to build on.
An earlier version of this page reported p = 0.026 from the same data. That number was overstated and we are correcting it. It treated all 1,181 runners as independent observations. They are not: exactly one horse wins each race, and the probabilities are worked out relative to the others in that race, so the real number of independent units is the 138 races, not the runners. Ignoring that makes any result look stronger than it is.
Superseded figure below. The current record is 47-125, -22.62 units, -6.6% ROI. The paragraph that follows is the frozen snapshot from the pre-registered analysis and is not our current performance. It is kept because deleting a figure we once published is not something we do.
Alongside it, the money, as measured on 2026-07-31, when this analysis was run. It is a smaller sample than the running record above and does not match it, because races have been graded since. The running record is the current figure; this one is frozen so the pre-registered analysis cannot be re-fit to newer data. Over 58 settled bets across 16 race days, flat-$2 profit is +7.24 units, an ROI of +6.2% with a 95% range of -46% to +68%, and roughly a 43% chance the true long-run figure is negative. Whole race days were resampled rather than individual bets, because one day carries most of the profit.
We are deliberately not printing a yes or no here. The method and every number are published together so you can weigh them yourself, and the full output is in the machine-readable record. Judge it again at the end of the meet, when there is more of it.
Each circle is one probability band. Its area is how many runners stand behind it, so the two bands holding most of the book are the two that dominate the picture, which is the correct weighting and the thing a row of equal-length bars could not show. On the dashed line means a band did exactly what it said it would.
The gap worth knowing about is the 20–30% band: across 337 runners we priced them at 24% and they won 31% of the time. That is the model being shy in its middle range, not sharp.
The faded circles are bands with fewer than 50 runners (21 between them). They are drawn because leaving them out would be editing the picture, and muted because nothing can be read from them.
The same numbers as a table
| Band | Predicted | Observed | Runners |
|---|---|---|---|
| 0–10% | 6% | 6% | 2045 |
| 10–20% | 14% | 16% | 1544 |
| 20–30% | 24% | 31% | 337 |
| 30–40% | 33% | 32% | 90 |
| 40–50% | 45% | 41% | 17 |
| 50–60% | 53% | 50% | 4 |
Provenance
One hash chain, verifiableThe public ledger is one continuous SHA-256 chain: every card’s lock entry references the exact bytes of the entry before it, so a back-edit anywhere breaks the walk. Chain status: verified ✓ · 949 entries · 54 cards.
SHA 970405a2813327fc…SHA 910012f7fdcbbcbd…SHA cb1ec2f6d1d68ffd…SHA 452a707b645298a8…SHA ba2c741b3ea0c8a2…SHA 4c9c5e8e4aef0d3a…SHA a989d8e7773e6e83…SHA 5d18e4b2450bfe33…SHA 834825237f681453…SHA 7a988efd1ee58c4d…SHA 74b3e1d7629297c4…SHA 7bfff866e6b7172b…SHA f82ed51d5645eb05…SHA ee2f7ccdc08a723a…SHA 99d2c0a8398a0d5d…SHA 81b42c1e625ff520…SHA 833504d9e1be60fe…SHA 38a2c1953e922294…SHA 6b6a065dc0051fd0…SHA e8e8657c2f9469d2…SHA e4a0b565b4004683…SHA 0d4b92f30fa8b903…SHA 750cbac128ab5ed9…SHA b61e301215faf08d…SHA 2a965c9da7b08cdf…SHA 25134c86e30291e6…SHA 69a6d1abd18ee5f8…SHA 41c5263e482e2b27…SHA 5d303a6f6a279314…SHA 32cd1b413d0e3634…SHA cef1963caf274445…SHA 5ca2650e76e9cabf…SHA 3340caa20c7b373e…SHA 3f7a8c2026dc6e00…SHA 2faf53de0ee20de8…SHA 82f43a1c410ca947…SHA 8089db42a62e526a…SHA 7b5952d2150fa514…SHA 8071829086ee07f8…SHA a53e999c04420f8d…SHA bd84ebbadf79d928…SHA a6bf8f5f14aad303…SHA caadf63dc0d61a6a…SHA 30b9596cff166c34…SHA 5270b9fb42b742a4…SHA 36db7c843b6c2c23…SHA 86994caec317123b…SHA 9f6019a8bddda5c0…SHA 4cf82544adf7bce6…SHA 552d58c7f0868dc1…SHA 432d7a35925f5570…SHA 4655d20cf706c2a8…SHA e0bdbe1af7a733c8…SHA 842f3091d513bdb0…Corrections and verification
Two integrity defects were found on 2026-07-26 and are recorded here in full. No card, metadata file, ledger entry, recorded hash, or timestamp proof was rewritten to make either go away.
How to verify a card
Download card.json from any card page and hash it (sha256sum card.json). That value should equal the downloadable artifact hash shown in that card’s “Verifying this card” box. The card’s OpenTimestamps proof commits to those same bytes.
There are four independent evidence layers, answering different questions:
- The append-only ledger and Git history: when the card was committed, and that nothing was edited afterwards.
- The card lock and publication timestamps: that the card existed before first post.
- The OpenTimestamps calendar commitment: independent third-party evidence that those exact bytes existed when we say they did.
- A Bitcoin attestation, once the proof is upgraded: the same evidence anchored in a block.
Layers 1 and 2 establish that a pick was published before post. A Bitcoin confirmation arriving later strengthens the external evidence; it is not what makes the pre-post claim true, and a pending proof does not weaken it.
Card hashes: recorded lock hash vs downloadable file
Cards published before 2026-07-26 were generated on Windows. The lock hash was calculated from CRLF-formatted bytes before Git stored the same JSON with LF line endings, so the recorded hash does not match the file you can download. The selections and JSON values are unchanged. The difference is exclusively line endings, proven byte-for-byte for every affected card. This broke reproducible verification, which is why it is disclosed here rather than described as a formatting detail.
| Card | Downloadable hash | Original lock hash | Difference | OpenTimestamps |
|---|---|---|---|---|
| 2026-07-16-sar | 91f2264a9bd2786d… | 970405a2813327fc… | newline-only | Bitcoin confirmed (block 958263) |
| 2026-07-17-dmr | 5c5738c552644939… | 910012f7fdcbbcbd… | newline-only | Bitcoin confirmed (block 958444) |
| 2026-07-17-sar | eee831ef7500a09f… | cb1ec2f6d1d68ffd… | newline-only | Bitcoin confirmed (block 958444) |
| 2026-07-18-dmr | f054f172d11271ff… | 452a707b645298a8… | newline-only | Bitcoin confirmed (block 958590) |
| 2026-07-18-sar | 7470d5434d899bc6… | ba2c741b3ea0c8a2… | newline-only | Bitcoin confirmed (block 958587) |
| 2026-07-19-dmr | 0a22d8979143b47d… | 4c9c5e8e4aef0d3a… | newline-only | Bitcoin confirmed (block 958756) |
| 2026-07-19-sar | a295b82f5d0ccac7… | a989d8e7773e6e83… | newline-only | Bitcoin confirmed (block 958756) |
| 2026-07-23-dmr | 3c06ef8b29249138… | 5d18e4b2450bfe33… | newline-only | Bitcoin confirmed (block 959238) |
| 2026-07-23-sar | 09ba713f7784c496… | 834825237f681453… | newline-only | Bitcoin confirmed (block 959238) |
| 2026-07-24-dmr | 4e9088b356aa5dd4… | 7a988efd1ee58c4d… | newline-only | Bitcoin confirmed (block 959385) |
| 2026-07-24-sar | 8b399bb0a6fe598b… | 74b3e1d7629297c4… | newline-only | Bitcoin confirmed (block 959385) |
| 2026-07-25-dmr | 6784f29f6adc84a4… | 7bfff866e6b7172b… | newline-only | Bitcoin confirmed (block 959570) |
| 2026-07-25-sar | 7ed9dae36137d5e8… | f82ed51d5645eb05… | newline-only | Bitcoin confirmed (block 959570) |
| 2026-07-26-dmr | 1c5d42b418bbde69… | ee2f7ccdc08a723a… | newline-only | Bitcoin confirmed (block 959652) |
| 2026-07-26-sar | db33d2f0e2962fc1… | 99d2c0a8398a0d5d… | newline-only | Bitcoin confirmed (block 959652) |
Provenance display defects
Cases where the evidence was intact but the site did not show it. Recorded to the same standard as anything else here: what a reader saw, what actually caused it, and how long it lasted.
PD-2026-08-01-01 · 4 cards
Affected: 2026-07-31-dmr, 2026-07-31-sar, 2026-08-01-dmr, 2026-08-01-sar
Window: approximately two days; began when the 07-31 cards published, ending 2026-08-01T18:05:00+00:00
Found by: us, from a failing test
What readers saw. These four card pages rendered with no 'Verifying this card' block: no downloadable artifact hash and no OpenTimestamps status. Cards from 07-25 and 07-26 displayed theirs normally, so the omission read as arbitrary rather than as a build stage that had not run.
Why. The site build rendered pages BEFORE regenerating proof_status.json, and it writes that file into the same tree it reads its inputs from. A build on a clean checkout therefore rendered from whatever proof_status.json happened to be committed, and the committed copy covered 17 of 21 cards -- it did not yet list these four. The renderer found no proof entry for them and emitted no verification block. The build then overwrote the stale file, so a second build produced different bytes from the first.
The proofs were never missing. Not a missing, invalid, expired or mis-targeted proof, and not a hash discrepancy. No card, ledger entry, recorded hash or timestamp proof was altered at any point. Every affected card held a valid timestamp proof committing to its current published bytes throughout.
Effect on the record: No selection, result, grade or published figure changed. The defect was entirely in what the page displayed about verification.
Fixed. scripts/build_deployable_site.py now regenerates record.json, proof_status.json and proof_registry.json BEFORE rendering. Verified from a genuinely clean checkout -- site/ and all three regenerated files deleted -- that two consecutive builds differ in 0 of 208 files and all four cards render their block on the first build.
Still open. The build still writes into its own source tree, which is the property that made this possible. Making the archive root read-only input is scheduled and recorded in docs/known_issues/build_writes_into_its_own_source_tree.md.
Machine-readable: provenance_defects.jsonl
Machine-readable: card_hash_corrections.jsonl (hash-chained, append-only) and proof_status.json.
Metadata proofs
A card’s meta.json holds presentation detail: publish time, weather, per-pick notes. For 2026-07-17 (both tracks) that file was edited after its proof was created, so the original proof commits to the metadata as first published, not to the current file. Both are kept: meta.json.ots is the original-publication proof, and meta.current.json.ots commits to the current bytes, stamped 2026-07-26 and labelled as such. The card hash embedded in the metadata never changed, and the card.json proofs are unaffected. Metadata is presentation, not locked evidence. The card is the locked evidence.
Result entries: provisional grades superseded by chart grades
Provisional results were later superseded by enriched chart results. Both entries remain in the append-only ledger, while the canonical record counts each selection once. Settlement values (win/loss and P/L) agree in every case; the later entry only adds finishing position, closing odds and drift.
| Raw result entries in the ledger | 192 |
|---|---|
| Effective unique results | 184 |
| Chart-enrichment supersessions | 8 |
| Conflicting settlements | 0 |
| Pending selections | 7 |
| Record | 47-125 |
| Voids | 12 |
| Net (flat $2) | -22.62 |
| ROI | -6.6% |
Machine-readable: record.json. It distinguishes raw ledger entries from effective results, so the de-duplication rule is visible rather than something you have to reconstruct.
