Ministry attendance and reporting β
Counting bodies in seats is the most basic measure of ministry health. GCM ties attendance to ministries through a single field on the attendances table β ministry_id β and the ministry detail page surfaces every attendance record tagged with that ministry as a chart you can filter by date range and meeting type.
This article covers how attendance gets attributed to a ministry, how to read the chart, and how to drill into the underlying data.
How a meeting becomes a ministry meeting β
Every attendance record lives against a meeting β a recurring or one-off event like Sunday Service, Worship Rehearsal, Ushers' Huddle, Wednesday Bible Study. Meetings are configured in Meetings setup and each one has an optional ministry field.
When you create or edit a meeting:
- Open Calendar β Meetings.
- Pick a meeting (or create one).
- In the meeting's settings, set the Ministry field to the relevant ministry.
- Save.
From that point on, every attendance record marked against that meeting β whether through the check-in station, manual marking, or bulk attendance β carries the ministry_id and shows up on the ministry's chart.
TIP
A meeting can only be tagged with one ministry. If a single event serves multiple ministries (e.g. a combined worship-and-media rehearsal), the cleanest path is two separate meetings on the same time block β one tagged Worship, one tagged Media β and mark attendance against each. The check-in station handles overlapping meetings gracefully.
Reading the attendance chart β
Open any ministry from the Ministries list. Below the ministry header card sits the attendance chart β a bar chart of attendance counts over time.

The chart has three filters:
- Meeting β leave blank to see attendance across every meeting tagged with this ministry, or pick one specific meeting (e.g. just Worship Rehearsal) to isolate that.
- Start date β defaults to one month ago.
- End date β defaults to today.
Each bar represents one meeting occurrence within the range, with the count above. Hover any bar for the exact date and total. Click a bar to jump to that specific attendance record in the attendance module β useful for drilling in when a number looks off.
If the ministry has no attendance records yet, the chart shows an empty state with a hint about linking meetings.
What counts as "attendance" β
The chart counts unique members marked present for a meeting tagged with this ministry. Specifically:
- Counted: members marked present, late, or attending-virtually.
- Not counted: members marked absent, excused, or with no record.
- Not counted: visitors marked through the check-in station who aren't yet members.
- Not counted: attendance records on meetings not tagged with this ministry, even if the people present are on the ministry roster.
That last point trips teams up. If your worship team rehearses at a meeting you forgot to tag with Worship, those rehearsals don't appear on the Worship ministry chart. Tag the meeting and the data backfills retroactively β no manual data entry needed.
Cross-checking against the roster β
A common question after pulling up the chart: "Why are only 12 people in the bar when we have 20 on the roster?"
The answer is usually one of three things:
- Roster includes inactive members. People who haven't actually shown up in months are still on the join table. Use Active vs lost members to clean up dormant entries.
- Some meetings weren't marked. Attendance only counts what was recorded. If the rehearsal happened but no one took attendance, the chart doesn't know.
- Wrong meeting selected. If you filtered to Sunday Service instead of leaving the meeting filter blank, you only see the worship team that's on the Sunday-morning roster β which might be a smaller subset.
Reporting beyond the chart β
The ministry detail page chart is the quickest read. For deeper reporting:
- Attendance reports β go to Attendance β Reports, filter by ministry, group by month or week, and export the raw data.
- Dashboards β the Engagement widget on the home dashboard shows attendance by ministry across the org β useful as a leadership at-a-glance.
- Custom reports β the Reports module lets you build a recurring "ministry health" report that aggregates roster size, attendance, and recent additions per ministry. Schedule it monthly to your ministry leads.
Comparing ministries β
To compare attendance trends across ministries (e.g. Worship vs Ushers over the last quarter), use the Engagement widget on the dashboard rather than the per-ministry chart. The per-ministry chart is single-axis; the engagement widget supports stacking and comparison.
If you need a one-off side-by-side, open each ministry in a separate browser tab β the charts use the same scale by default and your eye can compare quickly.
Why isn't there a "ministry attendance percentage"? β
Because the denominator is a moving target. How many roster members were available this week? depends on travel, illness, rotation schedules, and other ministries someone might be serving in. A flat X out of Y number gives a false sense of precision.
The chart instead shows absolute counts, which is honest data. If you want a percentage for governance reporting, divide by the roster size manually (or pull both into the Reports module where the math is explicit).
Permissions β
| Action | ministries.view | ministries.manage |
|---|---|---|
| Open ministry detail page | yes | yes |
| See the attendance chart | yes | yes |
| Filter the chart | yes | yes |
| Drill into individual attendance records | depends on attendance.view | depends on attendance.view |
The chart respects attendance permissions β if a user can see ministries but not attendance details, the chart still renders (it's aggregate data) but clicking a bar won't open the underlying record.
Next steps β
- Add members β make sure the roster is complete before reading the chart.
- Mark attendance manually β for back-filling past rehearsals.
- Reports overview β schedule recurring ministry health reports.