Reports & BI β Flutter vs React parity audit β
Date: 2026-06-09. Authoritative matrix: CROSS_PLATFORM_PARITY.md.
Summary β
| Surface | Status | Notes |
|---|---|---|
| React SPA | β Full | Custom report authoring, scheduled reports, dense multi-chart layouts |
| Flutter mobile | π‘ Read/analyze | All 14 staff report routes wired; data-backed charts on KPI/market/leaderboard/HR |
| Flutter Web | π‘ Same as mobile | Chart density reduced for small viewports (intentional) |
Flutter is not missing route coverage β gaps are authoring and layout depth, not navigation.
Screen mapping (14 Flutter routes) β
| Flutter route | Web equivalent | Parity |
|---|---|---|
/reports/kpi | /brokerage/reports/stats, /kpi | β KPI cards + 6m closed-deals trend |
/reports/leaderboard | /leaderboard, /brokerage/reports/leaderboard | β Bar chart + ranked list + Excel export |
/reports/market | /brokerage/reports/market | β MoJ volume trend + top areas (90d) |
/reports/hr | /brokerage/reports/hr | β Headcount + role donut |
/reports/agents | /brokerage/reports/agents | β Per-agent scorecards |
/reports/financial | /brokerage/reports/financial | β Revenue / AR aging summaries |
/reports/builder | /brokerage/reports/builder | π‘ Read-only saved report list; authoring stays on web |
/reports/executive-summary | /brokerage/reports/executive | π‘ KPI tiles (web adds more chart panels) |
/reports/productivity | /brokerage/reports/productivity | β Agent productivity metrics |
/reports/satisfaction | /brokerage/reports/satisfaction | β CSAT / NPS style dashboard |
/reports/sla | /sla | β SLA breach dashboard |
/reports/lead-source | /lead-source-roi | β Lead-source ROI |
/reports/agent-leaderboard | /brokerage/reports/agent-leaderboard | β Alternate leaderboard view |
/brokerage/reports/commissions | same | β Commission tracking |
Deep-link aliases added in inbound_route_normalizer.dart for market, HR, agent-leaderboard, and leaderboard web paths (2026-06-09).
Intentional web-only (not a Flutter bug) β
- Custom Report Builder authoring β drag/drop dimensions, live chart preview.
- Scheduled report CRUD β email delivery configuration.
- Executive summary β full multi-panel print layout.
Mobile shows saved reports metadata and links staff back to web for edits (saved_reports_screen.dart header comment).
Automated guards β
test/features/reports/reports_route_parity_test.dartβ route + web alias table.test/core/navigation/web_routes_parity_test.dartβ global SPA snapshot parity.- Widget smoke coverage noted in
docs/QA_FINDINGS.md(all 13 report screens mount).
Remaining follow-ups (post-v1) β
- Arabic-locale goldens for KPI + leaderboard charts.
- Optional: in-app βOpen in web builderβ CTA on
SavedReportsScreenempty state.
