Analytics
Analytics is read-only: changing a date or bucket changes the report, not a member, event, or application.
Access
| Area | Prerequisite | Permission | Result |
|---|---|---|---|
| Analytics | None identified | community-analytics:read | Application, rank, unit, qualification, award, retention, and activity reports. |
| Attendance | Existing event/campaign/profile attendance data | community-analytics:read | Attendance status, non-response, unit coverage, timeline, trend, and profile summaries. |
| Votes | vote_analytics feature | community-vote-analytics:read | Vote/token summary, trend, platform, audience, and expiry forecast. |
The vote route checks both its permission and feature. A missing feature is not fixed by assigning a broader staff role.
Community analytics
- Open Analytics.
- Choose Bucket: day, week, month, half-year, or year.
- Set Start date and End date. Reset returns to C2’s recent default range (the previous six months through today).
- Read the cards and charts together: application funnel/trend/SLA, rank distribution, unit slots, qualification coverage, award velocity, retention, and activity heatmap.
| Control | Result | Risk / check |
|---|---|---|
| Bucket | Groups time-based reports at the chosen granularity. | A coarse bucket can hide short-lived changes; use day or week before investigating a recent incident. |
| Start date / End date | Limits reports that accept a date range. | An empty chart can mean no records match the range, rather than missing data. |
| Reset | Restores the default range. | It discards the currently selected dates in the page. |
Some cards do not receive the date controls from the C2 page. Do not compare their totals to a filtered chart as if both used the same range.
Attendance analytics
Open Analytics > Attendance to review attendance already recorded against events, campaigns, units, and profiles. The page presents status distribution, campaign status distribution, no-response members, unit coverage, campaign timeline, status trend, and a profile summary.
There are no edit or attendance-status controls on this page. Use the event and attendance workflows to correct data, then return here to verify the result. A no-response row is a reporting result; it does not prove a member deliberately declined or saw an invitation.
Vote analytics
Open Analytics > Vote analytics, select hour, day, or week, set the date range, then review:
- summary KPIs;
- vote/token trend;
- web versus Discord platform split;
- anonymous versus authenticated audience split; and
- expiry forecast.
Use Reset to restore the default recent 30-day range. The forecast is an estimate of upcoming expiry totals; it is not a promise of future voting activity.
Verification notes
The API guards its analytics controller with community-analytics:read; the vote endpoints additionally use community-vote-analytics:read and vote_analytics. C2 does not call usePermissionCheck in the general or attendance page source, so confirm route/sidebar behaviour with a role that lacks community-analytics:read before treating the client as the sole access control.