Groups Analytics
The terms, scoring systems, and report formats behind a working church groups analytics system. No SQL. No code. Just the decisions and definitions you need to build your own. See the reports in action.
This is the spec behind the reports on the Groups Analytics page. It covers the terms we defined, how we score engagement and maturity, and what each report includes.
The hardest part of building a reporting system isn't the code. It's making decisions. What counts as "active"? When does someone go from "inconsistent" to "gone"? What does a healthy group look like in numbers? This page is how we answered those questions. Use it as a starting point and adjust the thresholds to fit your context.
Foundation
Your church management system needs to provide these four categories of data. Most systems already track this. You just need to get it out.
Name, capacity (member limit), schedule, creation date, archived status. You need to know which groups are currently active versus which ones have closed.
Date, time, location, canceled status. Every group meeting is an event. Canceled events should be tracked separately from events where nobody showed up.
Who was on the roster for each event and who actually showed up. A roster entry is not the same as attendance. Someone can be on the roster and marked as not attended.
Custom fields you define in your system: active on a serve team, active in giving, baptized. These power the Maturity Index and other custom metrics you build.
Definitions
Every person in every group gets exactly one label based on their attendance pattern, membership status, and connection to other groups. These labels drive coaching conversations and follow-up.
| Category | Threshold | Conditions |
|---|---|---|
| Consistent | ≥ 75% | Attended 6+ of the last 8 events. |
| Regular | ≥ 50% | Attended about half of the last 8 events. |
| Inconsistent | ≥ 25% | Attended 2 of the last 8 events. |
| Rare | > 0% | Has prior attendance but barely showing up. |
| Inactive | 0% | Still on the roster. Has attended before. Hasn't come to any of the last 8 events. This is your pastoral follow-up list. |
| Other Group | 0% | Left this group but attended another group after leaving. This is a positive outcome, not a failure. Connection is connection. |
| No Longer Attending | 0% | Off the roster. No other group connection. Left within the past 16 weeks. Priority outreach candidates. |
| Left Group | 0% | Off the roster. No other group connection. Left more than 16 weeks ago. Longer-term departure. |
| New | 0% | Just joined the roster. 4 or fewer events have happened since they were added. They haven't had enough chances yet. |
| New - No Attend | 0% | On the roster. More than 4 events have happened since they were added. Never attended. Needs outreach. |
Scoring
A composite score that weighs four factors. The weights reflect what we believe matters most: showing up recently and consistently, with a bonus for tenure and leadership.
Based on the 90-day engagement rate. How often have they shown up in the last three months?
Based on the last 8 events attendance rate. Rewards people who are showing up now, not just historically.
Group leaders receive 15 points. Leadership is a significant commitment that reflects engagement.
Based on months in the group. Someone who's been around for two years is more rooted than someone in month two.
| Score | Level |
|---|---|
| ≥ 75 | Highly Engaged |
| ≥ 50 | Engaged |
| ≥ 25 | Moderately Engaged |
| > 0 | Low Engagement |
| 0 | Inactive |
Custom Metric
This is where you get creative. The Maturity Index is a simple scoring system I built to track where someone is on their growth path. One point for each dimension of connection. Your church might define this differently, and that's the point.
They're showing up and investing time with other people. This is the first step.
They're using their gifts and contributing to the church beyond their own group.
They're financially invested. This is often the last step and the strongest signal of rootedness.
Formats
Each report answers a different question. Here's what columns they contain and what level they operate at.
One row per active group
Group name, leader, enrolled count, capacity, openings (enrolled minus capacity), sign-ups this semester, no-shows (signed up but never attended), join rate, members who left, semester attendance rate, team engagement percentage, maturity index average.
One row per person per group
Name, group, attendance category, last 4 events rate, last 8 events rate, semester rate, all-time rate, engagement level, engagement score, last attended date, weeks since last attended, join date, tenure, baptized, active team, maturity score, day/time/location.
One row per missing event
Leader name, group name, missing event date, days since event, direct link to event in your church management system.
Grouped by location and group type
Location, group type (married, men's, women's, etc.), number of groups, total enrolled, total capacity, fill percentage.
Grouped by day of the week
Day, number of groups, total joined, total left, net change, average net change per group, churn rate.
One row per leader stint
Leader name, start date, end date (or active), tenure in years, semesters led, phase (new, critical window, established, veteran).
The capacity and retention reports only work if your groups are consistently tagged. At minimum, tag every group by:
Day of the week (Monday, Tuesday, etc.), time slot (morning, evening), group type (married, men's, women's, family), and location (neighborhood, campus, or online).
Use your church management system's built-in tagging or custom fields. The key is consistency. If one group is tagged "Monday" and another is tagged "Mon," your reports break. Pick a convention and enforce it.
Reference
| Term | Definition |
|---|---|
| Enrolled | Current number of people on a group's roster. Determined by who appears in the most recent event's attendance records. |
| Capacity | The member limit set for the group in your church management system. Openings = capacity minus enrolled. |
| Sign-ups | People who were added to the group roster during the current semester, whether or not they ever attended. |
| No-shows | People who signed up but never attended a single event. Sign-ups minus people who have at least one attendance. |
| Join Rate | Percentage of sign-ups who actually showed up at least once. (Sign-ups minus no-shows) divided by sign-ups. |
| Churn Rate | Number of people who left divided by current enrollment. Over 100% means more people left than are currently in the group. |
| Team Engagement | Percentage of current group members who are also active on a serve team. |
| Attendance Rate | Events attended divided by events on the roster. Calculated at multiple windows: last 4 events, last 8 events, semester, and all-time. |
| Active Group | A group that is not archived. In most systems, this means the archive date field is empty/null. |
| Canceled Event | A scheduled event that was explicitly canceled. Different from an event where nobody showed up. Canceled events should be excluded from attendance calculations. |
| Leader Phase | Based on tenure: New (0-6 months), Critical Window (6-15 months), Established (15-36 months), Veteran (36+ months). |
I built this for my church and I can help you figure it out for yours. If you want to walk through how to adapt these definitions to your context, let's talk.
Book Time with Nick