hkjc_sectional_times
Hong Kong horse racing sectional times and pace analysis
Download a file
CSV · Excel · Parquet · JSON. Filtered exports.
See pricingQuery with SQL
DBeaver, DuckDB, MotherDuck, or HTTPS. Sub-second latency.
Open connection detailsConnect to AI
MCP for Claude Desktop, Cursor, ChatGPT, Goose. 1-line install.
See setupDetailed 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.
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.
The evidence
Schema & column quality (45 columns)
Scroll table sideways to see more columns →
| Column | Type | Description | Populated | Distinct |
|---|---|---|---|---|
| horse_id | String | Unique horse identifier (canonical HK_YYYY_XXXX format) | 100.0% | 9,156 |
| race_date | DateTime | Date of the race (YYYY-MM-DD) | 100.0% | 1,561 |
| race_id | Nullable(String) | Race identifier (format: ST_20250928_R01) | 100.0% | 14,659 |
| 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. | — | — |
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.
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.
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
- Access window
- Most recent 24 months, rolling
- Updates
- Continuous, within hours of the source
- Delivery
- API, SQL and downloads
- Exports
- 1,000,000 rows/month included
Included Datasets
- Access window
- Most recent 24 months, rolling
- Updates
- Continuous, within hours of the source
- Delivery
- API, SQL and downloads
- Exports
- Uncapped
Included Datasets
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