high complexity high priority must have MVP extracted Bufdir Reporting & Analytics Confidence: 100%
6
Components
0
Shared
12
User Stories
Yes
Analyzed

Description

This feature gives coordinators and organization administrators a comprehensive reporting dashboard covering all peer mentors and activities within their scope. Reports can be filtered by area, organization level, date range, and activity type. The coordinator dashboard aggregates statistics across multiple peer mentors, local associations, regions, and national levels depending on the user's role and organizational scope. Export capabilities allow coordinators to share data with leadership or use it for internal planning.

Analysis

Business Value

Coordinators are responsible for oversight of multiple peer mentors and must report activity levels to regional and national leadership. Without aggregated dashboards, coordinators rely on manual collection of individual reports — a process prone to delays, omissions, and errors. NHF's 9 regions and 1,400 local associations require hierarchical reporting that currently involves manual Excel aggregation. Providing coordinators with real-time dashboards reduces administrative overhead, improves data accuracy, and enables timely identification of underperforming areas or inactive peer mentors. This feature is essential for organizational accountability and strategic planning at all levels.

Implementation Notes

The Coordinator Report Service enforces role-based data scoping: coordinators see only their assigned local association, regional coordinators see their region, national admins see all. Scoping logic maps directly to the user_organization_memberships and org_structure tables. The Report Filter Widget supports multi-select filters for area, activity type, date range, and peer mentor status. Heavy aggregation queries run as Supabase RPCs or edge functions to avoid N+1 patterns. The Coordinator Stats Repository caches results per scope-key with invalidation on new activity records. Export generates CSV with column headers matching coordinator expectations from current Excel workflows to ease transition.

Dependencies

personal-activity-statisticsrole-based-access-controlorg-structure-management

Definition of Done

Dashboard displays correct aggregated statistics for coordinator's organizational scope
Hierarchical scoping enforced: coordinator cannot access data outside their assigned area
Report filter widget correctly narrows results for all supported filter combinations
CSV export contains all required columns and correct data
Dashboard accessible to screen readers with proper table semantics
Performance: aggregated report for 50+ peer mentors loads within 3 seconds
Role-based access control integration verified: peer mentor role cannot access coordinator dashboard

User Stories (12)

Compare Activity Trends Across Reporting Periods
medium 5 pts

As a As a user

I want I want to compare activity volumes between two date ranges or across equivalent periods in different years

So that So that I can identify whether activity levels are growing, stable, or declining within my scope, and use this trend data to justify resource allocation decisions or respond to leadership questions about program health

Acceptance Criteria
  • Given the user selects a primary reporting period and a comparison period, when the dashboard refreshes, then both periods' activity totals are displayed with a calculated percentage difference
  • Given two periods are being compared, when the user views activity charts, then both trend lines are rendered with distinct visual treatment (color or line style) and a legend identifying each period
  • Given the current period shows a decline compared to the reference period, when the user views the comparison, then the difference is highlighted in a visually distinct way to draw attention
  • +3 more
View Full Story →
Compare Activity Trends Across Reporting Periods
medium 5 pts

As a As a user

I want I want to compare activity volumes between two date ranges or across equivalent periods in different years

So that So that I can identify whether activity levels are growing, stable, or declining within my scope, and use this trend data to justify resource allocation decisions or respond to leadership questions about program health

Acceptance Criteria
  • Given the user selects a primary reporting period and a comparison period, when the dashboard refreshes, then both periods' activity totals are displayed with a calculated percentage difference
  • Given two periods are being compared, when the user views activity charts, then both trend lines are rendered with distinct visual treatment (color or line style) and a legend identifying each period
  • Given the current period shows a decline compared to the reference period, when the user views the comparison, then the difference is highlighted in a visually distinct way to draw attention
  • +3 more
View Full Story →
Export Filtered Report Data as CSV
high 3 pts

As a As a user

I want I want to export the currently filtered dashboard report data as a CSV file with column headers matching the coordinator's existing Excel workflow expectations

So that So that I can share data with leadership, import it into existing reporting tools, or archive it for audit purposes without needing to manually transcribe or reformat data

Acceptance Criteria
  • Given the dashboard is displaying filtered data, when the user taps the export button, then a CSV file is generated and made available for download or sharing
  • Given a CSV is exported, when the user opens it, then column headers match the field names used in the organization's existing Excel reporting templates
  • Given filters are active when export is triggered, when the CSV is generated, then it contains only rows matching the active filter criteria, not the full unfiltered dataset
  • +3 more
View Full Story →
Filter Dashboard Data by Multiple Criteria
high 5 pts

As a As a user

I want I want to filter the dashboard data using stacked criteria including area, organization level, date range, activity type, and peer mentor status

So that So that I can drill into specific segments of my reporting data to identify trends, compare periods, or prepare targeted reports for leadership without needing to export data and manipulate it externally

Acceptance Criteria
  • Given the dashboard is open, when the user opens the filter panel, then filter options for area, date range, activity type, and peer mentor status are presented
  • Given a date range filter is applied, when the dashboard refreshes, then all metrics and charts reflect only activities within that date range
  • Given multiple filters are applied simultaneously, when the dashboard updates, then results match all applied filter criteria (AND logic between filter dimensions)
  • +3 more
View Full Story →
Identify Inactive or Underperforming Peer Mentors
high 5 pts

As a As a Coordinator

I want I want to see which peer mentors in my scope have had no registered activities within a configurable recent period

So that So that I can proactively follow up with inactive peer mentors before they disengage, addressing the survey finding that 40% of peer mentors felt under-followed-up by coordinators

