Joel Cotterill
Joel Cotterill, 21, from Wales ➤ St. Johnstone FC, since 2026 ➤ Central Midfield ➤ Market value: €150k ➤ * 10/10/2004 in ,

Info
Biographical card, current club and contract facts. Empty fields mean the source did not publish that value.
- Club
- St. Johnstone
- League
- Scottish Premiership
- Position
- Midfield - Central Midfield
- Shirt
- #30
- Age
- 21
- Date of birth
- 10/10/2004
- Height
- 1,83m
- Foot
- right
- Citizenship
- Wales
- Joined
- 03/09/2026
- Contract until
- 31/05/2027
- Market value
- €150k
- Career fees
- 0
- Youth clubs
- Swansea City (2011-2022)
Statistics
Career totals from Transfermarkt: this season, then by competition and by club. Minutes and cards appear when the source recorded them.
This season
| Season | Competition | Apps | Min | G | A | YC | RC |
|---|---|---|---|---|---|---|---|
| 26/27 | Premiership | 1 | 33 | 0 | 0 | 0 | 0 |
By competition
| Competition | Apps | G | A |
|---|---|---|---|
| League Two | 63 | 4 | 3 |
| Premiership | 12 | 1 | 0 |
| EFL Trophy | 6 | 1 | 0 |
| FA Cup | 6 | 2 | 0 |
| Welsh League Cup | 3 | 0 | 0 |
| FA Youth Cup | 3 | 0 | 0 |
| EFL Cup | 2 | 0 | 0 |
| U18 Premier League | 2 | 1 | 0 |
| Premiership Relegation | 1 | 0 | 0 |
| SFA Cup | 1 | 0 | 0 |
| Championship | 0 | 0 | 0 |
| Premier League Cup | 0 | 0 | 0 |
By club
| Club | Apps | G | A |
|---|---|---|---|
| Swindon Town | 48 | 5 | 2 |
| Bristol Rovers | 16 | 1 | 0 |
| Dundee FC | 13 | 1 | 0 |
| Stockport | 12 | 1 | 1 |
| Swansea U18 | 5 | 1 | 0 |
| Swansea U21 | 3 | 0 | 0 |
| Swansea | 1 | 0 | 0 |
| St. Johnstone | 1 | 0 | 0 |
Transfers
Recorded moves between clubs, with fee and market value on the day of the deal when the source has them.
| Date | Season | From | To | Fee | Market value |
|---|---|---|---|---|---|
| 03/09/2026 | 26/27 | Swansea U21 | St. Johnstone | ? | €150k |
| 31/05/2026 | 25/26 | Dundee FC | Swansea U21 | End of loan | €150k |
| 14/01/2026 | 25/26 | Swansea U21 | Dundee FC | loan transfer | €150k |
| 06/01/2026 | 25/26 | Bristol Rovers | Swansea U21 | End of loan | €150k |
| 01/09/2025 | 25/26 | Swansea U21 | Bristol Rovers | loan transfer | €150k |
| 31/05/2025 | 24/25 | Swindon Town | Swansea U21 | End of loan | €125k |
| 30/07/2024 | 24/25 | Swansea U21 | Swindon Town | loan transfer | €75k |
| 15/01/2024 | 23/24 | Stockport | Swansea U21 | End of loan | €75k |
| 28/08/2023 | 23/24 | Swansea U21 | Stockport | loan transfer | - |
| 01/07/2022 | 22/23 | Swansea U18 | Swansea U21 | - | - |
| 01/07/2021 | 21/22 | Swansea Yth. | Swansea U18 | - | - |
National
Senior and youth national-team spells: caps, goals, shirt number and whether the player is still in the current pool.
| Team | Caps | Goals | Shirt | Debut | Status |
|---|---|---|---|---|---|
| Wales U21 | 17 | 3 | 10 | 2023-03-26 | Current international |
| Wales U19 | 3 | 0 | 6 | 2022-09-21 | Former international |
| Wales U16 | 5 | 2 | 7 | 2019-09-24 | Former international |
| Wales U15 | 1 | 0 | 18 | 2019-04-16 | Former international |
| Wales U18 | 5 | 1 | 10 | 2021-03-29 | Former international |
Market value
Current and peak Transfermarkt valuations, plus the history of changes by club and age. Rankings are relative to the current squad, league and position group.
- Current
- €150k
- Highest
- €150k · 30/06/2025
- Last change
- 20/05/2026
| Date | Age | Club | Value |
|---|---|---|---|
| 29/12/2023 | 19 | Stockport County | €75k |
| 30/12/2024 | 20 | Swindon Town | €125k |
| 30/06/2025 | 20 | Swansea City U21 | €150k |
| 26/11/2025 | 21 | Bristol Rovers | €150k |
| 20/05/2026 | 21 | Dundee FC | €150k |
xG Statistics
Joel Cotterill is not yet matched to an Understat player model, so there are no xG rows. When the mapping appears, this block will show appearances, minutes, goals, xG, npxG, assists, xA, shots, key passes and xGChain for each available season.
Understat has no season rows for this player yet.
What the columns mean
Read this table as chance quality, not as a scoreboard. A player can outscore xG (finishing well) or lag behind it (missed sitters). Compare rows only when minutes are in the same range.
Apps· Appearances- Matches in which the player was used in this league season, including substitute minutes.
Min· Minutes- Total minutes on the pitch. Useful when comparing output: 1 goal in 90 minutes is not the same as 1 goal in 800.
G· Goals- Goals credited to the player in the Understat shot model for that season.
xG· Expected goals- The quality of shots the player took, expressed as the number of goals an average finisher would score from the same chances. A 0.30 xG shot is a chance that goes in about 3 times in 10.
npxG· Non-penalty xG- Expected goals with penalties removed. This is the cleaner read of open-play and set-piece finishing, because a penalty is usually ~0.76 xG by itself.
A· Assists- Goals that followed the player's last pass. Actual assists, not the model.
xA· Expected assists- The xG value of shots that came directly from the player's key passes. High xA with few assists usually means teammates missed good chances.
Sh· Shots- Total shots recorded by Understat, including blocked and off-target attempts.
KP· Key passes- Passes that led to a shot. This is the volume behind xA.
xGChain· xG chain- Team xG from possessions the player touched. It captures involvement in build-up, not only the shot or the last pass. A midfielder who starts attacks can rank high here without scoring.
xGBuildup· xG buildup- The same possession xG, but excluding the shot-taker and the assist. This is the purest 'how much did this player help create the chance before the final ball' number.
NPG· Non-penalty goals- Goals scored from open play or set pieces, excluding penalties.







