In the wake of the recent, somewhat unseasonal, downpours in the runup to Midsummer’s Day, the going around the country has been changed to include the terms “Soft” and “Heavy”. In the case of Leicester, we can add “Abandonned: Waterlogged”.
Such unseasonal changes are always liable to mess with the form book. One of the tasks of the form student is to establish what previous form, if any, has been shown on such going.
In Smartform, we can translate this into a query on any particular runner, in order to find all its previous runs on similar going. By way of example, we’ll pick a race at Sandown today, since it is currently supposed to be riding “Soft, Heavy in places”. The race we’ll look at is the 2.50 at Sandown, a handicap over one mile.
First, let’s look at how to pull a runner’s entire history (in this case, Leviathan) from Smartform, in order to look at its career runs, as follows:
mysql> select scheduled_time, course, weight_pounds as ‘weight’, going, trainer_name, jockey_name, distance_yards as ‘distance’, num_runners as ‘ran’, finish_position as ‘finished’, unfinished from historic_races join historic_runners using (race_id) where name=”Leviathan”;
Smartform subscribers can try this one at home, since the table of results is rather wide to reprint in the blog (of course we can include any of the variables available in Smartform within the returned results, this just shows us the most pertinent basic information in order to see if Leviathan has shown any promise on softer going).
We can see from the results, however, that Leviathan has never raced on going which has included the word “Heavy” in the description. However, he has raced once on proper Soft going (proper in the sense that it wasn’t “Good to Soft”, for example), where he finished first of 13 runners. That was almost exactly one year ago,
If we had wanted just to cut to the chase and see runs only containing the terms “Heavy” we could have altered the query with a condition for the going description.
Let’s try that for another runner in the race, Sam Sharp, as follows:
mysql> select scheduled_time, course, weight_pounds as ‘weight’, going, trainer_name, jockey_name, distance_yards as ‘distance’, num_runners as ‘ran’, finish_position as ‘finished’, unfinished from historic_races join historic_runners using (race_id) where name=”Sam Sharp” and going LIKE “%Heavy%”;
This time, only one result is returned. A second out of 4 runners in a recent race over course and distance. The horse appeared to handle the going, being beaten only narrowly. However, we’ll find that it’s quite rare that horses have had many runs on heavy going, so that most queries which restrict results to runs only including the term “Heavy” on these runners will produce the results “Empty Set” (as with Leviathan). Where a run is returned, as in the case of Sam Sharp above, the sample size is usually so small that even if the run was not good, it is hard to say that the horse did not act on the going. We can say the reverse, however, where the performance in a run has indicated that a horse acted on the going.
Producing an individual query such as the above for each runner in a race is somewhat tedious of course, so this is exactly the type of query that can be automated for a whole race, dispalying all runners’ previous performances on heavy, for example, in one move, using a simple programming language, such as R or Perl. For some examples of using R with Smartform in this way, see the last Chapter of our free ebook, “BetfaiR Trading with R”.