188 cm
Height
5
Shirt
27 yrs
25 Mar 1999
Scotland
Country
€3.3M
Transfer value
31 Dec 2028
Contract end
Right
Foot
CB
Centre-Back
2026
30 games0
Goals
0
Assists
7.06
Rating
2319
Minutes
Skills & potential
Per 90
| Goals | 0.0 |
| Assists | 0.0 |
| xG | 0.04 |
| xA | 0.03 |
| Shots | 0.5 |
| Key passes | 0.27 |
Attacking totals
| Goals | 0 |
| Assists | 0 |
| xG | 1.1 |
| xA | 0.8 |
| Shots (on target) | 13 (1) |
| Key passes | 7 |
| Pass accuracy | 89.9% |
Defending totals
| Tackles won | 26 |
| Interceptions | 33 |
| Clearances | 146 |
| Duels won | 104 |
| Aerials won | 39 |
| Recoveries | 96 |
Shot map
15 shots · 1.27 xGGoalOn targetOff / blocked● size = xG
15
Shots
1
Goals
1
On target
1.27
Total xG
| Match | Min | G | A | Rtg |
|---|---|---|---|---|
| vs Minnesota United | 90' | 0 | 0 | 6.2 |
| vs LA Galaxy | 66' | 0 | 0 | 6.5 |
| @ New York City FC | 9' | 0 | 0 | 6.8 |
| vs Austin FC | 90' | 0 | 0 | 7.1 |
| vs Vancouver Whitecaps | 90' | 0 | 0 | 7.1 |
| @ FC Dallas | 90' | 0 | 0 | 7.2 |
| @ San Jose Earthquakes | 100' | 0 | 0 | 7.0 |
| @ DC United | 90' | 0 | 0 | 7.4 |
| vs Portland Timbers | 90' | 0 | 0 | 8.1 |
| @ Colorado Rapids | 86' | 0 | 0 | 6.8 |
| vs San Diego FC | 90' | 0 | 0 | 6.9 |
| @ Vancouver Whitecaps | 90' | 0 | 0 | 7.1 |
| vs Sporting Kansas City | 90' | 0 | 0 | 8.0 |
| vs Real Salt Lake | 90' | 0 | 0 | 6.6 |
| @ LA Galaxy | 90' | 0 | 0 | 7.7 |
| vs Seattle Sounders FC | 90' | 0 | 0 | 7.2 |
| @ Nashville SC | 90' | 0 | 0 | 6.1 |
| @ St.Louis City | 0' | 0 | 0 | — |
| vs Houston Dynamo | 90' | 0 | 0 | 6.5 |
| @ San Diego FC | 0' | 0 | 0 | — |
| @ Minnesota United | 45' | 0 | 0 | 7.3 |
| vs Colorado Rapids | 90' | 0 | 0 | 6.9 |
| vs San Jose Earthquakes | 90' | 0 | 0 | 5.9 |
| @ Portland Timbers | 34' | 0 | 0 | 6.5 |
| vs Orlando City SC | 90' | 0 | 0 | 7.4 |
| @ Austin FC | 90' | 0 | 0 | 7.4 |
| vs St.Louis City | 90' | 0 | 0 | 7.9 |
| vs FC Dallas | 90' | 0 | 0 | 7.5 |
| @ Houston Dynamo | 89' | 0 | 0 | 7.3 |
| vs Inter Miami CF | 90' | 0 | 0 | 7.3 |
2021
| Competition | MP | G | A |
|---|---|---|---|
| 4 | 0 | 0 |
2022
| Competition | MP | G | A |
|---|---|---|---|
| 1 | 0 | 0 |
2020
| Competition | MP | G | A |
|---|---|---|---|
| 2 | 0 | 0 |
2022
| Competition | MP | G | A |
|---|---|---|---|
| 3 | 0 | 0 |
2024
| Competition | MP | G | A |
|---|---|---|---|
| 6 | 0 | 0 |
2024
| Competition | MP | G | A |
|---|---|---|---|
| 1 | 0 | 0 |
2023
| Competition | MP | G | A |
|---|---|---|---|
| 3 | 0 | 0 |
2024
| Competition | MP | G | A |
|---|---|---|---|
| 1 | 0 | 0 |
2023
| Competition | MP | G | A |
|---|---|---|---|
| 1 | 0 | 0 |
2024
| Competition | MP | G | A |
|---|---|---|---|
| 3 | 0 | 1 |
2017
| Competition | MP | G | A |
|---|---|---|---|
| 21 | 0 | 0 |
2021
| Competition | MP | G | A |
|---|---|---|---|
| 29 | 2 | 0 |
2022
| Competition | MP | G | A |
|---|---|---|---|
| 21 | 3 | 0 |
2018
| Competition | MP | G | A |
|---|---|---|---|
| 5 | 0 | 0 |
2020
| Competition | MP | G | A |
|---|---|---|---|
| 38 | 1 | 0 |
2019
| Competition | MP | G | A |
|---|---|---|---|
| 16 | 1 | 0 |
2018
| Competition | MP | G | A |
|---|---|---|---|
| 10 | 0 | 0 |
2024
| Competition | MP | G | A |
|---|---|---|---|
| 29 | 2 | 0 | |
| 16 | 1 | 0 |
2023
| Competition | MP | G | A |
|---|---|---|---|
| 42 | 3 | 3 |
2022
| Competition | MP | G | A |
|---|---|---|---|
| 17 | 2 | 1 |
2025
| Competition | MP | G | A |
|---|---|---|---|
| 13 | 0 | 0 |
2026
| Competition | MP | G | A |
|---|---|---|---|
| 30 | 0 | 0 |
2022
| Competition | MP | G | A |
|---|---|---|---|
| 1 | 0 | 0 |
2023
| Competition | MP | G | A |
|---|---|---|---|
| 2 | 0 | 0 |
2024
| Competition | MP | G | A |
|---|---|---|---|
| 4 | 0 | 0 |
Ryan PorteousTransfer
Watford
→
Los Angeles FC
865k €
04 Aug 2025
Ryan PorteousLoan end
Preston North End
→
Watford
30 Jun 2025
Ryan PorteousLoan
Watford
→
Preston North End
03 Feb 2025
Ryan PorteousTransfer
Hibernian
→
Watford
510k €
27 Jan 2023
Ryan PorteousFree
Hibernian U20
→
Hibernian
01 Jul 2018
Ryan PorteousLoan
Hibernian U20
→
Edinburgh City F.C.
11 Jul 2016
Build this page with the API
Every number here is public data. This is the exact sequence of calls to recreate this page — all free, just add your token.
-
GET
/api/v2/players/9182/Bio: position, age, nationality, foot, value, team. -
GET
/api/v2/players/9182/stats/Season stats + per-90 for the Overview & Stats tabs. -
GET
/api/v2/players/9182/career/Season-by-season totals — powers the Career tab. -
GET
/api/v2/players/9182/transfers/Transfer history for the Transfers tab. -
GET
/api/v2/events/{EVENT_ID}/stats/Per-shot xG shotmap — aggregate a player’s matches for the shot map. -
GET
/api/v2/players/9182/social/Highlight videos & news for the Overview feed.
Try step 1 right now
cURL
curl -H "Authorization: Token YOUR_KEY" https://sports.bzzoiro.com/api/v2/players/9182/
Free football tier — no subscription. Get a token →