One of Kirby's clearest strengths is wet ground. When the rain comes and the track gets soft or muddy, plenty of trainers struggle to find their footing — Kirby tends to thrive. He has won 8 from 49 races in those conditions, which is 16%, or roughly 1 in every 6. That's nearly double his overall rate, which suggests he either targets those days deliberately or simply prepares horses that genuinely enjoy getting their boots dirty. Either way, it's a useful edge.
His most productive relationship with any jockey is with Joe Williamson, who has ridden 15 winners from 108 races for the yard — a win rate of 14%, or about 1 in every 7 rides. That's a partnership that has clearly developed trust over time, with Williamson knowing what Kirby expects and Kirby knowing what Williamson can produce. When a trainer and jockey reach that kind of understanding, the results tend to speak for themselves.
Kirby also has a particularly strong record at Musselburgh, the seaside track just outside Edinburgh. Three winners from 12 runners there might sound modest in raw numbers, but 1 winner in every 4 runners at a specific track is the kind of local knowledge that's hard to fake — it usually means a trainer understands the track's quirks and picks the right races for the right horses. Finally, his standout individual partnership is with Asa, a horse he has won 5 races with from 30 attempts together. Five wins with one horse is a genuine working relationship, and it points to a trainer who sticks with a horse, learns what it needs, and keeps finding opportunities for it to shine.
| Course | Races | Wins | Win rate |
|---|---|---|---|
| Newcastle | 92 | 7 | 7.6% |
| Southwell | 40 | 2 | 5% |
| Catterick Bridge | 38 | 5 | 13.2% |
| Wolverhampton | 34 | 8 | 23.5% |
| Sedgefield | 25 | 5 | 20% |
| Carlisle | 15 | 1 | 6.7% |
| Wetherby | 15 | 0 | 0% |
| Musselburgh | 12 | 3 | 25% |
| Doncaster | 12 | 0 | 0% |
| Haydock Park | 12 | 0 | 0% |
| Kelso | 11 | 1 | 9.1% |
| Market Rasen | 10 | 2 | 20% |
| Thirsk | 10 | 0 | 0% |
| Hexham | 10 | 0 | 0% |
| York | 7 | 0 | 0% |
| Ayr | 6 | 0 | 0% |
| Beverley | 6 | 0 | 0% |
| Redcar | 6 | 0 | 0% |
| Pontefract | 5 | 0 | 0% |
| Ripon | 5 | 0 | 0% |
| Cartmel | 5 | 0 | 0% |
| Nottingham | 4 | 1 | 25% |
| Uttoxeter | 4 | 0 | 0% |
| Aintree | 3 | 0 | 0% |
| Fakenham | 3 | 0 | 0% |
| Bangor-on-Dee | 2 | 1 | 50% |
| Huntingdon | 2 | 0 | 0% |
| hereford | 2 | 0 | 0% |
| Hamilton Park | 2 | 0 | 0% |
| Warwick | 1 | 0 | 0% |
| Ludlow | 1 | 0 | 0% |
| Lingfield Park | 1 | 0 | 0% |
| Newmarket | 1 | 0 | 0% |
| Punchestown | 1 | 0 | 0% |
| Worcester | 1 | 0 | 0% |
| Leicester | 1 | 0 | 0% |