ILOS

SSL Service Manager

Enter the password to continue

Reports – Functional Specification

SSL Service Manager · Reports module (Phase 7). Consolidates the old SM's 21 operational reports into five merged reports plus one planning view, on a shared report-viewer platform with per-login scoping, scheduled delivery by emailed link, “as of” date search and per-customer custom reports. Grounded in Decisions Register P-001…P-008, the dedicated reports call (transcript 4, 26 May 2026 area) and the old SM Operational Reports screens; cross-references C-003 (scheduler filter), Q-006 (SLA-derived targets) and the Inventory I-series.

Artifacts: 00 Register · 01 Shell · 02 Profile spec · 03 Profile wireframes · 04 Build spec · 11 Dashboard spec · 12 Dashboard wireframes · 13 Requests spec · 14 Requests wf · 15 Referrals spec · 16 Referrals wf · 17 Scheduling spec · 18 Scheduling wf · 23 Inventory spec v2 · 23 Inventory wf v2 · 24 Reports spec · 24 Reports wireframes

Scope & structural change wireframe ↗

Reports is the read-only query layer over everything the other modules produce. The old SM ships 21 operational reports; users routinely export several and merge them in Excel to answer one question. The agreed redesign collapses them into five merged reports + one planning view, each a flexible, filterable query, on one shared viewer platform:

“We've got one, two, three, five different reports that could easily be married up into two reports… better to have one report with more information that you can filter down rather than have to go on two different reports… and try and merge it together on Excel.” – Robert Johnson & Katrina Jackson, reports call
New reportReplaces / merges (old SM)Ref
Request reportRequest Cause & Resolution · Request vs. Targets · Incidents · request half of Cancellation Reasons; absorbs Task SLA and Termination Reasons.P-005, P-008
Referral reportReferrals Received · referral half of Cancellation Reasons.P-004
Service agreements reportFlexible Service State History · Flexible Service Trouble Shooting · Service Agreement Detail / Equipment / Flexible Services / Services · Service Agreements Without Active Services · Service Active Between Given Dates.P-006
Stock reportStock Item Detail · Stock Item Expiry Dates · Store Stock Levels (+ missing-stock view).P-007
Audit reportStock Transfer History · Stock Item Transferred History – generalised to all tracked activities.P-008
Assessment next-review (planning view)Assessment Next Review Date – kept as an exportable report; the planning workload itself moves toward Scheduling.P-003

Mental model: every report is a predefined search – a saved configuration of the same flexible query engine. Customers can commission (or, with a technical user, build) additional predefined searches as custom reports (P-002); the flexible-search engine is a licensed Structured Software component, which supports a commercial model of either self-service or paid report additions.

Positioning note (Katrina, reports call): customers must experience this as a tidy-up, not a loss – “we don't want them thinking, I used to get all these reports and now I can only get 5.” The catalogue therefore shows, on each merged report, which old reports it replaces.

1 · Report catalogue (landing) wireframe ↗

2 · Shared report viewer wireframe ↗

All six reports run on one viewer surface; only filters and columns differ. The platform features are decisions P-001/P-002:

