xgEdge

Saturday, 05/09/2026 at 20:30

Full time
Match report · Swiss Super League

Grasshopper Club Zürich 2:2 FC Zürich

Grasshopper Club Zürich Home 4.16 xG · 20 shots
FC Zürich Away 0.77 xG · 11 shots
22 Grasshopper Club Zürich had the better chances, but it finished level

Grasshopper Club Zürich were the model's likeliest winner before kick-off at 43%. It finished 2–2. The biggest difference was Grasshopper Club Zürich's attack: 4.16 xG against 1.56 projected (+2.60). FC Zürich produced 0.77 xG against 1.25 projected (−0.48).

Goals

  1. 54' Kevin Spadanuda FC Zürich · 0.41 xG chance 0–1
  2. 58' Samuel Krasniqi Grasshopper Club Zürich · 0.63 xG chance 1–1
  3. 80' Umeh Emmanuel FC Zürich · 0.05 xG chance 1–2
  4. 90' Bujar Pllana Grasshopper Club Zürich · 0.31 xG chance 2–2

The model against the result

priced before kick-off
Grasshopper Club Zürich
43%
Draw
29% What happened
FC Zürich
28%

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

Projected vs produced

Expected goals
Grasshopper Club Zürich The model projected 1.56 Produced 4.16 Difference +2.60
FC Zürich The model projected 1.25 Produced 0.77 Difference -0.48

Grasshopper Club Zürich produced 2.60 xG more than projected

Projected before kick-off Produced on the night

The shots behind it

Grasshopper Club Zürich FC Zürich
Shots
20
11
On target
7
6
Inside the box
16
6
xG per shot
0.21
0.07
Open play xG
1.92
0.61
Set-piece xG
1.51
0.18
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: 3.39 for Grasshopper Club Zürich and 0.77 for FC Zürich.

Shot map

Both teams shown attacking the same goal for comparison.

Grasshopper Club Zürich · Giotto Morandi · 65' · No goal · 12 m · 0.82 xG Grasshopper Club Zürich · Nikolas Muci · 6' · No goal · 7 m · 0.63 xG Grasshopper Club Zürich · Samuel Krasniqi · 58' · Goal · 8 m · 0.63 xG FC Zürich · Kevin Spadanuda · 54' · Goal · 3 m · 0.41 xG Grasshopper Club Zürich · Bujar Pllana · 90' · Goal · 3 m · 0.31 xG Grasshopper Club Zürich · Yannick Bettkober · 4' · No goal · 3 m · 0.27 xG Grasshopper Club Zürich · Manex Gibelalde Mújika · 3' · No goal · 5 m · 0.25 xG Grasshopper Club Zürich · Samuel Krasniqi · 8' · No goal · 7 m · 0.23 xG Grasshopper Club Zürich · Samuele Bengondo · 44' · No goal · 7 m · 0.18 xG Grasshopper Club Zürich · Samuel Krasniqi · 31' · No goal · 22 m · 0.17 xG Grasshopper Club Zürich · Samuel Krasniqi · 40' · No goal · 11 m · 0.11 xG Grasshopper Club Zürich · Young-Jun Lee · 90' · No goal · 2 m · 0.11 xG Grasshopper Club Zürich · Samuele Bengondo · 18' · No goal · 9 m · 0.10 xG Grasshopper Club Zürich · Allan Arigoni · 90' · No goal · 19 m · 0.09 xG Grasshopper Club Zürich · Samuele Bengondo · 21' · No goal · 9 m · 0.08 xG FC Zürich · Lindrit Kamberi · 67' · No goal · 4 m · 0.08 xG Grasshopper Club Zürich · Luke Plange · 75' · No goal · 11 m · 0.08 xG FC Zürich · Damienus Reverson · 11' · No goal · 5 m · 0.07 xG Grasshopper Club Zürich · Samuele Bengondo · 4' · No goal · 6 m · 0.06 xG FC Zürich · Miguel Reichmuth · 20' · No goal · 10 m · 0.05 xG Grasshopper Club Zürich · Nikolas Muci · 43' · No goal · 26 m · 0.05 xG FC Zürich · Umeh Emmanuel · 80' · Goal · 20 m · 0.05 xG Grasshopper Club Zürich · Samuele Bengondo · 32' · No goal · 10 m · 0.04 xG FC Zürich · Kevin Spadanuda · 39' · No goal · 19 m · 0.04 xG FC Zürich · Umeh Emmanuel · 9' · No goal · 15 m · 0.03 xG Grasshopper Club Zürich · Samuel Krasniqi · 1' · No goal · 25 m · 0.02 xG Grasshopper Club Zürich · Samuel Krasniqi · 12' · No goal · 13 m · 0.02 xG FC Zürich · Kevin Spadanuda · 52' · No goal · 12 m · 0.02 xG FC Zürich · Nevio Di Giusto · 79' · No goal · 22 m · 0.02 xG FC Zürich · Damienus Reverson · 51' · No goal · 29 m · 0.01 xG FC Zürich · Doron Lichtenstein · 73' · No goal · 23 m · 0.01 xG

