The headline numbers are good, but the big-occasion results are what really stand out. Keatley has won four of the top-level races in Britain, at venues including Doncaster, York and Ayr — the kind of prizes that take some trainers a decade or more to get near. His two most recent came in the same calendar year: a Class 1 at York in May 2025 and another at Ayr in September 2025. Winning at York is significant — it is one of the most prestigious tracks in the country, the kind of place where reputations are made. Winning there and then backing it up at Ayr months later suggests a yard that knows how to peak at the right moment.
There are some interesting patterns that point to where Keatley's horses are best deployed. On very wet, muddy ground — the sort of conditions many trainers dread — his runners win 3 from 10 races, a 30% rate. That means nearly 1 in every 3 runners on a wet day wins, which is a striking edge. At Catterick Bridge specifically, he has returned 3 winners from just 7 runners — an almost absurd conversion rate for a track that rewards local knowledge and careful targeting.
His most productive jockey partnership is with Oisin McSweeney, and the numbers there are worth noting. Together they have combined for 16 wins from 96 rides — roughly 1 in every 6 — a 17% win rate that runs almost exactly in step with the yard's overall average. That kind of consistency across a large sample of rides suggests a genuine working relationship rather than occasional good luck. When a trainer and jockey are on the same page about how horses need to be ridden, you tend to see this sort of steady, repeatable output rather than random spikes.
Still only four years in, Keatley has already shown he can compete at the very top. The trajectory looks interesting.
| Course | Races | Wins | Win rate |
|---|---|---|---|
| Newcastle | 31 | 9 | 29.0% |
| York | 30 | 1 | 3.3% |
| Ayr | 20 | 5 | 25% |
| Wolverhampton | 13 | 0 | 0% |
| Southwell | 12 | 4 | 33.3% |
| Doncaster | 11 | 0 | 0% |
| Kempton Park | 9 | 0 | 0% |
| Chester | 8 | 0 | 0% |
| Catterick Bridge | 7 | 3 | 42.9% |
| Musselburgh | 7 | 1 | 14.3% |
| Thirsk | 7 | 0 | 0% |
| Carlisle | 7 | 0 | 0% |
| Pontefract | 6 | 1 | 16.7% |
| Uttoxeter | 6 | 1 | 16.7% |
| Hamilton Park | 6 | 1 | 16.7% |
| Ascot | 6 | 0 | 0% |
| Ripon | 5 | 2 | 40% |
| Beverley | 5 | 0 | 0% |
| Wetherby | 4 | 1 | 25% |
| Market Rasen | 4 | 1 | 25% |
| Lingfield Park | 4 | 1 | 25% |
| meydan | 4 | 0 | 0% |
| Hexham | 3 | 2 | 66.7% |
| Haydock Park | 3 | 1 | 33.3% |
| Nottingham | 3 | 0 | 0% |
| Warwick | 2 | 2 | 100% |
| Chepstow | 2 | 1 | 50% |
| Cheltenham | 2 | 0 | 0% |
| Cartmel | 2 | 0 | 0% |
| Epsom Downs | 2 | 0 | 0% |
| chelmsford | 2 | 0 | 0% |
| Kelso | 2 | 0 | 0% |
| Newmarket | 2 | 0 | 0% |
| Redcar | 2 | 0 | 0% |
| Perth | 2 | 0 | 0% |
| Sedgefield | 1 | 1 | 100% |
| Brighton | 1 | 1 | 100% |
| Goodwood | 1 | 1 | 100% |
| Newbury | 1 | 0 | 0% |
| Leicester | 1 | 0 | 0% |
| Galway | 1 | 0 | 0% |
| Huntingdon | 1 | 0 | 0% |
| Aintree | 1 | 0 | 0% |
| Naas | 1 | 0 | 0% |
| The Curragh | 1 | 0 | 0% |
| Stratford-on-Avon | 1 | 0 | 0% |