<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- SEO -->
<title>Michael Olise: Europe's Best Assister at FC Bayern Munich</title>
<meta name="description" content="Michael Olise delivers 18 assists and 15.19 xA – both the highest in Europe. The stats behind Bayern's game-changer in the Bundesliga and Champions League.">
<meta name="keywords" content="Michael Olise, FC Bayern Munich, Bundesliga, assists, expected assists, Champions League, Crystal Palace, statistics 2026">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://pogoworld.de/en/michael-olise-fc-bayern-best-assister-europe/">
<!-- Open Graph -->
<meta property="og:type" content="article">
<meta property="og:title" content="Michael Olise: Europe's Best Assister at FC Bayern Munich">
<meta property="og:description" content="Michael Olise delivers 18 assists and 15.19 xA – both the highest in Europe. The stats behind Bayern's game-changer in the Bundesliga and Champions League.">
<meta property="og:url" content="https://pogoworld.de/en/michael-olise-fc-bayern-best-assister-europe/">
<meta property="og:image" content="[BEITRAGSBILD_URL]">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:site_name" content="Pogoworld">
<meta property="og:locale" content="en_US">
<meta property="article:published_time" content="2026-05-25T12:00:00+01:00">
<meta property="article:tag" content="Michael Olise">
<meta property="article:tag" content="FC Bayern Munich">
<meta property="article:tag" content="Bundesliga">
<meta property="article:tag" content="Champions League">
<meta property="article:tag" content="Crystal Palace">
<meta property="article:tag" content="Assists">
<meta property="article:tag" content="Expected Assists">
<meta property="article:tag" content="Statistics">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Michael Olise: Europe's Best Assister at FC Bayern Munich">
<meta name="twitter:description" content="Michael Olise: 18 assists, 15.19 xA, #1 UCL – the numbers behind Bayern's game-changer.">
<meta name="twitter:image" content="[BEITRAGSBILD_URL]">
<!-- hreflang -->
<link rel="alternate" hreflang="de" href="https://pogoworld.de/michael-olise-fc-bayern-europa-vorlagengeber/">
<link rel="alternate" hreflang="en" href="https://pogoworld.de/en/michael-olise-fc-bayern-best-assister-europe/">
<link rel="alternate" hreflang="x-default" href="https://pogoworld.de/michael-olise-fc-bayern-europa-vorlagengeber/">
<!-- JSON-LD -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Michael Olise: Europe's Best Assister at FC Bayern Munich",
"description": "Michael Olise delivers 18 assists and 15.19 xA – both the highest in Europe. The stats behind Bayern's game-changer in the Bundesliga and Champions League.",
"image": "[BEITRAGSBILD_URL]",
"url": "https://pogoworld.de/en/michael-olise-fc-bayern-best-assister-europe/",
"datePublished": "2026-05-25",
"dateModified": "2026-05-25",
"author": { "@type": "Organization", "name": "Pogobonito", "url": "https://pogoworld.de" },
"publisher": {
"@type": "Organization",
"name": "Pogoworld",
"url": "https://pogoworld.de",
"logo": { "@type": "ImageObject", "url": "https://pogoworld.de/wp-content/uploads/2026/04/cropped-NEW_LOGO_Transparent_GREEN-2.png" }
},
"keywords": "Michael Olise FC Bayern Munich Bundesliga assists expected assists 2025-26",
"inLanguage": "en"
}
</script>
<!-- Google Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@700;800;900&family=Open+Sans:wght@400;600&display=swap" rel="stylesheet">
<!-- Chart.js -->
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Open Sans', sans-serif; background: #f4f7f5; color: #1a1a1a; line-height: 1.6; }
.entry-content, .entry-content > *, .wp-block-html { max-width: 100% !important; }
:root {
--gp: #1a7a3a; --gd: #0d4f24; --gdd: #0a3319; --gl: #3dd178;
--bg: #f4f7f5; --card: #ffffff;
--muted: #6b7280; --radius: 12px;
--sh: 0 4px 20px rgba(0,0,0,0.08);
--shm: 0 8px 32px rgba(0,0,0,0.13);
}
/* ── HERO ── */
.pw-hero {
background: linear-gradient(135deg, var(--gp) 0%, var(--gd) 55%, var(--gdd) 100%);
padding: 56px 24px 48px; text-align: center; position: relative; overflow: hidden;
}
.pw-hero::before {
content: ''; position: absolute; inset: 0;
background: radial-gradient(ellipse at 70% 20%, rgba(61,209,120,0.12) 0%, transparent 60%);
}
.pw-hero-logo { width: 48px; height: 48px; object-fit: contain; margin-bottom: 16px; filter: drop-shadow(0 2px 8px rgba(0,0,0,0.3)); }
.pw-hero-eyebrow { font-family: 'Montserrat',sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: var(--gl); margin-bottom: 14px; }
.pw-hero-title { font-family: 'Montserrat',sans-serif; font-size: clamp(24px,5vw,44px); font-weight: 900; color: #fff; line-height: 1.15; max-width: 780px; margin: 0 auto 16px; }
.pw-hero-subtitle { font-size: 15px; color: rgba(255,255,255,0.78); max-width: 600px; margin: 0 auto 24px; }
.pw-hero-meta { display: flex; justify-content: center; align-items: center; gap: 20px; flex-wrap: wrap; font-size: 12px; color: rgba(255,255,255,0.55); font-family: 'Montserrat',sans-serif; font-weight: 600; letter-spacing: 0.5px; }
/* ── KPI ── */
.pw-kpi-bar { background: #fff; border-bottom: 1px solid #e8ede9; }
.pw-kpi-grid { display: grid; grid-template-columns: repeat(4,1fr); max-width: 1100px; margin: 0 auto; }
.pw-kpi-tile { padding: 24px 20px; text-align: center; border-right: 1px solid #e8ede9; }
.pw-kpi-tile:last-child { border-right: none; }
.pw-kpi-label { font-family: 'Montserrat',sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--gp); margin-bottom: 8px; }
.pw-kpi-number { font-family: 'Montserrat',sans-serif; font-size: clamp(28px,4vw,40px); font-weight: 900; color: var(--gd); line-height: 1; margin-bottom: 6px; }
.pw-kpi-desc { font-size: 11px; color: var(--muted); line-height: 1.4; }
/* ── VIDEO ── */
.pw-video-wrap { max-width: 860px; margin: 48px auto; padding: 0 24px; }
.pw-video-container { position: relative; padding-bottom: 56.25%; height: 0; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shm); }
.pw-video-container iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
/* ── TEXT ── */
.pw-text-section { max-width: 800px; margin: 0 auto; padding: 0 24px 40px; }
.pw-text-section p { font-size: 16px; line-height: 1.8; color: #2d3748; margin-bottom: 18px; }
.pw-text-section p strong { color: var(--gd); font-weight: 600; }
/* ── DASHBOARD ── */
.pw-dashboard { background: var(--bg); padding: 40px 24px 56px; }
.pw-dashboard-inner { max-width: 1100px; margin: 0 auto; display: flex; flex-direction: column; gap: 32px; }
/* ── CHART CARD ── */
.pw-chart-card { background: var(--card); border-radius: var(--radius); box-shadow: var(--sh); overflow: hidden; }
.pw-chart-tag { display: inline-flex; align-items: center; gap: 8px; background: var(--gp); color: #fff; font-family: 'Montserrat',sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; padding: 7px 16px; border-radius: 0 0 10px 0; }
.pw-chart-body { padding: 20px 24px 8px; }
.pw-chart-title { font-family: 'Montserrat',sans-serif; font-size: 18px; font-weight: 800; color: var(--gdd); margin-bottom: 4px; }
.pw-chart-subtitle { font-size: 13px; color: var(--muted); margin-bottom: 18px; }
.pw-chart-canvas-wrap { position: relative; width: 100%; height: 340px; }
.pw-chart-canvas-wrap.h280 { height: 280px; }
.pw-chart-canvas-wrap.h360 { height: 360px; }
.pw-chart-canvas-wrap.h400 { height: 400px; }
@media(max-width:600px){.pw-chart-canvas-wrap,.pw-chart-canvas-wrap.h280,.pw-chart-canvas-wrap.h360,.pw-chart-canvas-wrap.h400{height:260px;}}
.pw-chart-canvas-wrap canvas { width:100%!important; height:100%!important; }
.pw-watermark { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); opacity:0.07; width:120px; height:120px; object-fit:contain; pointer-events:none; z-index:0; }
@media(max-width:600px){.pw-watermark{opacity:0.06;width:80px;height:80px;}}
.pw-chart-footer { padding: 10px 24px 18px; font-size: 12px; color: var(--muted); border-top: 1px solid #f0f0f0; margin-top: 8px; }
.pw-chart-footer strong { color: #374151; font-weight: 600; }
/* ── FILTERS ── */
.pw-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.pw-filter-btn { font-family: 'Montserrat',sans-serif; font-size: 11px; font-weight: 700; padding: 6px 14px; border-radius: 20px; border: 2px solid #d1d5db; background: #fff; color: var(--muted); cursor: pointer; transition: all .18s ease; letter-spacing: 0.3px; }
.pw-filter-btn.active { background: var(--gp); border-color: var(--gp); color: #fff; }
.pw-filter-btn.reset { border-color: #fca5a5; color: #dc2626; }
.pw-filter-btn.reset:hover { background: #fef2f2; border-color: #dc2626; }
/* ── AXIS GUIDE ── */
.pw-axis-guide { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 12px; background: #f0faf4; border: 1px solid #bbf7d0; border-radius: 8px; padding: 10px 14px; font-size: 12px; color: var(--gd); }
.pw-axis-guide span { display: flex; align-items: center; gap: 6px; }
.pw-axis-guide span::before { content: '→'; font-weight: 700; color: var(--gp); }
/* ── BETWEEN TEXT ── */
.pw-between-text { background: #fff; border-left: 4px solid var(--gp); border-radius: 0 var(--radius) var(--radius) 0; padding: 22px 28px; font-size: 15px; line-height: 1.75; color: #374151; box-shadow: var(--sh); }
.pw-between-text strong { color: var(--gd); }
/* ── CLOSING ── */
.pw-closing { max-width: 800px; margin: 48px auto 0; padding: 0 24px; }
.pw-closing p { font-size: 16px; line-height: 1.8; color: #2d3748; margin-bottom: 18px; }
.pw-highlight-quote { margin: 32px 0; background: linear-gradient(135deg, var(--gp), var(--gdd)); border-radius: var(--radius); padding: 28px 32px; text-align: center; position: relative; overflow: hidden; }
.pw-highlight-quote::before { content: '"'; position: absolute; top: -10px; left: 16px; font-size: 120px; font-family: 'Montserrat',sans-serif; font-weight: 900; color: rgba(255,255,255,0.06); line-height: 1; }
.pw-highlight-quote p { font-family: 'Montserrat',sans-serif; font-size: clamp(15px,2.5vw,19px); font-weight: 800; color: #fff; line-height: 1.5; position: relative; z-index: 1; }
/* ── TAGS ── */
.pw-tags { max-width: 800px; margin: 32px auto; padding: 0 24px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pw-tags-label { font-family: 'Montserrat',sans-serif; font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--muted); letter-spacing: 1px; margin-right: 4px; }
.pw-tag { background: #f0f9f4; border: 1px solid #bbf7d0; color: var(--gd); font-size: 12px; font-family: 'Montserrat',sans-serif; font-weight: 600; padding: 5px 13px; border-radius: 20px; }
/* ── FAQ ── */
.pw-faq { max-width: 800px; margin: 0 auto 48px; padding: 0 24px; }
.pw-faq-title { font-family: 'Montserrat',sans-serif; font-size: 22px; font-weight: 800; color: var(--gdd); margin-bottom: 20px; }
.pw-faq-item { border: 1px solid #e5e7eb; border-radius: var(--radius); margin-bottom: 10px; overflow: hidden; background: #fff; }
.pw-faq-question { width: 100%; text-align: left; background: none; border: none; padding: 18px 20px; font-family: 'Montserrat',sans-serif; font-size: 14px; font-weight: 700; color: var(--gdd); cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 12px; transition: background .15s; }
.pw-faq-question:hover { background: #f9fafb; }
.pw-faq-icon { width: 20px; height: 20px; background: var(--gp); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 14px; font-weight: 900; flex-shrink: 0; transition: transform .25s ease; }
.pw-faq-item.open .pw-faq-icon { transform: rotate(45deg); }
.pw-faq-answer { max-height: 0; overflow: hidden; transition: max-height .35s ease, padding .2s ease; font-size: 14px; line-height: 1.75; color: #374151; padding: 0 20px; }
.pw-faq-item.open .pw-faq-answer { max-height: 320px; padding: 4px 20px 18px; }
/* ── CTA ── */
.pw-cta { background: linear-gradient(135deg, var(--gp), var(--gdd)); padding: 48px 24px; text-align: center; }
.pw-cta-title { font-family: 'Montserrat',sans-serif; font-size: clamp(20px,3.5vw,28px); font-weight: 900; color: #fff; margin-bottom: 10px; }
.pw-cta-sub { font-size: 15px; color: rgba(255,255,255,0.75); margin-bottom: 28px; }
.pw-cta-btn { display: inline-flex; align-items: center; gap: 10px; background: #fff; color: var(--gd); font-family: 'Montserrat',sans-serif; font-weight: 800; font-size: 14px; padding: 14px 32px; border-radius: 40px; text-decoration: none; box-shadow: 0 4px 20px rgba(0,0,0,0.2); transition: transform .15s, box-shadow .15s; }
.pw-cta-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 28px rgba(0,0,0,0.25); }
.pw-cta-btn svg { width: 20px; height: 20px; fill: #ff0000; }
/* ── RELATED ── */
.pw-related { max-width: 1100px; margin: 0 auto; padding: 48px 24px 64px; }
.pw-related-title { font-family: 'Montserrat',sans-serif; font-size: 20px; font-weight: 800; color: var(--gdd); margin-bottom: 24px; }
.pw-related-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.pw-related-card { border-radius: var(--radius); overflow: hidden; box-shadow: var(--sh); background: #fff; text-decoration: none; transition: transform .15s, box-shadow .15s; display: block; }
.pw-related-card:hover { transform: translateY(-3px); box-shadow: var(--shm); }
.pw-related-thumb { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; background: #1a7a3a; }
.pw-related-label { padding: 12px 14px; font-family: 'Montserrat',sans-serif; font-size: 13px; font-weight: 700; color: var(--gdd); line-height: 1.4; }
/* ── RESPONSIVE ── */
@media(max-width:768px){
.pw-kpi-grid { grid-template-columns: repeat(2,1fr); }
.pw-kpi-tile:nth-child(2){ border-right: none; }
.pw-kpi-tile { border-bottom: 1px solid #e8ede9; }
.pw-kpi-tile:nth-child(3),.pw-kpi-tile:nth-child(4){ border-bottom: none; }
.pw-related-grid { grid-template-columns: 1fr; }
}
</style>
</head>
<body>
<!-- HERO -->
<section class="pw-hero">
<img class="pw-hero-logo" src="https://pogoworld.de/wp-content/uploads/2026/04/cropped-NEW_LOGO_Transparent_GREEN-2.png" alt="Pogobonito Logo">
<p class="pw-hero-eyebrow">Player Dossier · Season 2025/26</p>
<h1 class="pw-hero-title">Michael Olise: Europe's Best Assister at FC Bayern Munich</h1>
<p class="pw-hero-subtitle">18 assists. 15.19 xA. 80 dangerous actions from dribbles. The numbers behind Munich's quiet game-changer.</p>
<div class="pw-hero-meta">
<span>📅 May 25, 2026</span>
<span>✍️ Pogobonito</span>
<span>📊 6 interactive charts</span>
<span>🏆 Bundesliga + UCL</span>
</div>
</section>
<!-- KPI BAR -->
<div class="pw-kpi-bar">
<div class="pw-kpi-grid">
<div class="pw-kpi-tile">
<div class="pw-kpi-label">Goal Contributions</div>
<div class="pw-kpi-number">30</div>
<div class="pw-kpi-desc">12 goals + 18 assists in the Bundesliga</div>
</div>
<div class="pw-kpi-tile">
<div class="pw-kpi-label">League Assists</div>
<div class="pw-kpi-number">18</div>
<div class="pw-kpi-desc">Highest figure in Europe across the top 5 leagues</div>
</div>
<div class="pw-kpi-tile">
<div class="pw-kpi-label">Expected Assists</div>
<div class="pw-kpi-number">15.19</div>
<div class="pw-kpi-desc">xA — Europe's No. 1 across the top 5 leagues</div>
</div>
<div class="pw-kpi-tile">
<div class="pw-kpi-label">Dangerous Carries</div>
<div class="pw-kpi-number">80</div>
<div class="pw-kpi-desc">Shots + chances + assists from dribbles (League)</div>
</div>
</div>
</div>
<!-- VIDEO -->
<div class="pw-video-wrap">
<div class="pw-video-container">
<iframe
src="https://www.youtube.com/embed/uCA1z3lbrww"
title="Michael Olise – Europe's Best Assister | Pogobonito"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen>
</iframe>
</div>
</div>
<!-- INTRO TEXT -->
<div class="pw-text-section">
<p>Michael Olise. One of those players who simply have that certain something. The way he moves, the way he takes the ball, the way he reacts in decisive moments — that is the definition of composure. And it's exactly that composure that transformed him from an insecure teenager at Reading into the player Europe is currently watching.</p>
<p>In his current 2025/26 season, Olise is producing numbers that are unmatched across the entire continent: <strong>12 goals and 18 assists</strong> in the Bundesliga — the latter the highest figure in Europe's top 5 leagues. Add <strong>6 assists</strong> and 30 chances created in the Champions League, first place in xA (4.34). And from his 582 ball carries in the league, <strong>80 dangerous actions</strong> emerge — that is world class.</p>
<p>But to understand these numbers, you need to understand his development. The journey from Reading through Crystal Palace to Munich.</p>
</div>
<!-- DASHBOARD -->
<div class="pw-dashboard">
<div class="pw-dashboard-inner">
<!-- CHART 1 -->
<div class="pw-chart-card">
<div class="pw-chart-tag">Chart 01 · Career Overview</div>
<div class="pw-chart-body">
<h2 class="pw-chart-title">Olise's Development: Goals & Assists per Season</h2>
<p class="pw-chart-subtitle">From Crystal Palace to FC Bayern Munich — scorer points by season.</p>
<div class="pw-chart-canvas-wrap">
<img class="pw-watermark" src="https://pogoworld.de/wp-content/uploads/2026/04/cropped-NEW_LOGO_Transparent_GREEN-2.png" alt="">
<canvas id="chart1"></canvas>
</div>
</div>
<div class="pw-chart-footer">
<strong>How to read:</strong> Dark bars = goals, light bars = assists. Season 23/24 with <15 90-minute appearances (injury). Season 25/26 still ongoing (28 games).
</div>
</div>
<!-- BETWEEN 1 -->
<div class="pw-between-text">
Looking at Olise's career curve reveals a development that rarely follows such a logical path. The early Crystal Palace years with moderate scorer numbers, the first upward trend in 22/23 with eleven assists — and then the injury summer. But that <strong>extra year at Palace made all the difference</strong>. Chelsea tried to buy him back — he stayed. And since arriving in Munich, the numbers keep growing every season.
</div>
<!-- CHART 2 -->
<div class="pw-chart-card">
<div class="pw-chart-tag">Chart 02 · European League Comparison 25/26</div>
<div class="pw-chart-body">
<h2 class="pw-chart-title">Assists vs. Expected Assists — Europe's Top Chance Creators</h2>
<p class="pw-chart-subtitle">All top 5 leagues, season 2025/26. X-axis: xA (quality of chance creation) · Y-axis: actual assists.</p>
<div class="pw-filters" id="filters2">
<button class="pw-filter-btn active" data-liga="ALL">All Leagues</button>
<button class="pw-filter-btn" data-liga="BL">Bundesliga</button>
<button class="pw-filter-btn" data-liga="PL">Premier League</button>
<button class="pw-filter-btn" data-liga="LL">La Liga</button>
<button class="pw-filter-btn" data-liga="SA">Serie A</button>
<button class="pw-filter-btn" data-liga="L1">Ligue 1</button>
<button class="pw-filter-btn reset" data-liga="RESET">✕ Show all</button>
</div>
<div class="pw-axis-guide">
<span>Right = high xA (high-quality chance passes)</span>
<span>Top = many actual assists</span>
<span>Ideal: top right</span>
</div>
<div class="pw-chart-canvas-wrap">
<img class="pw-watermark" src="https://pogoworld.de/wp-content/uploads/2026/04/cropped-NEW_LOGO_Transparent_GREEN-2.png" alt="">
<canvas id="chart2"></canvas>
</div>
</div>
<div class="pw-chart-footer">
<strong>How to read:</strong> Green dot = Michael Olise (Bayern). With an active league filter, leagues are colour-coded. Data: Passing Chance Creation, top 5 leagues 2025/26.
</div>
</div>
<!-- CHART 3 -->
<div class="pw-chart-card">
<div class="pw-chart-tag">Chart 03 · Expected Assists Ranking</div>
<div class="pw-chart-body">
<h2 class="pw-chart-title">xA Ranking Europe: Top 8 Chance Creators</h2>
<p class="pw-chart-subtitle">Expected assists in the top 5 leagues, season 2025/26 — Olise leads with a clear margin over Raum and Yamal.</p>
<div class="pw-chart-canvas-wrap h280">
<img class="pw-watermark" src="https://pogoworld.de/wp-content/uploads/2026/04/cropped-NEW_LOGO_Transparent_GREEN-2.png" alt="">
<canvas id="chart3"></canvas>
</div>
</div>
<div class="pw-chart-footer">
<strong>How to read:</strong> Green bar = Michael Olise. League codes: BL = Bundesliga · PL = Premier League · LL = La Liga · SA = Serie A · L1 = Ligue 1.
</div>
</div>
<!-- BETWEEN 2 -->
<div class="pw-between-text">
What makes his xA value so extraordinary: Olise doesn't just create many chances — he creates <strong>high-quality</strong> ones. An xA of 15.19 in the league means his passes generate statistically over 15 expected goals. The best comparison isn't with other wingers, but with what happens next: <strong>Harry Kane converts these passes</strong> — and the partnership is statistically one of the most dangerous in Europe.
</div>
<!-- CHART 4 -->
<div class="pw-chart-card">
<div class="pw-chart-tag">Chart 04 · Champions League 2025/26</div>
<div class="pw-chart-body">
<h2 class="pw-chart-title">Champions League: Chance Creators by xA — Top 8</h2>
<p class="pw-chart-subtitle">Expected assists in the UEFA Champions League 2025/26 — Olise leads on the biggest stage too.</p>
<div class="pw-chart-canvas-wrap h280">
<img class="pw-watermark" src="https://pogoworld.de/wp-content/uploads/2026/04/cropped-NEW_LOGO_Transparent_GREEN-2.png" alt="">
<canvas id="chart4"></canvas>
</div>
</div>
<div class="pw-chart-footer">
<strong>How to read:</strong> Green bar = Michael Olise (FC Bayern Munich). xA = expected assists based on pass quality. Data: UCL 2025/26.
</div>
</div>
<!-- BETWEEN 3 -->
<div class="pw-between-text">
Six assists, 4.34 xA, first place in Europe — in the Champions League too. But the UCL numbers only tell part of the story. The key mechanism behind them is the dribble. <strong>Olise doesn't simply run and pass.</strong> He carries the ball into positions where dangerous things happen — shots, clear chances, final passes. That is what Chart 5 shows.
</div>
<!-- CHART 5 -->
<div class="pw-chart-card">
<div class="pw-chart-tag">Chart 05 · Dribbling Danger Bundesliga</div>
<div class="pw-chart-body">
<h2 class="pw-chart-title">Dangerous Actions from Ball Carries — Top 6 Bundesliga</h2>
<p class="pw-chart-subtitle">How many shots, chances and assists arise directly from dribbles? Season 2025/26.</p>
<div class="pw-chart-canvas-wrap h360">
<img class="pw-watermark" src="https://pogoworld.de/wp-content/uploads/2026/04/cropped-NEW_LOGO_Transparent_GREEN-2.png" alt="">
<canvas id="chart5"></canvas>
</div>
</div>
<div class="pw-chart-footer">
<strong>How to read:</strong> Stacked bars show shots (dark), chances (medium) and assists (light) from ball carries. Green = Michael Olise. Data: Carrying sheet, Bundesliga 2025/26.
</div>
</div>
<!-- BETWEEN 4 -->
<div class="pw-between-text">
80 dangerous actions from dribbles — 40 shots, 30 chances created and 10 direct assists. For comparison: Luis Díaz, who generates a similar number of shots from carries (39), manages only <strong>3 assists from ball carries</strong>. Olise combines both: he shoots himself, but creates even more opportunities for others. That explains why his shot type is so interesting — he shoots often, but from difficult positions. Chart 6 puts that in context.
</div>
<!-- CHART 6 -->
<div class="pw-chart-card">
<div class="pw-chart-tag">Chart 06 · Shot Profile Bundesliga</div>
<div class="pw-chart-body">
<h2 class="pw-chart-title">Shot Profile: xG per Shot vs. Conversion Rate</h2>
<p class="pw-chart-subtitle">Bundesliga forwards 2025/26. X-axis: xG per shot (shot/position quality) · Y-axis: actual conversion rate.</p>
<div class="pw-axis-guide">
<span>Right = high shot quality (prime positions)</span>
<span>Top = high conversion rate (clinical finishing)</span>
<span>Kane top right, Olise bottom left — two different systems</span>
</div>
<div class="pw-chart-canvas-wrap h400">
<img class="pw-watermark" src="https://pogoworld.de/wp-content/uploads/2026/04/cropped-NEW_LOGO_Transparent_GREEN-2.png" alt="">
<canvas id="chart6"></canvas>
</div>
</div>
<div class="pw-chart-footer">
<strong>How to read:</strong> Green dot = Michael Olise · Yellow dot = Harry Kane. Olise shoots from difficult positions (low xG/shot), Kane from prime positions. The combination makes Bayern so dangerous. Min. 5 goals in the season.
</div>
</div>
</div><!-- /inner -->
</div><!-- /dashboard -->
<!-- CLOSING -->
<div class="pw-closing">
<p>The Champions League was the final test. Olise delivers there too — six assists, 4.34 xA, first in Europe. But what Chart 6 shows so clearly: He and Kane operate in different finishing spheres. Kane is the specialist for prime positions. Olise is the player who earns those positions first — through dribbles, patience, and waiting for the right moment. Then he shoots himself, or delivers the pass that brings the goal.</p>
<p>What started at Palace as "talent with potential" has become reliability in Munich. He talks little about his game. He prefers to show it.</p>
<div class="pw-highlight-quote">
<p>"18 assists. The highest figure in Europe. Only two players have more goal contributions this season: Harry Kane and Erling Haaland."</p>
</div>
<p>In the end, the real question remains: what if this isn't even his ceiling yet? Michael Olise is 23 years old. His 2025/26 season is historic. And the stage he plays on keeps getting bigger.</p>
</div>
<!-- TAGS -->
<div class="pw-tags">
<span class="pw-tags-label">Tags:</span>
<span class="pw-tag">Michael Olise</span>
<span class="pw-tag">FC Bayern Munich</span>
<span class="pw-tag">Bundesliga</span>
<span class="pw-tag">Champions League</span>
<span class="pw-tag">Crystal Palace</span>
<span class="pw-tag">Assists</span>
<span class="pw-tag">Expected Assists</span>
<span class="pw-tag">Statistics 2026</span>
</div>
<!-- FAQ -->
<div class="pw-faq">
<h2 class="pw-faq-title">Frequently Asked Questions about Michael Olise</h2>
<div class="pw-faq-item">
<button class="pw-faq-question" onclick="toggleFaq(this)">
How many assists does Michael Olise have in the 2025/26 season?
<span class="pw-faq-icon">+</span>
</button>
<div class="pw-faq-answer">
Michael Olise has recorded 18 assists in the 2025/26 Bundesliga season so far (as of 28 games). That makes him the outright leader in the assists table across Europe's top 5 leagues. Add 12 goals and his 30 goal contributions put him behind only Harry Kane and Erling Haaland in the overall scorer rankings.
</div>
</div>
<div class="pw-faq-item">
<button class="pw-faq-question" onclick="toggleFaq(this)">
What is Expected Assists (xA) and why is Olise's figure so remarkable?
<span class="pw-faq-icon">+</span>
</button>
<div class="pw-faq-answer">
Expected Assists (xA) measures how many goals are statistically expected to result from the chances a player creates with his passes — regardless of whether the recipient scores. Olise's xA of 15.19 in the league means his passes are so consistently dangerous that over 15 goals should statistically follow. That is the highest figure in all of Europe and shows he doesn't just produce many assists — he produces high-quality ones.
</div>
</div>
<div class="pw-faq-item">
<button class="pw-faq-question" onclick="toggleFaq(this)">
Why do Michael Olise and Harry Kane complement each other so well?
<span class="pw-faq-icon">+</span>
</button>
<div class="pw-faq-answer">
The shot profile chart makes it clear: Kane scores from prime positions — high xG per shot (0.23), high conversion rate (29%). Olise, by contrast, shoots from difficult angles (xG/shot: 0.12) but generates 80 dangerous actions from his dribbles — including 30 clear chances and 10 direct assists from carries alone. Kane needs the high-quality chance. Olise creates it. The combination is no accident: Olise receives the ball, waits until Kane opens the space — and then plays the pass at exactly the right moment.
</div>
</div>
<div class="pw-faq-item">
<button class="pw-faq-question" onclick="toggleFaq(this)">
How is Michael Olise performing in the 2025/26 Champions League?
<span class="pw-faq-icon">+</span>
</button>
<div class="pw-faq-answer">
Olise is performing at the highest level in the Champions League too: 6 assists, 30 chances created and 4.34 xA in 11 games — first place in Europe. Mohamed Salah follows in second with 4.33 xA, Lamine Yamal third with 4.31. From his 107 progressive carries in the UCL, 25 shots, 11 chances and 4 direct assists are generated.
</div>
</div>
<div class="pw-faq-item">
<button class="pw-faq-question" onclick="toggleFaq(this)">
Can Michael Olise win the Ballon d'Or this season?
<span class="pw-faq-icon">+</span>
</button>
<div class="pw-faq-answer">
The numbers make a compelling case: Europe's leading assister in the league, top of the xA rankings in the Champions League, and a World Cup coming up in summer with the French national team. Olise has done everything a player can do to enter the conversation. Whether that translates to a Ballon d'Or ultimately depends on team trophies and the World Cup — but the foundation is firmly in place.
</div>
</div>
</div>
<!-- CTA -->
<div class="pw-cta">
<h2 class="pw-cta-title">More Football Analysis on YouTube</h2>
<p class="pw-cta-sub">Statistics, stories and player dossiers — new every week on Pogobonito.</p>
<a href="https://www.youtube.com/@Pogobonito" class="pw-cta-btn" target="_blank" rel="noopener noreferrer">
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M23.495 6.205a3.007 3.007 0 0 0-2.088-2.088c-1.87-.501-9.396-.501-9.396-.501s-7.507-.01-9.396.501A3.007 3.007 0 0 0 .527 6.205a31.247 31.247 0 0 0-.522 5.805 31.247 31.247 0 0 0 .522 5.783 3.007 3.007 0 0 0 2.088 2.088c1.868.502 9.396.502 9.396.502s7.506 0 9.396-.502a3.007 3.007 0 0 0 2.088-2.088 31.247 31.247 0 0 0 .5-5.783 31.247 31.247 0 0 0-.5-5.805zM9.609 15.601V8.408l6.264 3.602z"/></svg>
Subscribe now
</a>
</div>
<!-- RELATED -->
<div class="pw-related">
<h2 class="pw-related-title">More Analyses</h2>
<div class="pw-related-grid">
<a href="https://www.youtube.com/watch?v=VpLlRgUIwjE" class="pw-related-card" target="_blank" rel="noopener noreferrer">
<img class="pw-related-thumb" src="https://img.youtube.com/vi/VpLlRgUIwjE/mqdefault.jpg" alt="Related video 1">
<div class="pw-related-label">More analysis on Pogobonito →</div>
</a>
<a href="https://www.youtube.com/watch?v=NJ1gyfxv0Rk" class="pw-related-card" target="_blank" rel="noopener noreferrer">
<img class="pw-related-thumb" src="https://img.youtube.com/vi/NJ1gyfxv0Rk/mqdefault.jpg" alt="Related video 2">
<div class="pw-related-label">More analysis on Pogobonito →</div>
</a>
<a href="https://www.youtube.com/watch?v=7GkQskKNMQI" class="pw-related-card" target="_blank" rel="noopener noreferrer">
<img class="pw-related-thumb" src="https://img.youtube.com/vi/7GkQskKNMQI/mqdefault.jpg" alt="Related video 3">
<div class="pw-related-label">More analysis on Pogobonito →</div>
</a>
</div>
</div>
<!-- JAVASCRIPT -->
<script>
Chart.defaults.font.family = "'Open Sans', sans-serif";
Chart.defaults.color = '#6b7280';
const GP='#1a7a3a', GD='#0d4f24', GDD='#0a3319', GL='#3dd178';
const GREY='rgba(156,163,175,0.65)', GREYB='rgba(209,213,219,0.5)';
const LIGA_COLORS={BL:'#1a7a3a',PL:'#3b82f6',LL:'#f59e0b',SA:'#ef4444',L1:'#8b5cf6'};
const LIGA_NAMES={BL:'Bundesliga',PL:'Premier League',LL:'La Liga',SA:'Serie A',L1:'Ligue 1'};
const TT={backgroundColor:GD,titleFont:{family:"'Montserrat',sans-serif",weight:'800',size:13},bodyFont:{family:"'Open Sans',sans-serif",size:12},padding:12};
/* ── CHART 1 ── */
new Chart(document.getElementById('chart1'),{
type:'bar',
data:{
labels:["21/22\nCrystal Palace","22/23\nCrystal Palace","23/24\nCrystal Palace*","24/25\nFC Bayern","25/26\nFC Bayern**"],
datasets:[
{label:'Goals',data:[2,2,10,12,12],backgroundColor:GP,borderRadius:5,borderSkipped:false},
{label:'Assists',data:[5,11,6,15,18],backgroundColor:GL,borderRadius:5,borderSkipped:false}
]
},
options:{
responsive:true,maintainAspectRatio:false,
plugins:{
legend:{position:'top',align:'start',labels:{font:{family:"'Montserrat',sans-serif",weight:'700',size:12},usePointStyle:true,pointStyle:'rectRounded',padding:20}},
tooltip:{...TT,callbacks:{title:i=>i[0].label.replace('\n',' — '),label:i=>` ${i.dataset.label}: ${i.parsed.y}`}}
},
scales:{
x:{grid:{display:false},ticks:{font:{family:"'Montserrat',sans-serif",weight:'700',size:10},maxRotation:0}},
y:{beginAtZero:true,max:25,grid:{color:'rgba(0,0,0,0.05)'},ticks:{stepSize:5,font:{size:11}},
title:{display:true,text:'Count',font:{family:"'Montserrat',sans-serif",weight:'700',size:11},color:'#6b7280'}}
}
}
});
/* ── CHART 2 ── */
const scatterData=[
{name:'Michael Olise',assists:18,xa:15.19,liga:'BL',highlight:true},
{name:'David Raum',assists:6,xa:12.16,liga:'BL'},
{name:'Lamine Yamal',assists:11,xa:10.09,liga:'LL'},
{name:'Federico Dimarco',assists:15,xa:9.76,liga:'SA'},
{name:'Bruno Fernandes',assists:18,xa:9.64,liga:'PL'},
{name:'Joshua Kimmich',assists:6,xa:9.38,liga:'BL'},
{name:'Yan Diomande',assists:6,xa:9.16,liga:'BL'},
{name:'Romano Schmid',assists:8,xa:9.12,liga:'BL'},
{name:'Kenan Yildiz',assists:6,xa:9.04,liga:'SA'},
{name:'Alejandro Grimaldo',assists:7,xa:8.71,liga:'BL'},
{name:'Julian Ryerson',assists:12,xa:8.69,liga:'BL'},
{name:'Matthieu Udol',assists:7,xa:8.57,liga:'L1'},
{name:'Florian Thauvin',assists:5,xa:8.55,liga:'L1'},
{name:'Charles De Ketelaere',assists:5,xa:8.15,liga:'SA'},
{name:'Rayan Cherki',assists:10,xa:7.83,liga:'PL'},
{name:'Vladimír Coufal',assists:7,xa:7.49,liga:'BL'},
{name:'Arda Güler',assists:9,xa:7.18,liga:'LL'},
{name:'Chris Führich',assists:6,xa:7.03,liga:'BL'},
{name:'Luis Díaz',assists:13,xa:6.98,liga:'BL'},
{name:'Angelo Stiller',assists:5,xa:6.72,liga:'BL'},
{name:'Pedro Neto',assists:4,xa:6.70,liga:'PL'},
{name:'Declan Rice',assists:5,xa:6.47,liga:'PL'},
{name:'Enzo Fernández',assists:3,xa:6.39,liga:'PL'},
{name:'Jonathan Clauss',assists:6,xa:6.32,liga:'L1'},
{name:'Valentín Barco',assists:4,xa:6.30,liga:'L1'},
{name:'Kylian Mbappé',assists:4,xa:6.01,liga:'LL'},
{name:'Adrien Thomasson',assists:8,xa:6.07,liga:'L1'},
{name:'Nadiem Amiri',assists:2,xa:5.90,liga:'BL'},
{name:'Christian Eriksen',assists:7,xa:5.78,liga:'BL'},
];
let activeF2='ALL';
function buildDS(filter){
const olise=scatterData.find(p=>p.highlight);
const others=scatterData.filter(p=>!p.highlight);
let ds=[];
if(filter==='ALL'){
ds.push({label:'Europe',data:others.map(p=>({x:p.xa,y:p.assists,name:p.name,liga:p.liga})),backgroundColor:GREY,borderColor:'rgba(156,163,175,0.4)',pointRadius:7,pointHoverRadius:9,showLiga:false});
} else {
const pts=others.filter(p=>p.liga===filter);
const rest=others.filter(p=>p.liga!==filter);
if(rest.length) ds.push({label:'Other Leagues',data:rest.map(p=>({x:p.xa,y:p.assists,name:p.name,liga:p.liga})),backgroundColor:'rgba(209,213,219,0.4)',borderColor:'rgba(209,213,219,0.3)',pointRadius:5,pointHoverRadius:7,showLiga:false});
if(pts.length) ds.push({label:LIGA_NAMES[filter],data:pts.map(p=>({x:p.xa,y:p.assists,name:p.name,liga:p.liga})),backgroundColor:LIGA_COLORS[filter]+'bb',borderColor:LIGA_COLORS[filter],pointRadius:8,pointHoverRadius:10,showLiga:true});
}
ds.push({label:'Michael Olise',data:[{x:olise.xa,y:olise.assists,name:olise.name,liga:olise.liga}],backgroundColor:GP,borderColor:GL,borderWidth:3,pointRadius:16,pointHoverRadius:18,showLiga:false});
return ds;
}
const chart2=new Chart(document.getElementById('chart2'),{
type:'scatter',
data:{datasets:buildDS('ALL')},
options:{
responsive:true,maintainAspectRatio:false,
plugins:{
legend:{position:'top',align:'start',labels:{font:{family:"'Montserrat',sans-serif",weight:'700',size:11},usePointStyle:true,pointStyle:'circle',padding:16}},
tooltip:{...TT,callbacks:{
title:i=>i[0].raw.name,
label:i=>{
const sl=chart2.data.datasets[i.datasetIndex].showLiga;
const lines=[` Assists: ${i.raw.y}`,` xA: ${i.raw.x.toFixed(2)}`];
if(sl) lines.push(` League: ${LIGA_NAMES[i.raw.liga]}`);
return lines;
}
}}
},
scales:{
x:{title:{display:true,text:'Expected Assists (xA)',font:{family:"'Montserrat',sans-serif",weight:'700',size:11},color:'#6b7280'},min:5,max:16,grid:{color:'rgba(0,0,0,0.05)'},ticks:{font:{size:11}}},
y:{title:{display:true,text:'Actual Assists',font:{family:"'Montserrat',sans-serif",weight:'700',size:11},color:'#6b7280'},min:0,max:22,grid:{color:'rgba(0,0,0,0.05)'},ticks:{stepSize:2,font:{size:11}}}
}
}
});
document.getElementById('filters2').addEventListener('click',e=>{
const btn=e.target.closest('[data-liga]');
if(!btn) return;
const val=btn.dataset.liga;
activeF2=(val==='RESET')?'ALL':val;
document.querySelectorAll('#filters2 .pw-filter-btn:not(.reset)').forEach(b=>b.classList.toggle('active',b.dataset.liga===activeF2));
chart2.data.datasets=buildDS(activeF2);
chart2.update();
});
/* ── CHART 3 ── */
const xaLabels=['M. Olise (BL)','D. Raum (BL)','L. Yamal (LL)','F. Dimarco (SA)','B. Fernandes (PL)','J. Kimmich (BL)','Y. Diomande (BL)','R. Schmid (BL)'];
const xaVals=[15.19,12.16,10.09,9.76,9.64,9.38,9.16,9.12];
new Chart(document.getElementById('chart3'),{
type:'bar',
data:{labels:xaLabels,datasets:[{
label:'Expected Assists (xA)',data:xaVals,
backgroundColor:xaVals.map((_,i)=>i===0?GP:GREY),
borderColor:xaVals.map((_,i)=>i===0?GD:'rgba(156,163,175,0.3)'),
borderWidth:1,borderRadius:6,borderSkipped:false
}]},
options:{
indexAxis:'y',responsive:true,maintainAspectRatio:false,
plugins:{legend:{display:false},tooltip:{...TT,callbacks:{label:i=>` xA: ${i.parsed.x.toFixed(2)}`}}},
scales:{
x:{beginAtZero:true,max:17,grid:{color:'rgba(0,0,0,0.05)'},ticks:{font:{size:11}},title:{display:true,text:'Expected Assists (xA)',font:{family:"'Montserrat',sans-serif",weight:'700',size:11},color:'#6b7280'}},
y:{grid:{display:false},ticks:{font:{family:"'Montserrat',sans-serif",weight:'700',size:11}}}
}
}
});
/* ── CHART 4 ── */
const uclLabels=['M. Olise (Bayern)','M. Salah (Liverpool)','L. Yamal (Barcelona)','J. Álvarez (Atlético)','F. Wirtz (Leverkusen)','D. Szoboszlai (Liverpool)','Vinícius Jr. (Real)','D. Doué (PSG)'];
const uclVals=[4.34,4.33,4.31,3.87,3.80,3.41,3.39,2.87];
new Chart(document.getElementById('chart4'),{
type:'bar',
data:{labels:uclLabels,datasets:[{
label:'xA Champions League',data:uclVals,
backgroundColor:uclVals.map((_,i)=>i===0?GP:GREY),
borderColor:uclVals.map((_,i)=>i===0?GD:'rgba(156,163,175,0.3)'),
borderWidth:1,borderRadius:6,borderSkipped:false
}]},
options:{
indexAxis:'y',responsive:true,maintainAspectRatio:false,
plugins:{legend:{display:false},tooltip:{...TT,callbacks:{label:i=>` UCL xA: ${i.parsed.x.toFixed(2)}`}}},
scales:{
x:{beginAtZero:true,max:5.0,grid:{color:'rgba(0,0,0,0.05)'},ticks:{font:{size:11}},title:{display:true,text:'Expected Assists (xA) — Champions League',font:{family:"'Montserrat',sans-serif",weight:'700',size:11},color:'#6b7280'}},
y:{grid:{display:false},ticks:{font:{family:"'Montserrat',sans-serif",weight:'700',size:11}}}
}
}
});
/* ── CHART 5 ── */
const carryPlayers=['M. Olise','L. Díaz','A. Nusa','J. Leweling','Y. Diomande','A. Claude-Maurice'];
const isOlise=carryPlayers.map((_,i)=>i===0);
new Chart(document.getElementById('chart5'),{
type:'bar',
data:{
labels:carryPlayers,
datasets:[
{label:'Shots from Carries',data:[40,39,29,27,19,33],backgroundColor:isOlise.map(o=>o?GP:GREY),borderColor:isOlise.map(o=>o?GD:'rgba(156,163,175,0.3)'),borderWidth:1,borderSkipped:false,stack:'s'},
{label:'Chances from Carries',data:[30,25,20,21,28,6],backgroundColor:isOlise.map(o=>o?GL:'rgba(209,213,219,0.55)'),borderColor:isOlise.map(o=>o?'#2db864':'rgba(209,213,219,0.3)'),borderWidth:1,borderSkipped:false,stack:'s'},
{label:'Assists from Carries',data:[10,3,3,4,5,2],backgroundColor:isOlise.map(o=>o?GD:'rgba(229,231,235,0.6)'),borderColor:isOlise.map(o=>o?GDD:'rgba(229,231,235,0.3)'),borderWidth:1,borderSkipped:false,stack:'s'}
]
},
options:{
indexAxis:'y',responsive:true,maintainAspectRatio:false,
plugins:{
legend:{position:'top',align:'start',labels:{font:{family:"'Montserrat',sans-serif",weight:'700',size:12},usePointStyle:true,pointStyle:'rectRounded',padding:18}},
tooltip:{...TT,callbacks:{title:i=>`${i[0].label} — Carries`,label:i=>` ${i.dataset.label}: ${i.parsed.x}`}}
},
scales:{
x:{stacked:true,beginAtZero:true,max:90,grid:{color:'rgba(0,0,0,0.05)'},ticks:{font:{size:11}},
title:{display:true,text:'Dangerous actions from ball carries (total)',font:{family:"'Montserrat',sans-serif",weight:'700',size:11},color:'#6b7280'}},
y:{stacked:true,grid:{display:false},ticks:{font:{family:"'Montserrat',sans-serif",weight:'700',size:12}}}
}
}
});
/* ── CHART 6 ── */
const shotData=[
{name:'Harry Kane',goals:32,xgShot:0.23,conv:29.1,isKane:true},
{name:'Jonathan Burkardt',goals:10,xgShot:0.27,conv:27.8},
{name:'Andrej Kramaric',goals:12,xgShot:0.18,conv:21.1},
{name:'Nadiem Amiri',goals:11,xgShot:0.20,conv:26.8},
{name:'Patrik Schick',goals:11,xgShot:0.22,conv:19.6},
{name:'Haris Tabakovic',goals:11,xgShot:0.19,conv:19.0},
{name:'Serhou Guirassy',goals:14,xgShot:0.20,conv:19.7},
{name:'Luis Díaz',goals:15,xgShot:0.18,conv:18.3},
{name:'C. Baumgartner',goals:12,xgShot:0.18,conv:17.6},
{name:'Deniz Undav',goals:18,xgShot:0.14,conv:16.7},
{name:'Saïd El Mala',goals:11,xgShot:0.15,conv:18.3},
{name:'Maximilian Beier',goals:8,xgShot:0.15,conv:17.4},
{name:'Yan Diomande',goals:12,xgShot:0.14,conv:24.5},
{name:'Rômulo',goals:8,xgShot:0.22,conv:14.3},
{name:'Fisnik Asllani',goals:9,xgShot:0.11,conv:14.1},
{name:'Michael Olise',goals:12,xgShot:0.12,conv:13.0,highlight:true},
];
new Chart(document.getElementById('chart6'),{
type:'scatter',
data:{datasets:[
{label:'Bundesliga Forwards',data:shotData.filter(p=>!p.highlight&&!p.isKane).map(p=>({x:p.xgShot,y:p.conv,name:p.name,goals:p.goals})),backgroundColor:GREY,borderColor:'rgba(156,163,175,0.4)',pointRadius:7,pointHoverRadius:9},
{label:'Harry Kane',data:shotData.filter(p=>p.isKane).map(p=>({x:p.xgShot,y:p.conv,name:p.name,goals:p.goals})),backgroundColor:'#f59e0b',borderColor:'#d97706',borderWidth:2,pointRadius:14,pointHoverRadius:16},
{label:'Michael Olise',data:shotData.filter(p=>p.highlight).map(p=>({x:p.xgShot,y:p.conv,name:p.name,goals:p.goals})),backgroundColor:GP,borderColor:GL,borderWidth:3,pointRadius:16,pointHoverRadius:18}
]},
options:{
responsive:true,maintainAspectRatio:false,
plugins:{
legend:{position:'top',align:'start',labels:{font:{family:"'Montserrat',sans-serif",weight:'700',size:12},usePointStyle:true,pointStyle:'circle',padding:18}},
tooltip:{...TT,callbacks:{
title:i=>i[0].raw.name,
label:i=>[` xG/Shot: ${i.raw.x.toFixed(2)}`,` Conversion: ${i.raw.y.toFixed(1)}%`,` Goals: ${i.raw.goals}`]
}}
},
scales:{
x:{title:{display:true,text:'xG per Shot (shot/position quality)',font:{family:"'Montserrat',sans-serif",weight:'700',size:11},color:'#6b7280'},min:0.08,max:0.30,grid:{color:'rgba(0,0,0,0.05)'},ticks:{font:{size:11},callback:v=>v.toFixed(2)}},
y:{title:{display:true,text:'Conversion Rate (%)',font:{family:"'Montserrat',sans-serif",weight:'700',size:11},color:'#6b7280'},min:5,max:35,grid:{color:'rgba(0,0,0,0.05)'},ticks:{font:{size:11},callback:v=>v+'%'}}
}
}
});
/* ── FAQ ── */
function toggleFaq(btn){
const item=btn.closest('.pw-faq-item');
const open=item.classList.contains('open');
document.querySelectorAll('.pw-faq-item.open').forEach(i=>i.classList.remove('open'));
if(!open) item.classList.add('open');
}
</script>
<!--
═══════════════════════════════════════════════════
SEO SNAPSHOT — Please enter in RankMath
═══════════════════════════════════════════════════
Focus Keyword: Michael Olise FC Bayern Munich Bundesliga 2025-26
SEO Title (57 ch): Michael Olise: Europe's Best Assister at FC Bayern Munich
Meta Desc (154 ch): Michael Olise delivers 18 assists and 15.19 xA – both the highest in Europe. The stats behind Bayern's game-changer in the Bundesliga and Champions League.
Permalink: /en/michael-olise-fc-bayern-best-assister-europe/
Tags: Michael Olise, FC Bayern Munich, Bundesliga, Champions League, Crystal Palace, Assists, Expected Assists, Statistics 2026
Category: Analysis
Featured Image: 1200×630px — replace [BEITRAGSBILD_URL] (3 occurrences)
Videos: Main uCA1z3lbrww ✅ | Related VpLlRgUIwjE · NJ1gyfxv0Rk · 7GkQskKNMQI ✅
═══════════════════════════════════════════════════
-->
</body>
</html>