Bundesliga

1. FC Köln 2–1 Borussia Mönchengladbach

Final score · Half-time 1–1 · All of yesterday's results

The sharp market makes 1. FC Köln the most likely outcome at 46% — fair odds of 2.15. Unibet (SE) offers 3.45, a market gap of +3.8% above the fair price, which is where we flag value (Strong value). Confidence is Low and model agreement is High. Recent form — 1. FC Köln: LDLWW; Borussia Mönchengladbach: LLLLW.

After the whistle

Goals and cards

  1. 13' Marius Bülter · yellow card · 1. FC Köln
  2. 24' Jan Leszczynski · yellow card · Borussia Mönchengladbach
  3. 26' Ísak Bergmann Jóhannesson · goal · 1. FC Köln
  4. 39' Joe Scally · goal · Borussia Mönchengladbach
  5. 67' Said El Mala · goal · assist Linton Maina · 1. FC Köln
  6. 81' Zento Uno · yellow card · Borussia Mönchengladbach
  7. 90+6' Shuto Machino · yellow card · Borussia Mönchengladbach

Match stats

Match stats1. FC KölnBorussia Mönchengladbach
Possession %4852
Expected goals (xG)1.351.18
Shots1916
Shots on target77
Corners66
Yellow cards13
Red cards00
Fouls817
Offsides11
Goalkeeper saves65

What the market said before kick-off

  • 1. FC Köln win 50% happened
  • Draw 25% did not happen
  • Borussia Mönchengladbach win 26% did not happen
  • Over 2.5 goals 65% happened
  • Both teams score 67% happened

Pinnacle closing price with the margin removed, next to what happened. It is the market's view, not a tip: an outcome priced at 30% happens about 3 times in 10.

Referee: Florian Badstubner · Venue: RheinEnergieStadion, Cologne

Next matches

Line-ups, events and match stats: API-Football.

Starting line-ups

1. FC Köln 4-2-3-1

  1. M. Schwäbe GK
  2. S. Sebulonsen DF
  3. Jahmai Simpson-Pusey DF
  4. L. Lochoshvili DF
  5. B. Sosa DF
  6. Í. Bergmann Jóhannesson MF
  7. E. Skhiri MF
  8. L. Maina MF
  9. M. Moore MF
  10. S. El Mala MF
  11. M. Bülter FW

Regular starters not in the XI

  • Alessio Castro-Montes — not in the starting XI (started 5 of the last 5)
  • Gideon Mensah — not in the starting XI (started 5 of the last 5)
  • Tom Krauß — not in the starting XI (started 5 of the last 5)

Borussia Mönchengladbach 3-4-2-1

  1. M. Nicolas GK
  2. D. Hashioka DF
  3. J. Leszczyński DF
  4. K. Diks DF
  5. J. Scally MF
  6. H. Bolin MF
  7. P. Sander MF
  8. L. Ullrich MF
  9. R. Hack MF
  10. F. Neuhaus MF
  11. I. Lidberg FW

Regular starters not in the XI

  • K. Itakura — not in the starting XI (started 4 of the last 5)

Not in the XI does not mean injured: it can be rotation, a suspension or a knock. We only compare with the team's last 5 line-ups.

Pinnacle, margin removed (home / draw / away): 51 / 24 / 25% when the line-ups came out, 50 / 25 / 26% at kick-off.

In the big leagues, line-up news is usually already in the price by the time it is official.

The most likely result is not the same as value: value is where a bookmaker pays more than the fair price, and the two can point to different outcomes.

Value opportunity before kick-off Strong value

2 Borussia Mönchengladbach @ 3.45
Bookmaker Unibet (SE)
Price observed
Flag recorded @ 3.45 (Unibet (SE)) · recorded live, before kick-off
Market 1X2 (match result)
Availability and exact price varied by country and over time.
Fair price 3.33
Unibet (SE) 3.45
Confidence: Low
Value-bet result Lost · 2 -1.00u

Market discrepancy: before kick-off, Borussia Mönchengladbach (2) was priced at 3.45 by a soft bookmaker, above the fair price of 3.33 — a +3.8% gap. An observation about the price, not an instruction to bet.

A single result where a bookmaker pays above the fair price — separate from the main prediction below.

Most likely result

1/2 Home or away 77%

When no single result is likely enough, our pick covers the two most probable outcomes (double chance).

1X2
Sharp, recorded48%23%29%
Other estimates
Our model45%25%30%

Sharp, recorded = Pinnacle when we logged the match (it can be days old). Our model = our own estimate, which on average predicts worse than the market.

Fair odds of the pick (as recorded) 1.30
Sharp odds recorded for this prediction (Pinnacle) 2.03 / 4.15 / 3.26
Market Gap +3.8%
Confidence Low
Model agreement High