FeatureBehaviourRef
ScopingEvery report returns data only for the logged-in user's customer level: authority → ARC → region → global (multi-customer logins for engineers/support). Within their level, users can narrow the scope (e.g. one authority within an ARC – “you may want the report for all authorities within your arc”). The active scope is always displayed on the report. PTL multi-tenancy delivery (26 May) to be confirmed.P-001
Date rangeExplicit from/to range on every report – never a fixed “next 30 days” (the old Assessment report's headline flaw).P-003
“As of” a dateNEW Run any report as the data stood on a past date (requires change-dates on all entities – build-spec dependency). Presented as a toggle next to the date range.P-002
ColumnsShow/hide columns starting from the most-used set; the browser remembers per-user, per-report selections. Replaces the old two-page Show/Hide Fields screens.P-002
FiltersFilter row directly under the header (old SM pattern – kept; placement is the designer's choice per the call). Every filter of every merged-away report must exist on its successor.P-005/6/7
Export / printCSV export (old SM exports CSV) and print. Row counts and value totals in a footer band where meaningful.P-002
Sorting / pagingAll columns sortable; 25/page pagination (shell conventions).

3 · Request report wireframe ↗

4 · Referral report wireframe ↗

5 · Service agreements report wireframe ↗

6 · Stock report wireframe ↗

7 · Assessment next-review wireframe ↗

8 · Audit report wireframe ↗

9 · Scheduling & delivery wireframe ↗

10 · Sharing a report: export & copy wireframe ↗

Reports are read in the system but consumed elsewhere – in board packs, funder updates, contract reviews and emails. Two families of output exist, and both must be one action away.

OutputBehaviourRef
Export (the data)The Export button opens a menu: CSV (.csv), Excel (.xlsx) and PDF (.pdf). Exports carry the rows and the visible columns as currently filtered and sorted, not the raw table. The PDF is landscape A4, paginated, with the report title and the active filters on it.P-002
Copy image (one chart)Every chart carries a Copy image action: the chart, the ILOS header, the report title and the filters applied, composed into one image, with the values drawn onto the chart itself so the picture is readable without the tooltip.P-009
Copy dashboard (everything) NEWAlongside the per-chart copy, each report has a Copy dashboard action that renders every KPI card and every chart on the report into a single image – cards laid out in their grid, the lead chart full width and the rest two-up, exactly as on screen, under the same ILOS header and filter chips, with a generated-on stamp. This is the "put the whole report picture in the pack" action; copying chart by chart was the friction it removes. Copies to the clipboard where the browser supports it, otherwise downloads a PNG. Composed on a canvas from the live chart instances and the rendered cards, so it always reflects the filters actually applied – no separate rendering path to drift out of step.P-009

Defect: popups under in-app zoom CHANGED

The Export menu did not open next to its button – and so appeared not to work at all – whenever the page was zoomed in. The platform's accessibility text-size control applies zoom to the root element; under a root zoom, getBoundingClientRect() and innerWidth/Height report visual pixels (already multiplied by the zoom factor) while an absolutely-positioned popup lays out in unzoomed ones, so the menu was pushed progressively further off-target as the zoom rose.

Fixed centrally rather than locally: shell-a11y.js now exposes uiZoom(), uiRect(), uiVW() and uiVH(), which give measurements back in the element's own coordinate space, and the popup is anchored with position:fixed (so it is also immune to page scroll). The same bug affected the shared Columns popups and the styled tooltips on every page, and all have been migrated. Standing rule: never position a popup from a raw getBoundingClientRect() – always go through the shared helpers. P-010

11 · Old SM disposition & coverage wireframe ↗

All 21 old Operational Reports (58 screenshots in Current Service Manager/8 Operational Reports/) accounted for:

Old reportDispositionRef
Assessment Next Review DateCHANGED Kept as the Assessment next-review view (§7) – date-range + review-task search added; planning workload → Scheduling.P-003
Cancellation ReasonsREMOVED Split: referral half → Referral report (§4), request half → Request report (§3).P-004
Referrals ReceivedREMOVED Merged into the Referral report (§4).P-004
Request Cause and ResolutionREMOVED Merged into the Request report (§3).P-005
Request vs. TargetsREMOVED Merged into the Request report (§3) – SLA target/actual columns.P-005
IncidentsREMOVED Incidents are urgent requests → Request report (§3), priority filter.P-005
Task SLAREMOVED Absorbed into the Request report (§3).P-008
Termination ReasonsREMOVED Absorbed into the Request report (§3).P-008
Flexible Service State HistoryREMOVED Merged into the Service agreements report (§5).P-006
Flexible Service Trouble ShootingREMOVED Merged into the Service agreements report (§5).P-006
Service Agreement DetailREMOVED Merged into the Service agreements report (§5).P-006
Service Agreement EquipmentREMOVED Merged into the Service agreements report (§5) – equipment sub-query.P-006
Service Agreement Flexible ServicesREMOVED Merged into the Service agreements report (§5).P-006
Service Agreement ServicesREMOVED Merged into the Service agreements report (§5) – services sub-query.P-006
Service Agreements Without Active ServicesREMOVED Status filter preset of the Service agreements report (§5).P-006
Service Active Between Given DatesREMOVED Date-range filter of the Service agreements report (§5).P-006
Stock Item DetailREMOVED Merged into the Stock report (§6).P-007
Stock Item Expiry DatesREMOVED Merged into the Stock report (§6) – expiry columns + battery-request action.P-007
Store Stock LevelsREMOVED Merged into the Stock report (§6) – levels + re-order recommendation.P-007
Stock Transfer HistoryREMOVED Replaced by the Audit report (§8).P-008
Stock Item Transferred HistoryREMOVED Replaced by the Audit report (§8).P-008

Counts: kept/changed 1 · merged into Request 7 (incl. the Cancellation-Reasons request half) · merged into Referral 2 (incl. the referral half) · merged into Agreements 8 · merged into Stock 3 · replaced by Audit 2. (Cancellation Reasons counts once, split across two successors; 1 + 6 + 2 + 8 + 3 + 2 = 21 with the split row counted in both halves' narrative but once in the table.)

Open questions for Tunstall

SSL Service Manager · Reports functional specification · Phase 7 · 3 July 2026 · pairs with 24-reports-wireframes.html and the decisions register (P-001…P-008).

Change log

10 Jul 2026 – NOTE (zero-row state): when a run returns no rows, the table shows the shared empty-state pattern (01): icon, "No rows match these filters", and a primary action that clears the last-changed filter. The row-count footer reads "0 rows"; charts show the same pattern in place of the grid. Static note only – the wireframe keeps its live sample data.