Hi all,
Following some useful replies on my recent thread about Greening Close placement speed, I've been doing further analysis and have a related but separate question about venue filtering.
Background.
I've been running a pre-race lay bot in Guardian for just over a week. I've noticed that the most problematic trades — where my closing bets fail to fully match before in-play, leaving a residual position — tend to cluster at specific venues rather than being evenly distributed.
I did some analysis on two years of free Betfair BSP historical data (April 2024 to May 2026) covering around 12,650 selections in my odds range. The findings were clear:-
UK venue median pre-race volumes split quite sharply. High-volume venues like Cheltenham (£80k median), Ascot (£61k), Sandown (£56k), Newmarket (£49k) and Goodwood (£42k) sit well above the dataset median of £34k. Lower-volume venues like Hexham (£30k), Warwick (£29k), Cartmel (£24k), Worcester (£30k) and most Irish venues (£15k-£23k) sit significantly below it.
The win rate of favourites in my odds range is almost identical across all venues — around 20-21% — so the volume difference doesn't affect strike rate. But it does affect how reliably closing bets match in the final 30 seconds, which is where my residual position problem comes from.
Do any of you apply a venue or volume-based filter to your pre-race automation? Specifically:-
1. Do you exclude certain venues entirely, or do you use a live volume condition in Guardian to skip markets below a threshold at the point of arming?
2. If you use a volume condition, what threshold works reliably in practice — and does Guardian's volume condition update frequently enough in the final 2 minutes to be a useful filter?
3. Is manual market removal before the session (removing thin venues from the Guardian list) more reliable than an automated volume condition?
Any real-world experience with this would be really appreciated — particularly from anyone running pre-race automation across a full UK and Irish card.
Many thanks
Venue volume filtering for pre-race automation — manual exclusion vs Guardian condition?
Thanks weemac — exactly what I was hoping to hear.
Could you share a bit more detail on how you've set up the Text Comparison condition for course exclusion?
1. Which field does it compare against — the market name, the event name, or something else in Guardian?
2. How do you handle multiple venues — do you set up one condition per course, or is there a way to exclude multiple venues in a single condition?
3. Is it set up as a condition on your main betting rule (so the lay simply doesn't fire at excluded venues), or as a separate rule entirely?
Any screenshot or example would be brilliant if you have one handy.
Many thanks
Could you share a bit more detail on how you've set up the Text Comparison condition for course exclusion?
1. Which field does it compare against — the market name, the event name, or something else in Guardian?
2. How do you handle multiple venues — do you set up one condition per course, or is there a way to exclude multiple venues in a single condition?
3. Is it set up as a condition on your main betting rule (so the lay simply doesn't fire at excluded venues), or as a separate rule entirely?
Any screenshot or example would be brilliant if you have one handy.
Many thanks
Perfect — exactly what I needed. Really appreciate you sharing the screenshot.
So to confirm my understanding, one Text Comparison condition on the main betting rule, Market Name does not contain any of the following, then a list of all the venues I want to exclude?
I'll build this out with my Irish venue list plus a few thin UK tracks (Hexham, Warwick, Cartmel, Worcester) and test it on Monday.
Will report back on how it performs. Thanks again.
So to confirm my understanding, one Text Comparison condition on the main betting rule, Market Name does not contain any of the following, then a list of all the venues I want to exclude?
I'll build this out with my Irish venue list plus a few thin UK tracks (Hexham, Warwick, Cartmel, Worcester) and test it on Monday.
Will report back on how it performs. Thanks again.
- jamesedwards
- Posts: 5639
- Joined: Wed Nov 21, 2018 6:16 pm
You really don't need to worry about all this. Multi-greening will resolve all your issues.
If there's, say, a 1-in-10 chance of a greening trigger not matching, then greening 10 times will reduce error rate from 1-in-10 to 1-in-10,000,000,000.
If there's, say, a 1-in-10 chance of a greening trigger not matching, then greening 10 times will reduce error rate from 1-in-10 to 1-in-10,000,000,000.
Thanks jamesedwards — reassuring to hear. I've actually already implemented exactly that — 10 triggers at 3-second intervals with an unmatched bets > 0 condition so it stops firing once fully closed. Running it for the first time today so will report back on how it performs in practice on thinner markets.
- jamesedwards
- Posts: 5639
- Joined: Wed Nov 21, 2018 6:16 pm
Make sure your settings mean the live market refresh cycle is not too slow. Ideally at least once every 3 seconds.aljacko1 wrote: ↑Sat May 02, 2026 2:19 pmThanks jamesedwards — reassuring to hear. I've actually already implemented exactly that — 10 triggers at 3-second intervals with an unmatched bets > 0 condition so it stops firing once fully closed. Running it for the first time today so will report back on how it performs in practice on thinner markets.
- ShaunWhite
- Posts: 10736
- Joined: Sat Sep 03, 2016 3:42 am
Or just run a TakeSp rule after you've tried to hedge so that any residual is matched at a favourable (well 0ev actually but at least not -ev) price. Chasing a price with mulpile hedges in an illiquid market will erode your edge more than you think. It's also worth remembering that traded volume doesn't necessarily equate to liquidity (which is what matches you) You can sit there unmatched in big markets too if there's a lot of money ahead of you.aljacko1 wrote: ↑Sat May 02, 2026 2:19 pmThanks jamesedwards — reassuring to hear. I've actually already implemented exactly that — 10 triggers at 3-second intervals with an unmatched bets > 0 condition so it stops firing once fully closed. Running it for the first time today so will report back on how it performs in practice on thinner markets.
Thanks ShaunWhite,
The point about volume not equalling liquidity is something I hadn't fully considered so thanks
On the TakeSP approach — how do you configure it alongside the existing Greening Close rule in Guardian? Is it a separate rule that fires after the GC attempts, and if so how do you prevent the two rules conflicting with each other?
Any guidance on the rule setup would be really useful.
Thanks
The point about volume not equalling liquidity is something I hadn't fully considered so thanks
On the TakeSP approach — how do you configure it alongside the existing Greening Close rule in Guardian? Is it a separate rule that fires after the GC attempts, and if so how do you prevent the two rules conflicting with each other?
Any guidance on the rule setup would be really useful.
Thanks
- ShaunWhite
- Posts: 10736
- Joined: Sat Sep 03, 2016 3:42 am
It's a seperate rule, there's no conflict, it just converts unmatched bets into ones that are matched at SP rather than lapsing.
https://www.betangel.com/user-guide/tak ... ters_.html
https://www.betangel.com/user-guide/tak ... ters_.html
