Skip to content

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.

Groups list as a report

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:

  1. Choose which member fields to include in the export — phone, email, custom fields, the works.
  2. Click Export in the top-right.
  3. 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.

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 reporthow many came? what was the topic? any pastoral concerns?. GCM ships this as a generic Reports capability rather than a group-specific form:

  1. Create a report template called Weekly Group Report. Include fields for date, topic, attendance count, prayer requests, follow-ups.
  2. Configure who has to submit it — typically every member with the Group leadership role custom field set.
  3. Set the cadence — weekly, due by Wednesday for Tuesday groups, etc.
  4. 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

ActionRequired permission
See group cards and countsgroups.view
Open group detail and attendance chartgroups.view
Export the roster (via Members deep-link)groups.view + members.export
Build dashboard widgets on groupsreports.view (dashboards)
Submit / read periodic group reportsreports.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