• I forgot my login details
  • I'd like to register
  • Home
  • Smartform Database
  • Daily Oddsline
  • Contact Us
  • Members Area
  • Blog
  • Q&A
  • Research

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

historic_runners_insights
FieldData TypeDescriptionComments
namecharactername of horserepeats 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_idintegerinternal field, reference for race_id field, corresponds to historic_races table and race_id in historic_runners table
runner_idintegerinternal field, reference for each unique runner, corresponds with historic_runners runner_id
meeting_datedatedate of racerepeats 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_timenumerictime of raceseparates time of race from scheduled_time field for convenience
coursecharactername of courserepeats 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_furlongsintegerdistance in yards divided by 220 (number of yards in a furlong) and rounded to nearest whole furlongIn 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.
classintegerclass of race this racethis value is copied from the historic_runners table for convenience of running analysis without additional table joins
added_moneyintegerprize money for race this racethis value is copied from the historic_runners table for convenience of running analysis without additional table joins
race_typecharacterrace type of race this racethis value is copied from the historic_runners table for convenience of running analysis without additional table joins
race_codecharacterrace code of race this racethis value is copied from the historic_runners table for convenience of running analysis without additional table joins
num_runnersintegernumber of runners in this racethis value is copied from the historic_runners table for convenience of running analysis without additional table joins
handicapintegerwhether 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
maidenintegerwhether 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
sellerintegerwhether 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
apprenticeintegerwhether 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_raceintegerwhether 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_raceintegerwhether 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_raceintegerwhether 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_raceintegerwhether 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_raceintegerwhether 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_raceintegerwhether 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_raceintegerwhether 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_hurdleintegerwhether 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_raceintegerwhether 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
amateurintegerwhether 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
claimerintegerwhether 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
gendercharacterGender of the horsethis value is copied from the historic_runners table for convenience of running analysis without additional table joins
simplegendervarchar(15)Gender simplified to Male, Female and GeldingActual values are "ColtHorseRoan", "FillyMare", "Gelding"
weight_poundsintegerweight in pounds carried by horse in this racethis value is copied from the historic_runners table for convenience of running analysis without additional table joins
official_ratingintegerOfficial rating (if any) for the horse starting in this racethis value is copied from the historic_runners table for convenience of running analysis without additional table joins
jockey_claimintegerJockey 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_weightintegerpenalty 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_decintegerwhether wind surgery has been declared prior to this racethis value is copied from the historic_runners table for convenience of running analysis without additional table joins
dslrintegerdays since last ran for horse in this racethis value is copied from the historic_runners table for convenience of running analysis without additional table joins
distance_travelledintegerdistance travelled this racethis value is copied from the historic_runners table for convenience of running analysis without additional table joins
bredcharactercountry of breedingthis value is copied from the historic_runners table for convenience of running analysis without additional table joins
ageintegerage of horse in yearsthis value is copied from the historic_runners table for convenience of running analysis without additional table joins
non_runner_previous_decintegerHorse was previous non-runner(1) or raced when declaredWhether the horse was withdrawn from the race in its previous engagement
days_since_declaredintegerDays 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_positionintegerfinishing position in this raceNote 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
resultcharacterresult is the concatenation of finish position and unfinished
wonintegerwhether the horse won(1) or lost(0) in this raceA convenience field for further analysis or use as a binary response variable for machine learning models that use win only as the target
placedintegerwhether the horse placed(1) or lost(0) in this raceA convenience field for further analysis or use as a binary response variable for machine learning models that use place as the target
prev_runsintegernumber of races horse has competed in prior to this raceFor 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_codeintegernumber of races in this race_code (flat or jumps) that horse has competed in prior to this race
prev_runner_win_strikenumericlifetime win strike rate of horse as a percentage of runs
prev_runner_place_strikenumericlifetime place strike rate of horse as a percentage of runsWhere place is determined in the same way as traditional bookmaker place terms
won_LTOintegerwon last time out (yes = 1, no = 0)
won_PTOintegerwon penultimate time out (yes = 1, no = 0)
won_ATOintegerwon antepenultimate time out (yes = 1, no = 0)Yes, antepenultimate really is a word! Meaning third last time outÉ
placed_LTOintegerplaced last time out (yes = 1, no = 0)
placed_PTOintegerplaced penultimate time out (yes = 1, no = 0)
placed_ATOintegerplaced 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_opsintegerthe number of previous wind surgery operations performed on this horsethe 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_posnumericthe average lifetime finishing position of the horse as a measure ofA 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_beatennumericlifetime 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_distancenumericlifetime percentage of horses beaten across all races at today's (binned) distanceTakes 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_classnumericlifetime percentage of horses beaten across all races at today's race classTakes 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_goingnumericlifetime percentage of horses beaten across all races over today's (grouped) goingTakes 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_jockeynumericlifetime percentage of horses beaten across all races when ridden by today's jockeyTakes 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_coursenumericlifetime percentage of horses beaten across all races over today's courseTakes each percentage horses beaten figure and averages across all runs to date at today's course (not including this run)
av_prev_prizeintegeraverage prize money (per run basis) won by horse over all previous runs
av_prev_prize_by_codeintegeraverage 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_ageintegeraverage prize money (per run basis) won by horse over all previous runs in the current season of the race
percent_beaten_LTOnumericpercentage of rivals beaten last time out
percent_beaten_PTOnumericpercentage of rivals beaten penultimate run
percent_beaten_ATOnumericpercentage of rivals beaten antepenultimate run
handicap_LTOintegerwhether or not horse ran in handicap race last time out (yes=1, no=0)
handicap_PTOintegerwhether or not horse ran in handicap race penultimate run (yes=1, no=0)
handicap_ATOintegerwhether or not horse ran in handicap race antepenultimate run (yes=1, no=0)
dist_beaten_LTOnumericmargin by which the horse was beaten last time out
dist_beaten_PTOnumericmargin by which the horse was beaten penultimate run
dist_beaten_ATOnumericmargin by which the horse was beaten antepenultimate run
dist_travelled_LTOintegerdistance from stable to racecourse last time out
dist_travelled_PTOintegerdistance from stable to racecourse penultimate run
dist_travelled_ATOintegerdistance from stable to racecourse antepenultimate run
official_rating_LTOintegerofficial handicap rating last time out
official_rating_PTOintegerofficial handicap rating penultimate run
official_rating_ATOintegerofficial handicap rating antepenultimate run
weight_pounds_LTOintegerweight in pounds carried by horse last time out
weight_pounds_PTOintegerweight in pounds carried by horse penultimate run
weight_pounds_ATOintegerweight in pounds carried by horse antepenultimate run
dslr_LTOintegerdays since ran last time outnumber of days between penultimate run and the result last time out, and so on for other dslr values
dslr_PTOintegerdays since ran penultimate run
dslr_ATOintegerdays since ran antepenultimate run
class_LTOintegerrace class last time out
class_PTOintegerrace class penultimate run
class_ATOintegerrace class antepenultimate run
runners_LTOintegersize of field last time out
runners_PTOintegersize of field penultimate run
runners_ATOintegersize of field antepenultimate run
finish_LTOintegerfinish position last time out
finish_PTOintegerfinish position penultimate run
finish_ATOintegerfinish position antepenultimate run
grouped_goingcharacterall 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_goingcharacterall 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_LTOcharactergoing (binned) last time out
simplified_going_PTOcharactergoing (binned) penultimate run
simplified_going_ATOcharactergoing (binned) antepenultimate run
tack_stringcharacterstring 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_changeintegerwhether 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_changeintegerwhether or not there has been a change in the official handicap rating between the last run and this run (yes=1, no = 0)
class_changeintegerwhether or not there has been a change in race class between the last run and this run (yes=1, no = 0)
trainer_changeintegerwhether 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_changeintegerwhether or not there has been a change in jockey between the last run and this run (yes=1, no = 0)
gelding_first_timeintegerwhether or not the horse has been gelded since its last run (yes=1, no=0)
going_changeintegerwhether or not there is a change in grouped going between the last run and this run (yes=1, no = 0)
distance_changeintegerwhether or not there is a change in binned distance between the last run and this run (yes=1, no = 0)
race_type_changeintegerwhether or not there has been a change in race type between the last run and this run (yes=1, no = 0)
up_in_distanceintegerwhether 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_distanceintegerwhether or not the horse is racing over a shorter distance since the last race (yes=1, no=0)
same_distanceintegerwhether or not the horse is racing over the same distance as the last race (yes=1, no=0)
back_from_breakintegerwhether or not the horse is returning to racing after a break of 60 days or greater (yes=1, no=0)
back_from_break_LTOintegerwhether or not the horse was eturning to racing after a break of 60 days or greater last time out (yes=1, no=0)
class_diffintegerclass of race last time out minus class of race this runA positive value indicates a raise in class, a negative value indicates a drop in class
distance_diffintegerdifference in yards between distance last time out and distance yards today's raceA positive value indicates the drop in distance, a negative value an increase in distance
official_rating_diffintegerdifference in official handicap rating between rating last time out and rating in today's raceA positive value indicates a drop in the official handicap rating, a negative value indicates an increase in official handicap rating
distance_furlongs_LTOintegerdistance in furlongs last time out
distance_furlongs_PTOintegerdistance in furlongs penultimate run
distance_furlongs_ATOintegerdistance in furlongs antepenultimate run
jockey_claim_LTOintegerjockey claim last time outactual value of claim or NULL if none
jockey_claim_PTOintegerjockey claim penultimate run
jockey_claim_ATOintegerjockey claim antepenultimate run
tack_string_LTOcharactertack string (see notes for tack string) last time out
tack_string_PTOcharactertack string (see notes for tack string) penultimate run
tack_string_ATOcharactertack string (see notes for tack string) antepenultimate run
headgear_LTOintegerwhether 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_PTOintegerwhether 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_ATOintegerwhether 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_LTOintegerwhether or not the horse was wearing a tongue strap last time out (yes=1, no=0)
tongue_strap_PTOintegerwhether or not the horse was wearing a tongue strap penultimate time out (yes=1, no=0)
tongue_strap_ATOintegerwhether or not the horse was wearing a tongue strap antepenultimate time out (yes=1, no=0)
useful_run_LTOintegerwhether 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_PTOintegerwhether 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_ATOintegerwhether 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_LTOcharactercourse that the horse ran at last time out
course_PTOcharactercourse that the horse ran at on penultimate run
course_ATOcharactercourse that the horse ran at on antepenultimate run
jockey_LTOintegerID for jockey that rode the horse last time out
jockey_PTOintegerID for jockey that rode the horse on penultimate run
jockey_ATOintegerID for jockey that rode the horse on antepenultimate run
race_type_LTOcharacterrace type that the horse competed in last time out
race_type_PTOcharacterrace type that the horse competed in on penultimate run
race_type_ATOcharacterrace type that the horse competed in on antepenultimate run
going_prev_win_strikenumericlifetime win strike rate on today's going of horse as a percentage of previous runs on today's going (binned)
going_prev_place_strikenumericlifetime place strike rate on today's going of horse as a percentage of previous runs on today's going (binned)
course_prev_win_strikenumericlifetime win strike rate on today's course of horse as a percentage of previous runs at this course
course_prev_place_strikenumericlifetime place strike rate on today's course of horse as a percentage of previous runs at this course
all_prev_useful_runs_strikenumericlifetime strike rate of "useful runs" of horse as a percentage of all runs
class_prev_win_strikenumericlifetime win strike rate of horse racing in today's race class as a percentage of runs in today's race class
class_prev_place_strikenumericlifetime place strike rate of horse racing in today's race class as a percentage of runs in today's race class
jockey_prev_win_strikenumericlifetime 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_strikenumericlifetime 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_strikenumericlifetime win strike rate of horse racing over today'sdistance (binned) as a percentage of previous runs over today's distance
distance_prev_place_strikenumericlifetime place strike rate of horse racing over today'sdistance (binned) as a percentage of previous runs over today's distance
race_type_prev_win_strikenumericlifetime 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_strikenumericlifetime 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_NTOintegerFrom 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_LTOnumericFrom the horse's last race, what percentage of the horses that have run next time out have won
pct_races_run_LTOnumericFrom 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_LTOintegerFrom the horse's last race, what number of horses have won when racing next time out
did_not_finishintegerwhether the horse completed the current race (0) or not(1)
did_not_finish_LTOintegerwhether the horse completed its race last time out (0) or not(1)
did_not_finish_PTOintegerwhether the horse completed its penultimate race (0) or not(1)
did_not_finish_ATOintegerwhether the horse completed its antepenultimate race (0) or not(1)
course_directioncharacterthe direction of the race course for the current race
course_direction_LTOcharactercourse direction last time out
course_direction_PTOcharactercourse direction penultimate race
course_direction_ATOcharactercourse direction antepenultimate race
direction_prev_runsintegernumber of runs prior to today that the horse has run in this direction
direction_prev_place_strikenumericplace strike when the horse has run in this direction
direction_prev_win_strikenumericwin strike when the horse has run in this direction
prev_av_percent_beaten_directionnumericaverage percentage of field beaten when horse has run in this direction
min_ageintegerminimum age for eligible runners in today's race
max_ageintegermaximum age for eligible runners in today's race
age_rangecharacterage range string as a category made up of min and max age eligibility of runners in today's race
monthintegercurrent month as integerconvenience field to enable analysis of trainer and runner performances for previous months of year
weekdaycharactercurrent day of weekconvenience field to enable analysis of trainer and runner performances for previous days of week
quarterintegercurrent calendar quarter in year as integerconvenience field to enable analysis of trainer and runner performances for previous quarters
race_conditions_stringcharacterAmalgamation of all applicable race conditions as a unique character string
race_conditions_string_LTOcharacterrace conditions striing (see definition) last time out
race_conditions_string_PTOcharacterrace conditions striing (see definition) in penultimate race
race_conditions_string_ATOcharacterrace conditions striing (see definition) antepenultimate race
run_number_by_race_conditionsintegerruns under these specific race conditions, according to race condition string
rolling_runs_30integernumber of runs prior to today's race within the previous 30 days
rolling_runs_60integernumber of runs prior to today's race within the previous 60 days
rolling_runs_90integernumber of runs prior to today's race within the previous 90 days
rolling_runs_180integernumber of runs prior to today's race within the previous 180 days
rolling_runs_360integernumber of runs prior to today's race within the previous 360 days
rolling_wins_30integernumber of wins prior to today's race within the previous 30 days
rolling_wins_60integernumber of wins prior to today's race within the previous 60 days
rolling_wins_90integernumber of wins prior to today's race within the previous 90 days
rolling_wins_180integernumber of wins prior to today's race within the previous 180 days
rolling_wins_360integernumber of wins prior to today's race within the previous 360 days
rolling_runs_60_strikenumericwin strike rate for runs to wins within the last 60 days
rolling_runs_90_strikenumericwin strike rate for runs to wins within the last 90 days
rolling_runs_180_strikenumericwin strike rate for runs to wins within the last 180 days
speed_rating_LTOintegerspeed rating (per the legacy speed rating provided in smartform) from the horse's last race
speed_rating_PTOintegerspeed rating (per the legacy speed rating provided in smartform) from the horse's penultimate race
speed_rating_ATOintegerspeed rating (per the legacy speed rating provided in smartform) from the horse's antepenultimate race
private_handicap_LTOintegerprivate rating (per the legacy private handicap rating provided in smartform) from the horse's last race
private_handicap_PTOintegerprivate rating (per the legacy private handicap rating provided in smartform) from the horse's penultimate race
private_handicap_ATOintegerprivate rating (per the legacy private handicap rating provided in smartform) from the horse's antepenultimate race
max_speed_ratingintegermaximum speed rating previously achieved
min_speed_ratingintegerminimum speed rating previously achieved
max_private_handicapintegermaximum private handicap rating previously achieved
min_private_handicapintegerminimum private handicap rating previously achieved
max_speed_rating_by_race_codeintegermaximum speed rating previously achieved
min_speed_rating_by_race_codeintegerminimum speed rating previously achieved
max_private_handicap_by_race_codeintegermaximum private handicap rating previously achieved per the race type of today's race
min_private_handicap_by_race_codeintegerminimum private handicap rating previously achieved per the race type of today's race
speed_lto_vs_max_speedintegerpercentage speed rating last time out to maximum speed rating ever achieved
private_lto_vs_max_privateintegerpercentage private handicap rating last time out to maximum private handicap rating ever achieved
speed_rating_LTO_in_raceintegerranked 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_raceintegerranked 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_raceintegerranked 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_raceintegerranked 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_stalleffective 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_yearlingThis 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_racerelative age in race expressed as a percentage of the age of the oldest horse in the raceEg. 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_runsnumber of runs prior to today that the horse has run at this class
class_prev_winsnumber of wins prior to today that the horse has acheived at this class
class_prev_placesnumber of places prior to today that the horse has acheved at this class
distance_prev_runsnumber of runs prior to today that the horse has run at this distance
distance_prev_winsnumber of wins prior to today that the horse has acheived at this distance
distance_prev_placesnumber of places prior to today that the horse has acheved at this distance
direction_prev_winsnumber of wins prior to today that the horse has acheived at this direction
direction_prev_placesnumber of places prior to today that the horse has acheved at this direction
going_prev_runsnumber of runs prior to today that the horse has run at this going
going_prev_winsnumber of wins prior to today that the horse has acheived at this going
going_prev_placesnumber of places prior to today that the horse has acheved at this going
max_prev_class_wins_in_racehighest number of previous wins achieved in today's class by any horse within the race
max_prev_class_places_in_racehighest number of previous places achieved in today's class by any horse within the race
max_prev_distance_wins_in_racehighest number of previous wins achieved at today's distance by any horse within the race
max_prev_distance_places_in_racehighest number of previous places achieved at today's distance by any horse within the race
max_prev_going_wins_in_racehighest number of previous wins achieved at today's going by any horse within the race
max_prev_going_places_in_racehighest number of previous places achieved at today's going by any horse within the race
max_prev_direction_wins_in_racehighest number of previous wins achieved at today's course direction by any horse within the race
max_prev_direction_places_in_racehighest number of previous places achieved at today's course direction by any horse within the race
max_OR_in_racethe highest official rating for any horse running in today's race
max_OR_in_racethe lowest official rating for any horse running in today's raceNb. This is a NULL value if any horse does not have an official rating in today's race
mean_OR_in_racethe 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_racethe highest weight carried in pounds for any horse running in today's race
min_weight_pounds_in_racethe 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_attimestampsmartform_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.

New: Smartform Beta Database!

Read the FAQs.

On this page

  • Introduction
  • Using the new smartform updater
  • The table definition
Betwise

Home of Automatic Exchange Betting.

Terms and Conditions  |  Privacy Policy  |  Contact Us

© 2010-2024 Betwise Limited, all rights reserved.    Take the guesswork out of sports bettingTM and BetwiseTM are trademarks of Betwise Limited.