Beats his man on the outside and picks out the box.
Output is real: finishing sits in line with xG.
Small sample — 15 apps, 868 min. Treat the percentiles with caution.
Shows up against the best — output holds against top-third opponents.
| Stat | Top third | Middle | Bottom third |
|---|---|---|---|
| Matches | 5 | 2 | 7 |
| Tackles /90 | 2.78 | — | 0.62 |
| Interceptions /90 | 0.00 | — | 0.21 |
| Blocks /90 | 0.00 | — | 0.00 |
| Duels won /90 | 6.60 | — | 4.57 |
| Pass accuracy | 77.8% | — | 77.6% |
Adjustment v1.1 · calibrated against 1401 league transitions + 1004 cross-league cup fixtures · methodology
Ahead of his age group: 79th percentile for creation among midfielders aged 27–31.
vs midfielders aged 27–31 · 222 peers · pool pct → age bandProfiles like D. Giannoulis — midfielders with this shape at 29.
Watch the downside: progression (2nd pct) is a real weakness for the role.
Reliable: form in line with his season rate — no meaningful swings.
Valuation holding steady.
| Date | From | To | Fee | Market value |
|---|---|---|---|---|
| May 2026 | Sheff Utd | Ipswich | free | €7.0M |
| Sep 2025 | Ipswich | Sheff Utd | free | €7.0M |
| Aug 2024 | Luton | Ipswich | €9.5M | €8.0M |
| Jul 2023 | Rotherham | Luton | free | €2.0M |
| Aug 2019 | Brentford | Rotherham | — | €150K |
| Jan 2019 | Exeter City | Brentford | free | €100K |
| Aug 2018 | Brentford | Exeter City | free | €100K |
| Jan 2018 | Limerick FC | Brentford | — | — |
Top underlying game: 0.67 xG vs Oxford United, 1 goal.