Free Analysis Reports - feedback wanted

The sport of kings.
Post Reply
Gcampb
Posts: 14
Joined: Mon Mar 13, 2023 8:42 pm

Hi šŸ‘‹ all

I’ve been working on machine learning projects in Horse Racing, specifically UK & IE markets. I’ve posted in the forum before about previous models I’ve built. One of these is currently under review from a syndicate and I’m hoping to licence it out. However, it’s boring :lol: but it does very well with roi over long term, safe bets and not exactly geared for trading.

Trading and Peter’s instructional videos is how I first got into Horse a racing years ago and I know there’s a hell of a lot of potential for making profits with good execution strategies. One of the reasons, I was such a bad trader :| was lack of data, too much emotion and not following my own rules.

I’ve come full circle and decided to focus on execution strategies that are reliable and profitable, which is why I’m posting here in this forum. I’m looking for feedback, collaboration and hoping to learn something from the more experienced traders here, in return, I want to share openly the data I’m working with.

For the last week, I’ve been sharing a daily analysis reports from a new ML project I’ve been working on in other betting communities and I’ve had a lot of positive feedback and received a lot of help from explerienced handicappers regarding improvements, tweaks and strategies to focus on.

However, it’s the trading community that I’ve not had the chance to engage with.

I’m going to start sharing my reports here in this thread. These reports are generated from a ML model, that’s been trained and tested on 10 years worth of racing data. The report encompasses three models and outputs: a race structure model, a win model and a place model, each producing probabilities. Combined the report ranks runners in a race giving a top 1, 2 and 3.

I ran a structured review of the last 7 days of reports, covering 198 races across UK & IE. The key thing I wanted to understand wasn’t ā€œdid it pick winners?ā€, but whether the outputs contain information that can be exploited with sensible execution. On raw coverage, the rankings held up well: the Top-3 failed to include a single placer in only 16 races, which immediately explains why place-focused structures, pools, and combination bets performed consistently. This is very much a race-narrowing tool rather than a one-shot winner picker.

On straight BSP simulations (Ā£1 flat win stakes, no compounding), performance differed sharply by rank. Rank-1 was the most consistent, returning +58.84 with a 30.7% strike rate and relatively shallow drawdowns. Rank-2 was more volatile but more profitable overall, returning +126.11, driven by much bigger average BSPs. Rank-3, by contrast, was not viable as a standalone input, finishing -49.67 with long losing runs. This degradation across ranks is smooth rather than binary, which is why combining selections works far better than isolating them.

Where things got more interesting from a trading perspective was market disagreement. In races where the model’s Top-1 differed from the BSP favourite (106 races), the market favourite won more often but lost money overall, while backing the model Top-1 returned a +24.9% ROI. The same pattern held for Top-2 disagreement races (145 races), where the model produced a +93.4% ROI versus +17.6% for the market favourite. Strike rate was lower, variance higher, but price inefficiency was doing the work — which feels much closer to how traders think than how tipsters sell.

Finally, race type mattered a lot. The outputs were strongest in National Hunt racing, particularly hurdles and chases, where Top-1 win rates were around 40%+ and Top-3 place coverage exceeded 90%. Flat racing was tougher and more price-sensitive, and I strongly suspect All-Weather (currently grouped under Flat) is a major source of noise — something I’m now splitting out explicitly. The takeaway for me is that this isn’t a finished strategy, but a decision-support layer that seems well suited to execution-led approaches: filtering races, highlighting mispriced runners, and feeding into structured trading or staking plans rather than acting as a signal on its own.

If you want to get involved, I’d really appreciate feedback and to have discussion about trading using these reports.
Today’s report can be downloaded here: https://drive.google.com/file/d/1sjNb6 ... p=drivesdk
csewell1987
Posts: 41
Joined: Wed Feb 14, 2024 1:51 pm

Looks interesting. One initial question, your book seems well off 100% so do you not struggle getting the fair prices you expect?
User avatar
megarain
Posts: 2178
Joined: Thu May 16, 2013 1:26 pm
Contact:

Hiya,

