Methodology

Everything on this site comes from public podcast RSS feeds. No proprietary data, no vendor data, no survey.

The pipeline

  1. Parse the feeds. Each show's RSS feed gives episode title, publish date, duration, and an audio URL. This is the master manifest.
  2. Transcribe. Every episode's audio is transcribed locally with whisper.cpp using the medium model. Four model sizes were compared on six sample episodes before choosing; medium was the smallest that got market-research proper nouns and jargon right. Whisper's --prompt feature was tested and made things worse, so it is not used.
  3. 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.
  4. 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.
  5. 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

episodes · all transcribed · all extracted

Expansion cohort

episodes · held separate from every trend

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: . The expansion cohort adds , which are never mixed into a core figure.

What counts as an episode being "about" a topic

Two consequences worth stating, because both move numbers:

The four rules every chart follows

1. Share of episodes, never a raw count. Episode volume per year in the core cohort runs — a 2.4× swing between full years. A count over time would largely be a chart of how many episodes existed, not of what changed.

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

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