Methodology

Each project gets a 0–100 health score answering: "If I adopt this project today, how likely is it to be maintained, supported, and safe a year from now?"

Formula

score = 0.4 × maintenance
      + 0.35 × community
      + 0.25 × quality

Signals are min-max normalized within each category (popularity counts) or mapped through absolute curves (time decays, ratios, flags) before weighting. Scores are not comparable across categories.

Quality (weight 0.25)

SignalWeight within bucket
tests_present0.3
readme_present0.2
ci_configured0.3
license_osi0.2

Maintenance (weight 0.4)

SignalWeight within bucket
release_cadence0.15
open_closed_issue_ratio0.1
median_issue_close_days0.15
days_since_last_commit0.25
median_pr_close_days0.15
commit_frequency_90d0.2

Community (weight 0.35)

SignalWeight within bucket
stars_log0.3
forks_log0.15
author_track_record0.15
contributors_12mo0.25
bus_factor0.15

What this score is NOT

Bot activity (dependabot, renovate, *[bot]) is filtered from all activity metrics. Archived repos are penalized, not zeroed; projects whose maintainers still answer issues keep a non-zero maintenance floor.