# Method

## Sources
- Podcast Index feed dump, table `podcasts`, 4,711,475 rows, dated 2026-08-16.
  Reference timestamp 1786838400 (2026-08-16 00:00 UTC).
- Apple Podcasts "Top Shows" top-100 for 18 storefronts (us, gb, ca, au, de,
  fr, es, it, nl, se, br, mx, jp, in, ie, nz, pl, kr), fetched 2026-09-06,
  HTTP 200 and 100 results for every storefront, 1,800 slots in total.

## Category keying
The dump stores a two-part Apple category as two values: "Society & Culture"
is category1 "society" and category2 "culture", "Religion & Spirituality" is
"religion" then "spirituality", "Health & Fitness" is "health" then "fitness",
"Kids & Family" is "kids" then "family", "TV & Film" is "tv" then "film".
A category is therefore keyed on its first word, exactly as
tools/export_lists.py CATEGORIES keys the 19 Apple top-level categories
(arts, business, comedy, education, fiction, government, health, history,
kids, leisure, music, news, religion, science, society, sports, technology,
true crime, tv). The site's /categories pages use the same keys, so the
numbers here and there agree.

- category1 block: the feed's first category, lowercased and stripped. A feed
  whose category1 is empty falls in "(none)". A feed whose category1 is a
  subcategory (games, politics, christianity and 76 other values) falls
  in "(other)". Every dump row lands in exactly one row of the table, so
  share_all_pct sums to 100%.
- any-category block: category1 to category10, keeping the values that are one
  of the 19 top-level keys. A feed counts once per distinct top-level category
  it lists, so the assignments outnumber the feeds and each share is a share of
  all assignments, not of all feeds.

## Join
1,800 chart slots hold 1,479 distinct itunesIds; a show that charts in
several storefronts is one id. 1,387 of those ids match a dump row on
`itunesId`. Every chart share is a share of those 1,387 shows, pooled across the
18 storefronts. true_crime_chart_shows.csv is the exception: it is one row per
slot, not per show.

## Definitions
- active: newestItemPubdate falls within the 90 days before 2026-08-16. Feeds
  with no newest-episode date are never active but stay in every denominator.
- ratio: a category's share of chart shows divided by its share of active
  feeds. Above 1 means the category holds more of the charts than of the
  feeds that published in the last 90 days.

## Publication rules
- Cells under 5 print "<5", and a share whose numerator is masked prints
  "n/a".
- A share whose base is under 100 prints "n/a". In category_by_storefront.csv
  the base is the storefront's joined shows, which runs 74 to 100, so every
  storefront except in (base 100) prints "n/a" in the share column. The counts
  and the base are printed for all 18, and the report text quotes counts.

## Limitations
- Categories are self-declared. category1 is what the feed puts first, not a
  classification anyone checked.
- Shows pick where they compete. A true crime show that files under Society &
  Culture counts as society here, which pushes the true crime count down and
  the society count up on both sides of the comparison.
- The charts are one day, 2026-09-06. A different day moves individual shows.
- Chart shows are not audience. A slot is a place on Apple's list, not
  downloads, and Apple does not publish what the ranking measures.
- The dump is dated 2026-08-16 and the charts 2026-09-06, three weeks apart.
  A show that charted on 2026-09-06 whose feed entered the index after
  2026-08-16 cannot join.
- Two denominators run through the table. The share of all 4,711,475 feeds counts
  every feed the index holds, most of which have not published in years; the
  share of the 437,693 feeds active in the 90 days to 2026-08-16 counts feeds
  that were publishing. The headline uses the active share, because the charts
  are drawn from shows that publish.
- In the any-category block the dump's flattening loses the hierarchy, so a
  value that is both a top-level category and a subcategory word cannot be
  told apart. The category1 block does not have this problem.
- All chart shares are shares of the 1,387 joined shows, not of 1,479 chart
  ids or of 1,800 slots.

Data: CC BY 4.0, Podcastquery, September 2026
