Viborg FF vs Odense BK preview

Denmark flag 2026/2027 Superliga, Denmark
Energi Viborg Arena Fri, 24 Jul - 5:00 PM
Superliga
Full Time Fri, 24 Jul 5:00 PM
Round 1 Regular Season

CONTEXT

Viborg FF defeated Odense BK 1-0 in a match that stayed level at 0-0 through halftime. The home side claimed victory despite recording only 43 percent possession and 1.57 expected goals against the visitors 57 percent possession and 2.67 expected goals. Viborg FF was identified as the stronger team beforehand yet the result diverged from the expected goals trend. No red cards were shown to either side and the lone goal arrived after the interval. The significant deviation in outcome for the winners occurred without any dismissals altering the flow of play. This narrow success highlighted how a single moment can override broader statistical patterns in the final scoreline.

TL;DR

  • Structural deviation: Viborg FF recorded a significant structural deviation from expected performance levels.
  • Efficiency shift: The efficiency shift remained in line with overall team metrics.
  • xG alignment: The final result was not consistent with the expected goals values.
  • Market alignment: The outcome aligned with pre-match market positioning.
  • xG expectations: Viborg FF posted 1.57 xG while Odense BK posted 2.67 xG.
  • Event impact: The second-half goal produced the 1-0 final score.
  • Red card distortion: No red cards occurred so no distortion affected the contest.
No standings statistics available.
No head-to-head records found.
0.5+ goals: 85%
1.5+ goals: 70%
2.5+ goals: 50%
3.5+ goals: 25%
Confidence: High (≥8 matches)

Quality vs Volume

Home: xG 1.8, Shots 12, xG/Shot 0.15
Away: xG 1.5, Shots 14, xG/Shot 0.11

Open Play vs Set Play

Open Play: 65%
Set Play: 35%

Expected Points

TeamxPts
Home1.8
Away1.2
ℹ️ Methodology: Expected Goals (xG) measures shot quality
F. Svendsen
F. Svendsen
Referee 25 matches
Fouls / Match
Referee 30.4
League Avg 0
Yellow Cards / Match
Referee 4
League Avg 0
Red Cards / Match
Referee 0.36
League Avg 0
Penalties / Match
Referee 0.36
League Avg 0
O. Kronlykke
O. Kronlykke
1st Assistant 0 matches
Fouls / Match
Referee 0
League Avg 0
Yellow Cards / Match
Referee 0
League Avg 0
Red Cards / Match
Referee 0
League Avg 0
Penalties / Match
Referee 0
League Avg 0
J. Bæk
J. Bæk
2nd Assistant 0 matches
Fouls / Match
Referee 0
League Avg 0
Yellow Cards / Match
Referee 0
League Avg 0
Red Cards / Match
Referee 0
League Avg 0
Penalties / Match
Referee 0
League Avg 0
M. Redder
M. Redder
4th Official 0 matches
Fouls / Match
Referee 0
League Avg 0
Yellow Cards / Match
Referee 0
League Avg 0
Red Cards / Match
Referee 0
League Avg 0
Penalties / Match
Referee 0
League Avg 0
VS
Odense BK A. Zorniger
A. Zorniger
1.43
Avg Points / Game (Last 100 Matches)
1.07
0.67 i
Last 6 Opponents
AGF Rank: 74 L
Sønderjyske Fodbold Rank: 63 L
FC Midtjylland Rank: 79 D
Nordsjælland Rank: 69 W
Brøndby IF Rank: 68 L
Nordsjælland Rank: 69 L
Avg Points / Game (Last 6 Matches)
1.17 i
Last 6 Opponents
Vejle Boldklub Rank: 53 L
Randers FC Rank: 60 D
Silkeborg IF Rank: 60 L
Fredericia Rank: 55 W
FC København Rank: 72 L
Randers FC Rank: 60 W
0
Head to Head (Wins - Draws - Losses)
0 - 0 - 2
2

Team Power Ranking

i
What is Power Ranking?
Power ranking is SportMonks' model-based team strength indicator. Historical input capped to 2 seasons.
65.76
58.88
0 (Weakest) 100 (Strongest)
Metric
Viborg FF
Odense BK
Power Score
65.76
58.88
League Position
1
12
Global Rank
365
582

Form Analysis Opponent-Weighted

Line chart of recent results (points/trend). Friendlies excluded by default. Hover for opponent, result, xG/xGA and power ranking — based on last 6 matches.

vs
Viborg FF Opponent-weighted form score
Odense BK Opponent-weighted form score
Win (3 pts) Draw (1 pt) Loss (0 pts) Viborg FF Odense BK

Heatmaps Ball coordinates

Attack and defence zones from ball position data. Filters: last 6 matches (overall/home/away), time period, competition.

