FOSS Resources

How to Measure Open Source Community Health

Community health metrics are useful when they reveal participation bottlenecks, maintainer load, and contributor experience instead of vanity activity.

Open source community health metrics are signals that help maintainers understand whether people can join, contribute, receive review, and keep the project sustainable. They are not proof that a community is healthy by themselves.

Good metrics point to action. They help a project find bottlenecks, overloaded maintainers, stale queues, confusing onboarding, ignored non-code work, and decision gaps. Poor metrics create dashboards that look impressive while nobody knows what to fix.

Start with the question

Do not begin by collecting every number a platform exposes. Begin with a project question: Are new contributors getting stuck? Are pull requests waiting too long? Are maintainers overloaded? Are issues being closed without explanation? Are release tasks concentrated in one person?

Each question suggests different evidence. If the problem is onboarding, look at first-response time, setup issues, first pull request completion, and repeated beginner confusion. If the problem is maintainer load, look at review distribution, release ownership, unanswered issues, and burnout signals.

The metric should be connected to a decision. If nobody will act on the answer, the metric may not be worth collecting.

Activity is not health

High activity can mean a thriving project. It can also mean spam, unresolved support load, churn, or conflict. Low activity can mean abandonment, but it can also mean stable software with few needed changes.

Stars, forks, downloads, and raw issue counts are especially easy to misread. They can show attention, but they do not show whether contributors are treated well, whether releases are reliable, or whether maintainers can keep up.

Use activity metrics as context, not final judgment. A spike in issues should lead to a review of issue types and response quality. A drop in pull requests should lead to questions about onboarding, project maturity, or contributor capacity.

Responsiveness metrics

Responsiveness metrics show whether people receive useful responses. Examples include time to first maintainer reply, time to first review, time to close, time to merge, and time from report to triage.

The response must be meaningful. An automated label is not the same as a human triage comment. A quick close without explanation may reduce queue size while damaging contributor trust.

Segment responsiveness by work type. Security reports, user support, bug reports, feature requests, documentation fixes, and first-time pull requests have different expectations and risks.

Review flow and bottlenecks

Review metrics can reveal where work waits. Look at pull requests waiting for maintainer review, pull requests waiting for contributor updates, repeated requested changes, and reviews concentrated in one or two people.

If review is slow because maintainers are overloaded, adding more beginner issues may make the problem worse. The project may need smaller contribution scopes, clearer tests, reviewer rotation, or more explicit ownership.

Review flow should include non-code work. Documentation, translation, accessibility, design, and triage contributions can stall because nobody feels responsible for reviewing them.

Contributor retention and return paths

Retention signals ask whether contributors come back after first contact. A project can look at whether first-time contributors submit another issue or pull request, whether they receive review, and whether their work reaches a clear outcome.

Do not reduce contributors to retention targets. People may contribute once for good reasons. A one-time bug report can still be valuable. The useful question is whether the project creates unnecessary barriers that stop people who wanted to continue.

Pair retention data with qualitative review. Read the actual first-time interactions. Numbers can show a pattern, but comments explain the friction.

Maintainer load

Maintainer load is one of the most important health signals. A project may look active because one maintainer is doing everything: reviews, releases, support, security, docs, moderation, and infrastructure.

Signals include review concentration, unanswered mentions, long release gaps despite queued work, stale security contacts, repeated apologies for delays, and dependence on one person for release credentials or package publishing.

The response may be governance work rather than more metrics. A project may need role documentation, backup release access, triage help, or fewer public support channels.

Inclusion and participation signals

Inclusion metrics should be handled carefully. Do not collect sensitive personal data without a clear reason and privacy plan. Often the safer signals are participation friction, not personal identity.

Look for whether newcomer issues are genuinely scoped, whether documentation contributions are reviewed, whether accessibility reports receive useful responses, whether discussions happen only in one time zone, and whether conduct concerns have a visible report path.

Qualitative feedback matters. A contributor explaining why setup was confusing can be more useful than a chart showing issue counts.

Community metric table

Metric categorySignal measuredData sourceBias or gaming riskDecision it can inform
First responseWhether people receive attentionIssues, PRs, forumsAutomated replies inflate responseTriage coverage
Review turnaroundWhere work waitsPull requestsLarge changes skew averagesReviewer capacity
Contributor returnWhether people come backContribution historyOne-time help can still be healthyOnboarding friction
Maintainer concentrationWhether work depends on few peopleReviews, releases, permissionsHidden work may be invisibleRole sharing
Stale issuesWhether queues are maintainedIssue trackerStable projects may have fewer issuesTriage cleanup
Moderation incidentsWhether norms are stressedPrivate/public reportsPrivacy limits dataConduct and channel rules
Documentation gapsWhether users repeat confusionIssues, support, docs PRsSupport channels may be privateDocs priorities

Build a lightweight dashboard

A useful dashboard can be small. Choose five to eight signals tied to current project decisions. For example: first-response time for new issues, pull requests waiting for review, first-time contributor outcomes, release ownership distribution, stale docs issues, and moderation reports by channel.

