Skip to main content
The Reports page gives at-a-glance org stats and a place to save named report configurations for later.

Live stats (top)

Four stat cards:
  • Active users — count of users with active = true
  • Shifts logged — total shifts in the database
  • Pending trades — count of trade requests in pending
  • Pending absences — count of absence requests in pending

Saved reports (table)

Each saved report has:
  • Name
  • Kind (Hours / Attendance / Overtime / Coverage / Time bank / Trades)
  • Owner
  • Shared flag
In this version, Reports is a lightweight scaffolding — the actual charting and export aren’t yet implemented. Kinds map to planned report types; saving a report stores the config for when those views ship.

Save a report

Fill the form:
  • Name — required
  • Kind — pick from the dropdown
  • Shared — if checked, visible to anyone with reports.view
Click Save. Future you (or your teammates) can open it once the corresponding visualization lands.

Planned kinds

Hours worked

Regular vs. OT by user or group over a period.

Attendance

Unscheduled absences, tardiness (future clock-in data).

Overtime distribution

Who’s getting the most OT? Helps enforce fairness policies.

Coverage analysis

Historical coverage vs. plan — where have we been under-staffed?

Time bank

Balances across the org; burn-rate by type.

Trade activity

Who’s trading with whom? Any pattern that suggests burnout?

Required permissions

  • reports.view — see the page and saved reports
  • reports.manage — save/edit reports
Supervisor has view only. Admin has both.