xgEdge

Saturday, 22/08/2026 at 20:45

Full time
Match report · Ligue 1

Toulouse 0:2 Olympique Lyonnais

Toulouse Home 2.77 xG · 17 shots
Olympique Lyonnais Away 0.70 xG · 11 shots
02 The result went against the chances

Toulouse were the model's likeliest winner before kick-off at 39%. Olympique Lyonnais won 2–0. The biggest difference was Toulouse's attack: 2.77 xG against 1.29 projected (+1.48). Olympique Lyonnais produced 0.70 xG against 1.10 projected (−0.40).

Goals

  1. 68' Noah Nartey Olympique Lyonnais · 0.08 xG chance 0–1
  2. 85' Malick Fofana Olympique Lyonnais · 0.05 xG chance 0–2

The model against the result

priced before kick-off
Toulouse
39%
Draw
32%
Olympique Lyonnais
29% What happened

Data coverage Both teams have the full 20-match model window available.

Projected vs produced

Expected goals
Toulouse The model projected 1.29 Produced 2.77 Difference +1.48
Olympique Lyonnais The model projected 1.10 Produced 0.70 Difference -0.40

Toulouse produced 1.48 xG more than projected

Projected before kick-off Produced on the night

The shots behind it

Toulouse Olympique Lyonnais
Shots
17
11
On target
2
3
Inside the box
12
7
xG per shot
0.15
0.06
Open play xG
1.26
0.61
Set-piece xG
1.34
0.05
Penalties
—
—
Shot-level xG may differ from the published match total

The provider publishes the match total separately from its shot-by-shot values. Those values are rounded to two decimals and, leaving out penalties and own goals, add up to its non-penalty xG: 2.61 for Toulouse and 0.65 for Olympique Lyonnais.

Shot map

Both teams shown attacking the same goal for comparison.

Toulouse · Christ Tapé · 26' · No goal · 3 m · 0.77 xG Toulouse · Thomas Jørgensen · 60' · No goal · 10 m · 0.57 xG Toulouse · Christ Tapé · 27' · No goal · 3 m · 0.20 xG Toulouse · Thomas Jørgensen · 26' · No goal · 3 m · 0.16 xG Olympique Lyonnais · Mads Bidstrup · 74' · No goal · 12 m · 0.16 xG Toulouse · Yann Gboho · 10' · No goal · 8 m · 0.14 xG Toulouse · Yann Gboho · 3' · No goal · 19 m · 0.12 xG Olympique Lyonnais · Kaïl Boudache · 90' · No goal · 8 m · 0.12 xG Toulouse · Santiago Hidalgo · 45' · No goal · 15 m · 0.10 xG Toulouse · Rasmus Nicolaisen · 48' · No goal · 7 m · 0.10 xG Toulouse · Julian Vignolo · 11' · No goal · 19 m · 0.09 xG Olympique Lyonnais · Noah Nartey · 68' · Goal · 18 m · 0.08 xG Toulouse · Julian Vignolo · 4' · No goal · 7 m · 0.06 xG Toulouse · Julian Vignolo · 59' · No goal · 20 m · 0.06 xG Toulouse · Rasmus Nicolaisen · 24' · No goal · 8 m · 0.05 xG Toulouse · Santiago Hidalgo · 45' · No goal · 12 m · 0.05 xG Olympique Lyonnais · Kaïl Boudache · 47' · No goal · 8 m · 0.05 xG Olympique Lyonnais · Malick Fofana · 85' · Goal · 9 m · 0.05 xG Olympique Lyonnais · Felix Bacher · 88' · No goal · 7 m · 0.05 xG Olympique Lyonnais · Kaïl Boudache · 59' · No goal · 11 m · 0.04 xG Toulouse · Santiago Hidalgo · 65' · No goal · 15 m · 0.04 xG Olympique Lyonnais · Kaïl Boudache · 21' · No goal · 25 m · 0.03 xG Toulouse · Julian Vignolo · 26' · No goal · 11 m · 0.03 xG Toulouse · Cristian Cásseres Jr. · 53' · No goal · 19 m · 0.03 xG Olympique Lyonnais · Kaïl Boudache · 54' · No goal · 8 m · 0.03 xG Toulouse · Niklas Schmidt · 82' · No goal · 23 m · 0.03 xG Olympique Lyonnais · Corentin Tolisso · 87' · No goal · 30 m · 0.03 xG Olympique Lyonnais · Kaïl Boudache · 15' · No goal · 34 m · 0.02 xG

