This season alone he has ridden 51 winners from 557 races — that's roughly 1 in every 11 rides turning into a victory, a 9% win rate that reflects the reality of life for a jockey working across a broad range of horses and opportunities. Not every ride is a favourite, and not every favourite wins. Turning 51 of those chances into a trip to the winner's enclosure requires consistency and composure, race after race.
His most productive relationship is with trainer George Scott, and it's a partnership worth paying attention to. Keenan has ridden 16 winners from 98 races for Scott's yard — a win rate of 16%, or roughly 1 in every 6 rides. That's almost double his overall average, which suggests something more than just good horses. When a jockey performs significantly better for one particular trainer, it usually means there's real trust operating in both directions — the trainer books him knowing what he'll get, and the jockey knows the horses well enough to get the best from them.
Conditions matter too, and Keenan's record on fast, dry ground stands out. On those quicker surfaces he's won 11 races from 71 — a 15% win rate, or 1 in every 6 or 7 races. That's a meaningful uptick from his overall figures, and it's the kind of detail that sharper observers and trainers file away. Some jockeys thrive in the mud, some are made for the faster, more technical races on firm ground. Keenan appears to be one of the latter.
Still only four years into his career, the trajectory here matters as much as the current numbers. Reaching 190 career winners before most jockeys have properly established themselves is a solid foundation. The partnership with George Scott gives him a reliable stream of well-prepared horses, and his ability to lift his game in the right conditions suggests there's more to come. He's not yet a household name — but he's building the kind of record that makes trainers pick up the phone.
| Course | Races | Wins | Win rate |
|---|---|---|---|
| Lingfield Park | 89 | 9 | 10.1% |
| Southwell | 72 | 5 | 6.9% |
| Wolverhampton | 66 | 5 | 7.6% |
| Kempton Park | 48 | 3 | 6.2% |
| chelmsford | 41 | 2 | 4.9% |
| Great Yarmouth | 36 | 1 | 2.8% |
| Leicester | 26 | 3 | 11.5% |
| Nottingham | 18 | 1 | 5.6% |
| Newcastle | 17 | 3 | 17.6% |
| Brighton | 15 | 4 | 26.7% |
| Doncaster | 14 | 0 | 0% |
| Newmarket | 13 | 2 | 15.4% |
| Haydock Park | 10 | 2 | 20% |
| Chester | 10 | 1 | 10% |
| Musselburgh | 10 | 0 | 0% |
| Catterick Bridge | 9 | 1 | 11.1% |
| Beverley | 8 | 2 | 25% |
| Thirsk | 7 | 2 | 28.6% |
| Bath | 6 | 1 | 16.7% |
| Windsor | 6 | 0 | 0% |
| York | 5 | 1 | 20% |
| Pontefract | 5 | 0 | 0% |
| Ascot | 4 | 1 | 25% |
| Ripon | 3 | 2 | 66.7% |
| Chepstow | 3 | 0 | 0% |
| Goodwood | 3 | 0 | 0% |
| Redcar | 3 | 0 | 0% |
| Carlisle | 2 | 0 | 0% |
| Hamilton Park | 2 | 0 | 0% |
| Sandown Park | 2 | 0 | 0% |
| Newbury | 2 | 0 | 0% |
| Wetherby | 1 | 0 | 0% |
| Epsom Downs | 1 | 0 | 0% |