Bundesliga · 2025Borussia-Park

Borussia M'gladbach 2–2 1. FC Heidenheim · Bundesliga

2–2Historical match

A completed match from a finished season. This page is the record of what happened.

Match at a glance

Borussia M'gladbach and 1. FC Heidenheim drew 2–2.

Shots
1515
Shots on target
77
Expected goals
0.731.14
Possession
52%48%

Full time

What the match recorded

Borussia Mönchengladbach and 1. FC Heidenheim drew 2–2. Recorded in this match (Borussia Mönchengladbach – 1. FC Heidenheim): shots 15–15, shots on target 7–7, expected goals 0.73–1.14, possession 52%–48%. This is what was recorded. It is not a claim that the result was foreseeable.

Pre-match record

What the data showed before kick-off. Kept for reference; it did not know the result.

Borussia Mönchengladbach's recent record differs from the season

moderate

Borussia Mönchengladbach's last-five goals scored average is above their season average.

1.8 goals/match ▲Goals forLast 5 · Season1.25 goals/match
Evidence and caveat

Comparison: An unweighted last-five average is compared with the unweighted season average.

Window: last_5 versus season

MetricLast 5SeasonBaseline
Goals for1.8 goals/match1.25 goals/match1.38 goals/match

Caveat: Five matches are sensitive to opponent mix and isolated match states.

This match

Match statistics

  • Shots15 shots15 shotsBorussia M'gladbach 15 shots, 1. FC Heidenheim 15 shots
  • Shots on target7 shots7 shotsBorussia M'gladbach 7 shots, 1. FC Heidenheim 7 shots
  • Expected goals0.73 xG1.14 xGBorussia M'gladbach 0.73 xG, 1. FC Heidenheim 1.14 xG
  • Possession52%48%Borussia M'gladbach 52%, 1. FC Heidenheim 48%
  • Corners2 corners3 cornersBorussia M'gladbach 2 corners, 1. FC Heidenheim 3 corners
  • Fouls12 fouls11 foulsBorussia M'gladbach 12 fouls, 1. FC Heidenheim 11 fouls
  • Yellow cards3 cards0 cardsBorussia M'gladbach 3 cards, 1. FC Heidenheim 0 cards

Every shot

Shot map

Every recorded shot, placed where it was taken and sized by its expected-goals value. Arrows show each team’s attacking direction.

Wael Mohya · Borussia Mönchengladbach · 11′ · 0.01 xG · on targetKevin Diks · Borussia Mönchengladbach · 32′ · 0.01 xG · on targetEren Dinkçi · 1. FC Heidenheim · 47′ · 0.01 xG · off target or blockedJulian Niehues · 1. FC Heidenheim · 55′ · 0.02 xG · off target or blockedRocco Reitz · Borussia Mönchengladbach · 66′ · 0.02 xG · off target or blockedHaris Tabaković · Borussia Mönchengladbach · 88′ · 0.02 xG · off target or blockedPatrick Mainka · 1. FC Heidenheim · 21′ · 0.03 xG · off target or blockedEren Dinkçi · 1. FC Heidenheim · 62′ · 0.03 xG · off target or blockedMarvin Pieringer · 1. FC Heidenheim · 63′ · 0.03 xG · off target or blockedShuto Machino · Borussia Mönchengladbach · 66′ · 0.03 xG · off target or blockedJens Castrop · Borussia Mönchengladbach · 74′ · 0.03 xG · off target or blockedMarnon Busch · 1. FC Heidenheim · 85′ · 0.03 xG · off target or blockedJens Castrop · Borussia Mönchengladbach · 90′ · 0.03 xG · off target or blockedHennes Behrens · 1. FC Heidenheim · 20′ · 0.04 xG · off target or blockedJonas Föhrenbach · 1. FC Heidenheim · 21′ · 0.04 xG · off target or blockedPatrick Mainka · 1. FC Heidenheim · 26′ · 0.04 xG · goalHaris Tabaković · Borussia Mönchengladbach · 83′ · 0.04 xG · on targetFranck Honorat · Borussia Mönchengladbach · 37′ · 0.05 xG · off target or blockedPatrick Mainka · 1. FC Heidenheim · 45′ · 0.05 xG · on targetKevin Stöger · Borussia Mönchengladbach · 69′ · 0.05 xG · on targetRocco Reitz · Borussia Mönchengladbach · 37′ · 0.06 xG · off target or blockedFranck Honorat · Borussia Mönchengladbach · 74′ · 0.07 xG · goalHugo Bolin · Borussia Mönchengladbach · 78′ · 0.08 xG · off target or blockedWael Mohya · Borussia Mönchengladbach · 16′ · 0.09 xG · goalBudu Zivzivadze · 1. FC Heidenheim · 40′ · 0.09 xG · on targetMarnon Busch · 1. FC Heidenheim · 64′ · 0.10 xG · goalHugo Bolin · Borussia Mönchengladbach · 90′ · 0.12 xG · on targetEren Dinkçi · 1. FC Heidenheim · 7′ · 0.18 xG · on targetMarvin Pieringer · 1. FC Heidenheim · 90′ · 0.20 xG · on targetMathias Honsak · 1. FC Heidenheim · 44′ · 0.23 xG · on target
  • off target
  • on target
  • goal
  • penalty
  • size = xG

