How we count

Every figure PodHood publishes about the podcast ecosystem comes from one weekly Snapshot, aggregated one way, and attributed through one table. All three are on this page.

Host mappingv1
from 2026-08-23
Versioned in the repository. Changing it affects future Vintages only.
01

Snapshots and Vintages

Podcast Index publishes one dump of its feed database and overwrites it roughly weekly. We download each one, convert it whole — every row, every column, nothing pruned — and keep it forever. One such capture is a Snapshot; the date identifying it is its Vintage.

Every number we publish carries the Vintage it was computed from. Nothing on any Insights page is real-time, and we never describe it that way — a figure that quietly changes underneath the person who cited it is worse than no figure.

01AcquireThe weekly dump, plus the dead-feeds list and two small ecosystem sources, downloaded before the upstream file is overwritten.
02ArchiveConverted to Parquet at full fidelity — every row and column, nothing pruned — and kept permanently in cold storage.
03AggregateClassified through the Host mapping and rolled into pre-aggregated counts by language, category, host and activity.
04PublishTools re-stamp to the new Vintage; Reports keep the one they were published from. Raw feed rows are never served.

Languages aggregate to their primary subtag (en-US counts as en), with one exception: Chinese splits into Simplified and Traditional, resolved from the feed’s script or region subtag, because the two written forms serve different audiences. A feed that declares bare zh counts as Traditional — an editorial default, stated here rather than hidden: in the observed data undeclared Chinese skews overwhelmingly to Traditional-first platforms, while Simplified-market hosts declare zh-cn.

02

Tools move, Reports do not

Insights publishes two kinds of surface, and which one you are reading changes what its numbers promise.

liveTools

A living page at a stable URL that always reflects the latest Vintage, stamped visibly at the top. Cite a Tool and you are citing “the current figure” — check the stamp, because it moves every week.

frozenReports

A dated publication — one edition a month — whose every figure is pinned to the Vintage it was published from, permanently. Month-over-month deltas are diffed against the previous edition’s frozen numbers, so they are frozen too. Reports never read a “latest” endpoint. A correction is appended as an erratum; the original figures are not edited.

03

The Host mapping

The dataset ships a host column. We do not aggregate on it. It is someone else’s classification, changeable without notice, and it silently folds tracking prefixes and acquisitions together in ways we could not explain if a journalist asked. Hosting market share is exactly the figure people audit, so we maintain our own table instead — and publish it.

Only the hosts we name need a rule. Everything unmatched falls into self-hosted / other by subtraction, which is what keeps this table small enough to maintain honestly.

HostDomain patternsAttribution ruleFeeds
Spotifyspotify.com · spotifycdn.com · anchor.fmAnchor was retired into Spotify for Podcasters after the 2019-02-14 acquisition; feeds still serve from anchor.fm.1,902,970
Spreakerspreaker.comiHeart-owned since 2020, but the brand keeps operating — no roll-up (attribution follows the brand a creator publishes on).563,802
Buzzsproutbuzzsprout.com260,907
SoundCloudsoundcloud.com · sndcdn.com191,486
iVooxivoox.com184,742
RSS.comrss.com177,512
Podbeanpodbean.com106,290
Libsynlibsyn.com · libsynpro.com73,432
Acastacast.com56,551
Megaphonemegaphone.fmSpotify-owned since 2020, but the brand keeps operating — no roll-up.31,561
Simplecastsimplecast.com13,930
Captivatecaptivate.fm32,016
Transistortransistor.fm30,771
Audioboomaudioboom.com5,906
Blubrryblubrry.com41,343
Omny Studioomny.fm · omnycontent.com19,423
RedCircleredcircle.com30,026
Podomaticpodomatic.com62,141
Castboxcastbox.fm49,800
Hubhopperhubhopper.com31,778
Ximalayaximalaya.com · xmcdn.com19,107
Substacksubstack.com18,583
Podigeepodigee.com · podigee-cdn.net · podigee.io18,492
Aushaausha.co16,778
SoundOnsoundon.fm15,306
Riversideriverside.fm · riverside.com14,079
Mavemave.digital12,812
Firstoryfirstory.me · firstory-709db.cloud.goog20,139
Xiaoyuzhou FMxiaoyuzhoufm.com8,633
Castoscastos.com8,319
Internet Archivearchive.org40,212
Squarespacesquarespace.com13,151
Self-hosted / other— everything the rules above do not matchComputed by subtraction, never enumerated. This is what keeps the table to 34 rows instead of a hundred thousand.604,363
Unknown— no resolvable domain on the feedCounted and shown, never quietly folded into a host.35,114

Acquisitions are attributed explicitly, with the date the attribution starts from — that is why 1.9M Anchor feeds appear above as Spotify, and why a Vintage from before the roll-up date would still show them as Anchor. A brand that keeps operating under its own name stays its own host however its parent changes — Spreaker under iHeart, Megaphone under Spotify.

04

Tracking prefixes are stripped first

Many feeds route their media through an analytics prefix, so the domain you see first belongs to a measurement company rather than a host. In the 2026-08-17 Snapshot, dts.podtrac.com is the eighth-largest domain in the raw data at roughly 102,000 feeds — a “host” that hosts nothing.

We strip known prefixes and resolve the domain underneath before matching. A feed behind two stacked prefixes is unwrapped until a real host domain appears, or lands in unknown if none does.

podtrac.comchtbl.comchrt.fmpdst.fmop3.devpdcn.comgln.aiarttrk.comclaritaspod.compodscribe.compscrb.fmvpixl.com
05

We check ourselves against it anyway

Refusing to aggregate on the dataset’s host column does not mean ignoring it. Every week we compare our attribution against theirs and publish the disagreement rate in the Vintage’s manifest.

4.2%of feeds where our host and theirs disagree, Vintage 2026-08-17. A sudden jump is our signal to look, not a reason to switch.
Unmapped domains, this Vintage

The largest domains no rule matches yet. A newcomer surfaces itself by climbing this list, which is how the table gets tended without anyone auditing four million feeds.

1downloads.sms.cam.ac.uk21,023
2d1.islamhouse.com19,729
3streamer1.afa.net14,612
4podcastmachine.com8,614
5threespeakvideo.b-cdn.net7,462
06

When the mapping changes

Editing the table changes future Vintages only. Restating history is possible — we keep every Snapshot precisely so a new rule can be replayed across the whole Archive — but it is a deliberate act, published with a note saying what changed and which Vintages were recomputed.

v12026-08-23Initial table: 32 named hosts, 12 tracking prefixes, both fallback buckets — the second tranche of hosts added straight off the first Vintage's unmapped-domain leaderboard.First published mapping
07

What we do not publish

Insights serves aggregates: counts, shares and trends over a handful of dimensions. We do not publish per-feed pages, and we do not offer an API that re-serves Podcast Index’s rows.

Their own API is free and strictly fresher than a weekly copy could ever be. If you need to look up an individual feed, go there — a stale mirror would be a worse answer and a poor way to treat the project this data comes from.

SourceAll feed data originates with Podcast Index, used under its open terms. Listening-app share, where shown, is OP3 data and always attributed as theirs.podcastindex.org →

More from Insights

All Insights →