xgEdge

Saturday, 22/08/2026 at 18:45

Full time
Match report · Eredivisie

Sparta Rotterdam 3:3 FC Utrecht

Sparta Rotterdam Home 1.73 xG · 14 shots
FC Utrecht Away 1.92 xG · 16 shots
33 The chances were evenly matched

FC Utrecht were the model's likeliest winner before kick-off at 39%. It finished 3–3. Both teams produced xG close to their pre-match projections.

Goals

  1. 16' Matisse Didden FC Utrecht · 0.21 xG chance 0–1
  2. 45' Marvin Young Sparta Rotterdam · 0.14 xG chance 1–1
  3. 46' Artem Stepanov FC Utrecht · 0.99 xG chance 1–2
  4. 67' Milan Zonneveld Sparta Rotterdam · 0.55 xG chance 2–2
  5. 76' Adrian Blake FC Utrecht · 0.04 xG chance 2–3
  6. 90' Nick Verschuren Sparta Rotterdam · 0.13 xG chance 3–3

The model against the result

priced before kick-off
Sparta Rotterdam
33%
Draw
27% What happened
FC Utrecht
39%

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

Projected vs produced

Expected goals
Sparta Rotterdam The model projected 1.56 Produced 1.73 Difference +0.17
FC Utrecht The model projected 1.69 Produced 1.92 Difference +0.23

Projected before kick-off Produced on the night

The shots behind it

Sparta Rotterdam FC Utrecht
Shots
14
16
On target
5
4
Inside the box
9
10
xG per shot
0.13
0.12
Open play xG
1.50
1.40
Set-piece xG
0.28
0.53
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: 1.73 for Sparta Rotterdam and 1.92 for FC Utrecht.

Shot map

Both teams shown attacking the same goal for comparison.

FC Utrecht · Artem Stepanov · 46' · Goal · 2 m · 0.99 xG Sparta Rotterdam · Milan Zonneveld · 67' · Goal · 17 m · 0.55 xG Sparta Rotterdam · Milan Zonneveld · 90' · No goal · 6 m · 0.39 xG FC Utrecht · Siebe Horemans · 55' · No goal · 2 m · 0.22 xG FC Utrecht · Matisse Didden · 16' · Goal · 7 m · 0.21 xG Sparta Rotterdam · Marvin Young · 45' · Goal · 7 m · 0.14 xG Sparta Rotterdam · Nick Verschuren · 90' · Goal · 7 m · 0.13 xG Sparta Rotterdam · Nick Verschuren · 28' · No goal · 8 m · 0.12 xG FC Utrecht · Davy van den Berg · 18' · No goal · 15 m · 0.11 xG Sparta Rotterdam · Casper Terho · 90' · No goal · 12 m · 0.10 xG Sparta Rotterdam · Ayoni Santos · 9' · No goal · 15 m · 0.08 xG FC Utrecht · Ángel Alarcón · 29' · No goal · 10 m · 0.06 xG FC Utrecht · Ángel Alarcón · 38' · No goal · 11 m · 0.06 xG Sparta Rotterdam · Bruno Martins Indi · 34' · No goal · 11 m · 0.05 xG Sparta Rotterdam · Ayoni Santos · 83' · No goal · 20 m · 0.05 xG Sparta Rotterdam · Robin van Cruijsen · 14' · No goal · 14 m · 0.04 xG Sparta Rotterdam · Robin van Cruijsen · 21' · No goal · 13 m · 0.04 xG FC Utrecht · Ángel Alarcón · 41' · No goal · 20 m · 0.04 xG FC Utrecht · Kevin Paredes · 65' · No goal · 20 m · 0.04 xG FC Utrecht · Adrian Blake · 76' · Goal · 15 m · 0.04 xG Sparta Rotterdam · Robin van Cruijsen · 6' · No goal · 24 m · 0.03 xG FC Utrecht · Ángel Alarcón · 10' · No goal · 17 m · 0.03 xG Sparta Rotterdam · Robin van Cruijsen · 13' · No goal · 20 m · 0.03 xG FC Utrecht · Arthur Zagre · 40' · No goal · 24 m · 0.03 xG FC Utrecht · Davy van den Berg · 74' · No goal · 13 m · 0.03 xG Sparta Rotterdam · Casper Terho · 90' · No goal · 19 m · 0.03 xG FC Utrecht · Siebe Horemans · 3' · No goal · 2 m · 0.02 xG FC Utrecht · Artem Stepanov · 15' · No goal · 13 m · 0.02 xG FC Utrecht · Ángel Alarcón · 49' · No goal · 24 m · 0.02 xG FC Utrecht · Yoann Cathline · 41' · No goal · 24 m · 0.01 xG

All shots

30 shots · 3.71 xG

Hover, focus or tap a shot to read it.

  • Sparta Rotterdam
  • FC Utrecht
  • Filled = goal
  • Dot area = xG (the smallest chances drawn at a minimum size)

Recent form

Last 6 · xG per match
Sparta Rotterdam

1.53 xG created 2.26 xGA

  • L 1.09 created, 1.65 conceded against SC Telstar
  • D 1.89 created, 2.08 conceded against Go Ahead Eagles
  • L 0.86 created, 3.92 conceded against FC Twente
  • L 1.76 created, 0.95 conceded against Excelsior
  • L 1.01 created, 3.53 conceded against Feyenoord
  • W 2.55 created, 1.40 conceded against SC Telstar
FC Utrecht

1.87 xG created 1.22 xGA

  • W 2.90 created, 0.45 conceded against NAC Breda
  • W 2.09 created, 0.48 conceded against Fortuna Sittard
  • W 2.08 created, 1.26 conceded against SC Heerenveen
  • D 0.96 created, 1.47 conceded against AFC Ajax
  • L 2.27 created, 1.55 conceded against FC Groningen
  • L 0.91 created, 2.10 conceded against AZ Alkmaar

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

Head to head

Sparta Rotterdam: 2 won · 0 drawn · 0 lost

Pre-match model & market record

4 opportunities flagged3 won1 lost

  • Won
  • Won
  • Won
  • Lost
View pre-match record
The outcomes the model flagged on Sparta Rotterdam against FC Utrecht before kick-off, in the order they ranked, with the price, the edge and what became of each.
Selection Price Edge Result
Over 2.5 goals 1.70 +11.1% Won
Both teams to score 1.57 +10.2% Won
Over 1.5 goals 1.20 +4.7% Won
FC Utrecht to win 2.63 +3.3% Lost

Pre-match model vs market

Outcome Model Market Difference Fair odds
Sparta Rotterdam 33.5% 36.1% −2.6 pp 2.99
Draw 27.1% 27.9% −0.7 pp 3.69
FC Utrecht 39.4% 36.1% +3.3 pp 2.54

Other markets

Outcome Model Market Difference Fair odds
Both teams to score 70.1% 58.9% +11.2 pp 1.43
Both teams not to score 29.9% 41.1% −11.2 pp 3.35
Over 1.5 goals 87.3% 78.3% +9.0 pp 1.15
Under 1.5 goals 12.7% 21.7% −9.0 pp 7.87
Over 2.5 goals 65.3% 55.3% +10.1 pp 1.53
Under 2.5 goals 34.7% 44.7% −10.1 pp 2.88

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)
Sparta Rotterdam sample
20 matches
FC Utrecht sample
20 matches
Computed
9 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.