At a glance
- Full name
- Thomas Roy Sang
- Born
- 29 Jun 1999
- Age today
- 27
- Nationality
- England
Career by season
175 recorded appearances| Season | Competition | Team | Apps | Starts | Goals | Assists | Minutes | Cards |
|---|---|---|---|---|---|---|---|---|
| 26/27 | League Two | Shrewsbury Town | 14 | 14 | 0 | 1 | 1,215 | 2 |
| 26/27 | EFL Cup | Shrewsbury Town | 2 | 1 | 0 | 0 | 134 | 0 |
| 25/26 | League Two | Shrewsbury Town | 35 | 28 | 2 | 2 | 2,427 | 6 |
| 25/26 | FA Cup | Shrewsbury Town | 2 | 1 | 1 | 0 | 83 | 0 |
| 25/26 | EFL Cup | Shrewsbury Town | 1 | 1 | 1 | 0 | 90 | 0 |
| 24/25 | League Two | Port Vale FC | 28 | 19 | 0 | 2 | 1,847 | 2 / 2 red |
| 24/25 | FA Cup | Port Vale FC | 1 | 1 | 0 | 0 | 90 | 0 |
| 24/25 | EFL Cup | Port Vale FC | 1 | 0 | 1 | 0 | 28 | 0 |
| 23/24 | League One | Port Vale FC | 38 | 27 | 0 | 2 | 2,433 | 4 |
| 23/24 | FA Cup | Port Vale FC | 4 | 4 | 0 | 2 | 390 | 0 |
| 23/24 | EFL Cup | Port Vale FC | 5 | 3 | 0 | 0 | 285 | 0 |
| 22/23 | FA Cup | Cardiff City | 2 | 2 | 0 | 0 | 180 | 2 |
| 22/23 | Championship | Cardiff City | 9 | 4 | 0 | 0 | 399 | 0 |
| 21/22 | Scottish Premiership | St. Johnstone FC | 6 | 5 | 0 | 0 | 393 | 0 |
| 21/22 | FA Cup | Cardiff City | 1 | 0 | 0 | 0 | 20 | 0 |
| 21/22 | EFL Cup | Cardiff City | 1 | 1 | 0 | 0 | 90 | 0 |
| 21/22 | Championship | Cardiff City | 3 | 3 | 0 | 0 | 253 | 0 |
| 20/21 | League Two | Cheltenham Town | 10 | 3 | 0 | 0 | 438 | 1 |
| 20/21 | FA Cup | Cheltenham Town | 1 | 0 | 0 | 0 | 46 | 0 |
| 20/21 | EFL Cup | Cardiff City | 1 | 0 | 0 | 0 | 23 | 1 |
| 20/21 | Championship | Cardiff City | 9 | 8 | 0 | 0 | 735 | 0 |
| 19/20 | FA Cup | Cardiff City | 1 | 0 | 0 | 0 | 29 | 0 |
Appearances in our supported competitions. Goals, assists and minutes come from match reports where we have them.
Match log
Newest first| Date | Competition | Match | Score | Minutes | Goals |
|---|---|---|---|---|---|
| 14 Mar 2026 | League Two | Shrewsbury Town v Cheltenham Town | 0 – 2 | 90 | |
| 07 Mar 2026 | League Two | Chesterfield FC v Shrewsbury Town | 2 – 3 | 90 | |
| 28 Feb 2026 | League Two | Shrewsbury Town v Walsall FC | 1 – 2 | 90 | |
| 24 Feb 2026 | League Two | Salford City v Shrewsbury Town | 1 – 2 | 90 | 1 |
| 21 Feb 2026 | League Two | Accrington Stanley v Shrewsbury Town | 0 – 2 | 90 | |
| 17 Feb 2026 | League Two | Shrewsbury Town v Notts County | 1 – 0 | 71 | |
| 14 Feb 2026 | League Two | Shrewsbury Town v Swindon Town | 3 – 1 | 79 | |
| 10 Feb 2026 | League Two | Shrewsbury Town v Barrow AFC | 2 – 1 | 90 | |
| 07 Feb 2026 | League Two | Colchester United v Shrewsbury TownSubstitute, on 63′ | 2 – 0 | 27 | |
| 31 Jan 2026 | League Two | Shrewsbury Town v Barnet FCSubstitute, on 70′ | 0 – 0 | 20 | |
| 27 Jan 2026 | League Two | Cambridge United v Shrewsbury Town | 1 – 0 | 90 | |
| 24 Jan 2026 | League Two | Milton Keynes Dons v Shrewsbury TownSubstitute, on 72′ | 5 – 1 | 18 | 1 |
| 29 Dec 2025 | League Two | Grimsby Town v Shrewsbury Town | 1 – 0 | 90 | |
| 26 Dec 2025 | League Two | Cheltenham Town v Shrewsbury TownSubstitute, on 78′ | 3 – 1 | 12 | |
| 20 Dec 2025 | League Two | Shrewsbury Town v Chesterfield FCSubstitute, on 85′ | 0 – 1 | 5 | |
| 06 Dec 2025 | FA Cup | Sutton United v Shrewsbury TownSubstitute, on 82′ | 1 – 2 | 38 | |
| 22 Nov 2025 | League Two | Fleetwood Town v Shrewsbury Town | 3 – 1 | 66 | |
| 15 Nov 2025 | League Two | Shrewsbury Town v Newport County | 1 – 0 | 90 | |
| 08 Nov 2025 | League Two | Crewe Alexandra v Shrewsbury Town | 3 – 1 | 90 | |
| 02 Nov 2025 | FA Cup | South Shields FC v Shrewsbury Town | 1 – 3 | 45 | 1 |
Career transfers
11 recorded movesAll recorded career moves, newest first.
| Date | From | To | Move | Fee |
|---|---|---|---|---|
| 01 Jul 2025 | Port Vale FC | Shrewsbury Town | Transfer | Free |
| 01 Jul 2023 | Cardiff City | Port Vale FC | Transfer | Free |
| 31 May 2022 | St. Johnstone FC | Cardiff City | Loan return | |
| 31 Jan 2022 | Cardiff City | St. Johnstone FC | Loan | — |
| 04 Jan 2021 | Cheltenham Town | Cardiff City | Loan return | |
| 22 Sep 2020 | Cardiff City | Cheltenham Town | Loan | — |
| 13 Aug 2019 | Manchester United U21 | Cardiff City | Transfer | Free |
| 31 May 2019 | AFC Fylde | Manchester United U21 | Loan return | |
| 31 Jan 2019 | Manchester United U21 | AFC Fylde | Loan | — |
| 01 Jul 2017 | Manchester United U18 | Manchester United U21 | Internal move | — |
| 01 Jul 2016 | Manchester United Youth | Manchester United U18 | Internal move | — |
Contracts and market values are not available yet.