Methodology
Everything on this site comes from public podcast RSS feeds. No proprietary data, no vendor data, no survey.
The pipeline
- Parse the feeds. Each show's RSS feed gives episode title, publish date, duration, and an audio URL. This is the master manifest.
- Transcribe. Every episode's audio is transcribed locally with
whisper.cpp using the
mediummodel. Four model sizes were compared on six sample episodes before choosing;mediumwas the smallest that got market-research proper nouns and jargon right. Whisper's--promptfeature was tested and made things worse, so it is not used. - Extract. Each transcript is read by Claude Haiku, which returns structured JSON: topics against a controlled vocabulary, guests and their company type, companies and products mentioned, and individual claims with a stance and a prediction flag.
- Probe. A second, completely independent pass runs plain regular expressions over the raw transcript text. No model is involved. This exists as a check on step 3, for reasons described on the corrections page.
- Export. A script turns the database into the small JSON files this site reads. They are committed to the repository, so the numbers rendered here and the numbers in the database cannot drift apart silently.
The corpus
Core cohort
Expansion cohort
Coverage runs 2017-12-11 → 2026-08-06. The 2026 column everywhere on this site is a partial year ending in early August; it is always labelled.
Derived rows for the core cohort:
What counts as an episode being "about" a topic
Two consequences worth stating, because both move numbers:
- Claims count, not just topic tags. An episode where AI is discussed at length but filed under an adjacent label still counts, because a claim in it was attributed to AI. Tag-only matching gives a visibly lower curve — 67% of 2025 episodes rather than 71% — and misses exactly the episodes the extractor artifact was about.
- An audited alias map folds truncated variants. The extraction sometimes
emits a shortened form of a vocabulary entry —
privacy / data regulationforprivacy / GDPR / data regulation, 108 episodes' worth. Each variant is mapped explicitly and by hand, never by a fuzzy rule; anything genuinely outside the vocabulary is dropped.
The four rules every chart follows
1. Share of episodes, never a raw count. Episode volume per year in the core
cohort runs
2. Always show n. Every chart carries its yearly denominator, because a percentage over eight episodes and a percentage over 207 are not the same evidence.
3. One cohort per series. The four core shows only. Shows added later start in different years, and merging series with different start dates fabricates trends — the same left-censorship error that got an entire conference-comparison analysis thrown out.
4. Exact matches, never substrings. Topics are matched by exact case-folded string equality against the controlled vocabulary — plus the hand-audited alias map described in the section above, never a fuzzy rule. This exists because breaking it once produced a wrong number that reached a publishable draft; see corrections.
Two denominators, never mixed
Two different instruments produce the numbers here, and they count different
populations. Every exported series carries a denominator field naming which
one it used.
If you take a percentage from a probe chart and a percentage from a topic chart and try to combine them, the arithmetic will not work. That is why they are labelled rather than quietly reconciled.
What the model-based extraction can and cannot do
The extraction is a language model reading a transcript and filling in a schema. That is reliable for "was this episode about panel sourcing" and unreliable for anything requiring a judgement the schema has no slot for. Its known failure mode — putting a real topic in the wrong box because the vocabulary had no right box — is documented in detail on the corrections page.
The regex probes exist precisely because they cannot fail that way. They are dumber and they are auditable: the exact pattern for every probe is shipped in the data.
Two probe-design lessons are baked into those patterns. Word boundaries are
mandatory — an early version matched the spec inside "the specific" and
inflated a result by an order of magnitude. And acronyms need every spoken form,
because Whisper renders them inconsistently: "QA", "Q a", and "Q. A." all appear
in the same show.
What is deliberately not here
- Any podcast-versus-conference chronology. Conference agenda data was scraped for 17 events, but it starts in 2021 while the podcasts start in 2018. That censoring makes almost every topic appear to "lead" conferences by years, which is an artifact of where the data begins, not a finding. Not fixable without pre-2021 conference data.
- "First mention" dates. For the same reason: a first mention of 2018-02-21 is the edge of the corpus, not a discovery.
- The long tail of topics. The extraction emitted over five thousand distinct free-text topic strings. Only the controlled vocabulary is clean enough to chart; everything else is dropped rather than fuzzy-matched.
- Sponsor reads. One show's sponsor appears in 183 of its episodes as an ad. Sponsors are excluded per show from any company-mention figure. Without that filter the "most discussed companies" chart is a list of advertisers.
Cost
Whisper runs locally, so transcription costs electricity. The extraction ran on Claude Haiku at roughly a cent per episode. Total spend on the whole corpus, including a GPU rental for one batch and the conference scrape, is a little over $25.
Limits worth stating plainly
- One show's feed appears to truncate its own back catalogue, so its earliest years are underrepresented. That is a property of the feed, not a choice made here.
- Whisper makes transcription errors, especially on names and acronyms. Probe patterns are written to be robust to the common ones, but a rare spelling will be missed.
- Topic assignment is a model's judgement. Two reasonable people would not agree on every episode either.
- This is a record of what people said on podcasts. It contains no information about what any company does, builds, or sells. Every reading of it should stop at the edge of that.