Documentation / Guides
Coverage by country
Which jurisdictions publish what, counted rather than claimed.
The most common support question about any racing feed is "why is this field null", and nine times in ten the answer is that the jurisdiction never published it. This guide is here so you can find that out before you write the code rather than after.
Two different questions
People say "coverage" to mean two things that need separating.
- Do you have the races? How many races we hold from a country, and over what span.
- Do the races carry the field? Whether the jurisdiction publishes official ratings, or class, or a winning time, at all.
A country can be strong on the first and useless on the second. France is a good example: tens of thousands of races, and official ratings on about four percent of runners.
The split that matters most
A full finishing order means every runner carries a position. Placings only means the first
four home are published and nothing below them, so most of the field comes back with
position: null.
Just over half of our archive is the second kind, almost entirely because of America. That is not a gap in our data; it is what was released, and no provider has what was never published.
If your work counts placings, counts beaten runners, or computes anything per-runner from a finishing position, you cannot use American racing for it. Better to know now.
Which fields exist where
Measured from the loaded archive at the last data load, as a share of that country's
runners. These move as the backfill advances; the coverage page
always has the current figures and /v1/meta/coverage returns them to your code.
| Field | GB | IRE | FR | USA |
|---|---|---|---|---|
| Finishing position | 82% | 81% | 76% | 45% |
| Starting price | 96% | 98% | 100% | 100% |
| Official rating | 76% | 63% | 4% | 77% |
| Race class | 100% | 6% | 1% | — |
| Winning time | 94% | 96% | — | — |
| Opening price | 59% | 52% | — | — |
| Tote dividends | 96% | 97% | 98% | 98% |
Three of those are worth calling out because they contradict what people assume.
- Price movement is British and Irish, and substantial there. Not the handful of runners we originally described. It is essentially absent everywhere else, so any model using it works on two countries.
- America publishes ratings and tote dividends, on most races. It is the finishing order it does not publish.
- Race class is a British idea. Ireland carries it on six percent of races and France on one. A filter on class is a filter on Britain.
Checking it from code
GET /v1/meta/coverage # totals, the split, and your own window
GET /v1/countries # per jurisdiction, with the field flags
Read /v1/countries once at startup and refuse to run on a region you cannot
support, rather than producing quiet nonsense. A position_pct below about 0.6
means most runners have no finishing position.
Things that do not exist at all
- Sectional and in-running times. None, anywhere, at any point in the archive. If your model needs fractions, this is the wrong feed and no plan changes that.
- Bookmaker odds comparison. Starting price, an opening price where one was published, and the tote. We are not a price aggregator.
- Predictions, tips or ratings of our own. We supply data and take no view on any race.
The archive is still filling
The backfill runs from January 2017 forward and has not reached the present yet. Every
figure grows daily until it does, and nothing already loaded changes. data_as_of
on every response and the status page both tell you where it has got
to.