FOREST · BETWEEN THE POSTS
The goalkeeper studio
What reached the keeper. What stayed out. How it compares.
Live dataset · matches through 2026-11-02. Reads the latest published shared data; refreshes automatically. Source updated 2026-11-03 00:00 UTC. Latest selected appearance: 2026-10-31. 1 of 9 selected matches have unresolved shot reconciliation. Reported totals and independently available actions remain visible.
Set up your analysis
Combined matches pools the selected period. Single match applies to every Forest card, graphic, shot and download. League comparisons and trends use combined matches; passing connections use a single match.
Combined matches · Matz Sels · 2026/2027 · 9 appearances · penalties excluded
Reported match totals
Provider summary counts · all penalties included · goals conceded include own goals. These counts are independent of the shot list; they are not used to fill missing shots or calculate the shot-derived rates below.
Reconciled shot-stopping analysis
8/9 appearances fully reconciled. These rates and league comparisons use complete matching shot evidence only. The shot maps and list additionally show 5 individually attributed shots from incomplete matches, clearly labelled.
The model expected 14.4 saves; Matz Sels made 12. That is 10.8 percentage points below expected. Post-shot xG considers the shot after it was struck. It estimates difficulty; it does not say a keeper definitely should have saved an individual shot.
Choose your graphic
Change setup ↑ · Back to chart ↑
Shots faced · what moved the numbers?
Known, individually attributed shots on target, using the keeper, dates and penalty setting above. Pre-shot xG measures the chance before the finish; post-shot xGoT measures the scoring probability after the shot. A low-quality chance can still produce a difficult save.
Impact = xGoT − goal conceded. Saving a 0.70 xGoT shot adds +0.70 goals prevented. Conceding a 0.05 xGoT shot subtracts −0.95. This explains the statistical contribution, not whether the keeper was at fault. Low xGoT does not measure shot speed.
27 of 27 shots shown · shown-shot contribution: -2.17 goals prevented. 1 matches contribute partial shot evidence. This is not a full-period total when reconciliation is incomplete. Missing values stay unavailable.
| Match / minute | Shooter / outcome | Chance xG | Shot xGoT | Expected save % | Impact · goals prevented |
|---|---|---|---|---|---|
| 2026-09-12 · Aston VillaPartial match evidence74′ · away | Alysson EdwardGoal conceded | 0.07Low chance | 0.08Low probability | 92.0% | -0.92Lowers total |
| 2026-08-22 · Leeds United88′ · home | Anton StachGoal conceded | 0.04Low chance | 0.08Low probability | 92.0% | -0.92Lowers total |
| 2026-10-18 · Arsenal80′ · home | Noni MaduekeGoal conceded | 0.03Low chance | 0.16 | 84.0% | -0.84Lowers total |
| 2026-09-19 · Coventry City55′ · home | Jay DasilvaGoal conceded | 0.28 | 0.16 | 84.0% | -0.84Lowers total |
| 2026-08-29 · Liverpool82′ · away | Víctor MuñozGoal conceded | 0.06Low chance | 0.47 | 53.0% | -0.53Lowers total |
| 2026-10-11 · Crystal Palace45+4′ · away | Jefferson LermaGoal conceded | 0.35 | 0.57 | 43.0% | -0.43Lowers total |
| 2026-10-23 · Ipswich Town41′ · away | Julio EncisoGoal conceded | 0.18 | 0.65 | 35.0% | -0.35Lowers total |
| 2026-10-31 · Brentford76′ · away | Igor ThiagoGoal conceded | 0.25 | 0.66 | 34.0% | -0.34Lowers total |
| 2026-10-11 · Crystal Palace41′ · away | Daichi KamadaGoal conceded | 0.34 | 0.71 | 29.0% | -0.29Lowers total |
| 2026-10-11 · Crystal Palace59′ · away | Yéremi PinoGoal conceded | 0.35 | 0.80 | 20.0% | -0.20Lowers total |
| 2026-08-29 · Liverpool60′ · away | Alexander IsakGoal conceded | 0.84 | 0.99 | 1.0% | -0.01Lowers total |
| 2026-10-23 · Ipswich Town28′ · away | Julio EncisoSaved | 0.03Low chance | 0.01Low probability | 99.0% | +0.01Lifts total |
| 2026-09-19 · Coventry City16′ · home | Brandon Thomas-AsanteSaved | 0.05Low chance | 0.02Low probability | 98.0% | +0.02Lifts total |
| 2026-08-29 · Liverpool39′ · away | Florian WirtzSaved | 0.06Low chance | 0.02Low probability | 98.0% | +0.02Lifts total |
| 2026-08-22 · Leeds United47′ · home | Brenden AaronsonSaved | 0.01Low chance | 0.03Low probability | 97.0% | +0.03Lifts total |
| 2026-10-11 · Crystal Palace45+3′ · away | Tyrick MitchellSaved | 0.01Low chance | 0.04Low probability | 96.0% | +0.04Lifts total |
| 2026-09-19 · Coventry City52′ · home | Loum TchaounaSaved | 0.04Low chance | 0.04Low probability | 96.0% | +0.04Lifts total |
| 2026-10-23 · Ipswich Town26′ · away | Jaden Philogene-BidaceSaved | 0.07Low chance | 0.05Low probability | 95.0% | +0.05Lifts total |
| 2026-09-12 · Aston VillaPartial match evidence8′ · away | Ian MaatsenSaved | 0.06Low chance | 0.07Low probability | 93.0% | +0.07Lifts total |
| 2026-09-12 · Aston VillaPartial match evidence32′ · away | Ross BarkleySaved | 0.02Low chance | 0.13 | 87.0% | +0.13Lifts total |
| 2026-09-12 · Aston VillaPartial match evidence73′ · away | Ibrahim MbayeSaved | 0.02Low chance | 0.18 | 82.0% | +0.18Lifts total |
| 2026-10-11 · Crystal Palace59′ · away | Jørgen Strand LarsenSaved | 0.49 | 0.29 | 71.0% | +0.29Lifts total |
| 2026-10-11 · Crystal Palace56′ · away | Jefferson LermaSaved | 0.14 | 0.37 | 63.0% | +0.37Lifts total |
| 2026-08-22 · Leeds United70′ · home | Tarik MuharemovićSaved | 0.09Low chance | 0.43 | 57.0% | +0.43Lifts total |
| 2026-10-11 · Crystal Palace8′ · away | Jørgen Strand LarsenSaved | 0.47 | 0.53 | 47.0% | +0.53Lifts total |
| 2026-08-29 · Liverpool74′ · away | Konstantinos TsimikasSaved | 0.04Low chance | 0.54 | 46.0% | +0.54Lifts total |
| 2026-09-12 · Aston VillaPartial match evidence7′ · away | Victor Nilsson LindelöfSaved | 0.44 | 0.75 | 25.0% | +0.75Lifts total |
Definitions, coverage and limitations
Source: Pitch, snapshot 4ece338437bd708d6abb, built 2026-11-03. Seasons cover recorded Premier League appearances, not a complete all-competition career. Own goals and non-keeper outcomes follow the source eligibility gates. Unreconciled matches stay out of complete-match shot-derived rates. Reported totals and directly attributed eligible shots are presented separately, with their own coverage; missing values are never zero.
Save %: 100 × saves / reconciled shots on target. Higher means better recorded stopping performance.
Expected save %: 100 × (shots on target − post-shot xG) / shots on target. Difficulty context, not a performance ranking.
Save % above expected: Save percentage minus expected save percentage. Higher means better recorded stopping performance.
Goals prevented: Post-shot xG minus goals conceded on the same reconciled shots. Higher means better recorded stopping performance.
Goals prevented /100 SOT: 100 × goals prevented / reconciled shots on target. Higher means better recorded stopping performance.
Save percentage above expected and goals prevented per 100 SOT are mathematically equivalent. They are alternative units for the same signal, not independent evidence. Expected saves = SOT − post-shot xG. No shots faced means rates are unavailable.
Read the post-shot xG methodology overview. This explains the concept; the values here remain the saved Pitch feed, not a newly fitted model.
Matches with incomplete shot reconciliation
2026-09-12 · Aston Villa: save count mismatch.
22 eligible shots in this selection. Goal-face and pitch maps use only known coordinates. Aerial and passing totals use their own recorded-match coverage. No passing trajectories, unobserved claims or keeper errors are inferred.