Methodology
Each section below describes one group of measurements on the site, where the data comes from, and what is not captured.
Detected in the repository
Scanned from upstream repositories, not from the packages CRAN distributes.
A weekly snapshot of development tooling and community-health files present in the upstream repository.
Traces of AI coding tools found in a repository and when each first appeared. A lower bound on visible tooling, not a measure of total AI use.
Analyzed from the package source
Each released tarball is opened and analyzed. Code metrics and the call graph are parsed without running the package; coverage requires installing it and running its tests. Files stripped by .Rbuildignore before the tarball was built are not included.
Size, documentation coverage, test-to-code ratio, and dependency counts for each released version of a package.
Every function a package defines and the call relationships between them, determined by static analysis rather than execution.
The share of a package's code exercised by its own tests, measured under coverage instrumentation. CRAN only. Packages not yet measured are distinguished from those with zero coverage.
Published by CRAN
CRAN runs the checks, maintains the incoming directory, and decides when packages are removed. These figures come from CRAN's published records.
Daily check results and the criteria behind the Healthy label on package pages.
A snapshot of the incoming directory, with an explanation of each stage name and its actual meaning.
Packages removed from CRAN, the stated reasons, and the rules for recording packages that return.
Collected from external sources
Download counts come from mirror logs, repository signals from code hosting platforms, and advisories from the R Consortium database through OSV, with affected versions worked out here.
Counts aggregated across several mirrors and package managers. The headline figure comes from one widely used mirror and understates total use.
Stars, forks, issues, commits, and contributors from the repository a package links to.
Advisories for R packages from the R Consortium database, the released versions each one affects, and what none known means.
Derived and computed
Licenses and reverse dependencies are derived from the DESCRIPTION file. Author identity and the ranked lists are computed from rules defined here.
License strings grouped into families, and the scope of the dependency-license report for redistribution questions.
Dependents, the packages that list a package under Depends, Imports or LinkingTo, direct and through others, and the packages that only suggest it.
Resolving different spellings of a name to a single person, and the effect on author page figures.
The selection and ordering rules behind each ranked list.
Reference
Supporting material for the notes above. These do not describe a measurement and do not carry a refresh cadence.
Definitions for every metric and signal the observatory reports, including which direction is generally considered healthier.
The R object classes a bundled dataset can hold, what information is extracted from each one, and which classes do not survive serialization to a file.