All shots

31 shots · 5.04 xG

Hover, focus or tap a shot to read it.

  • Grasshopper Club Zürich
  • FC Zürich
  • Filled = goal
  • Dot area = xG (the smallest chances drawn at a minimum size)

Recent form

Last 6 · xG per match
Grasshopper Club Zürich

1.55 xG created 2.03 xGA

  • W 0.52 created, 2.98 conceded against FC Lausanne-Sport
  • D 0.74 created, 0.80 conceded against FC Lausanne-Sport
  • L 1.83 created, 2.13 conceded against FC Lugano
  • L 0.97 created, 2.15 conceded against Servette FC
  • L 2.99 created, 2.31 conceded against FC Vaduz
  • W 2.23 created, 1.80 conceded against FC St. Gallen 1879
FC Zürich

1.37 xG created 1.64 xGA

  • L 1.11 created, 1.63 conceded against FC St. Gallen 1879
  • W 1.48 created, 1.53 conceded against Servette FC
  • L 0.87 created, 2.46 conceded against FC Lugano
  • L 1.35 created, 1.64 conceded against Basel
  • W 1.71 created, 1.09 conceded against FC Lausanne-Sport
  • L 1.71 created, 1.52 conceded against Young Boys

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

Head to head

Grasshopper Club Zürich: 1 won · 0 drawn · 3 lost

Pre-match model & market record

3 opportunities flagged1 won2 lost

  • Lost
  • Won
  • Lost
View pre-match record
The outcomes the model flagged on Grasshopper Club Zürich against FC Zürich before kick-off, in the order they ranked, with the price, the edge and what became of each.
Selection Price Edge Result
Grasshopper Club Zürich to win 2.55 +9.3% Lost
Draw 3.70 +8.5% Won
Under 2.5 goals 2.30 +4.1% Lost

Pre-match model vs market

Outcome Model Market Difference Fair odds
Grasshopper Club Zürich 42.9% 36.9% +6.0 pp 2.33
Draw 29.3% 25.4% +3.9 pp 3.41
FC Zürich 27.8% 37.6% −9.8 pp 3.60

Other markets

Outcome Model Market Difference Fair odds
Both teams to score 62.2% 62.5% −0.3 pp 1.61
Both teams not to score 37.8% 37.5% +0.3 pp 2.65
Over 1.5 goals 81.2% 79.2% +2.0 pp 1.23
Under 1.5 goals 18.8% 20.8% −2.0 pp 5.31
Over 2.5 goals 54.8% 59.0% −4.2 pp 1.83
Under 2.5 goals 45.2% 41.0% +4.2 pp 2.21

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)
Grasshopper Club Zürich sample
20 matches
FC Zürich sample
20 matches
Computed
5 hours before kick-off
Prices taken
5 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.