vs

Viborg FF

Left / Center / Right
Opposition half density
vs season average

Odense BK

Left / Center / Right
Opposition half density
vs season average

Possession Efficiency Possession-Adjusted

How effectively each team uses and defends their share of possession. Efficiency adjusted based on team possession percentage

Viborg FF ⚠ Proxy
vs
⚠ Proxy Odense BK
Attacking Efficiency
Higher is better
Attacking Efficiency
27.21
38.25
Defensive Efficiency
Lower is better
Defensive Efficiency
38.25
27.21
Combined Efficiency Index Z-score combining attacking and defensive possession-adjusted efficiency.
Positive = above league average.
Negative = below league average.
Formula: EfficiencyIndex = z(AttackEff) − z(DefenceEff)
-3 0 3
Viborg FF -1.22 Efficiency Index
vs
Odense BK +1.22 Efficiency Index
xG data unavailable for both teams. Values estimated using shots and dangerous attacks (proxy). Confidence: Medium.
Viborg FF
Odense BK
AttackEff = xG ÷ pos
DefenceEff = xGA ÷ (1−pos)

Set Pieces Efficiency Attack & Defence

Set-piece reliance and strength using expected metrics and actual outcomes for each team.

Viborg FF
vs
Odense BK
Created Set-piece attacking threat
Viborg FF Odense BK
Set-piece xG Share Share of total expected goals generated from set pieces. Higher = more set-piece reliant in attack.
13%
47%
Goals per Match Average set-piece goals scored per match.
0.00 0.00
vs Expected (xG) Goals scored minus set-piece xG. Positive = overperforming; Negative = underperforming expectations.
-0.20 vs -1.25
Conceded Set-piece defensive exposure
Viborg FF Odense BK
Set-piece xGA Share Share of total expected goals conceded from set pieces. Higher = more exposed to set pieces defensively.
47%
13%
Conceded per Match Average set-piece goals conceded per match.
0.00 0.00
vs Expected (xGA) Goals conceded minus set-piece xGA. Positive = conceding more than expected (bad); Negative = conceding less than expected (good).
-1.25 vs -0.20
Viborg FF
Odense BK
xG Share = set-piece xG ÷ total xG
vs Expected = goals − set-piece xG

Counter / Transition Attack & Defence

What happens in the 15 seconds immediately after possession changes hands — based on Last 6 matches.

Viborg FF
vs
Odense BK
Attack After Winning Possession transition → offence
Viborg FF Odense BK
Goals per Match Average goals scored within 15s of winning the ball per match. ↑ better
Shots per Match Average shots taken within 15s of winning the ball per match. ↑ better
Dangerous Attacks Average dangerous attacks launched within 15s of winning possession per match. ↑ better
Defence After Losing Possession loss → defensive exposure
Viborg FF Odense BK
Goals Conceded Average goals conceded within 15s of losing the ball per match. ↓ better
Shots Conceded Average shots conceded within 15s of losing the ball per match. ↓ better
Dangerous Attacks Conceded Average dangerous attacks allowed within 15s of losing possession per match. ↓ better
Viborg FF
Odense BK
Window = 15s post-possession change
Index = 0–1 composite score

PRESSURE INDEX

Momentum phases from smoothed minute-by-minute pressure.

  • ODE had peak pressure around 85'.
  • ODE started the game with stronger pressure.
VFF Pressure ODE Pressure
Pressure Index: ODE reached the top pressure at 85' (81.81).

Team Head to Head Last 6 Seasons

Summary of 2 matches between these sides — filtered by competition and venue context.

Viborg FF VFF Home
2 matches
Odense BK ODE Away
Match Record
0
Wins
2
0
Draws
0
2
Losses
0
Goals
2
Goals Scored
5
5
Goals Conceded
2
-3
Goal Difference
+3
Expected Goals
0
xG
0
0
xGA
0

Data last updated: 2026-07-25T00:00:49+00:00

STARTING XI

Match Formation 4-3-3
Match Formation 4-4-2

General Information

Date & Time
Jul 24, 2026, 05:00 PM
Competition
2026/2027 Superliga, Denmark · Round 1 · Regular Season
Stadium
Energi Viborg Arena
Capacity
9566
Pitch Surface
Grass
Weather
☀️ 12°C, Fair
Referees
Frederik Svendsen
Ole Kronlykke
Jonas Bæk
Mikkel Redder

Statistics

Possession
VFF
44%
ODE
56%

Top Statistics

1 Goals 0
3 Big Chances Created 2
6 Shots 10
34 Dangerous attacks 56
43 Possession 57
7 Corners 10
11 Free kicks 15
2 Yellow Cards 1

Match Overview

