pr_acceptance scores linearly: merged / decided * 30. Full credit requires 100% acceptance — but a project that merges literally every PR is not exercising judgment; healthy maintainership rejects some share of drive-by, out-of-scope and spam PRs. express-rate-limit sits at 273/355 (77%) and loses ~7 points for what is arguably normal triage.
The maintainer's words (express-rate-limit/express-rate-limit#673, express-rate-limit/express-rate-limit#673 (comment)): "I think it's actually healthy for a project to occasionally reject a PR. Maybe the goal here should be 90% acceptance rather than 100%?"
Suggested: plateau the curve — full credit at or above some threshold (e.g. 85–90%), linear below it. Optionally treat very high acceptance with many decided PRs as full credit too (no penalty), since the failure mode worth measuring is the low end (contributions ignored or hostile triage), not the high end.
pr_acceptancescores linearly:merged / decided * 30. Full credit requires 100% acceptance — but a project that merges literally every PR is not exercising judgment; healthy maintainership rejects some share of drive-by, out-of-scope and spam PRs. express-rate-limit sits at 273/355 (77%) and loses ~7 points for what is arguably normal triage.The maintainer's words (express-rate-limit/express-rate-limit#673, express-rate-limit/express-rate-limit#673 (comment)): "I think it's actually healthy for a project to occasionally reject a PR. Maybe the goal here should be 90% acceptance rather than 100%?"
Suggested: plateau the curve — full credit at or above some threshold (e.g. 85–90%), linear below it. Optionally treat very high acceptance with many decided PRs as full credit too (no penalty), since the failure mode worth measuring is the low end (contributions ignored or hostile triage), not the high end.