API — Reports
Purpose
Operational reports: the daily and monthly roster reports, the reconciliation variance report, and the utilization metric — each as JSON plus, for the roster/variance reports, .xlsx and .pdf exports.
Auth & roles
- Roster reports — base
/api/reports·roster.view. - Variance & utilization —
reconciliation.view.
See the RBAC matrix.
Endpoints
| Method | Path | Purpose | Gate |
|---|---|---|---|
| GET | /api/reports/daily-roster (+ .xlsx, .pdf) |
Daily roster report | roster.view |
| GET | /api/reports/monthly-roster (+ .xlsx, .pdf) |
Monthly roster report | roster.view |
| GET | /api/reports/variance (+ .xlsx, .pdf) |
Reconciliation variance report | reconciliation.view |
| GET | /api/reports/utilization |
Utilization metric | reconciliation.view |
Shapes & errors
Daily/Monthly roster + Variance reports render as JSON with .xlsx (export) and .pdf (QuestPDF, RTL-aware) variants. Standard ProblemDetails.
Gotchas
- Utilization and equalization are JSON-only — no export variant, no charts (sheet 17). The dashboard tiles are counts, not visualizations.
- No chart library anywhere in the product — reports are tabular JSON / spreadsheet / PDF (sheet 17).
- PDF exports are RTL-aware (Arabic) — they reuse the daily-roster PDF exporter pattern.
Build status
Partial — daily/monthly roster + reconciliation reports (JSON + xlsx + pdf) and the manager dashboard tiles are LIVE; utilization/equalization are JSON-only; no charts (sheet 17).
Related
- View dashboard & reports (task)
- Attendance — reconciliation source.
- Swagger:
/swagger· Fact sheet 17 (reports & dashboards).