69 Ball Safe 65
12 Goal Kicks 7
9 Goal Attempts 10
5 Substitutions 4
21 Throwins 28
1 Hit Woodwork 1
1 Assists 0
1 Injuries 0
18 Dribble Attempts 22
9 Successful Dribbles 10
50 Successful Dribbles Percentage 45

Attacking

77 Attacks 110
2 Big Chances Missed 2

Possession

51 Long Passes 46
350 Passes 468
273 Successful Passes 392
78 Successful Passes Percentage 84
8 Key Passes 15
23 Successful Long Passes 18
45 Successful Long Passes Percentage 39

Defensive

4 Saves 2
19 Tackles 19
11 Interceptions 14
49 Duels Won 51

Build-up

13 Total Crosses 26
2 Accurate Crosses 5

Discipline

1 Offsides 1
15 Fouls 11

Lineup

Referee : Frederik Svendsen

Starting XI

20
Kasper Kiilerich
Kasper Kiilerich Goalkeeper
7.47
5
Zan Zaletel
Zan Zaletel Defender
6.93
23
Oliver Bundgaard
Oliver Bundgaard Defender
8.12
30
Srdjan Kuzmic
Srdjan Kuzmic Defender
7.17
24
Daniel Anyembe
Daniel Anyembe
Defender76'
6.87
32
Lukas Kirkegaard
Lukas Kirkegaard Defender
7.47
8
Asker Beck
Asker Beck Midfielder
6.44
34
Philip Keller
Philip Keller
Midfielder76'
6.64
10
Thomas Jørgensen
Thomas Jørgensen Midfielder
7.3
13
Jeppe Grønning
Jeppe Grønning (C) Midfielder
6.38
11
Charly Nouck
Charly Nouck Attacker
6.65
4
Mees Hoedemakers
Mees Hoedemakers
Midfielder80'
6.37
19
Dorian Hanza
Dorian Hanza Attacker
6.82
36
Adam Kleis-Kristoffersen
6.25
21
Bilal Brahimi
Bilal Brahimi Attacker
6.85
29
Sami Jalal
Sami Jalal
Midfielder57'
6.29
Referee : Frederik Svendsen

Starting XI

1
Martin Hansen
Martin Hansen Goalkeeper
6.57
2
Peter Therkildsen
6.86
28
Magnus Andersen
Magnus Andersen
Defender79'
6.71
3
Adam Sørensen
Adam Sørensen Defender
7.05
15
Marcus McCoy
Marcus McCoy Defender
6.67
29
James Gomez
James Gomez Defender
6.46
5
Ulrik Yttergård Jenssen
6.43
6
Jakob Bonde
Jakob Bonde Midfielder
7.47
7
Fiete Arp
Fiete Arp (C) Midfielder
7.8
19
Nikolaj Juul-Sandberg
9
Topi Keskinen
Topi Keskinen Midfielder
7.28
22
Ismahila Ouédraogo
Ismahila Ouédraogo Midfielder
7.01
11
Jona Niemiec
Jona Niemiec Attacker
6.68
26
Lasse Legolas
Lasse Legolas
Attacker74'
6.83
17
Noah Ganaus
Noah Ganaus Attacker
6.25

Events

2ND-HALF
87'
Event
Nikolaj Juul-Sandberg Fiete Arp
9th Substitution
Event
Adam Kleis-Kristoffersen Dorian Hanza
8th Substitution
81'
Event
Mees Hoedemakers Charly Nouck
7th Substitution
80'
79'
Event
Magnus Andersen Peter Therkildsen
5th Substitution
79'
Event
Ulrik Yttergård Jenssen James Gomez
6th Substitution
77'
Event
Foul / 3rd Yellowcard
Event
Daniel Anyembe Srdjan Kuzmic
3rd Substitution
76'
Event
Philip Keller Asker Beck
4th Substitution
76'
Event
Foul / 2nd Yellowcard
74'
74'
Event
Lasse Legolas Jona Niemiec
2nd Substitution
Event
Sami Jalal Bilal Brahimi
1st Substitution
57'
Event
Right foot shot / 1st Goal
56'
1ST-HALF
Event
Foul / 1st Yellowcard
15'

Match Commentary

