{"id":79145,"date":"2025-09-01T23:13:53","date_gmt":"2025-09-01T22:13:53","guid":{"rendered":"https:\/\/www.adambowie.com\/blog\/?p=79145"},"modified":"2025-09-01T23:13:54","modified_gmt":"2025-09-01T22:13:54","slug":"edison-research-top-25-podcasts-in-the-uk-q2-2025","status":"publish","type":"post","link":"https:\/\/www.adambowie.com\/blog\/2025\/09\/edison-research-top-25-podcasts-in-the-uk-q2-2025\/","title":{"rendered":"Edison Research Top 25 Podcasts in the UK: Q2 2025"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Last week, Edison Research published their latest list of the <a href=\"https:\/\/www.edisonresearch.com\/the-top-25-podcasts-in-the-uk-for-q2-2025\/\" data-type=\"link\" data-id=\"https:\/\/www.edisonresearch.com\/the-top-25-podcasts-in-the-uk-for-q2-2025\/\">Top 25 podcasts in the UK for Q2 2025.<\/a> This is the most visible chart of which podcasts are being listened to, since the charts from providers like Apple and Spotify aren&#8217;t true charts for the whole industry, and tend to be tweaked for newness purposes.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/Top-25-Podcasts-UK-Vertical-Q2-2025-FINAL-01-scaled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"602\" height=\"1024\" src=\"https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/Top-25-Podcasts-UK-Vertical-Q2-2025-FINAL-01-602x1024.png\" alt=\"\" class=\"wp-image-79147\" srcset=\"https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/Top-25-Podcasts-UK-Vertical-Q2-2025-FINAL-01-602x1024.png 602w, https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/Top-25-Podcasts-UK-Vertical-Q2-2025-FINAL-01-176x300.png 176w, https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/Top-25-Podcasts-UK-Vertical-Q2-2025-FINAL-01-768x1306.png 768w, https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/Top-25-Podcasts-UK-Vertical-Q2-2025-FINAL-01-903x1536.png 903w, https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/Top-25-Podcasts-UK-Vertical-Q2-2025-FINAL-01-1204x2048.png 1204w, https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/Top-25-Podcasts-UK-Vertical-Q2-2025-FINAL-01-150x255.png 150w, https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/Top-25-Podcasts-UK-Vertical-Q2-2025-FINAL-01-scaled.png 1505w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">One key change that Edison has made this time around is that they&#8217;re counting individuals whose sole consumption was through video.  They note that this has given both <em>Call Her Daddy<\/em> and <em>The Louis Theroux Podcast<\/em> a boost. And specifically, they mentioned the gains that each title got from beyond the top 25 they publish, with <em>Call Her Daddy <\/em>rising 17 places, and <em>The Louis Theroux Podcast<\/em> rising 30 places.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is my regular chart of how the current top 25 have fared over time.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"358\" src=\"https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/image-1-1024x358.png\" alt=\"\" class=\"wp-image-79149\" srcset=\"https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/image-1-1024x358.png 1024w, https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/image-1-300x105.png 300w, https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/image-1-768x268.png 768w, https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/image-1-1536x537.png 1536w, https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/image-1-150x52.png 150w, https:\/\/www.adambowie.com\/wp-content\/uploads\/2025\/08\/image-1.png 1808w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We see <em>Joe Rogan<\/em> maintain his number one slot, while positions 2 and 3 have switched, with Steven Bartlett nudging out <em>The Rest Is Politics<\/em> this time around. Goalhanger consolidates its dominance of the top 10 with <em>The Rest Is Entertainment<\/em> rising a couple of places. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Elsewhere, <em>Crime Junkie<\/em> comes back into the chart after a quarter out, and <em>The Mel Robbins Podcast<\/em> is a complete new entry mirroring <a href=\"https:\/\/www.edisonresearch.com\/the-top-50-podcasts-in-the-u-s-for-q2-2025-from-edison-podcast-metrics\/\" data-type=\"link\" data-id=\"https:\/\/www.edisonresearch.com\/the-top-50-podcasts-in-the-u-s-for-q2-2025-from-edison-podcast-metrics\/\">her success in the US where she is at number 11<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It&#8217;s also clear that most of the titles in this list are &#8220;always on.&#8221; That is, they publish new episodes all year round. <em>Desert Island Discs<\/em> is an exception, although it was publishing new episodes during this quarter. <em>Uncanny<\/em>, which fell out of the chart this quarter, was an example of a title that suffered from mostly not having new episodes in the quarter.  It did publish a handful of summer specials in late June, but that will have certainly impacted it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>You&#8217;re Dead to Me<\/em> and <em>The Infinite Monkey Cage<\/em> were two other BBC titles that were basically &#8220;off&#8221; during quarter 2. The former does run repeats (aka &#8220;radio edits&#8221;) during off periods, but the latter only properly returned in July, outside this period.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Below is an interactive version of the table that perhaps makes it a little clearer how podcasts&#8217; rankings have changed over time. <\/p>\n\n\n\n<!-- Chart.js CDN -->\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js@4.4.3\"><\/script>\n\n<style>\n  \/* Responsive container *\/\n  #podcastChartWrap { width: 100%; height: 620px; }\n  @media (max-width: 600px) { #podcastChartWrap { height: 520px; } }\n<\/style>\n\n<div id=\"podcastChartWrap\">\n  <canvas id=\"podcastChart\"><\/canvas>\n<\/div>\n\n<script>\n\/\/ Inline CSV from your attachment (wide format)\nconst csv = `\nPodcast,Q2 2023,Q3 2023,Q4 2023,Q1 2024,Q2 2024,Q3 2024,Q4 2024,Q1 2025,Q2 2025\nThe Joe Rogan Experience,1,1,1,1,1,1,1,1,1\nThe Diary Of A CEO with Steven Bartlett ,2,2,2,2,2,3,3,3,2\nThe Rest Is Politics,6,5,4,4,4,2,2,2,3\nThe Rest Is History,11,17,17,17,13,6,4,4,4\nThe Rest is Football,-,-,8,19,8,4,5,7,5\nThat Peter Crouch Podcast,5,3,6,6,5,7,14,5,6\nThe Rest Is Entertainment,-,-,-,-,17,15,16,9,7\nNewscast,8,18,12,18,9,12,9,10,8\nThe News Agents,12,7,14,12,10,8,6,12,9\nOff Menu with Ed Gamble and James Acaster,3,6,5,8,6,10,8,8,10\nSh**ged Married Annoyed,4,4,3,3,3,5,7,11,11\nCall Her Daddy,-,-,-,-,22,19,-,-,12\nSaving Grace,17,8,10,5,21,11,15,6,13\nCrime Junkie,-,24,21,-,14,22,12,-,14\nParenting Hell with Rob Beckett and Josh Widdicombe,15,10,9,13,12,14,19,15,15\nShxtsNGigs,-,12,16,9,11,9,18,18,16\nThe Mel Robbins Podcast,-,-,-,-,-,-,-,-,17\nAmericast,-,-,-,-,-,-,24,25,18\nHelp I Sexted My Boss,-,13,13,11,7,20,23,21,19\nThe Archers,-,22,20,21,23,21,10,-,20\nRotton Mango,-,-,-,-,-,-,-,23,21\nStick to Football,-,-,-,-,-,-,25,-,22\nThe Louis Theroux Podcast,-,-,-,-,-,-,-,-,23\nNo Such Thing as A Fish,7,11,18,14,16,13,20,19,24\nDesert Island Discs,18,-,15,15,-,25,13,14,25\n`.trim();\n\n\/\/ Simple CSV parser for this specific structure\nfunction parseWideCSV(text) {\n  const rows = text.split(\/\\r?\\n\/).map(r => r.split(','));\n  const headers = rows[0].map(h => h.trim());\n  const labelHeaders = headers.slice(1); \/\/ quarters Q2 2023 ... Q2 2025\n\n  const records = rows.slice(1).map(cols => {\n    const name = cols[0].trim();\n    const values = cols.slice(1).map(v => {\n      const t = v.trim();\n      if (t === '' || t === '-' || t.toLowerCase() === 'na') return null;\n      const n = Number(t);\n      return Number.isFinite(n) ? n : null;\n    });\n    return { podcast: name, values };\n  });\n\n  return { labels: labelHeaders, records };\n}\n\n\/\/ Make a distinct, accessible color per dataset\nfunction colorForIndex(i, total) {\n  const hue = Math.round((360 \/ Math.max(total, 1)) * i);\n  const base = `hsl(${hue} 70% 45%)`;\n  return {\n    borderColor: base,\n    backgroundColor: `hsl(${hue} 70% 45% \/ 0.15)`,\n    pointBackgroundColor: base\n  };\n}\n\n(function init() {\n  const { labels, records } = parseWideCSV(csv);\n\n  \/\/ Find index of Q2 2025 to sort legend\/datasets by current rank\n  const currentLabel = 'Q2 2025';\n  const currentIdx = labels.indexOf(currentLabel);\n\n  \/\/ Sort datasets by current rank ascending (nulls at end), with hard preference:\n  \/\/ Joe Rogan always first; Desert Island Discs always last\n  const sorted = [...records].sort((a, b) => {\n    if (a.podcast === 'The Joe Rogan Experience') return -1;\n    if (b.podcast === 'The Joe Rogan Experience') return 1;\n    if (a.podcast === 'Desert Island Discs') return 1;\n    if (b.podcast === 'Desert Island Discs') return -1;\n\n    const av = currentIdx >= 0 ? a.values[currentIdx] : null;\n    const bv = currentIdx >= 0 ? b.values[currentIdx] : null;\n    if (av == null && bv == null) return 0;\n    if (av == null) return 1;\n    if (bv == null) return -1;\n    return av - bv; \/\/ lower rank closer to top\n  });\n\n  const total = sorted.length;\n  const datasets = sorted.map((rec, i) => {\n    const { borderColor, backgroundColor, pointBackgroundColor } = colorForIndex(i, total);\n    return {\n      label: rec.podcast,\n      data: rec.values,\n      borderColor,\n      backgroundColor,\n      pointBackgroundColor,\n      borderWidth: 2,\n      tension: 0.25,\n      spanGaps: false,\n      pointRadius: 2,\n      pointHoverRadius: 5\n    };\n  });\n\n  \/\/ Determine y-range from data (e.g., 1..25), default to 1..25 if unknown\n  let yMin = 1, yMax = 25;\n  const allRanks = sorted.flatMap(r => r.values.filter(v => v != null));\n  if (allRanks.length) {\n    yMin = Math.min(...allRanks);\n    yMax = Math.max(...allRanks);\n  }\n\n  const ctx = document.getElementById('podcastChart');\n  new Chart(ctx, {\n    type: 'line',\n    data: { labels, datasets },\n    options: {\n      responsive: true,\n      maintainAspectRatio: false,\n      interaction: { mode: 'nearest', axis: 'x', intersect: false },\n      plugins: {\n        title: { display: true, text: 'Podcast rankings over time (lower number is higher rank)' },\n        legend: {\n          position: 'bottom',\n          labels: { boxWidth: 18, usePointStyle: true, pointStyle: 'line' }\n        },\n        tooltip: {\n          callbacks: {\n            label: ctx => `${ctx.dataset.label}: Rank ${ctx.formattedValue}`\n          }\n        }\n      },\n      scales: {\n        y: {\n          reverse: true, \/\/ rank 1 at the top\n          min: Math.min(1, yMin),\n          max: Math.max(25, yMax),\n          ticks: { stepSize: 1 },\n          title: { display: true, text: 'Rank' }\n        },\n        x: {\n          title: { display: true, text: 'Quarter' }\n        }\n      }\n    }\n  });\n})();\n<\/script>\n\n\n\n\n<p class=\"wp-block-paragraph\"><em>I should note that the code is by no means perfect, and I had &#8220;great fun&#8221; with three different AIs to get to this. I was going to simply embed a Google Sheet chart in the blog, but I couldn&#8217;t get Google Sheets to put the first ranked podcast at the top rather than the bottom of the chart. So I fell back on getting one of the various AI engines to do the hard work for me. <\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Google Gemini was fine until about halfway down the list when it replaced podcasts with others that weren&#8217;t on the list at all. No matter what I did, I couldn&#8217;t fix this. <\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>ChatGPT was worse and created a chart that only showed the Joe Rogan Experience&#8217;s ranking which is next to useless. <\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Finally, I ended up with Copilot which took two attempts but go this basically working example. There&#8217;s probably a more interesting visualisation that includes titles that were in the top 25 for a while before falling out. Anyway, you can at least turn on and off various titles in this chart, so feel free to play. <\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Vibe coding isn&#8217;t quite all its cracked up to be, although I have successfully got simple tasks coded for me in this way previously.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last week, Edison Research published their latest list of the Top 25 podcasts in the UK for Q2 2025. This is the most visible chart of which podcasts are being listened to, since the charts from providers like Apple and Spotify aren&#8217;t true charts for the whole industry, and tend to be tweaked for newness [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":79146,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"cybocfi_hide_featured_image":"","footnotes":""},"categories":[35,446],"tags":[217],"class_list":["post-79145","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-audio","category-podcasts","tag-podcasts"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.adambowie.com\/blog\/wp-json\/wp\/v2\/posts\/79145","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.adambowie.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.adambowie.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.adambowie.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.adambowie.com\/blog\/wp-json\/wp\/v2\/comments?post=79145"}],"version-history":[{"count":5,"href":"https:\/\/www.adambowie.com\/blog\/wp-json\/wp\/v2\/posts\/79145\/revisions"}],"predecessor-version":[{"id":79158,"href":"https:\/\/www.adambowie.com\/blog\/wp-json\/wp\/v2\/posts\/79145\/revisions\/79158"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.adambowie.com\/blog\/wp-json\/wp\/v2\/media\/79146"}],"wp:attachment":[{"href":"https:\/\/www.adambowie.com\/blog\/wp-json\/wp\/v2\/media?parent=79145"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.adambowie.com\/blog\/wp-json\/wp\/v2\/categories?post=79145"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.adambowie.com\/blog\/wp-json\/wp\/v2\/tags?post=79145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}