xgEdge

Saturday, 19/09/2026 at 20:45

Full time
Match report · Ligue 1

Toulouse 3:2 Le Havre

Toulouse Home 1.95 xG · 14 shots
Le Havre Away 2.34 xG · 18 shots
32 The result went against the chances

Toulouse were the model's likeliest winner before kick-off at 53%. They won 3–2. The biggest difference was Le Havre's attack: 2.34 xG against 1.08 projected (+1.26).

Goals

  1. 49' Casper Tengstedt (pen.) Toulouse · 0.82 xG chance 1–0
  2. 51' Casper Tengstedt Toulouse · 0.07 xG chance 2–0
  3. 71' Josh Maja Le Havre · 0.51 xG chance 2–1
  4. 79' Thomas Jørgensen Toulouse · 0.10 xG chance 3–1
  5. 88' Ally Samatta Le Havre · 0.68 xG chance 3–2

The model against the result

priced before kick-off
Toulouse
53% What happened
Draw
27%
Le Havre
20%

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

Projected vs produced

Expected goals
Toulouse The model projected 1.80 Produced 1.95 Difference +0.15
Le Havre The model projected 1.08 Produced 2.34 Difference +1.26

Le Havre produced 1.26 xG more than projected

Projected before kick-off Produced on the night

The shots behind it

Toulouse Le Havre
Shots
14
18
On target
5
7
Inside the box
10
12
xG per shot
0.14
0.14
Open play xG
1.11
2.28
Set-piece xG
0.04
0.17
Penalties
1
0
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: 1.13 for Toulouse and 2.52 for Le Havre.

Shot map

Both teams shown attacking the same goal for comparison.

Toulouse · Casper Tengstedt · 49' · Goal · 12 m · 0.82 xG Le Havre · Ally Samatta · 88' · Goal · 3 m · 0.68 xG Le Havre · Josh Maja · 71' · Goal · 8 m · 0.51 xG Le Havre · Josh Maja · 40' · No goal · 10 m · 0.28 xG Le Havre · Josh Maja · 8' · No goal · 2 m · 0.24 xG Toulouse · Casper Tengstedt · 21' · No goal · 9 m · 0.16 xG Toulouse · Jacen Russell Rowe · 26' · No goal · 9 m · 0.12 xG Toulouse · Ilyas Azizi · 26' · No goal · 11 m · 0.12 xG Le Havre · Ally Samatta · 15' · No goal · 7 m · 0.11 xG Toulouse · Rafik Messali · 48' · No goal · 11 m · 0.11 xG Toulouse · Niko Sigur · 60' · No goal · 8 m · 0.10 xG Toulouse · Thomas Jørgensen · 79' · Goal · 9 m · 0.10 xG Toulouse · Jacen Russell Rowe · 6' · No goal · 14 m · 0.09 xG Le Havre · Rayan Fofana · 13' · No goal · 5 m · 0.09 xG Le Havre · Rayan Fofana · 16' · No goal · 13 m · 0.09 xG Toulouse · Santiago Hidalgo · 90' · No goal · 14 m · 0.09 xG Le Havre · Rayan Fofana · 45' · No goal · 15 m · 0.08 xG Toulouse · Casper Tengstedt · 48' · No goal · 20 m · 0.07 xG Toulouse · Casper Tengstedt · 51' · Goal · 9 m · 0.07 xG Toulouse · Casper Tengstedt · 62' · No goal · 19 m · 0.07 xG Le Havre · Ally Samatta · 88' · No goal · 8 m · 0.07 xG Le Havre · Djibril Ouziad · 55' · No goal · 10 m · 0.06 xG Le Havre · Ayumu Seko · 75' · No goal · 18 m · 0.06 xG Le Havre · Amir Richardson · 14' · No goal · 10 m · 0.04 xG Toulouse · Ilyas Azizi · 64' · No goal · 20 m · 0.04 xG Le Havre · Josh Maja · 80' · No goal · 9 m · 0.04 xG Le Havre · Sota Nakamura · 90' · No goal · 24 m · 0.04 xG Le Havre · Amir Richardson · 29' · No goal · 20 m · 0.03 xG Le Havre · Djibril Ouziad · 35' · No goal · 25 m · 0.02 xG Toulouse · Ilyas Azizi · 12' · No goal · 24 m · 0.01 xG Le Havre · Simon Ebonog · 45' · No goal · 24 m · 0.01 xG Le Havre · Ayumu Seko · 35' · No goal · 23 m · 0.00 xG

All shots

32 shots · 4.42 xG

Hover, focus or tap a shot to read it.

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

Recent form

Last 6 · xG per match
Toulouse

1.92 xG created 1.31 xGA

  • W 1.36 created, 0.41 conceded against RC Strasbourg
  • W 1.13 created, 1.54 conceded against Olympique Lyonnais
  • L 2.77 created, 0.70 conceded against Olympique Lyonnais
  • D 1.14 created, 3.04 conceded against Stade Brestois
  • L 3.46 created, 1.21 conceded against Lille
  • D 1.63 created, 0.93 conceded against Lorient
Le Havre

1.17 xG created 1.43 xGA

  • L 1.14 created, 1.21 conceded against Olympique de Marseille
  • W 1.25 created, 1.30 conceded against Lorient
  • L 0.60 created, 1.39 conceded against AS Monaco
  • D 0.69 created, 1.75 conceded against Olympique Lyonnais
  • L 2.02 created, 2.37 conceded against Stade Brestois
  • D 1.31 created, 0.59 conceded against Angers

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

Head to head

Toulouse: 0 won · 1 drawn · 1 lost

Pre-match model & market record

2 opportunities flagged1 won1 lost

  • Lost
  • Won
View pre-match record
The outcomes the model flagged on Toulouse against Le Havre before kick-off, in the order they ranked, with the price, the edge and what became of each.
Selection Price Edge Result
Draw 3.90 +5.1% Lost
Both teams to score 1.67 +1.0% Won

Pre-match model vs market

Outcome Model Market Difference Fair odds
Toulouse 53.4% 55.7% −2.4 pp 1.87
Draw 27.0% 24.3% +2.7 pp 3.71
Le Havre 19.7% 20.0% −0.3 pp 5.09

Other markets

Outcome Model Market Difference Fair odds
Toulouse to score 85.7% 84.2% +1.5 pp 1.17
Toulouse not to score 14.3% 15.8% −1.5 pp 7.01
Le Havre to score 68.9% 64.5% +4.4 pp 1.45
Le Havre not to score 31.1% 35.5% −4.4 pp 3.21
Both teams to score 60.6% 55.7% +4.9 pp 1.65
Both teams not to score 39.4% 44.3% −4.9 pp 2.54
Toulouse 2+ goals 55.6% 55.7% −0.2 pp 1.80
Toulouse at most 1 goal 44.4% 44.3% +0.2 pp 2.25
Le Havre 2+ goals 29.4% 29.1% +0.3 pp 3.41
Le Havre at most 1 goal 70.6% 70.9% −0.3 pp 1.42
Over 1.5 goals 82.1% 78.9% +3.1 pp 1.22
Under 1.5 goals 17.9% 21.1% −3.1 pp 5.58
Over 2.5 goals 56.5% 56.9% −0.4 pp 1.77
Under 2.5 goals 43.5% 43.1% +0.4 pp 2.30

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
Le Havre sample
20 matches
Computed
12 hours before kick-off
Prices taken
12 hours 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.