I opened the file at 2am uk tme and just saw the HTML code.

I was expecting to see runners etc, with ratings.

Was I wrong ? or just opened at the wrong time ?

For non-techies (me) you might need to walk thru how to get the reports etc.

I have some time in the next few weeks, and might be willing to get involved.
Gcampb
Posts: 14
Joined: Mon Mar 13, 2023 8:42 pm

https://admindone.com/29-01-26


Please find tomorrows analysis report here :Ā https://admindone.com/29-01-26

It was a pretty quiet day overall, only two meetings, but one race stood out for me. Thaloria, who wasĀ third on the analysis sheet, ran a cracking race to finish third at a massive price (aroundĀ 100/1 on Betfair Exchange, roughly 40/1 with bookies).

What caught my eye at the time was that, while Thaloria was obviously a big price in the market, theĀ model actually had her quite close to the top twoĀ in terms of both win and place probabilities. She wasn’t miles off them on the numbers at all.

My own decision to get involved wasn’t some carefully thought-out strategy. It was more of anĀ emotional reactionĀ to seeing a horse the model clearly respected, but which the market seemed to have completely dismissed, even just for a place.

She travelled well! Seems a number of people managed to hit it from the messages and the tele chat, so I'm guessing we all had the same thoughts on the market price.

On the day as a whole,Ā we actually hit a place in every race, which is always nice to see, but it’s also worth adding a bit of context. This model doesn’t reallyĀ favourĀ flat racing and today was very light on volume, so I wouldn’t read too much into one quiet card. Looking back at the analysis from the last week, we did hit another 100/1 shot previously which was I believe 2nd ranked by the model. So I guess these runners do come up from time to time...

If anything, days like today just set the scene for more interesting situations going forward. With a fuller jumps card tomorrow, there may be more examples where theĀ ordering and probabilities throw up things the market isn’t entirely aligned with

Quick bit of housekeeping:
– Can you let me know if the HTML file opens ok for everyone? I had a bit of a mare trying to get a PDF engine to render the report cleanly, so for now I’ve settled on HTML as the most reliable option.
– I’m also looking to include odds data at the time the report is generated. If anyone knows of aĀ preferably free racing odds API, I’d really appreciate a nudge in the right direction.

Best of luck
Gcampb
Posts: 14
Joined: Mon Mar 13, 2023 8:42 pm

megarain wrote: ↑
Thu Jan 29, 2026 2:00 am
Hiya,

I opened the file at 2am uk tme and just saw the HTML code.

I was expecting to see runners etc, with ratings.

Was I wrong ? or just opened at the wrong time ?

For non-techies (me) you might need to walk thru how to get the reports etc.

I have some time in the next few weeks, and might be willing to get involved.
Totally understandable, it’s a html file, so you need to download it and open it, usually if your on a laptop it will open in your web browser, I’ve posted today’s link live on a site for easier access. I’m struggling getting a decent off engine to work, so have been using html so far but I need to upgrade
sniffer66
Posts: 1857
Joined: Thu May 02, 2019 8:37 am

Do you mind if I ask where you are getting your 10 years of data. I've been running something very similar for the last few months and I'm curious if we are working with the same, or even had a conversation on the Telegram chat from the data site :)
csewell1987
Posts: 41
Joined: Wed Feb 14, 2024 1:51 pm

I notice you mention segregating all weather racing, almost sounds like you dont want to run it. Yesterday's meetings werent classed as flat as the flat season isnt underway yet and were both all weather so something to bare in mind.
csewell1987
Posts: 41
Joined: Wed Feb 14, 2024 1:51 pm

sniffer66 wrote: ↑
Thu Jan 29, 2026 11:47 am
Do you mind if I ask where you are getting your 10 years of data. I've been running something very similar for the last few months and I'm curious if we are working with the same, or even had a conversation on the Telegram chat from the data site :)
I am curious as to what you do with 10 years of data. I can see it from a price point view where repeatable human behaviour may be seen within the data set. However, when focusing on the horse itself, how does 10 years of data matter? You are assigning probability to a horse based on its attributes to come out with a price so isnt x number of form lines for that horse enough?
Gcampb
Posts: 14
Joined: Mon Mar 13, 2023 8:42 pm