90
Attempt Attempt
Lasse Legolas takes a right-footed shot, but it's saved.
90
Attempt Attempt
Adam Kleis-Kristoffersen takes a right-footed shot but misses.
90
Corner Corner
Corner awarded.
89
Attempt Attempt
Adam Sorensen takes a right-footed shot, but it is blocked.
89
Corner Corner
Corner awarded.
87
Update Update
Nikolaj Juul-Sandberg comes on for Fiete Arp.
83
Attempt Attempt
Noah Ganaus takes a shot with his head but misses.
81
Update Update
Adam Kleis-Kristoffersen replaces Dorian Hanza.
80
Update Update
Adam Kleis-Kristoffersen replaces Dorian Hanza.
79
Update Update
Mees Hoedemakers is on, and Charly Horneman is off.
79
Update Update
Ulrik Yttergard Jenssen is on, and James Gomez is off.
79
Update Update
On comes Magnus Andersen, off goes Peter Therkildsen.
79
Attempt Attempt
Lukas Kirkegaard takes a right-footed shot but misses.
77
Yellow Card Yellow Card Important
James Gomez receives a yellow card.
77
Attempt Attempt
Charly Horneman takes a right-footed shot but misses.
76
Substitution Substitution
Daniel Anyembe is substituted for Srdjan Kuzmic.
76
Update Update
On comes Philip Keller, off goes Asker Beck.
74
Substitution Substitution
Lasse Legolas is substituted for Jonah Niemiec.
74
Yellow Card Yellow Card Important
Yellow card for Jeppe Gronning.
72
Attempt Attempt
Marcus McCoy attempts a header but misses the shot.
69
Attempt Attempt
Topi Keskinen takes a right-footed shot, but it is blocked.
68
Attempt Attempt
Jonah Niemiec takes a right-footed shot, but it is saved.
66
Corner Corner
Corner awarded.
65
Attempt Attempt
Dorian Hanza takes a shot with his right foot, but it is saved.
63
Corner Corner
Corner awarded.
61
Corner Corner
Corner awarded.
61
Corner Corner
Corner awarded.
59
Update Update
Offside.
59
Attempt Attempt
Fiete Arp takes a right-footed shot but misses.
59
Attempt Attempt
Peter Therkildsen takes a shot with his head but misses.
57
Update Update
Sami Jalal Karchoud is on, and Bilal Brahimi is off.
56
GOAL! GOAL! Important
Shot by Thomas Jorgensen with his right foot results in a goal.
56
GOAL! GOAL! Important
Goal! The score is now 1-0.
54
Corner Corner
Corner awarded.
54
Corner Corner
Corner awarded.
53
Attempt Attempt
Topi Keskinen's right-footed shot is blocked.
52
Attempt Attempt
Jacob Bonde takes a left-footed shot, but it is saved.
52
Corner Corner
Corner awarded.
48
Attempt Attempt
Topi Keskinen takes a right-footed shot, but it's saved.
47
Corner Corner
Corner awarded.
45
Attempt Attempt
Asker Beck takes a right-footed shot, but it's saved.
44
Attempt Attempt
Ismahila Ouedraogo takes a left-footed shot but misses.
43
Corner Corner
Corner awarded.
42
Attempt Attempt
Fiete Arp takes a right-footed shot, but it's saved.
40
Corner Corner
Corner awarded.
37
Attempt Attempt
Charly Horneman's right-footed shot is blocked.
36
Attempt Attempt
Fiete Arp takes a right-footed shot but misses.
35
Attempt Attempt
Fiete Arp takes a right-footed shot, but it is saved.
35
Corner Corner
Corner awarded.
34
Attempt Attempt
Jacob Bonde takes a right-footed shot, but it is blocked.
34
Corner Corner
Corner awarded.
32
Attempt Attempt
Oliver Bundgaard takes a left-footed shot but misses.
32
Corner Corner
Corner awarded.
29
Update Update
Offside.
19
Attempt Attempt
Adam Sorensen takes a left-footed shot, but it is blocked.
15
Yellow Card Yellow Card Important
Zan Zaletel receives a yellow card.
14
Corner Corner
Corner awarded.
12
Attempt Attempt
Bilal Brahimi takes a left-footed shot but misses.
11
Corner Corner
Corner awarded.
8
Attempt Attempt
Jonah Niemiec takes a left-footed shot but misses.
4
Attempt Attempt
Fiete Arp takes a right-footed shot but misses.
2
Attempt Attempt
Fiete Arp takes a right-footed shot that hits the post.
2
Attempt Attempt
Bilal Brahimi takes a left-footed shot but misses.
1
Update Update
Kick-off! The referee is Frederik Svendsen.

CONCLUSION

The 1-0 result between Viborg FF and Odense BK illustrated the gap that can exist between underlying numbers and the actual scoreboard. Despite lower possession and fewer expected goals the home side found the decisive moment after a scoreless first half. Absence of any red cards kept both teams at full strength and allowed the contest to unfold without numerical imbalance. Viborg FF capitalized on its opportunities while Odense BK could not convert its statistical edge into an equalizer. Such outcomes underscore the role of timing and execution in determining winners. Future matches will require both sides to refine their approaches to close similar gaps between metrics and results.