Home

Methodology

How adoption is estimated

A deterministic statistical model over public download data, with no LLM involved. Every estimate carries an 80% interval; the code is in src/metrics/.

  • Public datanpm and npmmirror download counts, publish times, GitHub data.
  • ReproducibleA fixed random seed: the same data gives the same result.
  • IntervalsBootstrap and Monte Carlo give 80% intervals.

Estimated from public npm, npmmirror and GitHub data

Loading
Active installsInstalls that took a recent update, pooled over the latest complete update waves. The range is an 80% interval.

    

Estimated usersAfter discounting CI, containers and multiple machines per person. The range is an 80% interval.

    

New installs / dayMedian daily first-time installs over the last 7 measurable days.

    

Update half-lifeTime for half of active installs to take a new release.

    

The model

Missing days

A day on which every package reads zero on npm is treated as missing; react and similar packages read zero on the same days. The current day is incomplete and is left out.

gap(d) ⇔ Σₚ npm(p, d) = 0

Limitations

  • Downloads count package stores, not people.
  • Host upgrades can reinstall plugins; affected waves are flagged.
  • npmmirror days follow China Standard Time, so single days can be offset from npm by 8 hours.
  • Updates more than 7 days after a release count as fresh installs.
  • Automated downloads per release use an outside measurement.
  • npm only provides per-version counts for the last 7 days.

Reproduce

$ git clone https://github.com/mnemon-dev/mnemon-fe && cd mnemon-fe
$ npm install
$ npm run metrics
$ npm test
References15