Per90
Loading live football data…
Per90
Loading live football data…
119 teams with shaped teamsheets, from Bundesliga, Championship, La Liga, Premier League and Serie A. French Ligue 1 is absent: its feed supplies lineups without a formation, so no role can be read from them.
Pick a team and an exact on-pitch role, and see what that role produces for them — or what they allow to it. Every role is read from that match’s own teamsheet and formation, so a player who started at right wing in one game and centrally in the next counts in two different places. A profile position is never used.
Produced is what this team’s own player in that role did. Allowed is what opposing players in that role did against them.
The role comes from the teamsheet: which line a player was in and where across it. A back four gives full-backs; a back five gives wing-backs.
Starters only, 20 minutes minimum. Substitutes have no place in a formation, so they are not counted in one.
Bundesliga
Championship
La Liga
Premier League
Perspective
The role a player actually occupied in that match, read from the teamsheet: which line he was in and where across it. A back four gives full-backs, a back five gives wing-backs, and a 4-2-3-1 separates the holding pair from the three behind the striker.
No. A profile position is never used. A player who started at right wing in one match and centrally in the next counts in two different roles, which is the point of the page.
Produced is what this team’s own player in that role did. Allowed is what opposing players in that role did against them. The same filters, the other side of the fixture.
No. A substitute has no place in a formation, so he cannot be assigned a role from one. Starters only, and appearances under 20 minutes are excluded as everywhere else on the site.
Average
0.47
Per 90
0.50
Median
0.0
Cleared 0.5+
10/30
Hit rate
33%
30 appearances across 30 matches.
| Date | Opponent | Player | Shape | Mins | Shots | 0.5+ |
|---|---|---|---|---|---|---|
| 29 Aug 26 | v Eintracht Frankfurt | Tom Rothe | 4-4-2 | 90 | 2 | yes |
| 16 May 26 | v FC Augsburg | Diogo Filipe Monteiro Pinto Leite | 4-2-3-1 | 90 | 0 | no |
| 10 May 26 | at FSV Mainz 05 | Diogo Filipe Monteiro Pinto Leite | 4-2-3-1 | 90 | 0 | no |
| 2 May 26 | v FC Köln | Stanley Nsoki | 3-5-2 | 67 | 0 | no |
| 24 Apr 26 | at RB Leipzig | Diogo Filipe Monteiro Pinto Leite | 3-5-2 | 90 | 0 | no |
| 18 Apr 26 | v VfL Wolfsburg | Diogo Filipe Monteiro Pinto Leite | 3-4-3 | 90 | 1 | yes |
| 11 Apr 26 | at Heidenheim | Diogo Filipe Monteiro Pinto Leite | 5-3-2 | 69 | 0 | no |
| 5 Apr 26 | v St. Pauli | Diogo Filipe Monteiro Pinto Leite | 3-4-2-1 | 90 | 0 | no |
| 21 Mar 26 | at FC Bayern München | Stanley Nsoki | 3-5-2 | 46 | 0 | no |
| 15 Mar 26 | at SC Freiburg | Stanley Nsoki | 4-2-2-2 | 90 | 0 | no |
| 8 Mar 26 | v Werder Bremen | Stanley Nsoki | 3-5-2 | 82 | 0 | no |
| 28 Feb 26 | at Borussia Mönchengladbach | Stanley Nsoki | 3-4-2-1 | 90 | 1 | yes |
| 21 Feb 26 | v Bayer 04 Leverkusen | Stanley Nsoki | 3-4-2-1 | 90 | 0 | no |
| 14 Feb 26 | at Hamburger SV | Stanley Nsoki | 3-4-2-1 | 83 | 0 | no |
| 6 Feb 26 | v Eintracht Frankfurt | Stanley Nsoki | 5-3-2 | 90 | 0 | no |
| 31 Jan 26 | at TSG Hoffenheim | Diogo Filipe Monteiro Pinto Leite | 3-4-2-1 | 75 | 1 | yes |
| 24 Jan 26 | v Borussia Dortmund | Diogo Filipe Monteiro Pinto Leite | 3-4-2-1 | 76 | 3 | yes |
| 18 Jan 26 | at VfB Stuttgart | Diogo Filipe Monteiro Pinto Leite | 3-5-2 | 90 | 1 | yes |
| 15 Jan 26 | at FC Augsburg | Diogo Filipe Monteiro Pinto Leite | 3-4-2-1 | 82 | 0 | no |
| 10 Jan 26 | v FSV Mainz 05 | Diogo Filipe Monteiro Pinto Leite | 3-4-2-1 | 78 | 0 | no |
| 20 Dec 25 | at FC Köln | Diogo Filipe Monteiro Pinto Leite | 3-4-2-1 | 90 | 2 | yes |
| 12 Dec 25 | v RB Leipzig | Diogo Filipe Monteiro Pinto Leite | 3-4-2-1 | 90 | 1 | yes |
| 6 Dec 25 | at VfL Wolfsburg | Stanley Nsoki | 5-3-2 | 78 | 1 | yes |
| 29 Nov 25 | v Heidenheim | Diogo Filipe Monteiro Pinto Leite | 3-4-2-1 | 90 | 1 | yes |
| 23 Nov 25 | at St. Pauli | Diogo Filipe Monteiro Pinto Leite | 3-4-2-1 | 90 | 0 | no |
| 8 Nov 25 | v FC Bayern München | Diogo Filipe Monteiro Pinto Leite | 3-5-2 | 90 | 0 | no |
| 1 Nov 25 | v SC Freiburg | Diogo Filipe Monteiro Pinto Leite | 3-4-2-1 | 90 | 0 | no |
| 24 Oct 25 | at Werder Bremen | Diogo Filipe Monteiro Pinto Leite | 3-4-2-1 | 79 | 0 | no |
| 17 Oct 25 | v Borussia Mönchengladbach | Diogo Filipe Monteiro Pinto Leite | 3-4-2-1 | 90 | 0 | no |
| 4 Oct 25 | at Bayer 04 Leverkusen | Diogo Filipe Monteiro Pinto Leite | 3-4-2-1 | 71 | 0 | no |
Every finished fixture with a shaped teamsheet, across three seasons, in the leagues Per90 covers — with one exception. French Ligue 1 is absent because its feed supplies lineups without a formation, so no role can be read from them. The page states the leagues it found.
A match whose teamsheet carries no formation cannot have roles assigned, so it is excluded and counted rather than folded into a generic bucket. The count is shown under the summary.