Confidence reflects only the sharp probability of the selection: high from 50%, medium from 40%, low below. It says how likely the result is, not how big the price gap is. Model agreement shows how close our own model is to the sharp market on this selection — when it is Low, the market and our model disagree, so treat the flag with more caution.

Prediction result Won · 1

Value lifecycle Settled

Detected ·
2 Borussia Mönchengladbach · soft 3.45 (Unibet (SE)) · fair 3.33 · edge +3.8%
Opening sharp
3.81
At close
3.90 · CLV -11.6%
Result
Lost -1.00u 🔒 Recorded live before kick-off

“Detected” is the moment the flag was first shown on the site and written to our ledger (recorded live since 26 September 2026). For earlier matches the flag was reconstructed afterwards from the prices we had stored, and the time shown is when the rule would have fired: a backtest, not a live record. When the gap closes, we say so instead of pretending the value is still there.

Match context

The last 5 head-to-head meetings we tracked split 1–3–1 (1. FC Köln wins – draws – Borussia Mönchengladbach wins).

1. FC Köln scored 1.6 and conceded 2 across their last 5 matches in our results database; Borussia Mönchengladbach scored 2.2 and conceded 3.2 in 5.

The sharp market price on Borussia Mönchengladbach has barely moved since opening (3.81 to 3.90) — no significant new information has repriced this match.

These figures come from our own tracked results and odds snapshots for this fixture — not from a generic stats feed.

Market-relevant trends

Borussia Mönchengladbach has lost its last 4 matches.
✓ And the market hasn't fully priced it in: value flagged on Borussia Mönchengladbach at +3.8% above fair.

We show the trend and whether it is already in the price. Most sites show the streak and let you assume you should bet it.

Why this price?

1. FC Köln
L D L W W
avg 1.6 scored · 2 conceded (last 5)
Borussia Mönchengladbach
L L L L W
avg 2.2 scored · 3.2 conceded (last 5)
Recent head-to-head
21 Mar 2026 1. FC Köln 3–3 Borussia Mönchengladbach
08 Nov 2025 Borussia Mönchengladbach 3–1 1. FC Köln
09 Mar 2024 Borussia Monchengladbach 3–3 1. FC Köln
22 Oct 2023 1. FC Köln 3–1 Borussia Monchengladbach
02 Apr 2023 1. FC Köln 0–0 Borussia Monchengladbach

Recent form and head-to-head from our settled results — context behind the fair price. The price itself comes from the sharp market, not from these alone.

Public, timestamped record

Logged before kick-off
Prediction record
Pick 1/2 · Home or away
Odds recorded for the prediction 1.25
Closing odds 1.29
Prediction CLV -3.2%
Result Won
Value-bet record

Recorded when the site showed it, before kick-off. Its seal is in our public export once this match’s row is published, and in the next daily external snapshot (07:40 Bucharest time: 04:40 UTC in summer time, 05:40 UTC in winter); for flags recorded on match day that snapshot comes after kick-off, so the pre-kick-off proof is our own timestamp.

Value selection 2 · Borussia Mönchengladbach
Odds when flagged 3.45
Fair odds 3.33
Closing odds 3.90
Value CLV -11.6%
Profit (units) -1.00
Result Lost
Prediction hash — integrity fingerprint 6d36ddc8119fdd6f

This hash fingerprints the prediction as recorded: teams, kick-off time, our model probabilities, the Pinnacle prices recorded for it (at logging or, if there were none, the first quoted after logging and before kick-off, which can be written in after the match) and the log time. A later edit to any of them would change it (a rescheduled kick-off changes it too). It does not cover closing prices, the result or the value-bet record above; value flags recorded live have their own seal in the public record. Verify in the public record →

Every day a snapshot of the full public record is published to a public Git repository and timestamped with OpenTimestamps. Timestamped snapshots are never overwritten and the Git history shows any difference, so a later change to a past row is visible by comparing two snapshots. The corrections file lists the corrections we announced. Verify on the public log →

Since 20 June 2026 the public record is snapshotted daily (07:40 Bucharest time: 04:40 UTC in summer time, 05:40 UTC in winter) to an external log. A prediction is externally timestamped before kick-off only if it was in a snapshot taken before the match; predictions logged on match day, or whose Pinnacle price was added after logging, first appear there after kick-off. Value flags have been recorded live only since 26 September 2026; earlier value flags were reconstructed on that date.

Methodology

The fair price comes from the sharp market itself: we strip the margin from Pinnacle-style odds — the most accurate public predictor in existence — and use our calibrated Elo + form model as a cross-check and as the fallback where no sharp price exists. Value is flagged only where a softer bookmaker prices a selection above that fair price, never on long shots (implied probability under 30%), and never beyond a plausible band. Most of the time there is no value — and we say so.

Found this useful? Send it to a friend who bets.