Methodology
How we measure project health
Every number on OSRepos comes from the public GitHub API, measured the same way for every project, so two pages can be compared side by side. This page explains what we measure, how the status and the health score are worked out, and what they cannot tell you.
What we measure
When a project is analyzed we read its recent history from GitHub. Each count goes up to 100; past that, the page shows "100+".
- Commits in the last 90 days, and the date of the latest one.
- Releases published in the last 12 months (drafts left out).
- Contributors, and the share of all commits made by the top contributor.
- Issues closed in the last 90 days and the median days from opening to closing (when at least 3 were closed).
- Pull requests merged in the last 90 days and the median days from opening to merging (when at least 3 were merged).
- Stars and forks, recorded every day.
Projects are measured again about every six weeks, and right away when they are re-analyzed. Each page shows the date its health was checked.
Status
The status follows fixed rules, checked in this order; the first that applies wins.
| Status | When |
|---|---|
| Archived | The owners archived the repository on GitHub; it is read-only. |
| Inactive | No commits in over a year. |
| Quiet | No commits in the last 90 days. |
| New | Less than six months old, with commits in the last 90 days. |
| Active | At least 10 commits in the last 90 days, or a release in the last 12 months. |
| Maintained | A few commits in the last 90 days, and no release in the last 12 months. |
Health score
The score, from 0 to 100, says where a project stands among all the projects we track. It has four parts, each the average percentile of two measurements:
- Activity: commits in 90 days and releases in 12 months.
- Community: number of contributors, and how little the project depends on its top contributor.
- Issues: issues closed in 90 days and how fast they are closed.
- Pull requests: pull requests merged in 90 days and how fast they are merged.
A percentile is the share of tracked projects this one does better than, with ties counting half: 50 is the middle of the catalog, 90 means better than nine in ten. The score is the average of the parts we could measure; a part with no data (for example, a project that does not use pull requests) is left out rather than counted as zero, and there is no score with fewer than two parts.
The highlights on each page ("More contributors than 92% of the projects we track") come from the same percentiles: a strength from the top quarter, a weak point from the bottom fifth.
Stars and Rising
We record the stars and forks of every project once a day. The trend on each page shows the stars gained over the last 30 days, and Rising ranks the projects that gained the most stars today, this week or this month, with the growth as a share of the stars they had before. Stars measure attention, not quality: treat a jump as a reason to look, not a verdict.
Alternatives and comparisons
Alternatives are always other projects in the catalog, so each one has its own page and numbers. Similar repositories are found by shared topics, with rare topics weighing more: sharing "browser-automation" says far more than sharing "python". Comparisons put two projects that list each other as alternatives side by side, with the current health of both.
README badge
Maintainers can show a project's status and score in its README. The badge updates on its own every few hours and links to the project's page. Copy the Markdown from the project page, or use:
[](https://osrepos.com/repo/OWNER-REPO)
What the numbers cannot tell you
These measurements describe activity, not code quality or security. A small, finished tool can be excellent with few commits, and a busy project can still be the wrong choice for you. Some projects work outside GitHub issues or pull requests, which lowers those parts of their score. Use the numbers to narrow the list, then read the code, the license and the issue tracker yourself.
Corrections
Spotted a wrong number or a status that does not fit? Write to [email hidden]. For how projects are picked and how the analyses are written, see How OSRepos works.