All shots

28 shots · 3.26 xG

Hover, focus or tap a shot to read it.

  • Toulouse
  • Olympique Lyonnais
  • Filled = goal
  • Dot area = xG (the smallest chances drawn at a minimum size)

Recent form

Last 6 · xG per match
Toulouse

0.96 xG created 1.76 xGA

  • L 0.16 created, 1.79 conceded against Paris Saint-Germain
  • L 0.96 created, 2.31 conceded against Lille
  • L 0.41 created, 3.76 conceded against RC Lens
  • D 1.75 created, 0.74 conceded against AS Monaco
  • W 1.36 created, 0.41 conceded against RC Strasbourg
  • W 1.13 created, 1.54 conceded against Olympique Lyonnais
Olympique Lyonnais

1.75 xG created 1.50 xGA

  • W 1.16 created, 1.87 conceded against Lorient
  • W 0.62 created, 3.12 conceded against Paris Saint-Germain
  • W 2.12 created, 0.52 conceded against Auxerre
  • W 3.17 created, 0.84 conceded against Stade Rennais
  • L 1.54 created, 1.13 conceded against Toulouse
  • L 1.91 created, 1.54 conceded against RC Lens

xG created xG conceded (xGA) W / D / L: the match result

Head to head

Toulouse: 2 won · 0 drawn · 0 lost

Pre-match model & market record

6 opportunities flagged1 won5 lost

  • Lost
  • Lost
  • Won
  • Lost
  • Lost
  • Lost
View pre-match record
The outcomes the model flagged on Toulouse against Olympique Lyonnais before kick-off, in the order they ranked, with the price, the edge and what became of each.
Selection Price Edge Result
Draw 3.50 +13.2% Lost
Olympique Lyonnais not to score 3.75 +13.2% Lost
Under 2.5 goals 2.00 +12.8% Won
Olympique Lyonnais at most 1 goal 1.62 +12.4% Lost
Toulouse to win 2.80 +8.1% Lost
Under 1.5 goals 4.00 +6.8% Lost

Pre-match model vs market

Outcome Model Market Difference Fair odds
Toulouse 38.6% 34.0% +4.6 pp 2.59
Draw 32.3% 27.2% +5.2 pp 3.09
Olympique Lyonnais 29.1% 38.8% −9.8 pp 3.44

Other markets

Outcome Model Market Difference Fair odds
Toulouse to score 75.1% 73.1% +2.0 pp 1.33
Toulouse not to score 24.9% 26.9% −2.0 pp 4.02
Olympique Lyonnais to score 69.8% 75.0% −5.2 pp 1.43
Olympique Lyonnais not to score 30.2% 25.0% +5.2 pp 3.31
Both teams to score 54.4% 55.7% −1.4 pp 1.84
Both teams not to score 45.6% 44.3% +1.4 pp 2.19
Toulouse 2+ goals 37.7% 39.2% −1.5 pp 2.65
Toulouse at most 1 goal 62.3% 60.8% +1.5 pp 1.60
Olympique Lyonnais 2+ goals 30.4% 42.3% −11.9 pp 3.29
Olympique Lyonnais at most 1 goal 69.6% 57.7% +11.9 pp 1.44
Over 1.5 goals 73.3% 76.2% −2.9 pp 1.36
Under 1.5 goals 26.7% 23.8% +2.9 pp 3.75
Over 2.5 goals 43.6% 52.6% −9.1 pp 2.29
Under 2.5 goals 56.4% 47.4% +9.1 pp 1.77

Prices and probabilities are the ones stored before kick-off; nothing here is recalculated. Edge is the model's probability times the price, minus one, so a flagged outcome that lost is the ordinary case rather than a contradiction.

Model details

Show
Fit window
the last 20 matches, recency weighted (a match 107 days old counts half)
Toulouse sample
20 matches
Olympique Lyonnais sample
20 matches
Computed
11 hours before kick-off
Prices taken
1 day before kick-off

Limitations

The model reads expected goals and nothing else. It does not know the lineups, who is injured or suspended, what either side has to play for, the weather, or how congested the schedule around this match is.