SPEAR Milestone Whitespace Report
New reporting-tool report showing working-day spans across SPEAR milestones with sortable column ordering
Overview
The reporting tool now includes a SPEAR Milestone Whitespace Report that surfaces the working-day gaps between successive SPEAR milestones for projects in scope. Trello 1708 deliverable. Useful for spotting projects where a milestone has stalled - the gap column makes the lag visible without an ad-hoc SQL query.
What's in the report
| Column | What it shows |
|---|---|
| Project / Customer | Project identifier and customer the report is scoped to |
| Milestone columns (in order) | Working-day count from each milestone to the next, ordered along the SPEAR pipeline |
| Total whitespace | Cumulative working-day delta across the milestone chain |
The column ordering pass (Trello 1708 follow-up) puts the SPEAR milestones in the canonical pipeline order rather than alphabetical, so a row reads left-to-right along the milestone progression.
Filtering
Reuses the standard reporting-tool filters: company / project type / status / date range. The dataset hydrates from Project and the existing SpearMilestone records via ProjectRepository; no new migrations or async jobs were needed.
Where to find it
Reporting Tool > "SPEAR Milestone Whitespace Report" in the report-type dropdown. Loads on demand against the same backend that powers the existing whitespace reports.
Verification
Unit-tested in app/tests/Unit/Manager/ReportsManagerSpearMilestoneWhitespaceTest.php covering both the dataset shape and the column-order pass. Browser-verified on production after deploy.
Related
- Trello 1708 - parent card.
- Git tags v3.13.1 (initial report) and v3.13.2 (column-order fix).
Deploy script persists DA tokens across releases
release-prod-safe.ts auto-syncs token_da.json + credentials_da.json across releases via a new Step 3a, stopping the every-deploy DA token wipeout
Address autocomplete search sanitisation
Strip canonical-format `(streetNo)` bracket and trailing 4-digit postcode from the autocomplete query before hitting the suggest backend