hkjc_sectional_times

PREMIUM 177,772 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,772 rows
Last updated
15 July, 2026 (7 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
Loading data… | Click a header to sort; drag headers to reorder.

Choose your access

A Pass gives you freshness within a rolling window. The Full Archive gives you the full history we hold for the dataset, frozen at purchase. They solve different problems, and they work together.

Satisfaction guarantee: 14-day money-back. Details →

One-off purchase

Full Archive

The full history we hold, frozen at purchase. Yours to keep.

Full details →
What you get
The full history we hold, to your purchase date
History depth
Oct 2013 – present, in full
Updates
None. Frozen at purchase
Delivery
Gzipped CSV, opens in Excel; link valid 7 days
API access
Not included
US$149
one-time purchase

Pass subscription

Racing Pass Enterprise

Continuously updated, with API access.

View full package →
Access window
Most recent 24 months, rolling
Updates
Continuous, within hours of the source
Delivery
API, SQL and downloads
Exports
Uncapped
US$499
per month
SAVE 17%
US$4990
per year
(US$415.83/month)

Get notified when this dataset is updated.

Questions about this data?

Our data experts are ready to help clarify any aspects of this dataset.

Contact Our Team