Bundesliga · Matchweek 7
Maximilian Beier 80'
HT 0:0
Sat, 24 Oct 2026, 17:30 (UK) · Signal Iduna Park, Dortmund

Substitutes Maximilian Beier and Jobe Bellingham broke a goalless match as Dortmund beat Frankfurt.

FN MOMJoey Veerman8.1Decisive moment80' Maximilian Beier+1.3SGE −0.8

Dortmund 1-0 Frankfurt: two substitutes break the deadlock

Key numbers

  • 18 shots to 8, but only 0.09 xG per shot
  • 13 corners, well above the 7.4 season average
  • 80' winner worth +1.3 FN xPts to Dortmund

Substitutes combine to end the stalemate

Borussia Dortmund had to wait until the 80th minute to break down Eintracht Frankfurt, and the goal came from the bench. Maximilian Beier, on since the 68th minute, finished a move set up by Jobe Bellingham, who had come on a minute earlier. Until then the match had been goalless.

Plenty of shots, modest quality

Dortmund's pressure came with modest shot quality. Their xG per shot of 0.09 sat below their season average, while 13 corners were well above it. Their total xG still exceeded Frankfurt's, so the shortfall looks more like a finishing problem than any difficulty in reaching good positions.

Baum anchors a stubborn defence

Frankfurt managed only eight shots, far fewer than their average over the previous six matches. What kept the match level for so long was new starter Elias Baum, whose nine defensive actions were the most of any player on either side. Goalkeeper Noah Atubolu also made a string of saves.

The goal that turned a draw into a lead

Beier's goal was worth +1.3 FN xPts to Dortmund and cost Frankfurt −0.8, a measure of how long the match had stayed level. Carney Chukwuemeka, who began on the bench and replaced Marcel Sabitzer, set up three chances with key passes. The winner was a joint effort between two substitutes.

FN MOM
Highest FN Score · our own pick by a published formula, not the official Player of the Match
Joey Veerman 8.1Dominant

He made five key passes, the most in the match, and completed 66 of his 73 passes.

Veerman did two jobs for 90 minutes: he supplied the attack and covered ground defensively, with three tackles and two interceptions. In a match where Dortmund had 18 shots and still had to wait until the 80th minute to score, his steady supply from midfield kept the pressure on Frankfurt until the substitutes finished the job.

Game state

1-0
Borussia Dortmund ahead 10 min · level 80 min · Eintracht Frankfurt ahead 0 min

FN xPts — what each moment was worth

How much each moment changed that team's expected points (win 3, draw 1). A goal's value is credited 70% to the scorer and 30% to the assist. The value next to a team code is what the same moment did to the other side's expected points; the decisive moment is the one with the largest combined change for both teams.

80' Maximilian Beier Goal · scorer +0.9 · assist Jobe Bellingham +0.4 · SGE −0.8 +1.3
Borussia Dortmund Expected (last two seasons) 2.1Own moments +1.3Opponent moments 0.0Time effect −0.4→ League points won 3
Eintracht Frankfurt Expected (last two seasons) 0.7Own moments 0.0Opponent moments −0.8Time effect +0.1→ League points won 0

Expected points don't add up to a fixed total (a draw is 1 + 1), so an opponent's moment isn't simply the mirror of your loss. "Time effect" is the change as the clock runs down on a lead or a chase, and isn't credited to any player.

How FN Score and FN xPts work →

Match stats

Borussia DortmundEintracht Frankfurt
59%Possession41%
1.65Expected goals (xG)0.88
0.09xG per shot0.11
18Shots8
5Shots on target3
28%Shots on target %38%
13Shots in box4
483Passes361
13Corners1
3Saves4
7Fouls12
0Yellow cards2
1Offsides4

Compared with usual

Borussia Dortmund

10 matches this season, all competitions baseline
This matchAvg
Goals12.1
Conceded00.8
xG1.652
xG against0.881.1
Shots1817.6
On target56.2
Shots faced810.9
xG per shot0.090.13
Possession59%56.5%
Passes483540.4
Corners137.4
Fouls710.9

Eintracht Frankfurt

last 6 matches, all competitions baseline
This matchAvg
Goals01.7
Conceded12.7
xG0.881.9
xG against1.652.1
Shots814.7
On target35.8
Shots faced1817.5
xG per shot0.110.14
Possession41%51.3%
Passes361437
Corners15.3
Fouls1210.3

Timeline

  • 58' Yellow Nnamdi Collins
  • 63' Yellow Farès Chaïbi
  • 68' Sub Marcel Sabitzer → Carney Chukwuemeka
  • 68' Sub Fábio Silva → Ethan Nwaneri
  • 68' Sub Daniel Svensson → Maximilian Beier
  • 77' Sub Jonathan Burkardt → Ansgar Knauff
  • 77' Sub Younes Ebnoutalib → Can Uzun
  • 79' Sub Felix Nmecha → Jobe Bellingham
  • 80' Goal Maximilian Beier league goal #2 assist Jobe Bellingham
  • 84' Sub Farès Chaïbi → Love Arrhov
  • 84' Sub Noel Aseko → Mario Götze
  • 87' Sub Ritsu Doan → Ayoube Amaimouni Echghouyab
  • 90+2' Sub Julian Ryerson → Kouakou Joane Gadou

Category leaders

  • Key passesJoey Veerman5
  • Duels wonElias Baum11/12
  • DribblesFelix Nmecha3/4
  • Defensive actionsElias Baum9
  • ShotsSerhou Guirassy5 (on target 2)
  • Fouls wonElias Baum3
#Bundesliga#Borussia Dortmund#Eintracht Frankfurt#Joey Veerman#Maximilian Beier#Elias Baum

This review was written by AI from match data (API-Football). FN Score and FN xPts are calculated by Fulltime Note using a published formula.