Methodology

How we compute the metrics and grades shown on oosmetrics.com.

Data Collection

We fetch repository statistics from the GitHub API once per night using a GitHub App installation (15,000 requests/hour). Raw daily values (star count, fork count, open issues, contributor activity, release history) are stored as timestamped snapshots.

Before computing any metric, raw daily deltas are smoothed using an Exponential Moving Average (EMA) with α = 0.3:

ema_today = 0.3 × raw_today + 0.7 × ema_yesterday

This reduces the impact of single-day spikes (viral posts, sudden traffic) and surfaces sustained trends.

Star Growth Rate

Growth rate is computed as a CAGR-style (Compound Annual Growth Rate) daily rate over a rolling window:

growth_rate(N) = (stars_today / stars_N_days_ago)^(1/N) − 1

We report both the 7-day and 30-day growth rates. The 7-day rate is more responsive to recent momentum; the 30-day rate is more stable. Both are computed on EMA-smoothed star counts.

A value of +0.018 means the repository gains approximately +1.8% of its star count each day.

Acceleration

Acceleration is the linear regression slope of the last 7 daily growth_rate_7d values:

acceleration = slope of OLS fit over growth_rate_7d[last 7 days]

A positive slope means the growth rate itself is increasing — the repository is gaining momentum. We label acceleration into five categories:

LabelSlope threshold
Surging> +0.005
Rising+0.001 to +0.005
Steady−0.001 to +0.001
Cooling−0.005 to −0.001
Declining< −0.005

Innovation Score

The innovation score (0–100) is a weighted composite of four activity signals, each normalised against the corpus maximum observed that day:

innovation_score =
  0.30 × commit_frequency_norm
+ 0.30 × contributor_growth_norm
+ 0.20 × issue_resolution_norm
+ 0.20 × release_cadence_norm
ComponentWeightMeasures
Commit frequency30%Average commits per week over the last 30 days
Contributor growth30%Unique new contributors in the last 30 days
Issue resolution20%Ratio of issues closed to issues opened (last 30 days)
Release cadence20%Number of releases published in the last 30 days

Each component is capped at 1.0 before weighting, so a single outlier repo cannot compress the rest of the distribution.

Percentile Grades

Every metric is graded by percentile rank within the tracked corpus — not on an absolute scale. A grade of A+ means the repository is in the top 2–5% for that metric across all tracked repos on that day.

GradePercentile range
STop 1%
A+Top 2–5%
ATop 5–10%
B+Top 10–20%
BTop 20–35%
CTop 35–55%
DTop 55–75%
FBottom 25%

Grades are recomputed nightly after every ingestion run. A repository's grade can change even if its absolute metric value is unchanged, because the rest of the corpus changes too.

Rising Stars

Repositories created fewer than 90 days ago are excluded from the main rankings. They appear in a dedicated “Rising Stars” section with their own grade pool, preventing very new repos from distorting the overall distribution.

Update Frequency

All data is refreshed once per night (00:00 UTC). The timestamp shown on each repository page reflects when the snapshot was last recorded.