plays for Walsall
| Match | Mins | Goals | Assists | Shots (on) | Rating |
|---|---|---|---|---|---|
| Bromley v Walsall Β· May 2, 26 Β· EL2 Β· sub | 28 | 0 | 0 | β | 6.3 |
| Walsall v Harrogate Β· Apr 25, 26 Β· EL2 | 76 | 0 | 0 | β | 6.9 |
| Barrow v Walsall Β· Apr 18, 26 Β· EL2 | 90 | 0 | 0 | 1 (1) | 7.0 |
| Walsall v Cheltenham Β· Apr 11, 26 Β· EL2 | 90 | 0 | 0 | 1 | 6.7 |
| Swindon v Walsall Β· Apr 6, 26 Β· EL2 Β· sub | 27 | 1 | 0 | 1 (1) | 8.5 |
| Walsall v Gillingham Β· Apr 3, 26 Β· EL2 | 64 | 0 | 0 | 1 (1) | 6.6 |
| Colchester v Walsall Β· Mar 28, 26 Β· EL2 Β· sub | 17 | 0 | 0 | 1 (1) | 6.6 |
| Walsall v Newport County Β· Mar 21, 26 Β· EL2 Β· sub | 27 | 0 | 0 | β | 6.6 |
| Walsall v Cambridge Β· Mar 17, 26 Β· EL2 | 52 | 0 | 0 | β | 6.6 |
| Crewe v Walsall Β· Mar 14, 26 Β· EL2 | 73 | 0 | 0 | β | 7.3 |
| Salford v Walsall Β· Mar 10, 26 Β· EL2 | 79 | 0 | 0 | β | 6.7 |
| Walsall v Notts County Β· Mar 7, 26 Β· EL2 | 88 | 0 | 0 | 1 | 6.2 |
| Walsall v Fleetwood Town Β· Mar 3, 26 Β· EL2 | 79 | 0 | 0 | 2 (1) | 6.3 |
| Shrewsbury v Walsall Β· Feb 28, 26 Β· EL2 | 90 | 0 | 0 | 2 (1) | 5.9 |
| Walsall v Milton Keynes Dons Β· Feb 23, 26 Β· EL2 Β· sub | 31 | 0 | 0 | β | 6.9 |
| Match | blocks | conceded | dribbles past | duels | duels won | fouls committed | fouls drawn | interceptions | key passes | passes | red | tackles | yellow |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Bromley v Walsall | 1 | 0 | 2 | 6 | β | 1 | β | β | β | 19 | 0 | β | 1 |
| Walsall v Harrogate | β | 0 | β | 7 | 4 | 2 | 2 | 1 | 2 | 47 | 0 | β | 0 |
| Barrow v Walsall | β | 0 | β | 11 | 7 | 2 | 2 | β | 4 | 48 | 0 | 1 | 0 |
| Walsall v Cheltenham | 2 | 0 | 1 | 10 | 5 | 2 | 2 | β | β | 43 | 0 | 3 | 0 |
| Season | Team | Apps | Goals | Assists | Minutes | Avg rating |
|---|---|---|---|---|---|---|
| 2025-26 Β· EFL League Two | Walsall | 34 | 1 | 1 | 2,033 | 6.67 |
| 2024-25 Β· EFL League Two | Walsall | 43 | 5 | 2 | 3,337 | 6.97 |
| 2023-24 Β· EFL League Two | Walsall | 2 | 0 | 0 | 45 | 6.95 |
only matches where we hold the full stat line β coverage grows as the history backfill runs
| Swindon v Walsall | β | 0 | 2 | 4 | 2 | β | 1 | 1 | 2 | 14 | 0 | β | 0 |
| Walsall v Gillingham | β | 0 | β | 11 | 6 | β | 1 | β | β | 38 | 0 | 2 | 0 |
| Colchester v Walsall | β | 0 | β | 4 | 2 | 2 | β | β | β | 8 | 0 | β | 0 |
| Walsall v Newport County | β | 0 | β | 2 | 1 | β | β | 1 | β | 10 | 0 | 1 | 0 |
| Walsall v Cambridge | β | 0 | β | 2 | 1 | β | β | β | β | 14 | 0 | 1 | 0 |
| Crewe v Walsall | β | 0 | β | 9 | 8 | 1 | 1 | β | 2 | 32 | 0 | 3 | 0 |
| Salford v Walsall | β | 0 | β | 9 | 4 | 1 | 1 | β | 1 | 30 | 0 | 2 | 0 |
| Walsall v Notts County | β | 0 | 3 | 6 | 1 | 1 | β | 1 | 1 | 35 | 0 | 1 | 1 |
| Walsall v Fleetwood Town | β | 0 | β | 7 | 3 | β | 2 | 1 | 1 | 41 | 0 | β | 0 |
| Shrewsbury v Walsall | β | 0 | β | 12 | 5 | 1 | 3 | 1 | 1 | 39 | 0 | β | 0 |
| Walsall v Milton Keynes Dons | β | 0 | β | 3 | 3 | β | 1 | β | 2 | 21 | 0 | β | 0 |