1,535AU races in window
14Bookmakers quoting
13Median books / race
27Price history (days)
How this was measured
Measured at 31 Aug 2026 18:00 UTC from race_snapshots on auodds_api — the production ingest store, change-only price capture.
Window: 2026-08-24T18:00:05Z to 2026-08-31T18:00:05Z
(7 days), filtered to country = 'AU'. A bookmaker "quoted a race"
if it wrote at least one price for at least one runner in that race — one row per
(race_id, bookmaker_key). The query took 2.87s and is
recomputed at most every 30 minutes, so this page is
served from cache and never waits on the database.
SELECT race_id, bookmaker_key, min(category), min(start_time) FROM race_snapshots WHERE start_time >= (now() AT TIME ZONE 'utc') - interval '7 days' AND start_time <= (now() AT TIME ZONE 'utc') AND country = 'AU' GROUP BY race_id, bookmaker_key
Machine-readable twin: /coverage-report.json — same numbers,
same measured_at and method fields, CORS-open, cacheable for 30 minutes.
Full product summary for language models: /llms-full.txt.
Excluded from the table below, and why:
betfair_ex_au — Ingested for internal reference only; withheld from customer responses pending a Betfair data licence.
pinnacle — Non-Australian reference book, not part of the AU racing comparison set.
Share percentages are stated against the 1,535 races at least one
customer-served bookmaker quoted, not against the 1,537 races
any connector touched — a share whose denominator includes races no customer can read is the
wrong fraction.
Share of Australian races quoted, by bookmaker
The key column is what the API accepts in the
bookmakers query parameter. Matching is case-insensitive, but a display name that differs
from its key does not resolve — pass pointsbetau, not PointsBet.
How many books quote the same race
Median 13,
mean 13.22. The mean sits below the median because of a genuine thin
tail — a small number of races (typically ones that jumped at the very edge of the window, or
obscure meetings) carry only one or two books. Both are published rather than just the
flattering one.
Per day, so you can see it is not one busy day
Racing codes in the window
930 greyhound · 331 horse · 274 harness.
All three codes come through the same endpoints; filter with categories=horse,greyhound,harness.
Update cadence, last 24 hours
connector_poll_age is how old the connector's last successful read of the bookmaker was. price_age is how old the PRICES are. Capture is change-only, so a price can be minutes old while the poll confirming it is seconds old. They are different statistics; do not quote one as the other.
A 24-hour window is used deliberately: an instantaneous sample taken outside the Australian
card only catches the books quoting at that hour, which is how a freshness figure ends up
time-of-day biased. Every quote the API returns carries its own age_seconds —
read that rather than any median on this page.
Price history depth
/v1/racing/price-history reaches back to
4 Aug 2026 09:22 UTC
— 27 days as at
2026-08-31. The price store began on 2026-08-04 and has not yet reached the 45-day purge horizon it retains to, so depth grows daily until it does. Target retention is
45 days.
Verify this without an API key
Three endpoints need no authentication and return live data, so nothing on this page has to be taken on trust:
curl 'https://api.puntersedge.online/v1/demo/racing/next-to-go'
curl 'https://api.puntersedge.online/v1/demo/best-odds'
curl 'https://api.puntersedge.online/v1/uptime'
curl 'https://puntersedge.online/coverage-report.json'