The overall numbers tell a story of steady improvement. Last season he was winning around 1 in every 25 races; this season that has tightened to 1 in every 18, a meaningful jump that reflects genuine development rather than luck. Across 268 rides this year, 15 winners might not sound spectacular in isolation, but for a jockey still in only his second season, maintaining that kind of consistency across a high volume of rides is genuinely encouraging.
His most important relationship in the saddle is with trainer John Joseph Hanlon — almost certainly a family connection, which tends to mean a jockey gets opportunities rather than having to earn every single one from scratch. That partnership has produced 8 wins from 147 rides together, or roughly 1 in every 18 — matching his overall average almost exactly, which suggests it is a solid, dependable pairing rather than one masking weaknesses elsewhere.
The most eye-catching number in his profile is what happens when the ground dries out. On fast, dry conditions he has won 2 races from just 6 — that is a 33% win rate, or 1 in every 3 rides. Sample sizes this small deserve caution, but a figure like that does not appear from nowhere. It hints that either the horses he rides on quicker ground suit those conditions particularly well, or that Hanlon himself rides with more confidence and timing when the surface is lively underfoot. Worth keeping an eye on when the sun comes out.
Still only two years in, the ceiling is genuinely unknown. What is clear is that the direction of travel is upward — more winners, a better win rate, and a key stable behind him. The next step will be converting that platform into opportunities at higher levels. For now, he is doing exactly what a young jockey needs to do: riding plenty, winning regularly enough, and getting better.
| Course | Races | Wins | Win rate |
|---|---|---|---|
| Downpatrick | 23 | 3 | 13.0% |
| Taunton | 18 | 2 | 11.1% |
| Wincanton | 18 | 1 | 5.6% |
| Listowel | 16 | 1 | 6.2% |
| Stratford-on-Avon | 13 | 2 | 15.4% |
| Limerick | 13 | 0 | 0% |
| Sligo | 12 | 0 | 0% |
| Wexford | 11 | 0 | 0% |
| Thurles | 9 | 1 | 11.1% |
| Fontwell Park | 9 | 0 | 0% |
| Cheltenham | 9 | 0 | 0% |
| Kilbeggan | 9 | 0 | 0% |
| Plumpton | 7 | 2 | 28.6% |
| Warwick | 7 | 0 | 0% |
| Killarney | 6 | 0 | 0% |
| Worcester | 6 | 0 | 0% |
| Punchestown | 6 | 0 | 0% |
| Down Royal | 5 | 2 | 40% |
| Bellewstown | 5 | 0 | 0% |
| Galway | 5 | 0 | 0% |
| Sedgefield | 4 | 1 | 25% |
| Tramore | 4 | 0 | 0% |
| Clonmel | 4 | 0 | 0% |
| Fairyhouse | 4 | 0 | 0% |
| Exeter | 3 | 0 | 0% |
| Wetherby | 3 | 0 | 0% |
| Chepstow | 3 | 0 | 0% |
| Roscommon | 3 | 0 | 0% |
| Newbury | 3 | 0 | 0% |
| Uttoxeter | 3 | 0 | 0% |
| Bangor-on-Dee | 2 | 0 | 0% |
| Cork | 2 | 0 | 0% |
| Tipperary | 2 | 0 | 0% |
| Haydock Park | 2 | 0 | 0% |
| Carlisle | 2 | 0 | 0% |
| Catterick Bridge | 2 | 0 | 0% |
| Kempton Park | 2 | 0 | 0% |
| Huntingdon | 2 | 0 | 0% |
| Ludlow | 2 | 0 | 0% |
| Newton Abbot | 2 | 0 | 0% |
| Naas | 2 | 0 | 0% |
| Navan | 1 | 0 | 0% |
| Sandown Park | 1 | 0 | 0% |
| Aintree | 1 | 0 | 0% |
| Ayr | 1 | 0 | 0% |
| Kelso | 1 | 0 | 0% |