Group reporting β
The Groups module surfaces three categories of reports: roster reports (who's currently in each group), member-count reports (how groups are sized and how that's trending), and attendance reports (engagement per group over time). All three are reads against the same groups / group_members / attendances tables; the difference is the lens.
This article covers what each surface answers, how to export, and where the data shows up across the rest of GCM.
The Groups list as a report β
The simplest report is the Groups list itself. Each card shows:
- The group's name and description.
- The current member count as a big tabular number (re-computed live every page load).
- The group's org unit chip, if assigned.
The page header sums it up: "N groups with M total members" across whatever filter you've applied. Combine that with the search box and the hierarchy cascading filter at the top and you've got a quick read on how groups are distributed across your campuses or branches.

For a single campus pastor: pick your campus in the hierarchy filter and the numbers narrow to your scope.
Roster export from the group detail page β
The full roster for a single group exports from the View all button on the group detail page. That button doesn't dump a CSV directly β it deep-links to the Members page with the group's filter already applied. From the Members page you can:
- Choose which member fields to include in the export β phone, email, custom fields, the works.
- Click Export in the top-right.
- Download a CSV with one row per group member.
This indirection is intentional. It means the export honors the same permissions, the same column config, and the same locale/formatting as every other member export β there's no separate code path for group rosters. If you can export from Members, you can export a group's roster.
TIP
The deep-link URL is /members?group=<group_id>&label=<group name>. You can bookmark it or paste it into a Slack channel β anyone with members.view and groups.view can follow the link and land on the same filtered view.
For bulk roster pulls across multiple groups, run the export from Members with a Group is one of (...) filter rather than visiting each group page individually.
Member counts per group β
The card count on the Groups list is the live read, but you can also build dashboard widgets and recurring reports off the same number.
Dashboard widget β
The dashboard supports a chart source called Group Members that aggregates the group_members table:
- Measure: count
- Group by: group_id (rendered as the group's name)
- Filter: date range β or no date filter, for "current roster size per group"
The result is a bar chart of members per group, sortable largest-to-smallest. Add it to your home dashboard from Dashboards and you've got a constantly-updating leaderboard of group health.
For per-org-unit comparisons (which campuses have larger home groups?), add a second group-by on org_unit_id β the chart stacks groups by campus.
Per-period growth β
To see how each group is growing, change the date column on the same source. The group_members table carries a created_at so a per-month bar chart of new memberships shows you which groups are growing fastest. Pair this with the lost-member workflow β if a group's adds are outpaced by its losses, the chart catches it before the leader does.
Attendance trends per group β
Group attendance flows through the same Attendance module as Sunday service β see Group attendance for the underlying model. The reporting hooks:
On the group detail page β
The attendance chart on the group's detail page shows one bar per meeting occurrence within the chosen date range. This is the leader's at-a-glance view β "is my group's attendance climbing, flat, or dropping?"
In the Attendance Reports module β
For deeper analysis, go to Attendance β Reports and filter by the group's meeting. The Reports module supports:
- Grouping by week, month, or quarter.
- Comparing the trend to the overall service-attendance trend (is your group tracking with the org or diverging?).
- Exporting the raw attendance rows to CSV β useful for pastoral debriefs and quarterly elder reviews.
Across groups β
To compare multiple groups against each other, build a custom chart on the Attendance source with a group_id group-by (via the meeting β group join). The dashboard then shows attendance count per group as separate bars or as a stacked area chart. Useful for leadership team meetings β "Westside is steady, Eastside is dropping, Downtown is climbing."
Submitting a periodic group report β
Some churches require group leaders to submit a weekly group report β how many came? what was the topic? any pastoral concerns?. GCM ships this as a generic Reports capability rather than a group-specific form:
- Create a report template called Weekly Group Report. Include fields for date, topic, attendance count, prayer requests, follow-ups.
- Configure who has to submit it β typically every member with the Group leadership role custom field set.
- Set the cadence β weekly, due by Wednesday for Tuesday groups, etc.
- Group leaders submit the report from their phone after each meeting.
Submitted reports roll up to a single dashboard for the pastoral team β see Reports overview for the full surface. Combine the count submitted with the attendance chart from the previous section to get a complete picture: did the meeting happen, who came, and what did the leader notice?
Permissions β
| Action | Required permission |
|---|---|
| See group cards and counts | groups.view |
| Open group detail and attendance chart | groups.view |
| Export the roster (via Members deep-link) | groups.view + members.export |
| Build dashboard widgets on groups | reports.view (dashboards) |
| Submit / read periodic group reports | reports.submit / reports.view |
Unit-scoped pastors only see groups inside their scope on the Groups list, and the dashboard widgets respect the same scoping β a regional pastor's members per group widget only shows their region's groups, with the org-wide totals filtered out.
A note on what's not yet built β
A few group-specific report surfaces are on the roadmap but not shipped today:
- A built-in group-leader scorecard page that surfaces roster size, attendance rate, and recent submitted reports per leader.
- Group lifecycle analytics β average age of groups, churn rate, growth curve.
- Multiplication tracking β when one group splits into two, GCM doesn't yet carry that lineage automatically.
If any of these are blocking your team's reporting, open a feature request with the concrete use case β that's how priorities get set.
Next steps β
- Add members β make sure the roster is current before pulling a report.
- Group attendance β the data source under the trend charts.
- Reports overview β schedule recurring group reports across leaders.
- Compare with Ministry attendance β the analogous reporting on the ministries side.