The numbers across her career back up what those big wins suggest. She has trained 313 winners in total, and in the last twelve months alone she has sent out 53 winners from 524 runners — winning roughly 1 in every 10 races. That might sound modest, but it represents a genuine step forward: her win rate has climbed from 8% last season to 10% this year, which in training terms is a meaningful improvement rather than a rounding error. Training is a game of fine margins, and that kind of upward curve tells you a yard is getting sharper.
Her partnership with jockey Shane Foley is one of the most productive in her operation. He has ridden 293 times for her yard and come home in front on 31 occasions — winning at 11%, just slightly better than her overall average, which suggests Foley gets the most out of the horses she trusts him with most often. That kind of consistent working relationship matters; the best trainer-jockey combinations develop an understanding about when to press and when to wait.
Two conditions worth noting: she handles the extremes particularly well. On very wet, muddy ground — the sort of day most casual racegoers would rather watch from the warmth of the bar — her horses have won 2 from 12, a 17% win rate that puts her well ahead of her average. And at Punchestown, she has turned out 5 winners from just 16 runners, winning nearly 1 in every 3 races there. A trainer who performs above their average at a specific track usually knows something — about the draw, the ground, or simply which horses suit the course.
Only four years in, the trajectory here is hard to ignore.
| Course | Races | Wins | Win rate |
|---|---|---|---|
| The Curragh | 94 | 4 | 4.3% |
| Leopardstown | 52 | 5 | 9.6% |
| Dundalk | 44 | 7 | 15.9% |
| Naas | 41 | 2 | 4.9% |
| Galway | 34 | 3 | 8.8% |
| Cork | 30 | 3 | 10% |
| Gowran Park | 29 | 4 | 13.8% |
| Navan | 28 | 2 | 7.1% |
| Roscommon | 24 | 5 | 20.8% |
| Killarney | 20 | 3 | 15% |
| Punchestown | 16 | 5 | 31.2% |
| Bellewstown | 13 | 3 | 23.1% |
| Listowel | 13 | 0 | 0% |
| Limerick | 11 | 0 | 0% |
| Down Royal | 10 | 1 | 10% |
| Fairyhouse | 10 | 1 | 10% |
| Ballinrobe | 7 | 1 | 14.3% |
| Tipperary | 7 | 0 | 0% |
| Sligo | 5 | 0 | 0% |
| Thurles | 4 | 0 | 0% |
| Wexford | 3 | 1 | 33.3% |
| Tramore | 3 | 1 | 33.3% |
| Cheltenham | 3 | 0 | 0% |
| Kilbeggan | 3 | 0 | 0% |
| Chepstow | 2 | 1 | 50% |
| Clonmel | 2 | 1 | 50% |
| Lingfield Park | 2 | 0 | 0% |
| Bath | 2 | 0 | 0% |
| Haydock Park | 2 | 0 | 0% |
| Laytown | 2 | 0 | 0% |
| Sandown Park | 2 | 0 | 0% |
| York | 2 | 0 | 0% |
| Ascot | 1 | 0 | 0% |
| Chester | 1 | 0 | 0% |
| Ayr | 1 | 0 | 0% |
| Doncaster | 1 | 0 | 0% |