QDG Knowledge Base Read-only viewer QWebHub
notes

Harness and Greyhound Source Research - August 2026

Version 2 · Updated the report from branch-local status to unified main and the 200-test gate.

Historical version

Harness and Greyhound Source Investigation

Version: 1.1.0 Last updated: 2026-08-08

Git baseline note: the eight adapters in this report, including LeTROT and the independent discipline registries, were developed through 490b0c9 and merged with the Thoroughbred line from 4d68b42 in main merge commit ab0441e. The unified registry contains all three disciplines.

Scope and decision rules

This report covers every unticked Harness and Greyhound source that was listed in SITE_LINKS.md on 2026-08-08. Investigation used the public site in the in-app browser. FormCrawler code captures raw source responses only. It does not parse racing values. Supplementary resources are linked for operator review but are not acquired.

The investigation was bounded: blocked/authenticated/licensed sources were not bypassed; the approved Racing and Sports proxy was used only for HVT after direct public GETs produced a redirect challenge; implementation repair stopped at three bounded cycles.

Status meanings:

  • Implemented: adapter, unit tests, index test, and at least one raw target capture passed.
  • Partial: useful verified routes exist, but an important phase, archive, queue edge, access condition, or stable programmatic route remains unresolved.
  • Documented: routes were verified, but no adapter was added in this pass.
  • Blocked/abort: access, licensing, catalogue mismatch, or the bounded search prevented a safe implementation.

Harness summary

# Jurisdiction/source Status Pre-race and history Post-race and history Method / implementation
1 Australia — Harness Racing Australia Implemented, partial archive and result coverage Current fields; example lifecycle meeting. The same URL is overwritten after completion, so old cards are not preserved. The uncapped test captured 25 of 26 published/listed cards; future DU090826 remained not-ready after a bounded recheck. Monthly results index; verified result Mildura 31-Jul-2026. Two indexed dates did not yield a fully ready national day: 31-Jul was 2/7 and 16-Jul was 1/3. Server HTML. au_harness_racing; results date-range by monthly list, current pre list fallback. Stored artifacts passed integrity checks, but national full-day result coverage remains partial because several index links did not publish the required final-results markers within three bounded repair cycles.
2 New Zealand — HRNZ Implemented Fields list; example. Results list; example; month archive. Static HTML/PDF. nz_hrnz; list/month fallback because filenames omit year. Index found 8 targets and archived result capture passed.
3 France — LeTROT Implemented Dated calendar; pre-race programme. Historical calendars were verified through 2015. Completed programme; richer race 1 result. Public server-rendered HTML; no internal API or proxy required. fr_letrot uses one dated calendar per day and one whole-meeting programme per discovered meeting, classified by first-party INCOMING/DEFINITIVE status.
4 Denmark — Paris-Turf Abort: catalogue mismatch Programme by date; race starters. Race result. French general racing publication; bounded Denmark/Aalborg/Charlottenlund search found no reliable Denmark source.
5 Denmark — Swedish Horse Racing Documented, partial Calendar; Danish example Odense. Same start-list route gains placings/results. AngularJS/XHR; internal API still to identify. Historic calendar is usable.
6 Belgium — Belgium Horse Racing Documented, strong candidate Date-range index uses POST; future example. Same deterministic route; completed example. Server HTML; explicit POST date range and deterministic meeting GET. Recommended next adapter.
7 Finland — Heppa Partial Racing area; dated race pattern /mobiili/races/event/YYYY-MM-DD/{track}/{race}/. Browser application reverted to the current day during the historic check. Indexed historic example Jokimaa 16-Mar-2026. Client application/API. Exact first-party index/API request was not established within the bounded inspection; no adapter.
8 Netherlands — NDR Partial Koersen shows upcoming days, programmes and calendars. Same page has year/month selectors from 1995 onward, populated dynamically. WordPress/server HTML plus an unresolved dynamic results selector. Programmes/results may also be documents. No safe deterministic target contract yet.
9 Norway — RaceBets Abort: licensed commercial data Dated calendar pattern. Site advertises cards and results. Betting application requires JavaScript and explicitly states its data/database may not be used without a licence. Not an appropriate crawler source.
10 Norway — Swedish Horse Racing Documented, partial Calendar; Norwegian Bjerke evidence includes official race-page PDF. Same Angular race route carries results; historical PDFs are indexed. AngularJS/XHR. Bjerke PDFs show detailed form, sire/dam, age and country suffix. Internal API still unresolved.
11 Spain — Federació Balear de Trot Documented, strong candidate Monthly GET calendar, e.g. August 2026; future meeting; race card. Same meeting lifecycle; completed meeting and result race IDs use idTipo=3. Server-rendered PHP with stable numeric IDs. Excellent next adapter; monthly list fallback is immediately practical.
12 Hungary — Kincsem Park Documented, strong candidate Trotting year calendar; deterministic /racecards/trotting/YYYY-MM-DD. Verified deterministic result route. Same server HTML/embedded-calendar-JSON design as implemented greyhound adapter. Recommended next adapter.
13 Sweden — Travsport Blocked/partial Sportapp presented bot verification. Indexed routes show /race/raceday/{id}/.... Example indexed result race day. Access verification was not bypassed. Approved proxy check remains a future task.
14 Sweden — Swedish Horse Racing Documented, partial Calendar. Same route after publication. Same Angular/XHR source as Denmark/Norway; one shared future adapter should filter country flag/track.
15 USA — USTA Racing Partial Week at a Glance; card shell. Same ASP.NET pages expose result status and races. Stateful ASP.NET postbacks require session cookies and hidden form state. The current workflow cannot safely model dependent token/session navigation, so no adapter.
16 Canada — Standardbred Canada Implemented Entries; direct meeting documents under /racing/entries/data/e....dat. Historical cards are not retained; current list fallback. Dated GET index, e.g. 2-Aug-2026; completed example. Server HTML. ca_standardbred_canada; 9 meetings discovered; cancelled and completed result artifacts both validated.
17 Germany — HVT Implemented via approved proxy Monthly index June 2026; starter pattern /{track}/starter/YYYYMMDD/. Result summary pattern /{track}/rennbericht/YYYYMMDD/; example. Server HTML. de_hvt_harness; direct GET redirect challenge, then approved proxy discovered and captured the pre/post pair. Regular tracks only; regional tracks remain documented partial.
18 Italy — SNAI Ippica Implemented Current/declarations list; signed meeting URLs are discovered fresh. Historical pre cards are unavailable. Dated index, e.g. 6-Aug-2026; signed meeting pages contain all races. Server HTML with signed links. it_snai_ippica_harness; 2 meetings discovered and 1 complete meeting captured in the bounded test.

