The archive · open data

Open data

The race facts behind our pages, free to download, quote and build on. Every published angle in our store — the favourite by field, season and going, the each-way table, the overround, the beliefs punters argue about — with its runs, wins, places and fair A/E over every British and Irish race since 2005.

One table, dated, with its sample size on every row. For assistants and agents, the page for AI readers maps the whole site.

Kickthebookies racing angles — every GB and Irish race since 2005

301rows35angles2 January 2005from25 October 2026to (as at)

Every completed race in Great Britain and Ireland in our archive, non-runners excluded, summed from our daily angles store and rebuilt every night after the day’s results. Each row is one segment of one angle: how many ran, how many won and placed, and how the winners compare with a margin-free reading of the starting prices (fair A/E, defined here). Each row also carries the same figures over the last 365 days (27 October 2025 to 26 October 2026), so the current trend sits beside the long-run record.

Using it

Licence: CC BY 4.0 — use it, quote it and build on it, with credit to Kickthebookies and a link to this page.

How to cite:

Kickthebookies, "Kickthebookies racing angles — every GB and Irish race since 2005", every GB and Irish race 2 January 2005 to 25 October 2026, https://kickthebookies.com/open-data/

Read it carefully: fair A/E reads a little above 1.00 for short-priced runners and well below for long shots (the favourite–longshot bias), so compare rows with each other, never with 1.00 alone. A segment with fewer than 1,000 runs carries its runs and “too few to say”, never a rate. The words we put on these facts are on The price of a bet and Racing myths, measured.

What is not here: our own figures (KTB Rating, KTB Speed, the Fit Score), any runner or race row, and any bookmaker’s price. The figures stay on the site; the facts are free to leave.

The columns

angle
The angle's id in our store (stable).
angle_title
What the angle measures.
segment
The segment's key within the angle (stable).
segment_label
The segment in words.
first_date
The first race day in the segment (YYYY-MM-DD).
last_date
The last race day in the segment (YYYY-MM-DD).
runs
Runners counted (non-runners never count).
wins
Of those, winners.
win_pct
Wins ÷ runs × 100, one decimal. Blank when too few to say.
places
Placed runners, where the angle counts places (else blank).
place_pct
Places ÷ runs × 100, one decimal. Blank when not counted or too few to say.
runs_fair
Runs with a margin-free starting-price probability (the fair A/E sample).
fair_ae
Wins ÷ the sum of margin-free SP probabilities, two decimals; 1.00 = won as often as the fair market said. Blank when too few to say.
note
"too few to say" when the segment is under the store's floor; otherwise blank.
as_at
The last race day in the store when the row was read.
window_365
The rolling year the _365 columns cover (YYYY-MM-DD/YYYY-MM-DD): the 365 days to yesterday.
runs_365
Runners counted in the rolling year (0 when the segment had none).
wins_365
Of those, winners.
win_pct_365
Wins ÷ runs over the rolling year, one decimal. Blank when too few to say.
places_365
Placed runners in the rolling year, where the angle counts places (else blank).
place_pct_365
Places ÷ runs over the rolling year, one decimal. Blank when not counted or too few to say.
runs_fair_365
Runs in the rolling year with a margin-free starting-price probability.
fair_ae_365
Fair A/E over the rolling year, two decimals. Blank when too few to say.
note_365
"too few to say" when the rolling year is under the store's floor for the segment; otherwise blank.

The angles in it

  • The favourite through the seasons, by code fav_season_code · 8 rows
  • The jumps favourite in the autumn changeover, by its break fav_autumn_jumps_break · 4 rows
  • The favourite by going, by code fav_going_code · 15 rows
  • The favourite by going and its own fair price band fav_going_price · 12 rows
  • The favourite in GB and in Ireland, by code fav_region_code · 4 rows
  • The favourite by month, by code fav_month_code · 24 rows
  • The favourite when the race lost runners fav_nr_count · 4 rows
  • The favourite by time of day fav_time_of_day · 4 rows
  • The market's shape — the favourite by how clear it is mkt_shape · 5 rows
  • The winner's price through the seasons, by code winners_season_code · 8 rows
  • The winner's price by going, by code winners_going_code · 15 rows
  • The last-time-out winner by season, by code ltow_season_code · 8 rows
  • The last-time-out winner by going, by code ltow_going_code · 15 rows
  • Odds-on (fair) runners, by code odds_on_code · 2 rows
  • The each-way table — place rate by market rank × field size ew_table · 21 rows
  • Two or more from one yard — the first and the second string stablemates · 3 rows
  • The price of a bet — the overround and the field, by field size market_field · 8 rows
  • Claiming riders, by the claim claim · 4 rows
  • Claiming riders in handicaps, by the claim claim_hcap · 4 rows
  • Top weight and bottom weight in handicaps, by field size hcap_weight_field · 9 rows
  • The handicap top weight by going, by code hcap_topweight_going · 6 rows
  • Every runner by age age · 6 rows
  • Three-year-olds against older horses on the flat, by month three_v_older · 24 rows
  • Fillies and mares against males on the flat fillies_v_males · 2 rows
  • Days since the last run, by code days_since_run_code · 12 rows
  • First-time headgear, by type headgear_first · 35 rows
  • First-time headgear, by code headgear_first_code · 4 rows
  • The headgear change headgear_change · 5 rows
  • A new yard's first run trainer_change · 3 rows
  • Days since the horse last won days_since_win · 7 rows
  • Course form course_form · 4 rows
  • The code switch code_switch · 3 rows
  • The class move class_move · 4 rows
  • The distance move from the last run dist_move · 6 rows
  • A new jockey for the horse jockey_new · 3 rows

Compiled by Kickthebookies from our own results archive; every figure read from the store, none typed. What we publish and why is in the editorial policy. Questions or corrections: the contact page.