How OSS Pulse collects data and calculates metrics
OSS Pulse tracks GitHubโs most influential repositories โ not a random sample, but the elite of open source. We focus on repositories with proven impact and community engagement, filtering out repos below 500 stars.
Our daily collection pulls repositories matching these criteria:
| Query | Sort By | Purpose |
|---|---|---|
stars:>1 |
Stars | Most starred repositories |
forks:>500 |
Forks | Highly forked projects (active development) |
help-wanted-issues:>0 |
Help Wanted | Community-driven projects seeking contributors |
watchers:>100 |
Default | Well-watched repositories |
topic:ai |
Default | Trending AI/ML projects |
All repositories must have been pushed within the last 2 years to be included. This ensures we track active, maintained projects.
Repositories below 500 stars are excluded from analytics. This removes low-quality repos and small personal projects that add noise without adding insight.
The Momentum Score is a single number that answers: โIs this project accelerating right now?โ
It combines four components, each scored 0-100 individually, then weighted:
| Component | Weight | What It Measures |
|---|---|---|
| Velocity | 40% | Absolute 7-day star gain, percentile-scaled against all tracked repos |
| Relative Growth | 25% | 7-day gain as % of existing stars โ rewards small repos growing fast |
| Acceleration | 25% | This weekโs gain minus last weekโs gain โ speeding up or slowing down? |
| Consistency | 10% | Positive growth across 7-day, 14-day, and 30-day windows |
| Weekly Gain | Score Range | Approx. Percentile |
|---|---|---|
| >= 2,000 | 100 | >P97 |
| 800 - 2,000 | 80 - 100 | P95 - P97 |
| 500 - 800 | 70 - 80 | P90 - P95 |
| 175 - 500 | 55 - 70 | P75 - P90 |
| 60 - 175 | 40 - 55 | P50 - P75 |
| 10 - 60 | 20 - 40 | P25 - P50 |
| 0 - 10 | 0 - 20 | <P25 |
If a repo has a genuine viral spike (>5x its own 14-day baseline), it receives a +10 bonus (capped at 100).
Repos are classified into a 2ร2 matrix based on size and momentum:
| ย | Momentum >= 55 | Momentum < 55 |
|---|---|---|
| >= 50k stars | ๐ฅ Hot Giants | ๐๏ธ Coasting Giants |
| < 50k stars | ๐ Rising Stars | ๐ฑ Emerging |
Each repo gets a 7-character sparkline showing its star count trajectory over the last 7 days:
โโโโโ
โโ
Characters map to the repoโs own min-max range over those 7 days, so the sparkline shows shape (accelerating, steady, spiking) rather than absolute magnitude. A flat sparkline โโโโโโโ means no change; a rising โโโโโ
โโ means steady acceleration.
Our health score is inspired by the CHAOSS Project (Community Health Analytics for Open Source Software), a Linux Foundation initiative.
| Dimension | Weight | Calculation |
|---|---|---|
| Activity | 30% | Based on days since last push. Daily push = 100, >1 year = 5 |
| Popularity | 20% | Stars per day since creation, logarithmically scaled |
| Engagement | 20% | Fork-to-star ratio. >30% = 100, <2% = 10 |
| Issues | 15% | Open issues per 1,000 stars. <1 = 100, >50 = 10 |
| Quality | 15% | License (+40), description (+25), topics (+20), homepage (+15) |
| Grade | Score Range |
|---|---|
| A+ | 95-100 |
| A | 90-94 |
| A- | 85-89 |
| B+ | 80-84 |
| B | 75-79 |
| B- | 70-74 |
| C+ | 65-69 |
| C | 60-64 |
| C- | 55-59 |
| D+ | 50-54 |
| D | 45-49 |
| D- | 40-44 |
| F | 0-39 |
A viral spike is detected when:
High absolute weekly gain alone does not classify a repo as viral. Viral classification requires a genuine spike relative to the repoโs own baseline. This prevents large repos with consistently high gains from being mislabeled as โviral.โ
Organizations are ranked by three views:
Only organizations with 2+ tracked repos appear in the momentum and health views.
Languages are determined by GitHubโs primary language detection for each repository.
| โ Back to Dashboard | Momentum Rankings | Health Scores | Organizations |