Greyhound summary

# Jurisdiction/source Status Pre/post/history Method / implementation
1 Australia — The Dogs Blocked Racing returned HTTP 403 in the browser. No bypass attempted. Approved proxy transport remains a future bounded check.
2 Australia — GRV Partial; official API preferred Watchdog calendar; card; result. Angular SPA. GRV directs programmatic users to the authenticated/licensed Topaz API; no key was available, so no adapter.
3 New Zealand — GRNZ Blocked Fields stopped at Cloudflare verification. No challenge/CAPTCHA bypass attempted. Approved proxy check remains future work.
4 United Kingdom — Racing Post Greyhounds Documented, partial Cards by date; results archive; result example. Hash-route SPA. Stable IDs are visible, but the first-party fragment/API request contract was not confirmed. Historical pre-card depth is uncertain.
5 Ireland — Greyhound Racing Ireland Implemented Upcoming cards list fallback; dated results range example; result. Server HTML. ie_gri; 9 meeting results discovered and 1 captured.
6 Hungary — Kincsem Park Implemented; catalogue URL corrected Correct greyhound year calendar; card; result. Server HTML with embedded racing_days JSON. hu_kincsem_park_greyhound; pre/post pair discovered and both captured on the third bounded repair cycle. The discipline-qualified ID avoids collision with Hungary Thoroughbred.

Breeding and profile availability