Acceptance Criteria
  • Given the coordinator opens their dashboard, when they view the inactivity section, then a list of peer mentors with no registered activities in the last 30 days (default) is shown
  • Given the coordinator applies a custom date range filter, when the dashboard refreshes, then the inactivity list reflects peer mentors inactive within that specific period
  • Given a peer mentor registers a new activity, when the coordinator refreshes the dashboard, then that peer mentor is removed from the inactivity list
  • +3 more
View Full Story →
Export Filtered Report Data as CSV
high 3 pts

As a As a user

I want I want to export the currently filtered dashboard report data as a CSV file with column headers matching the coordinator's existing Excel workflow expectations

So that So that I can share data with leadership, import it into existing reporting tools, or archive it for audit purposes without needing to manually transcribe or reformat data

Acceptance Criteria
  • Given the dashboard is displaying filtered data, when the user taps the export button, then a CSV file is generated and made available for download or sharing
  • Given a CSV is exported, when the user opens it, then column headers match the field names used in the organization's existing Excel reporting templates
  • Given filters are active when export is triggered, when the CSV is generated, then it contains only rows matching the active filter criteria, not the full unfiltered dataset
  • +3 more
View Full Story →
Filter Dashboard Data by Multiple Criteria
high 5 pts

As a As a user

I want I want to filter the dashboard data using stacked criteria including area, organization level, date range, activity type, and peer mentor status

So that So that I can drill into specific segments of my reporting data to identify trends, compare periods, or prepare targeted reports for leadership without needing to export data and manipulate it externally

Acceptance Criteria
  • Given the dashboard is open, when the user opens the filter panel, then filter options for area, date range, activity type, and peer mentor status are presented
  • Given a date range filter is applied, when the dashboard refreshes, then all metrics and charts reflect only activities within that date range
  • Given multiple filters are applied simultaneously, when the dashboard updates, then results match all applied filter criteria (AND logic between filter dimensions)
  • +3 more
View Full Story →
View Hierarchical Cross-Level Organization Statistics
high 8 pts

As a As a Organization Administrator

I want I want to view aggregated statistics broken down by national association, region, and local association levels simultaneously

So that So that I can compare activity levels across the organizational hierarchy, identify which regions or local associations are underperforming relative to their size, and present accurate data to national leadership and Bufdir without manual aggregation

Acceptance Criteria
  • Given an authenticated organization administrator, when they open the coordinator dashboard, then aggregate statistics for the full national scope are shown as the top-level view
  • Given the administrator selects a specific region in the filter widget, when the dashboard updates, then statistics are narrowed to all local associations within that region
  • Given the administrator selects a specific local association, when the dashboard updates, then statistics match what a coordinator scoped to that association would see
  • +3 more
View Full Story →
Enforce Automatic Role-Based Data Scoping on All Report Queries
critical 5 pts

As a As a user

I want I want all report data I see to be automatically scoped to my authorized organizational level without requiring manual configuration

So that So that I can trust the data I see is accurate for my responsibilities and I cannot accidentally or intentionally access data outside my authorized scope, protecting peer mentor privacy and organizational data integrity

Acceptance Criteria
  • Given a coordinator authenticated under local association A, when they access any dashboard metric, then only data attributable to local association A is returned
  • Given an organization administrator, when they access dashboard metrics, then data from all associations and regions within the organization is included
  • Given a user's scope changes (e.g., role updated by admin), when they next load the dashboard, then the new scope is applied and previously cached data for the old scope is not served
  • +3 more
View Full Story →
View Aggregated Coordinator Dashboard
critical 8 pts

As a As a user

I want I want to see an aggregated dashboard showing key metrics for all peer mentors and activities within my organizational scope

So that So that I can immediately understand the overall activity level, identify areas needing attention, and have a single authoritative source of truth instead of manually collecting individual reports

Acceptance Criteria
  • Given an authenticated coordinator, when they open the coordinator dashboard, then they see aggregated metrics scoped exclusively to their assigned local association
  • Given an authenticated organization administrator, when they open the coordinator dashboard, then they see aggregated metrics spanning the entire organizational hierarchy
  • Given the dashboard is loaded, when the user views it, then total active peer mentors, total activities in the current period, and activity trend indicators are all visible
  • +3 more
View Full Story →
Enforce Automatic Role-Based Data Scoping on All Report Queries
critical 5 pts

As a As a user

I want I want all report data I see to be automatically scoped to my authorized organizational level without requiring manual configuration

So that So that I can trust the data I see is accurate for my responsibilities and I cannot accidentally or intentionally access data outside my authorized scope, protecting peer mentor privacy and organizational data integrity

Acceptance Criteria
  • Given a coordinator authenticated under local association A, when they access any dashboard metric, then only data attributable to local association A is returned
  • Given an organization administrator, when they access dashboard metrics, then data from all associations and regions within the organization is included
  • Given a user's scope changes (e.g., role updated by admin), when they next load the dashboard, then the new scope is applied and previously cached data for the old scope is not served
  • +3 more
View Full Story →
View Aggregated Coordinator Dashboard
critical 8 pts

As a As a user

I want I want to see an aggregated dashboard showing key metrics for all peer mentors and activities within my organizational scope

So that So that I can immediately understand the overall activity level, identify areas needing attention, and have a single authoritative source of truth instead of manually collecting individual reports

Acceptance Criteria
  • Given an authenticated coordinator, when they open the coordinator dashboard, then they see aggregated metrics scoped exclusively to their assigned local association
  • Given an authenticated organization administrator, when they open the coordinator dashboard, then they see aggregated metrics spanning the entire organizational hierarchy
  • Given the dashboard is loaded, when the user views it, then total active peer mentors, total activities in the current period, and activity trend indicators are all visible
  • +3 more
View Full Story →