Historic runners insights
Introduction
This table consists of 100s of variables that we have found useful in custom projects and modelling work and/or have been requested. These have been engineered from the data in the Smartform database to provide insight on top of the raw data, from standard win and place strike rates to more granular variables like average number of horses beaten by distance, going, class and race_code.
Each variable has been painstakingly tested to ensure that the correct previous information is provided on a "to date" basis for each runner at the time of entry in the historic database without taking into account the result of the upcoming run. This means systems backtesting and modelling use cases are all valid with this dataset.
Note that the daily version of this table, which can be used to implement any model or system that has already been built using the historic_runners_insights table, is now also available for download and install here. Smartform subscribers receive automatic updates to historic and daily tables each day.
Read more below on how to install the data.
Using the new smartform updater
If you are using the new smartform updater, once you have installed the dataset using the links below, there is nothing else to configure. Once the data is loaded into the database, you will be able to update it using the updater.
The feed name is historic_runners_insights
so the following command invocation will update it:
smartform-updater historic_runners_insights
Alternatively it will be picked up if you are using the all-feeds
mode:
smartform-updater all-feeds
The table definition
Field | Data Type | Description | Comments |
---|---|---|---|
name | character | name of horse | repeats horse name for convenience of querying this table on a standalone basis, though not strictly needed. Usually the user would pull through any attributes required from the historic_runners table by joining on the race_id and runner_id which are shared with that table |
race_id | integer | internal field, reference for race_id field, corresponds to historic_races table and race_id in historic_runners table | |
runner_id | integer | internal field, reference for each unique runner, corresponds with historic_runners runner_id | |
meeting_date | date | date of race | repeats meeting_date for the convenience of querying this table on a standalone basis, though not strictly needed - usually the user would pull through any attributes required from the historic_races table by joining on the race_id which is shared with that table |
race_time | numeric | time of race | separates time of race from scheduled_time field for convenience |
course | character | name of course | repeats course name for convenience of querying this table on a standalone basis, though not strictly needed, usually the user would pull through any attributes required from the historic_races table by joining on the race_id which is shared with that table |
distance_furlongs | integer | distance in yards divided by 220 (number of yards in a furlong) and rounded to nearest whole furlong | In this way, it's easy to use distances in analyses such as 5 furlongs (1100 yards), a mile (8 furlongs) without doing the yards to furlongs conversion. Moreover, using binned distances makes for easy comparison with other binned distances (such as looking for changes over time - e.g. see subsequent convenience fields such as distance_change which rely on binned_distance_furlongs) whilst eliminating the noise of using distances in yards caused by slight variation in number of yards - eg. over 5 furlongs, sometimes we may have 1096 yards. or 1121 yards etc. Of course, for other analytical purposes such as calculating speed ratings, slight variations in yards by course are critical and distance_yards will be preferred. |
class | integer | class of race this race | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
added_money | integer | prize money for race this race | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
race_type | character | race type of race this race | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
race_code | character | race code of race this race | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
num_runners | integer | number of runners in this race | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
handicap | integer | whether this race is a handicap (1) or not (0) | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
maiden | integer | whether this race is a maiden (1) or not (0) | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
seller | integer | whether this race is a seller (1) or not (0) | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
apprentice | integer | whether this race is an apprentice race (1) or not (0) | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
group_race | integer | whether this race is a group race(1, 2 or 3) or not (0) | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
listed_race | integer | whether this race is a listed race(1) or not (0) | All additional race conditions should also be used in conjunction with the race_type field to indicate what code the race conditions apply to |
novice_race | integer | whether this race is a novice race(1) or not (0) | All additional race conditions should also be used in conjunction with the race_type field to indicate what code the race conditions apply to |
fillies_race | integer | whether this race is a fillies race(1) or not (0) | All additional race conditions should also be used in conjunction with the race_type field to indicate what code the race conditions apply to |
classified_race | integer | whether this race is a classified race(1) or not (0) | All additional race conditions should also be used in conjunction with the race_type field to indicate what code the race conditions apply to |
conditions_race | integer | whether this race is a conditions race(1) or not (0) | All additional race conditions should also be used in conjunction with the race_type field to indicate what code the race conditions apply to |
beginners_race | integer | whether this race is a Beginners race(1) or not (0) | All additional race conditions should also be used in conjunction with the race_type field to indicate what code the race conditions apply to |
juvenile_hurdle | integer | whether this race is a juvenile hurdle race(1) or not (0) | All additional race conditions should also be used in conjunction with the race_type field to indicate what code the race conditions apply to |
stakes_race | integer | whether this race is a stakes race(1) or not (0) | All additional race conditions should also be used in conjunction with the race_type field to indicate what code the race conditions apply to |
amateur | integer | whether this race is a race for amateurs only (1) or not (0) | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
claimer | integer | whether this race is a claimer (1) or not (0) | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
gender | character | Gender of the horse | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
simplegender | varchar(15) | Gender simplified to Male, Female and Gelding | Actual values are "ColtHorseRoan", "FillyMare", "Gelding" |
weight_pounds | integer | weight in pounds carried by horse in this race | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
official_rating | integer | Official rating (if any) for the horse starting in this race | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
jockey_claim | integer | Jockey claim if applicable in this race (0 if no value) | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
penalty_weight | integer | penalty weight if applicable in this race (0 if no value) | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
wind_surgery_dec | integer | whether wind surgery has been declared prior to this race | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
dslr | integer | days since last ran for horse in this race | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
distance_travelled | integer | distance travelled this race | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
bred | character | country of breeding | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
age | integer | age of horse in years | this value is copied from the historic_runners table for convenience of running analysis without additional table joins |
non_runner_previous_dec | integer | Horse was previous non-runner(1) or raced when declared | Whether the horse was withdrawn from the race in its previous engagement |
days_since_declared | integer | Days since the horse was declared to run (whether it raced or was withdrawn) | Usually this will correspond with days since ran (DSLR) but where withdrawn from last engagement relates to date since last declared |
finish_position | integer | finishing position in this race | Note where a horse does not complete, a numeric value equivalent to the last position for the number of runners in the race is assigned, to make finish position easier to use as a continuous response variable for machine learning |
result | character | result is the concatenation of finish position and unfinished | |
won | integer | whether the horse won(1) or lost(0) in this race | A convenience field for further analysis or use as a binary response variable for machine learning models that use win only as the target |
placed | integer | whether the horse placed(1) or lost(0) in this race | A convenience field for further analysis or use as a binary response variable for machine learning models that use place as the target |
prev_runs | integer | number of races horse has competed in prior to this race | For any sort of machine learning purpose we need to know as much as possible about a horse's history in variables that can be used by an algorithm, without including the history of today - prev_runs is a case in point |
prev_runs_by_race_code | integer | number of races in this race_code (flat or jumps) that horse has competed in prior to this race | |
prev_runner_win_strike | numeric | lifetime win strike rate of horse as a percentage of runs | |
prev_runner_place_strike | numeric | lifetime place strike rate of horse as a percentage of runs | Where place is determined in the same way as traditional bookmaker place terms |
won_LTO | integer | won last time out (yes = 1, no = 0) | |
won_PTO | integer | won penultimate time out (yes = 1, no = 0) | |
won_ATO | integer | won antepenultimate time out (yes = 1, no = 0) | Yes, antepenultimate really is a word! Meaning third last time outà |
placed_LTO | integer | placed last time out (yes = 1, no = 0) | |
placed_PTO | integer | placed penultimate time out (yes = 1, no = 0) | |
placed_ATO | integer | placed antepenultimate time out (yes = 1, no = 0) | (yes, antepenultimate really is a word! Meaning the one before penultimate or third last time outÃ) |
prev_wind_ops | integer | the number of previous wind surgery operations performed on this horse | the daily_runners and historic_runners table now contains a field for wind_surgery_declared. This field only contains an entry for the run immediately following any sort of wind_surgery. However, on any subsequent run where the horse did not have wind surgery immediately prior to that run and post its last run, there will be no evidence that a horse has previously had wind surgery without querying back in time for the horse's history. This field provides a ready solution by showing whether or not a horse has had any wind surgery at any point in its career, and how many different surgeries have been performed. Thus it shows 0,1,2 etc for each horse |
prev_av_fin_pos | numeric | the average lifetime finishing position of the horse as a measure of | A measure of average finish position, simply finishing positions to date divided by total fiel size competed in to date - for an alterative measure see percent_distance_beaten metrics |
prev_av_percent_beaten | numeric | lifetime percentage of horses beaten across all races | Takes each percentage horses beaten figure and averages across all runs to date (not including this run) |
prev_av_percent_beaten_at_distance | numeric | lifetime percentage of horses beaten across all races at today's (binned) distance | Takes each percentage horses beaten figure and averages across all runs to date at this (binned) distance (not including this run) |
prev_av_percent_beaten_at_class | numeric | lifetime percentage of horses beaten across all races at today's race class | Takes each percentage horses beaten figure and averages across all runs to date at today's race class (not including this run) |
prev_av_percent_beaten_at_going | numeric | lifetime percentage of horses beaten across all races over today's (grouped) going | Takes each percentage horses beaten figure and averages across all runs to date at today's (grouped) going (not including this run) |
prev_av_percent_beaten_jockey | numeric | lifetime percentage of horses beaten across all races when ridden by today's jockey | Takes each percentage horses beaten figure and averages across all runs to date when ridden by today's jockey (not including this run) |
prev_av_percent_beaten_course | numeric | lifetime percentage of horses beaten across all races over today's course | Takes each percentage horses beaten figure and averages across all runs to date at today's course (not including this run) |
av_prev_prize | integer | average prize money (per run basis) won by horse over all previous runs | |
av_prev_prize_by_code | integer | average prize money (per run basis) won by horse over all previous runs at today's race_code (flat or jumps) | Note that unless the horse has competed over different codes this value should be the same as av_prev_prize - however where a horse has competed over flat and jumps, there can be wide variance in prize money, so this field provides a dimension to differentiate that |
av_prev_prize_by_age | integer | average prize money (per run basis) won by horse over all previous runs in the current season of the race | |
percent_beaten_LTO | numeric | percentage of rivals beaten last time out | |
percent_beaten_PTO | numeric | percentage of rivals beaten penultimate run | |
percent_beaten_ATO | numeric | percentage of rivals beaten antepenultimate run | |
handicap_LTO | integer | whether or not horse ran in handicap race last time out (yes=1, no=0) | |
handicap_PTO | integer | whether or not horse ran in handicap race penultimate run (yes=1, no=0) | |
handicap_ATO | integer | whether or not horse ran in handicap race antepenultimate run (yes=1, no=0) | |
dist_beaten_LTO | numeric | margin by which the horse was beaten last time out | |
dist_beaten_PTO | numeric | margin by which the horse was beaten penultimate run | |
dist_beaten_ATO | numeric | margin by which the horse was beaten antepenultimate run | |
dist_travelled_LTO | integer | distance from stable to racecourse last time out | |
dist_travelled_PTO | integer | distance from stable to racecourse penultimate run | |
dist_travelled_ATO | integer | distance from stable to racecourse antepenultimate run | |
official_rating_LTO | integer | official handicap rating last time out | |
official_rating_PTO | integer | official handicap rating penultimate run | |
official_rating_ATO | integer | official handicap rating antepenultimate run | |
weight_pounds_LTO | integer | weight in pounds carried by horse last time out | |
weight_pounds_PTO | integer | weight in pounds carried by horse penultimate run | |
weight_pounds_ATO | integer | weight in pounds carried by horse antepenultimate run | |
dslr_LTO | integer | days since ran last time out | number of days between penultimate run and the result last time out, and so on for other dslr values |
dslr_PTO | integer | days since ran penultimate run | |
dslr_ATO | integer | days since ran antepenultimate run | |
class_LTO | integer | race class last time out | |
class_PTO | integer | race class penultimate run | |
class_ATO | integer | race class antepenultimate run | |
runners_LTO | integer | size of field last time out | |
runners_PTO | integer | size of field penultimate run | |
runners_ATO | integer | size of field antepenultimate run | |
finish_LTO | integer | finish position last time out | |
finish_PTO | integer | finish position penultimate run | |
finish_ATO | integer | finish position antepenultimate run | |
grouped_going | character | all types of going description binned into 9 categories as follows: "heavy" , "soft", "goodtosoft", "good", "goodtofirm", "firm" , "fibresand", "polytrack", "tapeta" | this category normalises going descriptions - eg. "good - good to soft in places" becomes "goodtosoft" |
simplified_going | character | all types of going description binned into 5 categories as follows: "heavy" , "all_weather", "soft", "good, "firm" | as with distance, binning going from the grouped_going field allows for easy direct comparisons between runs but at the expense of more nuanced comparisons |
simplified_going_LTO | character | going (binned) last time out | |
simplified_going_PTO | character | going (binned) penultimate run | |
simplified_going_ATO | character | going (binned) antepenultimate run | |
tack_string | character | string of letters and numbers indicating type of headger worn (if any) and whether or not it is the first time application of that type of headgear, in which case the number 1 will appear | |
tack_string_change | integer | whether or not the tack string last time out is the same as this time (yes=1, no = 0) | Note that with this metric a first time out value is treated as unique, so for example if the horse wore blinkers last time out for the first time and wears blinkers this time, this will be treated as a change, whereas if the horse wore blinkers last time out but was not the first time, and also wears blinkers this time, that will be treated as no change |
official_rating_change | integer | whether or not there has been a change in the official handicap rating between the last run and this run (yes=1, no = 0) | |
class_change | integer | whether or not there has been a change in race class between the last run and this run (yes=1, no = 0) | |
trainer_change | integer | whether or not there has been a change in trainer between the last run and this run (yes=1, no = 0) | Note this value may sometimes be unreliable as it relies on a change in trainer_id - sometimes the trainer_id changes if the trainer name changes but refers to the same person or stable |
jockey_change | integer | whether or not there has been a change in jockey between the last run and this run (yes=1, no = 0) | |
gelding_first_time | integer | whether or not the horse has been gelded since its last run (yes=1, no=0) | |
going_change | integer | whether or not there is a change in grouped going between the last run and this run (yes=1, no = 0) | |
distance_change | integer | whether or not there is a change in binned distance between the last run and this run (yes=1, no = 0) | |
race_type_change | integer | whether or not there has been a change in race type between the last run and this run (yes=1, no = 0) | |
up_in_distance | integer | whether or not the horse has been upped in distance between the last race and this race (yes=1, no=0) | One of several indicators providing a quick means of identifying a change in distance since the last run, always using binned_distance_furlongs as the metric by which to measure change, as opposed to distance_yards |
down_in_distance | integer | whether or not the horse is racing over a shorter distance since the last race (yes=1, no=0) | |
same_distance | integer | whether or not the horse is racing over the same distance as the last race (yes=1, no=0) | |
back_from_break | integer | whether or not the horse is returning to racing after a break of 60 days or greater (yes=1, no=0) | |
back_from_break_LTO | integer | whether or not the horse was eturning to racing after a break of 60 days or greater last time out (yes=1, no=0) | |
class_diff | integer | class of race last time out minus class of race this run | A positive value indicates a raise in class, a negative value indicates a drop in class |
distance_diff | integer | difference in yards between distance last time out and distance yards today's race | A positive value indicates the drop in distance, a negative value an increase in distance |
official_rating_diff | integer | difference in official handicap rating between rating last time out and rating in today's race | A positive value indicates a drop in the official handicap rating, a negative value indicates an increase in official handicap rating |
distance_furlongs_LTO | integer | distance in furlongs last time out | |
distance_furlongs_PTO | integer | distance in furlongs penultimate run | |
distance_furlongs_ATO | integer | distance in furlongs antepenultimate run | |
jockey_claim_LTO | integer | jockey claim last time out | actual value of claim or NULL if none |
jockey_claim_PTO | integer | jockey claim penultimate run | |
jockey_claim_ATO | integer | jockey claim antepenultimate run | |
tack_string_LTO | character | tack string (see notes for tack string) last time out | |
tack_string_PTO | character | tack string (see notes for tack string) penultimate run | |
tack_string_ATO | character | tack string (see notes for tack string) antepenultimate run | |
headgear_LTO | integer | whether or not the horse was racing in headgear (defined as any tack which involves restriction of vision but not a tongue strap) last time out (yes=1, no=0) | |
headgear_PTO | integer | whether or not the horse was racing in headgear (defined as any tack which involves restriction of vision but not a tongue strap) on penultimate run (yes=1, no=0) | |
headgear_ATO | integer | whether or not the horse was racing in headgear (defined as any tack which involves restriction of vision but not a tongue strap) on antepenultimate run (yes=1, no=0) | |
tongue_strap_LTO | integer | whether or not the horse was wearing a tongue strap last time out (yes=1, no=0) | |
tongue_strap_PTO | integer | whether or not the horse was wearing a tongue strap penultimate time out (yes=1, no=0) | |
tongue_strap_ATO | integer | whether or not the horse was wearing a tongue strap antepenultimate time out (yes=1, no=0) | |
useful_run_LTO | integer | whether or not a "useful run" or performance last time out (yes=1, no=0) | a "useful run" is defined as a performance where 10/binned_distance_furlongs > distance_beaten. This can be used as an alternative metric to win and place, in particular to avoid those situations where the placing of a horse may not indicate proximity to the winner of the race and therefore a useful performance |
useful_run_PTO | integer | whether or not a "useful run" or performance penultimate run (yes=1, no=0) | a "useful run" is defined as a performance where 10/binned_distance_furlongs > distance_beaten. This can be used as an alternative metric to win and place, in particular to avoid those situations where the placing of a horse may not indicate proximity to the winner of the race and therefore a useful performance |
useful_run_ATO | integer | whether or not a "useful run" or performance antepenultimate run (yes=1, no=0) | a "useful run" is defined as a performance where 10/binned_distance_furlongs > distance_beaten. This can be used as an alternative metric to win and place, in particular to avoid those situations where the placing of a horse may not indicate proximity to the winner of the race and therefore a useful performance |
course_LTO | character | course that the horse ran at last time out | |
course_PTO | character | course that the horse ran at on penultimate run | |
course_ATO | character | course that the horse ran at on antepenultimate run | |
jockey_LTO | integer | ID for jockey that rode the horse last time out | |
jockey_PTO | integer | ID for jockey that rode the horse on penultimate run | |
jockey_ATO | integer | ID for jockey that rode the horse on antepenultimate run | |
race_type_LTO | character | race type that the horse competed in last time out | |
race_type_PTO | character | race type that the horse competed in on penultimate run | |
race_type_ATO | character | race type that the horse competed in on antepenultimate run | |
going_prev_win_strike | numeric | lifetime win strike rate on today's going of horse as a percentage of previous runs on today's going (binned) | |
going_prev_place_strike | numeric | lifetime place strike rate on today's going of horse as a percentage of previous runs on today's going (binned) | |
course_prev_win_strike | numeric | lifetime win strike rate on today's course of horse as a percentage of previous runs at this course | |
course_prev_place_strike | numeric | lifetime place strike rate on today's course of horse as a percentage of previous runs at this course | |
all_prev_useful_runs_strike | numeric | lifetime strike rate of "useful runs" of horse as a percentage of all runs | |
class_prev_win_strike | numeric | lifetime win strike rate of horse racing in today's race class as a percentage of runs in today's race class | |
class_prev_place_strike | numeric | lifetime place strike rate of horse racing in today's race class as a percentage of runs in today's race class | |
jockey_prev_win_strike | numeric | lifetime win strike rate of jockey riding horse today as a percentage of previous runs where the same jockey has ridden this horse | |
jockey_prev_place_strike | numeric | lifetime place strike rate of jockey riding horse today as a percentage of previous runs where the same jockey has ridden this horse | |
distance_prev_win_strike | numeric | lifetime win strike rate of horse racing over today'sdistance (binned) as a percentage of previous runs over today's distance | |
distance_prev_place_strike | numeric | lifetime place strike rate of horse racing over today'sdistance (binned) as a percentage of previous runs over today's distance | |
race_type_prev_win_strike | numeric | lifetime win strike rate of horse racing in today's race_type as a percentage of previous runs in today's race type | |
race_type_prev_place_strike | numeric | lifetime place strike rate of horse racing in today's race_type as a percentage of previous runs in today's race type | |
prev_race_runners_NTO | integer | From the horse's last race, what is the total number of horses that have already had one run next time out (that ran in that original race) | |
pct_race_winners_LTO | numeric | From the horse's last race, what percentage of the horses that have run next time out have won | |
pct_races_run_LTO | numeric | From the horse's last race, what percentage of the horses that ran in the race have run at least once in another race | |
race_winners_LTO | integer | From the horse's last race, what number of horses have won when racing next time out | |
did_not_finish | integer | whether the horse completed the current race (0) or not(1) | |
did_not_finish_LTO | integer | whether the horse completed its race last time out (0) or not(1) | |
did_not_finish_PTO | integer | whether the horse completed its penultimate race (0) or not(1) | |
did_not_finish_ATO | integer | whether the horse completed its antepenultimate race (0) or not(1) | |
course_direction | character | the direction of the race course for the current race | |
course_direction_LTO | character | course direction last time out | |
course_direction_PTO | character | course direction penultimate race | |
course_direction_ATO | character | course direction antepenultimate race | |
direction_prev_runs | integer | number of runs prior to today that the horse has run in this direction | |
direction_prev_place_strike | numeric | place strike when the horse has run in this direction | |
direction_prev_win_strike | numeric | win strike when the horse has run in this direction | |
prev_av_percent_beaten_direction | numeric | average percentage of field beaten when horse has run in this direction | |
min_age | integer | minimum age for eligible runners in today's race | |
max_age | integer | maximum age for eligible runners in today's race | |
age_range | character | age range string as a category made up of min and max age eligibility of runners in today's race | |
month | integer | current month as integer | convenience field to enable analysis of trainer and runner performances for previous months of year |
weekday | character | current day of week | convenience field to enable analysis of trainer and runner performances for previous days of week |
quarter | integer | current calendar quarter in year as integer | convenience field to enable analysis of trainer and runner performances for previous quarters |
race_conditions_string | character | Amalgamation of all applicable race conditions as a unique character string | |
race_conditions_string_LTO | character | race conditions striing (see definition) last time out | |
race_conditions_string_PTO | character | race conditions striing (see definition) in penultimate race | |
race_conditions_string_ATO | character | race conditions striing (see definition) antepenultimate race | |
run_number_by_race_conditions | integer | runs under these specific race conditions, according to race condition string | |
rolling_runs_30 | integer | number of runs prior to today's race within the previous 30 days | |
rolling_runs_60 | integer | number of runs prior to today's race within the previous 60 days | |
rolling_runs_90 | integer | number of runs prior to today's race within the previous 90 days | |
rolling_runs_180 | integer | number of runs prior to today's race within the previous 180 days | |
rolling_runs_360 | integer | number of runs prior to today's race within the previous 360 days | |
rolling_wins_30 | integer | number of wins prior to today's race within the previous 30 days | |
rolling_wins_60 | integer | number of wins prior to today's race within the previous 60 days | |
rolling_wins_90 | integer | number of wins prior to today's race within the previous 90 days | |
rolling_wins_180 | integer | number of wins prior to today's race within the previous 180 days | |
rolling_wins_360 | integer | number of wins prior to today's race within the previous 360 days | |
rolling_runs_60_strike | numeric | win strike rate for runs to wins within the last 60 days | |
rolling_runs_90_strike | numeric | win strike rate for runs to wins within the last 90 days | |
rolling_runs_180_strike | numeric | win strike rate for runs to wins within the last 180 days | |
speed_rating_LTO | integer | speed rating (per the legacy speed rating provided in smartform) from the horse's last race | |
speed_rating_PTO | integer | speed rating (per the legacy speed rating provided in smartform) from the horse's penultimate race | |
speed_rating_ATO | integer | speed rating (per the legacy speed rating provided in smartform) from the horse's antepenultimate race | |
private_handicap_LTO | integer | private rating (per the legacy private handicap rating provided in smartform) from the horse's last race | |
private_handicap_PTO | integer | private rating (per the legacy private handicap rating provided in smartform) from the horse's penultimate race | |
private_handicap_ATO | integer | private rating (per the legacy private handicap rating provided in smartform) from the horse's antepenultimate race | |
max_speed_rating | integer | maximum speed rating previously achieved | |
min_speed_rating | integer | minimum speed rating previously achieved | |
max_private_handicap | integer | maximum private handicap rating previously achieved | |
min_private_handicap | integer | minimum private handicap rating previously achieved | |
max_speed_rating_by_race_code | integer | maximum speed rating previously achieved | |
min_speed_rating_by_race_code | integer | minimum speed rating previously achieved | |
max_private_handicap_by_race_code | integer | maximum private handicap rating previously achieved per the race type of today's race | |
min_private_handicap_by_race_code | integer | minimum private handicap rating previously achieved per the race type of today's race | |
speed_lto_vs_max_speed | integer | percentage speed rating last time out to maximum speed rating ever achieved | |
private_lto_vs_max_private | integer | percentage private handicap rating last time out to maximum private handicap rating ever achieved | |
speed_rating_LTO_in_race | integer | ranked speed rating for last time out performances (as a percentage of the top last time out rating achieved by the top contender last time out) in today's race | |
max_speed_rating_in_race | integer | ranked speed rating for maximum performances (as a percentage of the top rating achieved by the top contender's maximum speed rating) in today's race | |
private_handicap_LTO_in_race | integer | ranked private handicap rating for last time out performances (as a percentage of the top last time out rating achieved by the top contender last time out) in today's race | |
max_private_handicap_in_race | integer | ranked private handicap rating for maximum performances (as a percentage of the top rating achieved by the top contender's maximum speed rating) in today's race | |
normalized_stall | effective stall number (ie. this is a virtual rather than actual number) after removing non-runners from the race and compressing all the other stall numbers. Additionally, for stalls on right handed courses before 2011, this field "normalizes" positions so that they are comparable with stall positions on right handed courses after 2011 (when the stalls numbering system on right handed courses was reversed) | Eg. if horses are declared for stalls 1,2 and 3 but the horse in stall 2 is a non-runner, then the effective stall number for the horse drawn in stall 3 becomes stall 2 - so "2" would be the normalized stall. | |
days_since_yearling | This is the horse's age expressed in days from the date that they became a yearling (ie. one year after foaling date). | The thinking behind this feature is that a horse's age represented in years hides the significance of age as a feature in horses. Expressing the feature as days from the age of 1 creates more impact, particularly for 2 year olds and in the first half of the 3 year old season. | |
oldest_in_race | relative age in race expressed as a percentage of the age of the oldest horse in the race | Eg. the oldest horse in the race will be 100% (a value of 100) and every other horse in the race will be a lesser percentage of the maximum value | |
class_prev_runs | number of runs prior to today that the horse has run at this class | ||
class_prev_wins | number of wins prior to today that the horse has acheived at this class | ||
class_prev_places | number of places prior to today that the horse has acheved at this class | ||
distance_prev_runs | number of runs prior to today that the horse has run at this distance | ||
distance_prev_wins | number of wins prior to today that the horse has acheived at this distance | ||
distance_prev_places | number of places prior to today that the horse has acheved at this distance | ||
direction_prev_wins | number of wins prior to today that the horse has acheived at this direction | ||
direction_prev_places | number of places prior to today that the horse has acheved at this direction | ||
going_prev_runs | number of runs prior to today that the horse has run at this going | ||
going_prev_wins | number of wins prior to today that the horse has acheived at this going | ||
going_prev_places | number of places prior to today that the horse has acheved at this going | ||
max_prev_class_wins_in_race | highest number of previous wins achieved in today's class by any horse within the race | ||
max_prev_class_places_in_race | highest number of previous places achieved in today's class by any horse within the race | ||
max_prev_distance_wins_in_race | highest number of previous wins achieved at today's distance by any horse within the race | ||
max_prev_distance_places_in_race | highest number of previous places achieved at today's distance by any horse within the race | ||
max_prev_going_wins_in_race | highest number of previous wins achieved at today's going by any horse within the race | ||
max_prev_going_places_in_race | highest number of previous places achieved at today's going by any horse within the race | ||
max_prev_direction_wins_in_race | highest number of previous wins achieved at today's course direction by any horse within the race | ||
max_prev_direction_places_in_race | highest number of previous places achieved at today's course direction by any horse within the race | ||
max_OR_in_race | the highest official rating for any horse running in today's race | ||
max_OR_in_race | the lowest official rating for any horse running in today's race | Nb. This is a NULL value if any horse does not have an official rating in today's race | |
mean_OR_in_race | the mean (ie. average) official rating for all horses with official ratings running in today's race (ie. excludes any horse without an official rating) | ||
max_weight_pounds_in_race | the highest weight carried in pounds for any horse running in today's race | ||
min_weight_pounds_in_race | the lowest weight carried in pounds for any horse running in today's race | ||
mean_weight_pounds_in_race | the mean (ie. average) weight carried in pounds for all horses with official ratings running in today's race (ie. excludes any horse without an official rating) | ||
loaded_at | timestamp | smartform_internal_field |
Smartform subscription required
To read more, you must first purchase a Smartform Racing Database subscription.
Click here to go straight to the purchase screens, or read more about Smartform Racing Database.