Chester lowly drawn today
By colin on Saturday, May 26th, 2012We’ve discussed the low draw advantage at Chester a number of times in this blog. Comprehensive analysis of the advantage afforded by a low draw at Chester is also one of the examples covered in the Smartform User Manual.
Despite the number of times the low draw advantage is mentioned, it continues to produce a blind level stakes profit in certain circumstances (in particular sprints over the minimum distance with a decent field size on decent going). Now that the worst of the bad weather is over (and the Chester May meeting is behind us) we can hopefully look forward to decent ground and a return to the rich seam of potential winners that can be discovered by concentrating on those drawn low around the tight Chester circuit.
A useful Smartform query in order to whittle down fields on this basis can be produced as follows:
select course, scheduled_time, distance_yards AS ‘distance’, name, stall_number AS ‘draw’, forecast_price from daily_races join daily_runners using (race_id) where course=”Chester” and meeting_date=CURDATE() and stall_number < 3 order by scheduled_time, stall_number;
course | scheduled_time | distance | name | draw | forecast_price |
---|---|---|---|---|---|
Chester | 2012-05-26 14:25:00 | 1338 | Tyson The Byson | 1 | 33/1 |
Chester | 2012-05-26 14:25:00 | 1338 | Sojoum | 2 | 5/1 |
Chester | 2012-05-26 14:55:00 | 1338 | Asian Trader | 1 | 7/4 |
Chester | 2012-05-26 14:55:00 | 1338 | Red All Over | 2 | 66/1 |
Chester | 2012-05-26 15:25:00 | 2499 | Gabrial’s King | 1 | 6/1 |
Chester | 2012-05-26 15:25:00 | 2499 | Singalat | 2 | 9/2 |
Chester | 2012-05-26 16:00:00 | 1542 | Hot Rod Mamma | 1 | 33/1 |
Chester | 2012-05-26 16:00:00 | 1542 | Viva Ronaldo | 2 | 5/1 |
Chester | 2012-05-26 16:35:00 | 2275 | Watered Silk | 1 | 12/1 |
Chester | 2012-05-26 16:35:00 | 2275 | Look Left | 2 | 16/1 |
Chester | 2012-05-26 17:10:00 | 2949 | Silk Drum | 1 | 12/1 |
Chester | 2012-05-26 17:10:00 | 2949 | Cape Express | 2 | 6/1 |
Chester | 2012-05-26 17:45:00 | 1338 | Waking Warrior | 1 | 13/2 |
Chester | 2012-05-26 17:45:00 | 1338 | Rutterkin | 2 | 16/1 |
Chester | 2012-05-26 18:15:00 | 1338 | Blown It | 1 | 7/1 |
Chester | 2012-05-26 18:15:00 | 1338 | Lucky Dan | 2 | 20/1 |
16 rows in set (0.10 sec)
Of course, we may take the view that those we wish to look more closely at a wider range of criteria (say the lowest half of the field), or an even narrower set of criteria. In this regard, one of the keys to using draw advantage effectively is filtering by the number of runners in any race, so let’s discover that data as follows:
select count(name) AS ‘runners’, course, scheduled_time, distance_yards from daily_races join daily_runners using (race_id) where course=”Chester” and meeting_date=CURDATE() group by scheduled_time;
runners | course | scheduled_time | distance_yards |
---|---|---|---|
6 | Chester | 2012-05-26 14:25:00 | 1338 |
10 | Chester | 2012-05-26 14:55:00 | 1338 |
7 | Chester | 2012-05-26 15:25:00 | 2499 |
12 | Chester | 2012-05-26 16:00:00 | 1542 |
11 | Chester | 2012-05-26 16:35:00 | 2275 |
9 | Chester | 2012-05-26 17:10:00 | 2949 |
12 | Chester | 2012-05-26 17:45:00 | 1338 |
11 | Chester | 2012-05-26 18:15:00 | 1338 |
8 rows in set (0.10 sec)
Generally speaking, races with fewer than 10 runners declared are less compelling from a draw advantage perspective. Notice we’ve also included the distance of each race – again, races over distances beyond a mile are also less interesting (with some exceptions) from a draw perspective.
Thus, the 2.55, 4.0, 4.35, 5.45 and 6 pm races are the most interesting from a draw perspective today, so that may be the richest seam to concentrate on using the first query above. Let’s hope the bias shows through again, since there are some juicy prices on offer about low drawn runners, as you can see from the forecast prices displayed above.
Hello again Frankel
By colin on Saturday, May 19th, 2012It’s not very often you get an equine superstar, certainly not every year (though the racing media would have you believe there is), but Frankel is one.
Not much to say that hasn’t been said – surely if the real Frankel turns up then the only question is what will finish second? Strong Suit would have been a very interesting contender, but alas does not appear. Excelebration is obviously the form pick for second, though not many Exceed and Excel’s progeny do well over a mile, and we’d normally be looking to oppose Excelebration for second spot if the opposition weren’t so inferior by comparison. Not sure what with in this year’s field – it may be that there is better to come from Dubawi Gold. But with any luck we won’t be talking about the “also rans” later this afternoon.
Pace in Victoria Cup
By colin on Saturday, May 12th, 2012The big handicap race of the day is the Victoria Cup at Ascot, worth over 50k to the winner, with a massive field of 24 in contention.
The jury is out on draw bias at Ascot – supposedly high numbers are favoured, to the stands side of the course, but with the stalls being positioned in the centre of the course over a straight 7 furlongs, this is just the sort of race where the way the race unfolds, via pace, should be more important than draw.
Typically in these situations we will want to look for the paciest runners in order to predict how the race will unfold and which horses will lead the pace in the race, then narrow the field down to those horses that are drawn near the pace.
In order to predict the pace, we’ll use past in-race comments for each of the contenders, as found in Smartform. There are various programmatic ways of parsing previous comments to come up with those contenders that show the highest probability of racing prominently, as we’ve discussed before in this blog.
Today, the percentage likelihood of leading throws up the following shortlist (shown for each runner alongside the draw, with stall position and forecast SP):
White Frost, 0.11, 7, 12/1
Nasri, 0.11, 21, 20/1
Rodrigo De Torres, 0.10, 18, 14/1
Cool Marble, 0.10, 3, 25/1
Benandonner, 0.09, 9, 20/1
Brae Hill, 0.06, 8, 12/1
Pravda Street, 0.06, 16, 33/1
Kakatosi, 0.06, 24, 20/1
King Of Jazz, 0.06, 5, 10/1
This is a tricky prognosis – the fact is there is no clear side of the track where pacier runners are gathered, with those likeliest to race prominently (based on past performance) racing from stalls 3, 7, 18 and 21. It’s therefore possible in a field of 24 that two groups may develop towards the stands rail and the far rail, based on this.
The question then becomes which group will have the most pace, and possibly which part of the track is riding quickest. Unfortunately, yesterday’s results at Ascot offer no clues since the fields were so small. With regard to where the greatest pace is, a further look down the front runners list seems to indicate the strongest pace will indeed be on the near side (ie. high numbers), though it’s a marginal call.
As such, we’ll be looking at runners drawn 13 to 24 inclusive and ignoring the half of the field drawn low on the inside rail. Additionally, on soft to heavy ground, whilst the pace of the race might come from front runners, it’s unlikely the winner will be leading from pillar to post over 7 furlongs, so hold up horses that can come from off a strong pace may be favoured. Fortunately there’s a similar program that we can run from Smartform to show hold up horses in the race. Many horses have raced with varying characteristics, but Fathsta and Lightning Cloud and Space Station catch the eye as hold up horses in stalls 14, 15 and 17 respectively, along with New Leyf in stall 23.
Nasri is also interesting, 3rd in this last year having disputed the lead for most of the way, but now 2 lbs lower.
With a few of the bookmakers paying 5 places, the shortlisted horses are Fathsta, Space Station and Nasri, largely based on the fact that they should all go on the ground (backed up by reasonable speed figures) and the larger prices available on these in such a cavalry charge.
Whilst trying to solve the puzzle is part of the fun of horseracing, betting strength should be based on degree of confidence in having solved the puzzle. As should be clear from this blog post, with so many variables and marginal calls going in to this conclusion, stakes will be small on this particular occasion!
2000 Guineas by sire
By colin on Saturday, May 5th, 2012No specific Smartform queries for today but we will share some analysis of the 2000 guineas which uses Smartform.
The subject of the analysis is the race of the day, the first classic of the 2012 Flat season for colts over 1 mile at Newmarket, the 2000 Guineas.
The logic behind the analysis is that form is often a difficult measure when it comes to assessing likely improvement in lightly raced colts who are improving dramatically and who are often unraced over the exact conditions of today.
So, given the horses themselves may be showing us less from their form than we would like to see, we can corroborate their credentials for today’s race by looking at the performance of their sire’s other progeny – data which is all available in Sireform. In this case we are looking to 3 factors – the improvement rate in 3 year olds, performance over 1 mile, and performances on soft going.
And the winner is…
Well, the 3 horses that rank highest by taking an average of these measures are:
1. Caspar Netscher
2. Red Duke
3. Hermival
Red Duke’s average is skewed by high scores for improvement and going, but since there is a poor distance score we should exclude it from the list.
That still leaves us with a 25/1 shot and a 20/1 shot.
Preference is for Caspar Netscher, each way or on the spread index which pays out on fourth place.
Trainers with runners at Sandown
By colin on Saturday, April 28th, 2012Sandown today represents one of the more unusual meetings on the racing calendar, with its combination of top class jump racing mixed with top class flat racing. As such, we see Flat training giants of the like of Henry Cecil rubbing shoulders with their jumps equivalents, such as Paul Nicholls.
Using Smartform we can identify exactly which trainers have runners at Sandown and produce various statistics off the back of this. This sort of query is often a useful prerequisite to working out the relative strike rate of each trainer with runners, for example.
Here, however, we will get the trainer names and show a simple count of the number of runners for each by using the group function. We’re interested in a count from those trainers fielding the largest team to those trainers fielding only one runner.
This can be done as follows:
mysql> select count(trainer_id) AS ‘#Runners’, trainer_name AS “Trainer” from daily_runners join daily_races using (race_id) where meeting_date=CURDATE() and course=”Sandown” group by trainer_name order by count(trainer_id) DESC;
#Runners | Trainer |
---|---|
6 | P F Nicholls |
5 | N J Henderson |
5 | D Pipe |
4 | P J Hobbs |
3 | J H M Gosden |
3 | Sir H R A Cecil |
3 | S bin Suroor |
3 | Miss V Williams |
2 | W Greatrex |
2 | D T Hughes |
2 | N A Twiston-Davies |
2 | A M Balding |
2 | M J Attwater |
2 | G L Moore |
2 | D McCain Jnr |
2 | Evan Williams |
1 | C G Cox |
1 | N Quinlan |
1 | Ian Williams |
1 | R C Guest |
1 | S Gollings |
1 | John Berry |
1 | M H Tompkins |
1 | B G Powell |
1 | C J Mann |
1 | T T Clement |
1 | A W Carroll |
1 | R Hannon |
1 | W S Kittow |
1 | Simon Earle |
1 | E F Vaughan |
1 | Miss H C Knight |
1 | D K Ivory |
1 | A King |
1 | M Keighley |
1 | Mrs L Wadham |
1 | J P Ferguson |
1 | Dr R D P Newland |
1 | E J Alston |
1 | Nick Williams |
1 | George Baker |
1 | R Lee |
1 | S Kirk |
1 | N J Gifford |
1 | M Appleby |
1 | A P O’Brien |
1 | W Jarvis |
1 | J W Mullins |
1 | P Phelan |
1 | Jamie Snowden |
1 | Dr J D Scargill |
1 | Mrs Mary Hambro |
1 | Jonjo O’Neill |
1 | R Varian |
1 | B Ellison |
1 | R Charlton |
1 | J R Jenkins |
1 | G McPherson |
1 | E De Giles |
1 | M Scudamore |
1 | Miss E C Lavelle |
1 | M R Hoad |
1 | R H Buckler |
63 rows in set (0.09 sec)
So no surprise that the top stables in both flat and jumps are best represented today, and some testament to what a classy day’s racing Whitbread day is (though now appears to be bet365 day?).
As for the trainers mentioned, on the Flat Henry Cecil weighs in with an impressive 14 day strike rate (according to Smartform calculations) of 24%, whilst John Gosden and Saeed Bin Suroor are languishing on 8% and 7% respectively.
Over the jumps, Paul Nicholls’ strike rate is 18% in the last 14 days and Nicky Henderson’s is an impressive 26% from 38 runners.
2 year old racing by foaling date
By colin on Saturday, April 21st, 2012As the flat season gets into its swing we will start to see more and more two year old racing. At this time of year in particular there is very little form to go on. In order to predict outcomes, punters have to rely instead on stable whispers, the bloodlines and expense of the horses in question, and the records of their handlers in these type of races as well as their current overall form. We can add to this some signals from the market once the horses emerge into the paddock at the course for the first time.
However, there is an often ignored and occasionally hard-to-find form element that has great significance in the early part of the season – that is the actual foaling date (ie. birthday) of the horse in question, rather than their “official” birthday – ie. 1st Jan. As a proportion of age, the month or two differences you find in foaling dates are of course significantly greater early in the career of a two year old, though these will diminish in significance over time. Identifying foaling dates and ranking them can be a laborious process. Fortunately, 2 year old foaling dates are simple to identify and rank in Smartform from the earliest to the latest date. Moreover, we can automate the search of 2 year old races and subsequent ranking of each race by age of contender.
Below are the queries you need – applied to today’s racing.
First, let’s identify all the two year old races in the database for today’s racing:
mysql> select race_id, scheduled_time, course, age_range from daily_races where age_range LIKE “%2%” and meeting_date= CURDATE();
race_id | scheduled_time | course | age_range |
---|---|---|---|
397147 | 2012-04-21 18:00:00 | Nottingham | 2YO only |
1 row in set (0.10 sec)
Next, let’s use this race_id to retrieve basic details of all horses competing in it and at the same time rank them by age:
mysql> select trainer_name, jockey_name, name, foaling_date, forecast_price from daily_races join daily_runners using (race_id) where race_id=”397147″ order by foaling_date;
trainer_name | jockey_name | name | foaling_date | forecast_price |
---|---|---|---|---|
D Shaw | D Swift | Top Boy | 2010-02-02 | 20/1 |
M R Channon | Charles Bishop | Effie B | 2010-02-15 | 2/1 |
M Johnston | R Ffrench | Marshland | 2010-02-18 | 3/1 |
M R Channon | S Hitchcott | Golac | 2010-03-28 | 8/1 |
K A Ryan | Amy Ryan | Bapak Bangsawan | 2010-05-06 | 7/4 |
5 rows in set (0.00 sec)
Easy. We can also automate this with a simple script for all races on any given day – basically saving the race_ids from the first query, and looping over them with the second query. A script is available for Smartform members that does just this.
By the way, on the above evidence alone, the late foaling date of the favourite, Bapak Bangsawan, makes him look quite vulnerable, doesn’t it?
Grand National contenders ranked by prize money
By colin on Saturday, April 14th, 2012Prize money won to date is often touted as a better measure of class than any other attribute in horseracing, including the class of races won.
To be sure, it’s not a bad marker, and it’s one of the many attributes available in our programmatic database, Smartform.
But how to use this attribute? Let’s start with total prize money won by each horse.
We can test this for the favourite in the Grand National – here, we want to take the sum of all historic prize_money, limited to the record over the race type in question, chases, as follows:
mysql> select SUM(prize_money) AS ‘total prizes’ from historic_races JOIN historic_runners USING (race_id) where name=”Synchronised” and race_type=”Chase” and (unfinished IS NULL OR unfinished != “Non-Runner”);
Total prizes |
---|
475425.26 |
1 row in set (2.15 sec)
Note the inclusion in the query statement of a subclause to exclude races where the horse in question has been a non-runner. So far so good, but whilst this may tell us something about class over the horse’s whole career, it does not tell us much about its recent performances. So let’s constrain the time period to the last year and a bit.
select SUM(prize_money) AS ‘total prizes’ from historic_races JOIN historic_runners USING (race_id) where name=”Synchronised” and meeting_date>”2011-02-02″ and race_type=”Chase” and (unfinished IS NULL OR unfinished != “Non-Runner”) ORDER BY historic_races.meeting_date DESC;
Total prizes |
---|
372633.61 |
1 row in set (0.43 sec)
So we’re happy with the time period – and also that we can obtain total prize money for each contender. But how to compare all the runners – is ranking them by their total a fair representation of ability? What if some runners raced 10 times and other raced once? Their average prize should enable a fair comparison, as follows:
>select AVG(prize_money) from historic_races JOIN historic_runners USING (race_id) where name=”Synchronised” and meeting_date>”2011-02-02″ and race_type=”Chase” and (unfinished IS NULL OR unfinished != “Non-Runner”);
AVG(prize_money) |
---|
124211.202148 |
1 row in set (0.43 sec)
Let’s check back over the runs of Synchronised to sanity check this average:
> select finish_position, unfinished, prize_money from historic_races JOIN historic_runners USING (race_id) where name=”Synchronised” and meeting_date>”2011-02-02″ and race_type=”Chase” and (unfinished IS NULL OR unfinished != “Non-Runner”) ORDER BY historic_races.meeting_date DESC;
finish_position | unfinished | prize_money |
---|---|---|
1 | NULL | 284750.00 |
1 | NULL | 80172.41 |
NULL | Pulled Up | NULL |
3 | NULL | 7711.20 |
4 rows in set (0.41 sec)
There’s a mistake here. MySQL assumes because the result of prize money is NULL for one of the races, when calculating the average, that the average is only calculated over 3 races and not 4.
We can get around this with a trick to treat NULL values in prize money as zeros, which is actually what we want here, so that the average is calculated correctly, as follows:
select AVG(COALESCE(prize_money,0)) from historic_races JOIN historic_runners USING (race_id) where name=”Synchronised” and meeting_date>”2011-02-02″ and race_type=”Chase” and (unfinished IS NULL OR unfinished != “Non-Runner”);
AVG(COALESCE(prize_money,0)) |
---|
93158.401611 |
1 row in set (0.42 sec)
If we do this for every runner, we can start to rank them. Typically, this type of operation is much easier using a programming language interfacing with Smartform – we show examples with Perl and R using Smartform elsewhere on the site – running the above query for every runner and saving results. An example output from such a program which calculates average prize money won, run over the Grand National contenders today, is as follows:
Key: Race time, course, form figures, name, average prize money, forecast price.
16:15, Aintree , 1/1121-4 , Ballabriggs , 179611.33 , 13.00
16:15, Aintree , 3-P7311 , Synchronised , 93158.40 , 8.00
16:15, Aintree , 144P3/4- , State of Play , 50445.00 , 34.00
16:15, Aintree , 2-133F5 , Organisedconfusion, 32098.06, 21.00
16:15, Aintree , 6741UP , Alfa Beat , 21655.24 , 34.00
16:15, Aintree , 01/35-23 , Planet Of Sound , 21377.50 , 26.00
16:15, Aintree , 18P-13P , Weird Al , 19542.50 , 34.00
16:15, Aintree , 1/321-82 , Junior , 19298.00 , 11.00
16:15, Aintree , 11PB-P1 , West End Rocker , 14067.50 , 11.00
16:15, Aintree , 2F-8511 , Calgary Bay , 13634.50 , 26.00
All done with a Smartform and Perl script.
On the strength of class (remembering that prize money is the best indication of that), we would therefore expect the top few contenders above to be involved at the finish.
Most valuable Flat races today
By colin on Saturday, April 7th, 2012As the Flat season is yet to get into full swing, the racing fare is still jumps dominated. The Irish National followed by the Aintree meeting next week will keep it that way for a couple of Saturdays to come. However, we’re mainly concerned with Flat racing analysis here at the blog (though there will be an exception for the National next Saturday), and we can use Smartform (which carries full data for both codes in UK and Ireland) to tell us what the breakdown is.
Prize money is usually a good indicator of where the quality racing lies, so let’s use the Smartform daily updates to rank all races by prize money under both codes today, with the following query:
>select penalty_value, race_title, scheduled_time, course from daily_races where meeting_date=CURDATE() order by penalty_value DESC;
The ‘order by penalty_value DESC’ part of the query simply means ranking the query results from highest prize to lowest. If you’re using MySQL via one of the many MySQL interfaces (such as Sequel Pro for the Mac), you can manipulate your query results by point and click to re-order and rank for small queries such as this.
Anyway, here’s the result of listing all races by prize money on offer for today using the query above:
penalty_value | race_title | scheduled_time | course |
---|---|---|---|
32490.00 | Read Nicholls And McCain On Betfair Handicap Chase (Betfair Chase Series Final) | 2012-04-07 14:25:00 | Haydock |
32490.00 | Betfair. Don’t Settle For Less Handicap Hurdle (Betfair Hurdle Series Final) | 2012-04-07 14:55:00 | Haydock |
32490.00 | Betfair. For Better Odds Levy Board Handicap Chase | 2012-04-07 15:30:00 | Haydock |
31125.00 | Betfred Royal Mile Handicap | 2012-04-07 15:50:00 | Musselburgh |
26000.00 | Cork Stakes (Listed) | 2012-04-07 14:50:00 | Cork |
18714.00 | Betfred Mobile Sports Snowdrop Fillies’ Stakes (Listed) | 2012-04-07 14:40:00 | Kempton |
13000.00 | Friday Evening Racing Handicap | 2012-04-07 16:00:00 | Cork |
13000.00 | Mallow Town Summer BBQ Evening July 13th Handicap | 2012-04-07 14:20:00 | Cork |
12938.00 | Betfred The Bonus King Whistlejacket Conditions Stakes | 2012-04-07 14:45:00 | Musselburgh |
12938.00 | Betfred Goals Galore Handicap (London Mile Qualifier) | 2012-04-07 14:05:00 | Kempton |
12660.00 | SIS Handicap Chase | 2012-04-07 15:40:00 | Newton_Abbot |
12450.00 | Betfred ‘Double Delight’ Conditions Stakes | 2012-04-07 16:20:00 | Kempton |
12450.00 | Betfred ‘When Both Teams Score’ Fillies’ Conditions Stakes | 2012-04-07 15:45:00 | Kempton |
12450.00 | Betfred Bonus King Queen’s Prize Handicap | 2012-04-07 15:15:00 | Kempton |
10006.00 | Irish Stallion Farms E.B.F. Fillies Maiden | 2012-04-07 15:25:00 | Cork |
9747.00 | Find Live totescoop6 Information At totepool.com Handicap Chase | 2012-04-07 15:55:00 | Carlisle |
9314.00 | Irish Stallion Farms E.B.F. Fillies Maiden | 2012-04-07 16:30:00 | Cork |
8410.00 | Betfred ‘Goals Galore’ Handicap | 2012-04-07 15:20:00 | Musselburgh |
8092.00 | Betfred ‘Hat Trick Heaven’ Handicap | 2012-04-07 16:55:00 | Kempton |
7148.00 | Betfair Brings You Better Value Novices’ Chase | 2012-04-07 13:50:00 | Haydock |
7148.00 | Betfair Remembers Tim Molony Handicap Chase | 2012-04-07 16:40:00 | Haydock |
6900.00 | Best Dressed Lady & Gent (C & G) Maiden | 2012-04-07 17:30:00 | Cork |
6498.00 | Better Prices On Betfair Mobile ‘Fixed Brush’ Novices’ Handicap Hurdle | 2012-04-07 16:05:00 | Haydock |
6210.00 | Mallow.ie Apprentice Handicap (50-70) | 2012-04-07 17:00:00 | Cork |
5175.00 | Betfred ‘Double Delight’ E.B.F. Maiden Stakes | 2012-04-07 17:00:00 | Musselburgh |
4874.00 | Bet totequadpot Text tote To 89660 Novices’ Chase | 2012-04-07 14:50:00 | Carlisle |
3946.00 | Betfred Bonus King Bingo/British Stallion Studs E.B.F. Maiden Stakes | 2012-04-07 13:35:00 | Kempton |
3899.00 | St Austell Brewery Handicap Chase | 2012-04-07 14:30:00 | Newton_Abbot |
3881.00 | Betfred ‘When Both Teams Score’ E.B.F. Maiden Stakes | 2012-04-07 14:10:00 | Musselburgh |
3422.00 | South West Racing Club Handicap Hurdle | 2012-04-07 17:20:00 | Newton_Abbot |
3422.00 | Mike Wilding Birthday Celebration ‘National Hunt’ Novices’ Hurdle | 2012-04-07 15:05:00 | Newton_Abbot |
3249.00 | Free Racing Post Form At totepool.com Handicap Chase | 2012-04-07 17:05:00 | Carlisle |
3249.00 | Bet totescoop6 Text tote To 89660 Novices’ Handicap Hurdle (Div 1) | 2012-04-07 13:45:00 | Carlisle |
3249.00 | Bet totescoop6 Text tote To 89660 Novices’ Handicap Hurdle (Div 2) | 2012-04-07 14:15:00 | Carlisle |
3249.00 | Bet totepool Text tote To 89660 Handicap Hurdle | 2012-04-07 16:30:00 | Carlisle |
2738.00 | Newton Abbot Races Handicap Chase | 2012-04-07 16:45:00 | Newton_Abbot |
2599.00 | totepool Mobile Text tote To 89660 Claiming Hurdle | 2012-04-07 15:25:00 | Carlisle |
2395.00 | Keith And Ginny Bell Ruby Wedding Novices’ Handicap Hurdle | 2012-04-07 16:10:00 | Newton_Abbot |
2395.00 | RNIB Mares’ Maiden Hurdle | 2012-04-07 13:55:00 | Newton_Abbot |
2264.00 | Betfred Bonus King Bingo Handicap | 2012-04-07 17:35:00 | Musselburgh |
2264.00 | Betfred Still Treble Odds On Lucky 15’s Handicap | 2012-04-07 16:25:00 | Musselburgh |
1848.00 | Check Betfair Before You Bet Standard Open NH Flat Race | 2012-04-07 17:15:00 | Haydock |
1754.00 | Follow totepool On Facebook And Twitter Standard Open NH Flat Race | 2012-04-07 17:40:00 | Carlisle |
43 rows in set (0.09 sec)
What does this tell us? Well, 3 jumps races are still the most valuable as we thought. Looking at the race titles, you also can’t help but notice that Betfair and BetFred are pumping a lot of cash into sponsorship at the moment (!) and Betfred have sponsored the two most valuable Flat races at different courses.
We can easily alter the original query to see Flat racing only (as opposed to all racing) as follows:
>select penalty_value, race_title, scheduled_time, course from daily_races where meeting_date=CURDATE() and race_type = “Flat” order by penalty_value DESC;
And if we want to exclude Irish racing, add a further qualifier as follows:
>select penalty_value, race_title, scheduled_time, course from daily_races where meeting_date=CURDATE() and race_type = “Flat” and country != “IRE” order by penalty_value DESC;
This will leave us with racing at Musselburgh and Kempton, only, and the most valuable race at each course at the top of the query. So, if betting on quality Flat races is part of the betting plan, then the 3.50 Royal Mile Handicap at Musselburgh (worth over 30k in prize money) and the Listed race for fillies at Kempton (the 2.40, worth c. 20k) are the races to focus on.
Of those, the non-handicap looks of interest. No detailed race analysis today, but Night Lily catches the eye at a double figure price, having finished a close second in this last year.
Welcome to the Flat 2012!
By colin on Saturday, March 31st, 2012There’s been a break from the blog this winter, but it’s now time to get back into it with the start of the Flat.
Given a race as rich as the Dubai World Cup today it seems a bit traditionalist to herald the start of the Flat with an analysis of the Lincoln Handicap, but that’s just what we’re going to do.
We wrote about Lincoln trends this time last year and not much has changed in that there is only one more year to add.
However, we can do a lot more to validate trends in terms of Smartform research. So, here’s the full query in Smartform this time around for the benefit of all subscribers to the database:
>select race_name, course, meeting_date, name, age, weight_pounds AS ‘weight’, historic_races.official_rating AS ‘OR’, trainer_name AS ‘trainer’, jockey_name AS ‘jockey’ from historic_races join historic_runners using (race_id) where race_name LIKE “%Lincoln%” and prize_money > 50000 and finish_position=1;
Notice that specifying race_name LIKE “%Lincoln%” alone (in other words retrieving all races that meet the condition of containing the word “Lincoln”) throws up many false positives, including lots of Lincoln trial races. A little lateral thinking goes a long way when working with horseracing data – here we’ve simply added the qualifying criteria that prize money must be over 75k and hey presto we get the Lincoln winners’ summary details for every year in the database, including 2006 and 2007, the years when the Lincoln was run at Redcar and Newcastle respectively.
A little trial and error is required with the prize money element in the query, but knowing the approximate value of the Lincoln helps (and if you don’t, you can find out easily enough by adding that field name to the query and seeing exactly how much added_money has gone in to Lincoln prizes in the past). Basically it’s always useful when working with racing data to get to know the ins and outs of racing as well as how to run queries on the data. Anyway, here are the results of the above query (excluding race_name):
What trends can we see?
Well, many similar to the ones we found last year, of course. Except that one of the stronger trends we identified just by looking at the winners was that 4 year olds had dominated the winners podium – and last year a six year old won it.
Let’s examine this trend a little more closely, since it’s rightly pointed out that winner trends can be misleading without considering the whole data. In other words, the statistic that 4 year olds have won the last 6 out of 9 runnings (ie. two thirds of recent renewals) would be meaningless if the number of 4 year olds running as a proportion of the whole field had also been approximately two thirds over the past 9 years.
Let’s turn to Smartform again to analyse this. What we’re looking for is the distribution of runner ages for all runners in the Lincoln over the past 5 years – how many were 4 year olds, 5 year olds and so on, and what proportion did these represent of the total.
First off, let’s see how many runners were entered over the time we are looking at:
Now, how were those runners distributed by age?
mysql> select age, count(name) AS ‘runners’ from historic_races join historic_runners using (race_id) where race_name LIKE “%Lincoln%” and added_money > 75000 group by age;
+------+---------+
| age | runners |
+------+---------+
| 4 | 65 |
| 5 | 61 |
| 6 | 49 |
| 7 | 22 |
| 8 | 8 |
| 9 | 1 |
| 10 | 2 |
+------+---------+
(Nb. The ‘group by’ function is a useful trick for interrogating data distribution by any given category.)
What conclusions can we draw from this? Does the data support the theory that 4 year olds are showing a high win ratio over the past 9 years?
Very much so – despite representing only 65 of the 208 Lincoln runners (so just under one third), they have produced two thirds of the winners.
What other trends look worth investigating further from our original query? Plenty, but let’s focus on one other – trainer. In the last 9 runnings, two trainers have won the race more than once – Mark Tompkins and William Haggas.
So let’s interrogate this “trend” to see how significant it is. (We’ll avoid the purely academic exercise in the case of Mark Tompkins, since he has no runner today.) For William Haggas, let’s see how many runners he has sent to compete in the Lincoln over the past 9 years, when they ran and where they have finished, so that we can understand his runners to winners ratio:
> select name, finish_position, scheduled_time from historic_races join historic_runners using (race_id) where race_name LIKE “%Lincoln%” and added_money > 75000 and trainer_name LIKE “%Haggas%”;
+--------------+-----------+-----------------+
| meeting_date | name | finish_position | +--------------+-----------+-----------------+ | 2007-03-31 | Very Wise | 1 | | 2008-03-22 | Very Wise | 14 | | 2010-03-27 | Penitent | 1 | +--------------+-----------+-----------------+ 3 rows in set (0.17 sec)
2 winners out of 3 runners. Not bad… William Haggas also trained High Low to win the Lincoln in 1992, before Smartform records begin. So he certainly knows how to train the winner of this race.
What 4 year olds are running in this year’s renewal, and who are their trainers? For this we turn to the automatically updated daily_race and daily_runner tables.
mysql> select forecast_price AS ‘betting’, course, meeting_date, name, weight_pounds, daily_runners.official_rating, trainer_name, jockey_name from daily_races join daily_runners using (race_id) where meeting_date = CURDATE() and race_title LIKE “%Lincoln%” and age = 4;
+———+———–+————–+———+—————+—————–+——————+
| betting | course | meeting_date | name | weight | OR | trainer_name | jockey_name |
+———+———–+————–+———+——–+——+—————-+——————-+
| 13/2 | Doncaster | 2012-03-31 | Fury | 130| 98| W J Haggas | Adam Beschizza |
| 20/1 | Doncaster | 2012-03-31 | Askaud | 129 | 97 | S Dixon | I Mongan |
| 8/1 | Doncaster | 2012-03-31 | Cocozza | 131 | 99 | M Botti | J Fanning |
+———+———–+————–+———+———+—–+—————-+——————-+
We get a Haggas runner thrown in for free… Fury, Haggas’ runner this year, is at the time of writing vying for favourtism in this year’s renewal.
The trends show us why Fury is near favourite. By the way, another trend worthy of note is that horses at the top of the market have started performing very well in recent years (as you can see in the decimal SP column of the original query table). Personally, I find it hard to back 6 /1 shots in competitive cavalry charge handicaps, and would sooner be backing something available in double figures, but historic trends suggest this one has every chance.
Epsom Downs Bank Holiday Monday
By colin on Monday, August 29th, 2011Betting on bank holidays poses the problem of too many races to analyse. In the hope that it eases the task a little, below a snapshot of those shortlisted for betting opportunities in all Epsom races today:
2.05 Epsom
Ashbina
Blank Czech
Regal Gold (should be in contention at half way, back to lay at a big price)
Gunner Will
2.30 Epsom
Sugar Beet (NB)
Mon Visage
Welsh Inlet (front runner, reasonable draw – back to lay)
3.05 Epsom (not clear where the draw advantage will be)
Stone of Folca (interesting long shot dropped in class)
Judge and Jury (solid recent form, likely to run a good race)
3.40 Epsom
Spanish Duke (NAP)
Measuring Time
4.15 Epsom (not a strong pick, Amateur jockeys’ race)
If I were a Boy
4.50 Epsom
Tenby Lady (good looking chance, but short in betting for such a competitive race)
Tiger Webb
Celestial Girl
5.25 Epsom
Danehill Dante
Orientalist