Add plain-language interpretation. A graph without context can encourage bad behavior, such as closing issues quickly to improve numbers. Pair each metric with "what we do if this gets worse."

Review the dashboard at a regular project rhythm: release planning, monthly maintainer meeting, quarterly governance review, or documentation sprint. Metrics have value when they change behavior.

Avoid surveillance and vanity goals

Community metrics can become invasive if they track individuals too closely or turn volunteer work into performance management. Open source contributors are not employees unless a project has a separate employment relationship.

Avoid public leaderboards that pressure people to comment more, close more issues, or review faster without context. They can reward quantity over care and make maintainers hide hard work.

Use aggregated trends where possible. When individual data is necessary for role or access decisions, handle it with care and explain the expectation behind the role.

Worked example: overloaded reviews

A project sees that pull requests take three weeks to receive first review. The dashboard also shows that one maintainer handles most reviews and that documentation pull requests wait longer than code fixes.

The action is not simply "review faster." The project can create a docs reviewer role, label small reviewable changes, publish test expectations, and ask trusted contributors to review specific areas. It can also say which large proposals need design discussion before code.

After a month, the project checks whether docs pull requests receive review sooner and whether the main maintainer still handles most decisions. The metric becomes a feedback loop, not a score.

Worked example: newcomer drop-off

A project notices that first-time contributors open pull requests but rarely return. Reading a sample shows repeated setup failures, unclear test commands, and review comments that ask for undocumented style changes.

Useful fixes include updating setup docs, adding expected test output, improving issue labels, and making review comments more specific. A mentorship program may help later, but the first fix is the ordinary contribution path.

If contributors still leave after those changes, the project can inspect whether review waits are too long or starter issues are not actually beginner-safe.

Release and maintenance signals

Community health is connected to maintenance health. Release gaps, stale changelogs, unresolved dependency updates, and unowned packaging tasks can show that the project has fewer active maintainers than its users expect.

Do not judge a project by release frequency alone. Some stable tools do not need frequent releases. The useful signal is whether the project can respond when change is needed: security fixes, platform changes, dependency updates, compatibility breaks, and important documentation corrections.

Pair release signals with role signals. If only one person can publish, sign, or announce releases, the project has a continuity risk even when release history looks healthy.

Security and conduct signals

Security and conduct metrics should be handled with extra care. A public count of vulnerability reports or conduct incidents may expose sensitive context or encourage bad incentives.

Instead of publishing raw sensitive counts, projects can review whether security contacts work, whether reports receive acknowledgement, whether moderation decisions have backup, and whether repeat conduct problems are addressed.

The question is not whether the number is large or small. The question is whether the project has the capacity and authority to respond when the issue appears.

Reading metrics with project maturity

A new project, mature library, active application, foundation infrastructure project, and archived project should not be judged with the same expectations. New projects may have low contribution depth. Mature libraries may have few changes. Infrastructure projects may need stronger response and governance signals.

Compare metrics to the project’s own purpose and risk. A hobby utility with no public support promise should be evaluated differently from a dependency used by many downstream packages.

If metrics are used for adoption decisions, connect them to user risk: maintenance continuity, issue responsiveness, security process, documentation freshness, and release reliability.

Qualitative review sample

At least occasionally, read actual interactions behind the numbers. Pick a few first-time pull requests, stale issues, declined feature requests, documentation fixes, and moderation-heavy threads.

Look for patterns: reviewers explain decisions, contributors receive next steps, labels match reality, conduct issues are redirected, and maintainers are not carrying every queue alone.

This manual review catches problems that dashboards miss. A project can have acceptable median response time while treating complex reports poorly.

Choosing metric review owners

Metrics need owners just like code. If nobody is responsible for reviewing stale issues, first-time contributor friction, documentation queues, or maintainer load, the numbers will not change anything.

Assign ownership by area. Triagers can review issue aging. Documentation maintainers can review docs contribution flow. Release managers can review release bottlenecks. Governance groups can review role concentration and decision delays.

Ownership should not mean blame. It means someone brings the signal to the project and proposes a practical next step.

What not to measure

Some data is too sensitive, too easy to misuse, or too disconnected from decisions. Avoid collecting private identity information without a clear reason. Avoid ranking volunteers publicly by volume. Avoid measuring chat activity as if more messages always mean more health.

Also avoid metrics that encourage performative work, such as closing issues quickly without solving them or creating low-value pull requests to increase contribution counts.

If a metric cannot be interpreted responsibly, leave it out until the project has a safer question.

Better questions usually produce better metrics.

Health review checklist

Before adopting a metric:

  1. The metric answers a real project question.
  2. The project knows what action it might take.
  3. The data source is understood.
  4. Privacy and contributor dignity are protected.
  5. The metric is segmented by work type where needed.
  6. Qualitative review accompanies numeric trends.
  7. The metric cannot be improved by making the community worse.

Community health cannot be reduced to one number. The best metrics help maintainers ask better questions and make participation easier, more sustainable, and more honest.