Racing data
HKJC Race Results
Hong Kong horse racing results and historical form guide
hkjc_race_results
Results
375,882
Coverage
May 1977 to October 2026
Columns
91
Latest data
2026-10-01
Sample
| horse_id | race_date | race_number | race_index | race_id | horse_name | horse_number | finishing_position | non_starter | result_status | result_status_label | finishing_time_seconds | finishing_time | margin | margin_lengths | draw | odds | position_1 | position_2 | position_3 | position_4 | position_5 | position_6 | section_1_time | section_2_time | section_3_time | section_4_time | section_5_time | section_6_time | lbw_1 | lbw_2 | lbw_3 | lbw_4 | lbw_5 | lbw_6 | split_800m_600m_time | split_600m_400m_time | split_400m_200m_time | split_final_200m_time | split_first_200m_time | has_opening_200m_segment | section_1_vs_pace | section_2_vs_pace | section_3_vs_pace | section_4_vs_pace | section_5_vs_pace | section_6_vs_pace | venue_code | venue | surface_type | course_config | distance | distance_category | race_name | race_class | track_condition | field_size | jockey | jockey_allowance | trainer | owner | horse_colour | horse_sex | horse_age | horse_origin | import_type | import_date | declared_horse_weight | sire | dam | dam_sire | is_winner | is_top_three | dead_heat | weight | gear | gear_label | entry_rating | rating_type | total_stakes | season_stakes | no_of_starts | career_wins | career_seconds | career_thirds | career_total_starts | career_win_rate | race_url | video_replay_url | updated_at | id |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| HK_2023_J187 | 2026-10-01 00:00:00 | 1 | ST_20261001_R01 | VERBIER | — | 0 | true | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | false | — | — | — | — | — | — | ST | Sha Tin | Turf | — | 1200 | Sprint | NANNING HANDICAP | Class 5 | GOOD TO FIRM | 14 | --- | — | C Fownes | Alex Shek & Olivia Se | Bay | Gelding | 6 | FR | PPG | 2023-10-14 00:00:00 | — | Toronado | Vadirima | Selkirk | 0 | 0 | false | 133 | — | 38 | H | 2467500.0 | 0.0 | 3-1-5-34 | 3 | 1 | 5 | 34 | 0.0882 | https://racing.hkjc.com/racing/information/english/Racing/LocalResults.aspx?RaceDate=2026/10/01&RaceNo=1 | https://racing.hkjc.com/contentAsset/videoplayer_v4/video-player-iframe_v4.html?type=replay-full&date=20261001&no=01&lang=eng&noPTbar=false&noLeading=false&videoParam=YD&rf=http://racing.hkjc.com/en-us/local/information/resultsall?racedate=2026/10/01&pageid=racing/local | 2026-10-01 11:20:07 | 26736acae2a176942105a365b5be966e | ||||
| HK_2024_K250 | 2026-10-01 00:00:00 | 1 | ST_20261001_R01 | DASH | — | 0 | true | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | false | — | — | — | — | — | — | ST | Sha Tin | Turf | — | 1200 | Sprint | NANNING HANDICAP | Class 5 | GOOD TO FIRM | 14 | --- | — | D J Whyte | Benedict Sin | Brown | Gelding | 5 | AUS | PPG | 2024-10-14 00:00:00 | — | Zoustar | Strata Lady | Stratum | 0 | 0 | false | 123 | B | Blinkers | 28 | H | 211725.0 | 0.0 | 0-0-1-13 | 0 | 0 | 1 | 13 | 0.0 | https://racing.hkjc.com/racing/information/english/Racing/LocalResults.aspx?RaceDate=2026/10/01&RaceNo=1 | https://racing.hkjc.com/contentAsset/videoplayer_v4/video-player-iframe_v4.html?type=replay-full&date=20261001&no=01&lang=eng&noPTbar=false&noLeading=false&videoParam=YD&rf=http://racing.hkjc.com/en-us/local/information/resultsall?racedate=2026/10/01&pageid=racing/local | 2026-10-01 11:20:07 | 577fc5cfba4c8bcedf60ef57021577a3 | |||
| HK_2024_K279 | 2026-10-01 00:00:00 | 1 | 057 | ST_20261001_R01 | CIRRUS SPEED | 7 | 1 | false | PLACED | Finished | — | — | 3 | 12.0 | — | — | — | 1 | 1 | 1 | — | — | — | 23.92 | 22.41 | 22.20 | — | — | — | 3/4 | 3/4 | 1 | 11.1 | 11.31 | 10.9 | 11.3 | — | false | — | — | — | — | — | — | ST | Sha Tin | Turf | A | 1200 | Sprint | NANNING HANDICAP | Class 5 | GOOD TO FIRM | 14 | M F Poon | — | D J Hall | Kent Leung Kin Keung | Bay | Gelding | 5 | AUS | PPG | 2024-11-05 00:00:00 | 1109 | Star Turn | Holley Shiftwell | Testa Rossa | 1 | 1 | false | 129 | — | 34 | H | 105300.0 | 0.0 | 1-0-0-11 | 1 | 0 | 0 | 11 | 0.0909 | https://racing.hkjc.com/racing/information/english/Racing/LocalResults.aspx?RaceDate=2026/10/01&RaceNo=1 | https://racing.hkjc.com/contentAsset/videoplayer_v4/video-player-iframe_v4.html?type=replay-full&date=20261001&no=01&lang=eng&noPTbar=false&noLeading=false&videoParam=YD&rf=http://racing.hkjc.com/en-us/local/information/resultsall?racedate=2026/10/01&pageid=racing/local | 2026-10-01 11:20:07 | 6d5b0995a7015b248efaa2a04cc3eea8 | |||
| HK_2024_K503 | 2026-10-01 00:00:00 | 1 | 057 | ST_20261001_R01 | FALCON HUNTER | 2 | 2 | false | PLACED | Finished | — | — | 2 | 10.0 | — | — | — | 3 | 3 | 2 | — | — | — | 24.16 | 22.49 | 22.02 | — | — | — | 1-1/2 | 2 | 1 | 11.06 | 11.43 | 10.74 | 11.28 | — | false | — | — | — | — | — | — | ST | Sha Tin | Turf | A | 1200 | Sprint | NANNING HANDICAP | Class 5 | GOOD TO FIRM | 14 | J Orman | — | J Cummings | Alex Chan Cheuk Lun | Brown | Gelding | 4 | NZ | PPG | 2025-03-27 00:00:00 | 1085 | U S Navy Flag | Evana Rahma | Darci Brahma | 0 | 1 | false | 133 | TT | Tongue Tie | 38 | H | 134550.0 | 0.0 | 0-1-1-9 | 0 | 1 | 1 | 9 | 0.0 | https://racing.hkjc.com/racing/information/english/Racing/LocalResults.aspx?RaceDate=2026/10/01&RaceNo=1 | https://racing.hkjc.com/contentAsset/videoplayer_v4/video-player-iframe_v4.html?type=replay-full&date=20261001&no=01&lang=eng&noPTbar=false&noLeading=false&videoParam=YD&rf=http://racing.hkjc.com/en-us/local/information/resultsall?racedate=2026/10/01&pageid=racing/local | 2026-10-01 11:20:07 | f122b78a24f0e92ece4b61020390dcb1 | ||
| HK_2023_J223 | 2026-10-01 00:00:00 | 1 | 057 | ST_20261001_R01 | SUNNY Q | 1 | 3 | false | PLACED | Finished | — | — | 4 | 6.6 | — | — | — | 7 | 7 | 3 | — | — | — | 24.40 | 22.53 | 21.81 | — | — | — | 3 | 3-3/4 | 1-1/4 | 11.14 | 11.39 | 10.74 | 11.07 | — | false | — | — | — | — | — | — | ST | Sha Tin | Turf | A | 1200 | Sprint | NANNING HANDICAP | Class 5 | GOOD TO FIRM | 14 | A Atzeni | — | W Y So | Matthew Wong Leung Pak | Bay | Gelding | 6 | AUS | PPG | 2023-11-07 00:00:00 | 1165 | Rich Enuff | Harmony Hall | Minardi | 0 | 1 | false | 135 | CP/TT | Sheepskin Cheek Pieces / Tongue Tie | 40 | H | 1499950.0 | 17500.0 | 1-2-3-20 | 1 | 2 | 3 | 20 | 0.05 | https://racing.hkjc.com/racing/information/english/Racing/LocalResults.aspx?RaceDate=2026/10/01&RaceNo=1 | https://racing.hkjc.com/contentAsset/videoplayer_v4/video-player-iframe_v4.html?type=replay-full&date=20261001&no=01&lang=eng&noPTbar=false&noLeading=false&videoParam=YD&rf=http://racing.hkjc.com/en-us/local/information/resultsall?racedate=2026/10/01&pageid=racing/local | 2026-10-01 11:20:07 | eba22868cd2518a42e4db04d08a527f2 | ||
| HK_2025_L100 | 2026-10-01 00:00:00 | 1 | 057 | ST_20261001_R01 | POWER PATCH | 4 | 4 | false | PLACED | Finished | — | — | 8 | 10.0 | — | — | — | 4 | 4 | 4 | — | — | — | 24.20 | 22.53 | 22.20 | — | — | — | 1-3/4 | 2-1/2 | 2-1/2 | 11.14 | 11.39 | 10.86 | 11.34 | — | false | — | — | — | — | — | — | ST | Sha Tin | Turf | A | 1200 | Sprint | NANNING HANDICAP | Class 5 | GOOD TO FIRM | 14 | C Y Ho | — | K L Man | Lam Wai Ying | Chestnut | Gelding | 4 | AUS | PPG | 2025-08-07 00:00:00 | 1255 | Calyx | Charlee Bear | Choisir | 0 | 0 | false | 133 | B | Blinkers | 38 | H | 40950.0 | 0.0 | 0-0-0-8 | 0 | 0 | 0 | 8 | 0.0 | https://racing.hkjc.com/racing/information/english/Racing/LocalResults.aspx?RaceDate=2026/10/01&RaceNo=1 | https://racing.hkjc.com/contentAsset/videoplayer_v4/video-player-iframe_v4.html?type=replay-full&date=20261001&no=01&lang=eng&noPTbar=false&noLeading=false&videoParam=YD&rf=http://racing.hkjc.com/en-us/local/information/resultsall?racedate=2026/10/01&pageid=racing/local | 2026-10-01 11:20:07 | 9d850ee4fbc04c0d10789ede574ae8fb | ||
| HK_2024_K038 | 2026-10-01 00:00:00 | 1 | 057 | ST_20261001_R01 | NOBLE FANS | 6 | 5 | false | PLACED | Finished | — | — | 13 | 18.0 | — | — | — | 14 | 11 | 5 | — | — | — | 24.88 | 22.29 | 21.82 | — | — | — | 6 | 5-1/4 | 2-3/4 | 11.1 | 11.19 | 10.7 | 11.12 | — | false | — | — | — | — | — | — | ST | Sha Tin | Turf | A | 1200 | Sprint | NANNING HANDICAP | Class 5 | GOOD TO FIRM | 14 | Z Purton | — | J Size | Kenneth Tang | Chestnut | Gelding | 5 | AUS | PPG | 2024-07-11 00:00:00 | 1182 | All Too Hard | Tenderly | Stratum | 0 | 0 | false | 130 | B/TT | Blinkers / Tongue Tie | 35 | H | 1082225.0 | 0.0 | 1-1-2-19 | 1 | 1 | 2 | 19 | 0.0526 | https://racing.hkjc.com/racing/information/english/Racing/LocalResults.aspx?RaceDate=2026/10/01&RaceNo=1 | https://racing.hkjc.com/contentAsset/videoplayer_v4/video-player-iframe_v4.html?type=replay-full&date=20261001&no=01&lang=eng&noPTbar=false&noLeading=false&videoParam=YD&rf=http://racing.hkjc.com/en-us/local/information/resultsall?racedate=2026/10/01&pageid=racing/local | 2026-10-01 11:20:07 | 2e09febac898ac706a6ae69968386f7d | ||
| HK_2024_K216 | 2026-10-01 00:00:00 | 1 | 057 | ST_20261001_R01 | WINNING DIAMOND | 13 | 6 | false | PLACED | Finished | — | — | 12 | 40.0 | — | — | — | 10 | 10 | 6 | — | — | — | 24.68 | 22.45 | 21.90 | — | — | — | 4-3/4 | 5 | 3-1/4 | 11.06 | 11.39 | 10.74 | 11.16 | — | false | — | — | — | — | — | — | ST | Sha Tin | Turf | A | 1200 | Sprint | NANNING HANDICAP | Class 5 | GOOD TO FIRM | 14 | R Kingscote | — | D Eustace | Eddie Chung Kwok Leung | Bay | Gelding | 5 | AUS | PPG | 2024-10-10 00:00:00 | 1026 | Deep Field | Clearly | Invincible Spirit | 0 | 0 | false | 121 | B1 | Blinkers (1st time) | 26 | H | 145950.0 | 0.0 | 0-0-0-15 | 0 | 0 | 0 | 15 | 0.0 | https://racing.hkjc.com/racing/information/english/Racing/LocalResults.aspx?RaceDate=2026/10/01&RaceNo=1 | https://racing.hkjc.com/contentAsset/videoplayer_v4/video-player-iframe_v4.html?type=replay-full&date=20261001&no=01&lang=eng&noPTbar=false&noLeading=false&videoParam=YD&rf=http://racing.hkjc.com/en-us/local/information/resultsall?racedate=2026/10/01&pageid=racing/local | 2026-10-01 11:20:07 | 174adc124fbd8a9824c17ca91aa82fa4 |
Both open directly in a spreadsheet.
Also as compressed CSV, JSON
Columns
| Column | Type | Description |
|---|---|---|
| race_id | text | Unique race identifier (format: ST_20250928_R01) |
| race_date | date and time | Date of the race (YYYY-MM-DD) |
| race_number | number | Race number within the meeting (1-11) |
| race_index | text | Original HKJC race identifier within the meeting (1-10). Use this for matching with external HKJC data sources. NULL for modern data (Sept 2025+). |
| race_name | text | Name of the race (e.g., 'FAT CHOI HANDICAP') |
| venue | text | Race venue (Sha Tin / Happy Valley) |
| venue_code | text | Venue code (ST/HV) |
| surface_type | text | Track surface type: 'Turf' or 'AWT' (All Weather Track) |
| course_config | text | Course configuration (A, B, C, C+3, etc.) - different track layouts at same venue |
| race_class | text | Race class (Class 1-5, Group 1/2/3, Griffin, etc.) |
| distance | number | Race distance in meters (1000-2400m typical) |
| distance_category | text | Distance category (Sprint/Mile/Middle/Long) |
| track_condition | text | Track going condition (Good/Good to Firm/Yielding/etc.) |
| field_size | number | Number of horses in the race |
| rating_type | text | Rating band for the race (H=Handicap, I=International) |
| horse_number | number | Horse's saddle/barrier number for the race |
| draw | number | Starting gate/barrier position (same as horse_number in HK flat racing) |
| finishing_position | number | Final finishing position (1, 2, 3, etc.). 0 for non-starters — see non_starter. |
| non_starter | yes/no | TRUE when the horse was entered but did not start the race (scratched, withdrawn, or a standby/reserve that never ran). For these rows finishing_position is not meaningful (0). Filter on non_starter = false for finishing-position calculations; keep them for withdrawal and pre-race analysis. |
| result_status | text | Result classification. 'PLACED' = a completed run with a numeric finishing_position (any position, not the racing sense of "placed in the money"). Codes present in the data: PU = pulled up (started, retired mid-race, no placing); WV = withdrawn on veterinary advice; WXNR = declared a non-runner. WV and WXNR are non-runners (the horse did not start), so they are always flagged non_starter = true. non_starter = false therefore cleanly means the horse ran; for a set restricted to placed runners (excluding a PU or a future DISQ that ran but did not place) filter result_status = 'PLACED'. DISQ (disqualified) is decoded but does not yet appear: HKJC publishes disqualifications weeks after the race, after our re-scrape window closes, so the provisional placing stays frozen. When a DISQ is ingested the runner did start and HKJC renumbers the field, so finishing_position reflects the official result. See result_status_label for decoded wording. NULL for non-starters with no recorded code and entries with no outcome. |
| result_status_label | text | Human-readable form of result_status (Finished, Pulled Up, Withdrawn (Vet), Non-runner; Disqualified once ingested). Unmapped codes pass through verbatim. |
| finishing_time | text | Finishing time (MM:SS.ss format) |
| finishing_time_seconds | number | Finishing time converted to total seconds |
| margin | text | Margin from winner (lengths, head, neck, short head, etc.) |
| margin_lengths | number | Margin converted to numeric lengths |
| odds | number | Win odds as a decimal number (e.g. 4.5 = 9/2) |
| weight | number | Weight carried by the horse, in pounds (e.g. 126) |
| section_1_time | text | Time for first section in seconds (e.g., '14.77') |
| section_2_time | text | Time for second section in seconds |
| section_3_time | text | Time for third section in seconds |
| section_4_time | text | Time for fourth section in seconds |
| section_5_time | text | Time for fifth section in seconds |
| section_6_time | text | Time for sixth section in seconds (longer races only) |
| position_1 | text | Running position at first checkpoint |
| position_2 | text | Running position at second checkpoint |
| position_3 | text | Running position at third checkpoint |
| position_4 | text | Running position at fourth checkpoint |
| position_5 | text | Running position at fifth checkpoint |
| position_6 | text | Running position at sixth checkpoint (longer races only) |
| lbw_1 | text | Lengths behind leader at first checkpoint (e.g., '2-1/4') |
| lbw_2 | text | Lengths behind leader at second checkpoint |
| lbw_3 | text | Lengths behind leader at third checkpoint |
| lbw_4 | text | Lengths behind leader at fourth checkpoint |
| lbw_5 | text | Lengths behind leader at fifth checkpoint |
| lbw_6 | text | Lengths behind leader at sixth checkpoint |
| split_800m_600m_time | number | Time in seconds for the 200m run between 800m-to-go and 600m-to-go (second-to-last 400m section, first half). Available from 12 November 2022. Blank for older races or those without sectional data. |
| split_600m_400m_time | number | Time in seconds for the 200m run between 600m-to-go and 400m-to-go (second-to-last 400m section, second half). |
| split_400m_200m_time | number | Time in seconds for the 200m run between 400m-to-go and 200m-to-go (final 400m section, first half). |
| split_final_200m_time | number | Time in seconds for the final 200m (finishing sprint). The single most-analyzed sectional metric in racing; lower is faster. Available from 12 November 2022 (when HKJC began publishing 200m sub-splits); also from April 2024 via the V2 spider. |
| split_first_200m_time | number | Time in seconds for the opening 200m from the gates. Four of the eight standard HK race distances (1000m / 1400m / 1800m / 2200m) open with a 200m section; the four multiples of 400m (1200 / 1600 / 2000 / 2400) open with 400m and have no opening 200m timing point. When the distance has no opening 200m, this column is NULL by design, not missing data — use has_opening_200m_segment to filter. Coverage back to 2013 for distances that have the timing point; this timing point has always been part of HKJC's published sectional data, only the column surfacing is new. |
| has_opening_200m_segment | yes/no | True when the race distance has an opening 200m timing point (1000m / 1400m / 1800m / 2200m). False for 400m-aligned distances (1200 / 1600 / 2000 / 2400) and Happy Valley 1650m, where split_first_200m_time is NULL by design. Use this to distinguish "no data possible at this distance" from "data missing for this race" when filtering or charting opening-pace metrics. |
| section_1_vs_pace | number | Difference between horse's section 1 time and race benchmark. Negative = faster than field average. Available for races with V2 sectional data (Jan 2026+). |
| section_2_vs_pace | number | Difference between horse's section 2 time and race benchmark. Negative = faster than field. |
| section_3_vs_pace | number | Difference between horse's section 3 time and race benchmark. Negative = faster than field. |
| section_4_vs_pace | number | Difference between horse's section 4 time and race benchmark. Negative = faster than field. |
| section_5_vs_pace | number | Difference between horse's section 5 time and race benchmark. Negative = faster than field. |
| section_6_vs_pace | number | Difference between horse's section 6 time and race benchmark. Negative = faster than field (longer races only). |
| horse_id | text | Unique horse identifier (e.g., 'HK_2020_E403') |
| horse_name | text | Horse's name in English |
| horse_colour | text | Horse's coat colour (Bay, Chestnut, Grey, etc.) |
| horse_sex | text | Horse's sex (G=Gelding, C=Colt, F=Filly, M=Mare, H=Horse) |
| horse_age | number | Horse's age in years |
| horse_origin | text | Country of origin (AUS, NZ, IRE, GB, etc.) |
| import_type | text | Import classification (PP, PPG, ISG, etc.) |
| import_date | date and time | Date imported to Hong Kong |
| declared_horse_weight | number | Horse's declared body weight before racing (in lbs, typically 1000-1200). Useful for tracking fitness/condition changes. |
| sire | text | Sire (father) |
| dam | text | Dam (mother) |
| dam_sire | text | Dam's sire (maternal grandfather) |
| jockey | text | Jockey name |
| jockey_allowance | number | Weight allowance for apprentice jockeys (0/2/5 lbs). NULL for historical races. |
| trainer | text | Trainer name |
| owner | text | Owner name |
| entry_rating | number | Horse's official HKJC rating at the time this race was run (1-144 scale). Resolved from race card and horse profile sources. Single authoritative rating per entry. |
| total_stakes | number | Total career prize money (HKD) |
| season_stakes | number | Current season prize money (HKD) |
| no_of_starts | text | Career record (format: wins-seconds-thirds-total) |
| career_wins | number | Career wins in Hong Kong |
| career_seconds | number | Career second places |
| career_thirds | number | Career third places |
| career_total_starts | number | Total career starts |
| career_win_rate | number | Career win percentage (0-1) |
| is_winner | number | True if horse won the race |
| is_top_three | number | True if horse finished in top 3 (excludes scratched entries) |
| dead_heat | yes/no | True if horse tied for position. FALSE by default for historical races. |
| gear | text | Equipment used (B=Blinkers, TT=Tongue Tie, H=Hood, SR=Shadow Roll, etc.). '--' means no gear. See gear_label for the decoded form. |
| gear_label | text | Equipment decoded to words, e.g. 'Visor (removed) / Blinkers (2nd time) / Tongue Tie'. 'No gear' where the raw code is '--'. Codes are HKJC's own (Equipment Register, racing.hkjc.com/en-us/local/page/reg-approved-gear); a trailing 1/2 means first/second time worn and a trailing '-' means removed this start. Unrecognised codes pass through unchanged. |
| race_url | text | Source URL for the race page |
| video_replay_url | text | Direct URL to watch race video replay for this specific horse |
| updated_at | date and time | Timestamp when record was last updated |
| id | text | Stable unique identifier for this row — the last column of every export. Use it to deduplicate, to key an incremental load, or to reference one specific row. It is additive: the entity and join keys you already use (race_id, horse_id, and the like) are unchanged. |
Query it
Every table can be queried with SQL, the API or an AI assistant, using a Renavon account.
SELECT * FROM renavon_exports.hkjc_race_results LIMIT 10
Ways to get this table
Free sample
Last 12 months of race results across every meeting, full schema, no row cap. Includes both Starter and Pro tier columns so buyers can see the full surface area.
Free
Download the sampleOne-off archive
7 May 1977 to present · does not update
$199
Buy the archive Race Results (opens in new tab)Racing Pass Pro
A rolling 24-month window, currently from October 2024with 13 other tables
$149/mo
Subscribe to Racing Pass Pro (opens in new tab)