csewell1987 wrote: ↑
Thu Jan 29, 2026 12:09 pm
sniffer66 wrote: ↑
Thu Jan 29, 2026 11:47 am
Do you mind if I ask where you are getting your 10 years of data. I've been running something very similar for the last few months and I'm curious if we are working with the same, or even had a conversation on the Telegram chat from the data site :)
I am curious as to what you do with 10 years of data. I can see it from a price point view where repeatable human behaviour may be seen within the data set. However, when focusing on the horse itself, how does 10 years of data matter? You are assigning probability to a horse based on its attributes to come out with a price so isnt x number of form lines for that horse enough?
So the data covers 2015-2025. When testing & training an ML model, I use 2015/16 data to train the model, training in this sense means it learns weightings to allocate for all the features (ie all the data and derived stats from that data, think speed ratings, trainer strike rates over time periods..the model uses more than 100 features). Then on the 2017 data, we test the model. It uses its training to allocate probabilities to all the runners for every race in 2017, I then analyse the data and work out how accurate it was.

If a model looks promising on the first fold, we walkforward tests, so train on 2016/2017 and test on 2018. Or, we train on 2015-2017 and test on 2018. We keep advancing the training & tests right up to 2025.

By this point, we have a good idea of how the model performs. It’s less about knowing the history of a single horse or jockey (though we still need that) and more about the models weightings for particular features.

Edit: reread your question.

So ML is fundamentally a different approach from traditional form/statistical analysis. Rather than me deciding what features are inportant, the model decided this, by training on the circa 10k races per year. What’s interesting about this, is that it takes any emotion out of it, one example I can think of is that this particular model has decided that trainer & jockey strike rates over the last 3 months, matter less than over the last 6.. just an example.

Hope that makes sense
sniffer66
Posts: 1857
Joined: Thu May 02, 2019 8:37 am

Gcampb wrote: ↑
Thu Jan 29, 2026 12:47 pm
csewell1987 wrote: ↑
Thu Jan 29, 2026 12:09 pm
sniffer66 wrote: ↑
Thu Jan 29, 2026 11:47 am
Do you mind if I ask where you are getting your 10 years of data. I've been running something very similar for the last few months and I'm curious if we are working with the same, or even had a conversation on the Telegram chat from the data site :)
I am curious as to what you do with 10 years of data. I can see it from a price point view where repeatable human behaviour may be seen within the data set. However, when focusing on the horse itself, how does 10 years of data matter? You are assigning probability to a horse based on its attributes to come out with a price so isnt x number of form lines for that horse enough?
So the data covers 2015-2025. When testing & training an ML model, I use 2015/16 data to train the model, training in this sense means it learns weightings to allocate for all the features (ie all the data and derived stats from that data, think speed ratings, trainer strike rates over time periods..the model uses more than 100 features). Then on the 2017 data, we test the model. It uses its training to allocate probabilities to all the runners for every race in 2017, I then analyse the data and work out how accurate it was.

If a model looks promising on the first fold, we walkforward tests, so train on 2016/2017 and test on 2018. Or, we train on 2015-2017 and test on 2018. We keep advancing the training & tests right up to 2025.

By this point, we have a good idea of how the model performs. It’s less about knowing the history of a single horse or jockey (though we still need that) and more about the models weightings for particular features.

Edit: reread your question.

So ML is fundamentally a different approach from traditional form/statistical analysis. Rather than me deciding what features are inportant, the model decided this, by training on the circa 10k races per year. What’s interesting about this, is that it takes any emotion out of it, one example I can think of is that this particular model has decided that trainer & jockey strike rates over the last 3 months, matter less than over the last 6.. just an example.

Hope that makes sense

Yup, that pretty much mirrors my entire approach so far, which is why I wondered if we had talked previously on the subject :)

You weren't on RBD data were you ?
Post Reply

Return to ā€œTrading Horse racingā€