What is community member growth rate?
Definition
Member growth rate is the percentage change in community members from one period to the next. Gross growth counts joins only and never falls; net growth subtracts the members who went inactive and is the number worth reporting. Both depend entirely on how you define an active member — a 30-day activity window and a 90-day one produce different communities from the same data.
What data do you need?
- A member table with a stable member ID and join timestamp
- Activity events (posts, replies, reactions, logins) with member IDs and timestamps
- A written definition of 'active', including the window and the qualifying signals
- Deletion or anonymization flags so removed accounts are handled deliberately
- Acquisition source, if growth is to be attributed to channels
SQL pattern
WITH monthly_active AS (
-- Active = posted or replied in the month. State the definition on the
-- dashboard; every other choice yields a different growth rate.
SELECT
date_trunc('month', created_at)::date AS month,
COUNT(DISTINCT member_id) AS active_members
FROM community_posts
WHERE created_at < date_trunc('month', CURRENT_DATE)
GROUP BY 1
)
SELECT
month,
active_members,
active_members - LAG(active_members) OVER (ORDER BY month) AS net_change,
ROUND(
100.0 * (active_members - LAG(active_members) OVER (ORDER BY month))
/ NULLIF(LAG(active_members) OVER (ORDER BY month), 0), 1
) AS growth_pct
FROM monthly_active
ORDER BY month;Common pitfalls
Where does this metric apply?
This metric commonly uses data from Discourse, Circle, Discord, Slack, Bettermode, plus any warehouse models built on exported community and event records at the same grain.