The numbers tell a story of steady, meaningful progress. Last season he was winning around 1 in every 13 races. This season that has tightened to 30 winners from 278 rides — roughly 1 in every 9. That might not sound dramatic on paper, but in a sport where margins are razor-thin and competition for the best horses is fierce, an improvement like that in a single year is genuinely significant. It suggests a jockey who is learning fast and earning trust.
Much of that trust has come from W P Mullins, one of the most powerful yards in training. Hayes has ridden 111 times for Mullins and converted 13 of those into wins — about 1 in every 8-and-a-half rides — which is a healthy return in a team that routinely puts forward competitive horses. Getting repeated opportunities from that stable is itself a mark of credibility.
His best individual partnership is with Baby Kate, a horse he seems to bring the best out of. Three wins from just seven races together is a remarkable ratio — nearly half their outings have ended in victory, which is an unusually tight bond between a jockey and a single horse. Those are the partnerships that tend to catch the eye of bigger stables and better owners.
One underrated part of Hayes's game is what he does when the ground turns soft and the rain comes. On genuinely wet or muddy ground he has won 6 from 31 races — roughly 1 in every 5 — compared to his overall average of closer to 1 in 9. Some jockeys struggle to adapt when conditions get testing and the race stops being about speed and starts being about judgement and patience. Hayes appears to thrive in it. Add in those two top-level wins at Cheltenham — the most prestigious venue in jump racing — and you have a jockey who is not just accumulating numbers but producing on the days that actually matter.
| Course | Races | Wins | Win rate |
|---|---|---|---|
| Fairyhouse | 35 | 2 | 5.7% |
| Punchestown | 34 | 5 | 14.7% |
| Leopardstown | 23 | 0 | 0% |
| Naas | 20 | 1 | 5% |
| Navan | 16 | 6 | 37.5% |
| Wexford | 14 | 2 | 14.3% |
| Tramore | 13 | 4 | 30.8% |
| Clonmel | 13 | 0 | 0% |
| Tipperary | 11 | 1 | 9.1% |
| Gowran Park | 11 | 1 | 9.1% |
| Galway | 11 | 0 | 0% |
| Cheltenham | 10 | 0 | 0% |
| Limerick | 9 | 3 | 33.3% |
| Kilbeggan | 8 | 2 | 25% |
| Thurles | 8 | 0 | 0% |
| Cork | 8 | 0 | 0% |
| Listowel | 8 | 0 | 0% |
| Sligo | 5 | 2 | 40% |
| Ballinrobe | 4 | 0 | 0% |
| Killarney | 4 | 0 | 0% |
| Downpatrick | 3 | 0 | 0% |
| Roscommon | 3 | 0 | 0% |
| Bellewstown | 2 | 1 | 50% |
| Aintree | 2 | 0 | 0% |
| Haydock Park | 1 | 0 | 0% |
| Huntingdon | 1 | 0 | 0% |
| Wetherby | 1 | 0 | 0% |