Appearance
A13 — Staff overview and campaign analytics views
Status: blocked. Updated: 2026-09-06. Assigned agent: unassigned. Implementation PR: none.
Issues and acceptance covered
#52. The acceptance boundary is the implementation scope and completion checks below; see the issue acceptance matrix for parent coverage. Shared definitions: financial contract; proof anchors: evidence index.
Dependencies and blockers
A02/A06 backend contracts, A11 shared exact formatters. Staff route visibility follows separate RBAC owner; current admin paths remain protected.
Repository and expected files
Frontend: features/admin/dashboard, campaign-list, campaign-detail, associated screens/admin/overview, campaign-list, campaign-detail; shared DashboardChart only narrow signed/single-point support if not handled by A11.
Existing behavior and verified gap
Admin chart filters only series while cards remain global, list/detail totalSpent meaning differs, page-local sorting, configured budget progress and nonnegative chart assumptions. No complete finance panel (E18/E19).
Proposed implementation boundary
Use named spend/expense/funding/remaining/paid/owed fields and explicit filters for each summary/table/series. Server-owned global sorting/top accepted views; distinguish current stock versus window flow. Add freshness/coverage and error handling; no finance config/lifecycle controls change.
Expected API / data contract
Consume v2 staff/campaign/performance DTOs, exact strings, window/timeBasis and pagination; no frontend calculation of spend from RPM or totalPaid from loaded rows.
Required tests
CPM/RPM divergence fixture; same-scope creator/staff totals; platform/window/table-scope changes; one/zero/negative chart points; denied/503 states; old payload adapter; full summary stable under pages. Lint/build, focused API tests, manual authorized-role browser pass.
Suggested agent tier
Lower-cost UI agent after contracts; smart reviewer retains financial comparison and access/navigation review.
Expected PR boundary and reason
One staff campaign/performance UI PR stacked on A02/A06/A11, independent of review/risk/group screens. Unlocks A17. Keep compatibility additive, avoid unrelated cleanup, and list exact stacked commits and later units unlocked in the PR. If observed scope grows beyond this boundary, update the plan before splitting or adding work.
RBAC requirements / TODOs
Preserve admin layout/staff allowlist and existing API guards. TODO(RBAC): Only show newly available cross-creator finance/performance screens to the capability approved by the separate RBAC owner; do not change central allowlist/mapping speculatively.
Completion and reconciliation checks
List/detail use same named metric, summary scope explicit, incomplete and over-budget conditions not clamped away. Staff access denial is clear and does not show cached sensitive data.
Record actual tests, source schema/contract versions, PR/merge SHA, manual evidence and residual coverage before changing status to review/complete. Any unexpected migration must first satisfy the migration gates; never bundle upstream financial writer work into this analytics unit.