The partnership with trainer George Scott stands out as something particularly worth watching. From 94 races together they have produced 15 winners — that's 16%, or close to 1 in every 6 — nearly double Keenan's overall season average. When a jockey and trainer click like that, it often means genuine trust on both sides: the trainer keeps putting him up, and the jockey keeps repaying it. It's the kind of relationship that tends to produce big days at good tracks.
What is really eye-catching right now is his form over the last two weeks. Four winners from 19 rides works out at roughly 1 in every 5 — more than twice his season average of 1 in 11. Short samples can mislead, but a jockey firing at that rate mid-season usually means confidence is high and rides are coming in fit and ready. It is the kind of purple patch that can define a season if he keeps it going.
One more detail worth filing away: on fast, dry ground Keenan has won 2 from 6 races — that's 33%, or 1 in every 3 — a sample too small to be definitive, but a hint that when conditions suit, he is very hard to beat. As British summers heat up and tracks dry out, that could become a real weapon.
Still only four years in and with 183 career winners already banked, Keenan looks like a jockey who is getting better rather than just busier. The George Scott connection, the current form, the results on dry ground — the pieces of a genuinely exciting career are starting to fit together.
| Course | Races | Wins | Win rate |
|---|---|---|---|
| Lingfield Park | 90 | 10 | 11.1% |
| Southwell | 69 | 5 | 7.2% |
| Wolverhampton | 66 | 5 | 7.6% |
| Kempton Park | 49 | 3 | 6.1% |
| chelmsford | 42 | 2 | 4.8% |
| Great Yarmouth | 37 | 2 | 5.4% |
| Leicester | 24 | 1 | 4.2% |
| Brighton | 23 | 4 | 17.4% |
| Newcastle | 18 | 3 | 16.7% |
| Nottingham | 17 | 1 | 5.9% |
| Doncaster | 17 | 0 | 0% |
| Newmarket | 13 | 2 | 15.4% |
| Catterick Bridge | 11 | 2 | 18.2% |
| Musselburgh | 10 | 0 | 0% |
| Haydock Park | 9 | 1 | 11.1% |
| Windsor | 9 | 0 | 0% |
| Beverley | 8 | 2 | 25% |
| Bath | 7 | 2 | 28.6% |
| Ripon | 5 | 2 | 40% |
| Pontefract | 5 | 0 | 0% |
| Redcar | 4 | 0 | 0% |
| Chester | 4 | 0 | 0% |
| Thirsk | 3 | 1 | 33.3% |
| Ascot | 3 | 1 | 33.3% |
| Chepstow | 3 | 0 | 0% |
| Sandown Park | 2 | 0 | 0% |
| York | 2 | 0 | 0% |
| Hamilton Park | 2 | 0 | 0% |
| Carlisle | 2 | 0 | 0% |
| Salisbury | 1 | 1 | 100% |
| Epsom Downs | 1 | 0 | 0% |
| Newbury | 1 | 0 | 0% |
| Wetherby | 1 | 0 | 0% |
| Goodwood | 1 | 0 | 0% |