Borussia Mönchengladbach: 15 shots, 7 on target, 0.71 xG. 1. FC Heidenheim: 15 shots, 7 on target, 1.12 xG.

How the match built

Expected-goals timeline

Expected goals accumulated minute by minute. Circles mark the goals that were actually scored.

00.751.50′HT90′Wael Mohya · Borussia Mönchengladbach · 16′Franck Honorat · Borussia Mönchengladbach · 74′Patrick Mainka · 1. FC Heidenheim · 26′Marnon Busch · 1. FC Heidenheim · 64′

The step line is cumulative expected goals; circles mark goals. Final: Borussia Mönchengladbach 0.71 xG · 1. FC Heidenheim 1.12 xG.

History

Head-to-head

Recent meetings between these teams.

Last 5 meetings

4Borussia M'gladbach
1Draws
01. FC Heidenheim
1. FC Heidenheim — Borussia M'gladbach · Bundesliga0–3
1. FC Heidenheim — Borussia M'gladbach · Bundesliga0–3
Borussia M'gladbach — 1. FC Heidenheim · Bundesliga3–2
1. FC Heidenheim — Borussia M'gladbach · Bundesliga1–1
Borussia M'gladbach — 1. FC Heidenheim · Bundesliga2–1

Head-to-Head & Recent Meetings

Metric comparison

Team comparison

Season averages, with the sample size beside each metric.

Where the edge is

Season: Borussia M'gladbach favored in 7 of 11 directional metrics · 1. FC Heidenheim in 0 · 4 too close

led this metric higher value (descriptive) too close

Window

Season

Borussia M'gladbach28 matches1. FC Heidenheim28 matches
1.25 goals/match ▲Goals scored28/281.04 goals/match
1.71 goals/match ▲Goals allowed28/282.25 goals/match
1.25 xG/matchExpected goals28/281.29 xG/match
11.5 shots/matchShots28/2811.4 shots/match
4.25 shots/match ▲Shots on target28/283.5 shots/match
46% ●Possession28/2842.1%
4.07 corners/matchCorners28/28● 4.5 corners/match
1.5 cards/matchCards26/261.54 cards/match
11.1 fouls/matchFouls28/2810.3 fouls/match

Evidence quality

How much supports this analysis

Grade A · Strong evidenceStrong evidence — limited
Season samples28 / 28home / away teams
Recent samples5 / 5last-five windows
FreshnessLess than one dayfrom nearest prior match
  • The fixture is outside the configured active season.
  • Recent samples and important metric coverage meet the strong evidence threshold.

Known unknowns

  • Lineups, injuries, suspensions and tactical changes are not available in the retained dataset.
  • The fixture season differs from the competition's configured active season.
Analysis cutoff: Sat, 4 Apr 2026, 17:30 UTC · analysis-v4

Team rankings in Bundesliga

Make a graphic from this match

Creator Studio builds a branded post from this match's recorded data, with its evidence grade and source cutoff carried into the export.

Turn this match into a graphicReady-made from PitchMath data · No sign-up required