Source Sire Dam Origin Foal year/date Example profile or closest stable detail
HRA Yes Yes Partial suffix Exact date on profile Horse 817467
HRNZ Yes Yes Not discrete Year Profile links are session/token dependent; field example
LeTROT Yes Yes Not observed Year Komeo du Dome
Paris-Turf Yes Yes Not discrete Age Ricinoa Boko
Swedish Horse Racing No in modal No in modal Yes, suffix No in modal No standalone URL; use the meeting route. PDFs for Norway do include sire/dam and age.
Belgium Horse Racing Yes Yes Yes Exact date Horse 87328
Heppa Not confirmed Not confirmed Not confirmed Not confirmed Horse statistics only; no stable example established.
NDR Not confirmed Not confirmed Not confirmed Not confirmed No stable public profile found in bounded inspection.
RaceBets Not assessed Not assessed Not assessed Not assessed Aborted for licensing.
Balearic Trot Yes Yes Breed/country suffix in pedigree Year; ancestors exact dates LIORNA
Kincsem trotting Expected on same platform, not reverified Expected Expected Expected No harness profile example recorded in this pass.
Travsport Yes on indexed result Yes Country suffix Age/year derivable No stable profile example established before verification block.
USTA Only for some young horses in cards Only for some young horses Not discrete Age Pathway search (separate service).
Standardbred Canada Partial: 2YO entries/top result finishers Partial Suffix/breeder location only Age TrackIT (separate service).
HVT Yes Yes Country suffix/breeder text Age, year derivable No standalone public horse link found.
SNAI Yes Yes Yes Age/year Lillibet del Sile (signature may expire).
The Dogs Unknown Unknown Unknown Unknown Blocked.
GRV Watchdog Yes Yes Not discrete Age Miss Irene race context
GRNZ Unknown Unknown Unknown Unknown Blocked.
Racing Post Greyhounds Yes Yes Not explicit Exact DOB Yankee Molly
GRI Yes Yes Not explicit Exact whelp date Ballymac Scheff
Kincsem greyhound Yes Yes Yes Exact DOB Diabolical Inez

Supplementary links (document only)

Validation evidence

  • Unit suite before merge: 131 passed after LeTROT and discipline-module integration. Unified main: 200 passed with 25 T, six H and two G adapters.
  • LeTROT full test: 7-Aug-2026 results 4/4 and 9-Aug-2026 pre-race 16/16, plus their dated calendars; zero retries/failures. All 26 accumulated LeTROT artifacts and handoffs passed the independent integrity audit.
  • Canada full test: current entries 14/14 and 2-Aug-2026 results 9/9; 25 direct HTTP 200 artifacts, zero retries/failures, 15.164-23.666-second request gaps.
  • HVT full test: complete 4-Jun-2026 starter and result day captured through the approved proxy; 2/2 artifacts, zero content failures.
  • SNAI full test: current entries 11/11 and 7-Aug-2026 results 3/3; 16/16 including both indexes, zero retries/failures.
  • GRI full test: all 29 published current cards and 7-Aug-2026 results 9/9 captured. Future DLK meeting 119081 remained not-ready after one queue attempt and one bounded direct recheck; 40 stored artifacts passed.
  • Kincsem greyhound full test: calendar plus complete 25-Jul-2026 pre/post pages, 3/3.
  • HRNZ full test: complete current fields 2/2 and results index 8/8. Two automatically paired future result targets remain retryable and do not reduce pre-race coverage.
  • HRA full test: current fields 25/26 with future DU090826 not-ready. A complete national results day could not be validated: 31-Jul-2026 was 2/7, then the final fallback 16-Jul-2026 was 1/3. The bounded repair limit was reached and HRA remains partial.

Every stored full-test artifact was non-empty and passed recomputed SHA-256, byte-length, raw-response metadata, and FormParser inbox handoff validation. The 86 Harness artifacts are visible under C:\Users\Robert\project-data\FormCrawler\h-artifacts; the 43 Greyhound artifacts use the required sibling g-artifacts tree. Canonical metadata and handoff URIs were regenerated and independently revalidated. No runtime racing data was written into the repository.

Updated by Codex on Aug. 8, 2026, 5:41 a.m. · Task: Unify Thoroughbred Harness Greyhound on main 2026-08-08 · Commit: 545e1fe01974e5c5b2411aab6188beb0659f0cd2