This page describes the completed match context. The result is not presented as a prior forecast.
Match at a glance
Olympique Lyonnais won 0–2.
- Shots
- 17–11
- Shots on target
- 2–3
- Expected goals
- 2.58–0.65
- Possession
- 48%–52%
This match
Match statistics
Every shot
Shot map
Every recorded shot, placed where it was taken and sized by its expected-goals value. Arrows show each team’s attacking direction.
- off target
- on target
- goal
- penalty
- size = xG
Toulouse: 17 shots, 2 on target, 2.60 xG. Olympique Lyonnais: 11 shots, 3 on target, 0.66 xG.
How the match built
Expected-goals timeline
Expected goals accumulated minute by minute. Circles mark the goals that were actually scored.
The step line is cumulative expected goals; circles mark goals. Final: Toulouse 2.60 xG · Olympique Lyonnais 0.66 xG.
Full time
What the match recorded
Olympique Lyonnais beat Toulouse 2–0. Recorded in this match (Toulouse – Olympique Lyonnais): shots 17–11, shots on target 2–3, expected goals 2.58–0.65, possession 48%–52%. This is what was recorded. It is not a claim that the result was foreseeable.
History
Head-to-head
Recent meetings between these teams.
Last 5 meetings
Season-opening preview
Current-season evidence is still building.
This competition's new season has only just started, so PitchMath does not yet hold enough completed matches for a current-season grade. The comparison below is last season's recorded data, shown as historical context.
1 / 2 matches toward the first current-season grade
Current season so far
Completed matches in the season being played. Kept separate from the historical block below.
- Toulouse1 matches
- Olympique Lyonnais1 matches
Previous-season context
Recorded season totals from the source competition. Not current form.
Both clubs played the same competition and season, so these values are directly comparable.
Toulouse
- Competition
- Ligue 1
- Season
- 2025/26
- Sample
- 33 matches
- Profile grade
- A
- Data cutoff
- 29 May 2026
- Goals scored1.42 goals/match
- Goals allowed1.39 goals/match
- Expected goals1.3 xG/match
- Expected goals allowed1.29 xG/match
- Shots12.8 shots/match
- Shots allowed12.2 shots/match
- Shots on target4.33 shots/match
- Shots on target allowed4 shots/match
- Possession42.2%
- Corners4.45 corners/match
- Corners allowed5.12 corners/match
- Cards2.54 cards/match
- Fouls14.4 fouls/match
- Clean-sheet frequency27%
- Scoring frequency70%
Olympique Lyonnais
- Competition
- Ligue 1
- Season
- 2025/26
- Sample
- 34 matches
- Profile grade
- A
- Data cutoff
- 29 May 2026
- Goals scored1.56 goals/match
- Goals allowed1.18 goals/match
- Expected goals1.51 xG/match
- Expected goals allowed1.29 xG/match
- Shots12.2 shots/match
- Shots allowed12 shots/match
- Shots on target4.65 shots/match
- Shots on target allowed3.94 shots/match
- Possession54.6%
- Corners5.88 corners/match
- Corners allowed5 corners/match
- Cards2.18 cards/match
- Fouls13 fouls/match
- Clean-sheet frequency44%
- Scoring frequency82%
Evidence quality
How much supports this analysis
- At least one team has fewer than the configured season sample.
- At least one team has an incomplete last-five window.
- Recorded xG is incomplete, so xG context is omitted where unavailable.
Known unknowns
- Lineups, injuries, suspensions and tactical changes are not available in the retained dataset.
- Some metrics are unavailable or below their observation minimum: goals_for, goals_against, xg_for, xg_against, shots, shots_on_target, possession, corners, cards, fouls.
- The completed-match sample is too small for broad style conclusions.
Toulouse
Stade Brestois
Fenerbahçe
Troyes
Paris FC
Nice
Lorient