Skip to content
PluginStats

Methodology

Collection

Collectors run daily, independently of the website. Each marketplace has its own adapter that discovers listings, reads their published metrics, and stores a timestamped observation. Requests are rate-limited per host with bounded concurrency, and transient failures retry with exponential backoff.

At most one observation per listing, metric, source and UTC day is stored, so re-running a collection is idempotent. A collection that fails or returns a zero for a listing that previously had a positive value is rejected and logged — it never overwrites valid history.

Metrics are not interchangeable

Installs, downloads, active users and pulls measure different things and are always labeled separately:

Growth calculations

Absolute growth = current − baseline. Percentage growth = (current − baseline) ÷ baseline × 100. The baseline is the observation nearest to the requested date (7, 30 or 90 days before the latest observation), within a tolerance of 1, 3 or 7 days respectively. If no observation falls inside the tolerance, growth is shown as unavailable — a listing's first observation is never substituted for a missing baseline.

Values the source rounds (for example Chrome's user counts or "1.6K ratings") are marked approximate. For cross-marketplace comparisons PluginStats shows each metric separately and compares normalized growth: indexed series and compound daily growth rates.

Internet Archive backfill

For marketplaces whose historical pages contain metrics (currently Claude Plugins, VS Code Marketplace and GitHub Marketplace), a separate job discovers archived snapshots through the Internet Archive CDX API, parses them with marketplace- and era-specific parsers, and stores each value with its original capture time, the source wayback, a confidence score and the parser version. Snapshots without a reliable metric are skipped. Archived values appear as hollow points in charts and link back to the capture in history tables.

Charts

Charts are rendered server-side from stored observations. Lines connect observations only; spans longer than 10 days without data are drawn dashed, and no values are interpolated. Every chart is also available as an HTML table.

Rankings

For marketplaces with adoption metrics, rank is position by that metric among listings tracked by PluginStats (not necessarily the entire marketplace). For Vercel and ChatGPT, which publish no install counts, rank is the listing's placement in the marketplace's own popularity-sorted listing.

Using the data

Charts and statistics may be embedded and cited. Embed snippets include an attribution link, which is appreciated but not required.