hkjc_sectional_times

PREMIUM 177,780 rows

Hong Kong horse racing sectional times and pace analysis

Detailed sectional time data showing how each horse ran through every section of the race. Analyze running styles, identify front-runners vs closers, and study pace patterns. Each row contains times and positions at each 400m checkpoint plus derived indicators for quick filtering. Perfect for understanding how races unfolded and profiling horse running preferences.

Premium dataset

Evaluate it in full below: the evidence and a working sample are open to everyone. Buy or subscribe to unlock the complete dataset — your account is created automatically at checkout.

See access options

The evidence

Data coverage
Apr 2008 – present
Pass access: Most recent 24 months, rolling · Full Archive: Oct 2013 – present
Volume
177,780 rows
Last updated
15 July, 2026 (2 days ago)
Schema & column quality (45 columns)
Column Type Description Populated Distinct
horse_id String Unique horse identifier (canonical HK_YYYY_XXXX format)
race_date DateTime Date of the race (YYYY-MM-DD)
race_id Nullable(String) Race identifier (format: ST_20250928_R01)
horse_name String Horse's name in English
horse_number Nullable(Int64) Horse's saddle number in the race
race_year UInt16 Year of the race
race_month UInt8 Month of the race (1-12)
day_of_week UInt8 Day of week (1=Monday, 7=Sunday)
finishing_position Nullable(Int64) Final finishing position (numeric)
num_sections Int64 Number of sectional time segments (3-6 depending on distance)
section_1_time Nullable(String) Time for first 400m section in seconds
section_2_time Nullable(String) Time for second 400m section in seconds
section_3_time Nullable(String) Time for third 400m section in seconds
section_4_time Nullable(String) Time for fourth 400m section in seconds
section_5_time Nullable(String) Time for fifth 400m section in seconds
section_6_time Nullable(String) Time for sixth 400m section in seconds (longer races only)
position_1 Nullable(String) Running position in field at first checkpoint
position_2 Nullable(String) Running position at second checkpoint
position_3 Nullable(String) Running position at third checkpoint
position_4 Nullable(String) Running position at fourth checkpoint
position_5 Nullable(String) Running position at fifth checkpoint
position_6 Nullable(String) Running position at sixth checkpoint (longer races only)
lbw_1 Nullable(String) Lengths behind leader at first checkpoint
lbw_2 Nullable(String) Lengths behind leader at second checkpoint
lbw_3 Nullable(String) Lengths behind leader at third checkpoint
lbw_4 Nullable(String) Lengths behind leader at fourth checkpoint
lbw_5 Nullable(String) Lengths behind leader at fifth checkpoint
lbw_6 Nullable(String) Lengths behind leader at sixth checkpoint
first_section_time Nullable(String) Time for first populated section (coalesce of section 1/2/3)
first_section_position Nullable(String) Position at first checkpoint
first_section_lbw Nullable(String) Lengths behind leader at first checkpoint
final_section_time Nullable(String) Time for final section
final_section_position Nullable(String) Position at final checkpoint before finish
final_section_lbw Nullable(String) Lengths behind leader at final checkpoint
mid_section_time Nullable(String) Time for middle section (if 3+ sections)
mid_section_position Nullable(String) Position at middle checkpoint
led_early Nullable(UInt8) True if horse led at first checkpoint (position_1 = 1)
closed_strongly Nullable(UInt8) True if horse improved position from first to final section
consistent_position Nullable(UInt8) True if position changed by 2 or less from start to finish
wire_to_wire Nullable(UInt8) True if horse led at first checkpoint AND won the race
has_sectional_data Bool True if sectional data is available
has_multi_section_data UInt8 True if multiple sections are available
has_comprehensive_sections UInt8 True if 3+ sections are available
updated_at Nullable(DateTime) Timestamp when record was last scraped
id String 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.

Sample data

Last 6 months of sectional times — same races as the race_results sample so buyers can join the two and see how the data lines up.

SELECT * FROM renavon_exports.hkjc_sectional_times LIMIT 50 0.02s