Consolidated decisions from the 10 Service Manager comparison meetings (13 May – 2 Jun 2026), the working meeting notes, and the SaaS4 customer review. Each decision is traceable to its source. This register is the single backbone for the SSL Service Manager specification and wireframes.
Artifacts: 00 Register · 01 Shell · 02 Module spec · 03 Wireframes · 04 Build spec · 11 Dashboard spec · 12 Dashboard wf · 13 Requests spec · 14 Requests wf · 15 Referrals spec · 16 Referrals wf · 17 Scheduling spec · 18 Scheduling wf · 22 Inventory spec · 22 Inventory wf · 24 Reports spec · 24 Reports wf
| ID | Old SM feature / screen | Decision for SSL Service Manager | Type | Source |
|---|---|---|---|---|
| Global structure & terminology | ||||
| G-001 | Incidents (OSM) / Tickets (ILOS ARC) | Consolidated into Requests. Requests can be technical, personal or environmental; incidents become urgent requests. "Ticket console" becomes "request console". Requests are pulled from both the ARC and local SM. | CHANGE | Notes; M1, M2, M4 · build |
| G-002 | Tasks (Scheduling) | Tasks are follow-on actions from a request. Each request may have multiple tasks. | KEEP | Notes; M4 · build |
| G-003 | Inbound alarm calls | Alarm calls live exclusively in the ARC – out of scope for the SSL Service Manager. | REMOVE | Notes; M1 · build |
| G-004 | Main menu (9 sections) | New main structure: Requests · Referrals · Scheduling · Inventory · Reports · Administration. Service Agreements is no longer a separate section – reached via global search (see G-005). | CHANGE | Notes; M2 · spec · build |
| G-005 | Service Agreements → Search | Global combined search bar (as in Mark's prototype), visible on every page; advanced field-level search opens from the bar. Searching a service user opens their Service User Profile. | CHANGE | Notes; M2, M3 · spec · build |
| G-006 | Quick Agreement | Removed as a separate flow. Originally bypassed stock management for hospital discharges – no longer needed. Becomes a simpler referral form. Details to be confirmed. | REMOVE | Notes; M2 · spec · build |
| G-007 | Service Agreements → Workspace | Workspace moves out of Service Agreements into Tasks. (Customer review: "the workspace is over complicated".) | CHANGE | Notes; M2; SaaS4 · spec · build |
| G-008 | Keywords | Keep "Keywords" terminology (= tags in ILOS). Colour handling: any colour in PNC vs 3 colours in ILOS – decide whether the full colour set can be kept or partitioned into the 3 ILOS colours. PNC coloured borders: ideally keep. | TBD | Notes; M2–M4 · spec · build |
| G-009 | Roles / Work Groups (Admin) | Teams must be assigned to a pre-defined category (e.g. Responder, Administrative, Engineering). Add a "Responders" group; split "responder" into role groupings for technical staff. Roles in the new SM need amending. | CHANGE | Notes; M1 · build |
| G-010 | Multi-tenancy | Remove multi-tenancy: each client gets their own config (global static data, custom client data, potentially others). New static data must remain visible at the right level. | CHANGE | Notes; M6 · build |
| G-011 | Login (SaaS4 feedback) | Single sign-on + MFA strongly requested by nearly all customers (logging-in scored 3–6/9). Auto-save when leaving a page / on timeout also widely requested. | NEW | SaaS4 review · build |
| G-012 | Global units & time format | Administration → Platform settings holds a global distance unit (miles by default, switchable to km) and a 24-hour vs AM/PM time-format setting – applied everywhere distances/times are shown (planner, My Work, calendars, reports). | NEW | Ivan, 02 Jul 2026 · wf |
| G-013 | Leaver data retention | A leaver's roster and activity data is kept only as long as permitted (configurable, default 12 months after leaving) and then redacted – the same model as service-user redaction (S-003): names removed from roster history, task activity and handover logs; anonymised aggregates remain. | NEW | Ivan, 02 Jul 2026 · wf |
| Home & Dashboard | ||||
| D-001 | Dashboard operators | Operators are responders/installers etc. per roles set in Administration. "Agents available" per roster; "On-shift responders" = agents from all teams with the Responder category on shift (e.g. North/South responder teams). | CHANGE | Notes; M1 · spec · build |
| D-002 | "Average time to answer" | Rename to "Average time to accept". A supervisor can assign a request; a responder can accept it. | CHANGE | Notes; M1 · spec · build |
| D-003 | Active jobs | "Active jobs" = jobs being delivered = "In progress" status from the ARC. | KEEP | Notes; M1 · spec · build |
| D-004 | Dashboard widgets (Mark's) | Graphs: remove. Alerts & messages: remove. Staff online panel: remove – instead, clicking the "on-shift responders" stat opens the detail. Weather: remove for now (nice-to-have only). | REMOVE | Notes; M1 · spec · build |
| D-005 | Vehicles (Mark's) | Vehicle data may need to come from a vehicle tracking system; how vehicle location is obtained must be defined. | TBD | Notes; M1 · spec · build |
| D-006 | Ad-hoc phone number | Ad-hoc number must not appear – requests are sent to responders and the number is picked from the responder's data. | REMOVE | Notes; M1 · spec · build |
| D-007 | "Calls this shift" | Tasks assigned to agents on this shift (to confirm against roster). | TBD | Notes; M1 · spec · build |
| D-008 | Home launcher tiles | The old SM "Home" tile-launcher page is removed – the persistent left menu already gives direct access to every section ("nice left menu to directly access key functions", X-002). The Dashboard becomes the landing view: opening the app or clicking Home lands on the operational dashboard. | REMOVE | M1; review 16 Jun · spec · wf |
| D-009 | Refresh frequency control | The dashboard auto-refresh control is retained (Off / 1 / 5 / 15 min, default 5 min) with a manual refresh and an "as of" timestamp; persisted per user. No auto-refreshing graphs (graphs removed, D-004); auto-refresh respects prefers-reduced-motion. | KEEP | Current SM; review 16 Jun · spec · wf |
| Referrals | ||||
| R-001 | Referrals section | Maps to ILOS "Intake". Default referral forms combine the NSM form with the old SM form, with "pick stock" removed from the old form. | CHANGE | Notes; M2 · spec · build |
| R-002 | Referral templates | New templates = surveys; links saved in the system. Surveys can be published as a public page with an obscure URL so third parties can fill them in. Requester name is compulsory. | NEW | Notes; M2 · spec · build |
| R-003 | Referral editing | A personalised survey URL is sent to the person filling it in; they can return and edit details until a formal service agreement exists – after that, edits only via the Friends & Family app. | NEW | Notes; M2 · spec · build |
| R-004 | Referral organisation | Organisation = the logged-in user's organisation; an "External" organisation exists for public referrals. (Greg Mason to provide sample referrals.) | CHANGE | Notes; M2 · spec · build |
| R-005 | Duplicate detection | On referral creation, search matches address/phone number against existing agreements at the same address and asks whether the user should be added to the existing agreement. (Moved here from the agreement actions.) | NEW | Notes; M2, M3 · spec · build |
| R-006 | ARC-created users | Users created directly in the ARC must be visible in the Service Manager; SM holds richer data – users with an SM licence should be encouraged to use the SM page instead of the ARC page. | NEW | Notes; M2 · spec · build |
| R-007 | Referral sources (SaaS4) | Ability to have different referral types (Public, GP, Hospital discharge, Social Services) and to import electronic requests from websites/emails/MS Forms. | NEW | SaaS4 review · spec · build |
| R-008 | Referral locking, reassignment and unlock | Opening a referral locks it to that user so two people never triage the same case; the holder is shown in a styled tooltip on the list. The lock is not a dead end: a referral can be reassigned to another person or team (the lock transfers with it, or is released to the team queue), and a privileged "unlock referral" action force-releases a lock stranded on someone who is off sick, has left it open, or has left the organisation (confirmation + mandatory reason + audit). Marking a person sick on the roster surfaces the referrals locked to them alongside their booked tasks, so both are cleared in one pass. | NEW | Ivan, 13 Jul 2026 · spec · wf · roster |
| R-009 | Referral intake data rules | The new-referral form opens completely blank (no sample data). Title/salutation and at least one contact telephone number are mandatory alongside surname. A referral keyed in by staff defaults to "no referral – created in the system"; a source (GP, hospital, Social Services…) can be selected, and then who referred it must be recorded – the case where the referrer phoned in because the survey link was not available. Referrals accept multiple attachments, restricted to Word (.doc/.docx), PDF and image files. Once a referral is converted to a service agreement it becomes read-only (no edit button) – it is a historical record and the live data lives on the agreement. | NEW | Ivan, 13 Jul 2026 · spec · wf |
| Service Agreements → Service User Profile | ||||
| S-001 | Service Agreement summary | Renamed Service User Profile – it is about the user, not the agreement (cf. ILOS customer page). Details data carried over as-is from old SM. The overall agreement has no pre-defined end date; it runs until terminated. | CHANGE | Notes; M2–M4 · spec · build |
| S-002 | Client photograph | Do not use a photograph of the client – use the logo of the organisation being monitored. | CHANGE | Notes; M2–M4 · spec · build |
| S-003 | Information box | Display service agreement no. and customer reference number. Pencil icon = dwelling colour; heart = risk colour. Equipment block shows primary equipment contacting the ARC with model number and telephone number. Remove the two "unassigned" icons on the left. | CHANGE | Notes; M2–M4 · spec · build |
| S-004 | Suspend / Resume actions | Remove both. Suspend isn't processed anywhere so it means nothing (check whether the ARC does this). | REMOVE | Notes; M2–M4 · spec · build |
| S-005 | Decommission action | New workflow: create equipment-recovery activity → schedule recovery task → on completion ask where equipment goes → archive client data and remove records from the ARC. Dual occupancy: only remove the involved resident's data; shared equipment not removed or partially recovered (confirmed by the person processing). Auto-cancel all live requests on decommissioning. | NEW | Notes; M2–M4 · spec · build |
| S-006 | Reactivate | Reverse decommission within 3 months: restore client data only. Former equipment from the closed agreement is surfaced as installation tasks to create (pick-stock → install), not auto-restored (revised 22 Jun 2026, item 31 – supersedes the earlier "restore equipment if already removed"). | CHANGED | Notes; M2–M4; item 31 · spec · build |
| S-007 | Add user to agreement | Quickly add a new user onto an existing agreement (same address / shared equipment); no validation needed since the underlying agreement is already valid. Address matching at creation time moves to the referral page (R-005). | KEEP | Notes; M2–M4 · spec · build |
| S-008 | Redaction (1am job) | Redaction happens automatically per agreed dates (typically 3–7 years per agreement), with a flag to stop it. Terminated agreements stay visible until redacted; a new page lists terminated agreements (verifies redaction). Terminated agreements excluded from live search unless a linked agreement is live. | CHANGE | Notes; M2–M4 · spec · build |
| S-009 | Zoom/Teams calls | Ability to call via Zoom/Teams (general calls, not under a service user). Log the fact a call was passed to Zoom/Teams and its status; call details not stored. Teams/Zoom calls also stored in call history (Delta requirement). | NEW | Notes; M2–M4 · spec · build |
| S-010 | Recent activity buttons | Buttons next to recent activities removed – they are about requests or duplicate existing tabs. | REMOVE | Notes; M2–M4 · spec · build |
| S-011 | Contacts tab | Stays; syncs with the ARC (= NSM "Circle of Care"). Categories: Primary, Emergency, Keyholder, Next of Kin (one per contact), Power of Attorney (multiple). Store availability windows per contact (per-day from/to, repeatable; short-term e.g. on holiday). Search existing contacts within the user's organisation. Each contact stores their relation per service user. Multiple phone numbers with type + icon. | CHANGE | Notes; M2–M4 · spec · build |
| S-012 | Requests tab | Query of the resident's requests with tasks displayed beneath each request (no separate tasks tab). Filter defaults to live requests; can show closed. Multiple requests may be open simultaneously (OSM allowed only one). NEW: any request can have a follow-on request saved with it – the request can close while the follow-on stays open, auto-scheduled for its date. | NEW | Notes; M2–M4 · spec · build |
| S-013 | Incidents tab | Removed – incidents become urgent requests. Keep (for all urgent requests): respondent receives a text message; the incident is visible in the ARC with colour-coded status. | REMOVE | Notes; M2–M4 · spec · build |
| S-014 | History tab | Removed; the functionality becomes part of advanced search. Audit must be available showing what changed (SaaS4: full edit history from→to). | REMOVE | Notes; M2–M4; SaaS4 · spec · build |
| S-015 | Call history | Query on ARC call history (+ Zoom/Teams per S-009). Most recent call history should also surface in the responder/engineer app. | KEEP | Notes; M2–M4 · spec · build |
| S-016 | Assessments tab | History of completed surveys (risk assessments). Editable while in draft status (correct mistakes / add info); locked once published – a new assessment is then required. A request cannot complete until its assessment is published (prevents eternal drafts). On publish, auto-create a review request 12 months out, managed independently like any request but viewable with the assessment. | CHANGE | Notes; M2–M4 · spec · build |
| S-017 | Equipment tab | Query on installed equipment; live shown by default with option to show decommissioned. Device detail view; button to fetch device data from DMP. NEW: link to initiate an equipment-assignment request from this tab. | CHANGE | Notes; M2–M4 · spec · build |
| S-018 | Medication / Health Events (NSM) | Medication: out until an NHS records link exists. Health Events tab: to discuss (SNOMED? NHS records?). | TBD | Notes; M2–M4 · spec · build |
| S-019 | Notes / Messages tabs | Notes categorised into temporary and permanent; pull from the ARC where available; merge with PNC data. Messages filtered to those relevant to the user. | CHANGE | Notes; M2–M4 · spec · build |
| S-020 | Print to PDF | Summary of the client's data; prettify the old SM's existing output. | KEEP | Notes; M2–M4 · spec · build |
| S-021 | Services | Services sit under an agreement: type, start date, end date, cost, payee; may run for a pre-defined period (e.g. regular calls while family on holiday). Services auto-cancel when their end time comes; users see a report of agreements expiring within 7 days. SaaS4: export service level/cost to finance for billing is a recurring demand. | CHANGE | Notes; M2–M4; SaaS4 · spec · build |
| S-022 | Agreement cancellation | Users can create tasks to close off an agreement. Once stopped, the agreement is frozen – no further edits. | CHANGE | Notes; M2–M4 · spec · build |
| S-023 | Print / export a completed assessment | A published (completed) assessment can be printed or saved as a PDF – the copy that goes to the GP, the funder, the family, or into an evidence bundle. Printing is scoped to the assessment: the app shell and modal chrome drop away and a print header carries the service user, the version, the assessor, the publication date and a "printed on / by" stamp. Published versions are locked (S-016), so the printed copy is a faithful record. Drafts cannot be printed – publish first. | NEW | Ivan, 13 Jul 2026 · spec · wf |
| S-024 | Active incident visible at first glance | While an urgent request is live on the agreement, the ARC response timeline (sent → accepted → en route → arrived → completed, with ETA) leads the profile's Summary tab in a red-accented "Active incident" card – previously it only existed inside the Requests tab, so you had to go looking for it. The card is not rendered when there is no active incident. Extends S-013. | CHANGE | Ivan, 13 Jul 2026 · spec · wf |
| Requests (creation, detail, cancellation) | ||||
| Q-001 | Request types | Four types: installation, change, decommissioning, custom task. Change requests selectable only after installation completes. Multiple simultaneous requests allowed; conflicting combinations left to user judgment – no system validation. | CHANGE | Notes; M4 · spec · build |
| Q-002 | Request completion | A request completes only when all its tasks complete. NEW: when the last task completes, alert the user and prompt to close the request (same user can do both); request stays open only if explicitly chosen. | NEW | Notes; M4 · spec · build |
| Q-003 | Default task sets | Every request type carries an auto-added default task set, configurable per client in Administration together with an SLA per task. Custom tasks can be added; non-applicable defaults can be immediately marked complete. | CHANGE | Notes; M4 · spec · build |
| Q-004 | Pick stock / installer flow | Installation requests add a "pick stock" task. Process rethink: pick stock first; when an installer is picked, a stock transfer request is auto-initiated if their van (secondary store) lacks the item. Stock is reserved on pick (preventing allocation conflicts) and assigned to the client only on task completion. | NEW | Notes; M4, M8, M10 · spec · build |
| Q-005 | Assigned / Responsible | "Assigned" = person doing the job; "Responsible" = department manager. Ghost persons (e.g. "installation team") no longer allowed – a real responsible person is assigned and the system stores their user group/team (chosen from all groups the person belongs to). NEW: each task type maps to a single role, filtering who can be assigned. | CHANGE | Notes; M4 · spec · build |
| Q-006 | Next action date / Cause | "Next action date" becomes an SLA-derived window – not user-picked; show the latest date. "Comment" is just notes. "Cause" removed ("we already know!"). | CHANGE | Notes; M4 · spec · build |
| Q-007 | Request detail wording | "Allocated" stock → "reserved". "Task history" → "Tasks". Notes move to the task level: a task may have multiple notes (different people may work it); notes record creator/editor. | CHANGE | Notes; M4 · spec · build |
| Q-008 | On hold (task-level only) | On-hold extended to all tasks, with reason, person, date placed and a review date. Hold is task-level only (revised 02 Jul 2026): a request is never held on its own – holding a task automatically puts its whole request on hold and pauses the SLA; only a task can be resumed, which takes the request off hold. A query lists all on-hold tasks; My Work shows the user's holds with review dates. | CHANGE | Notes; M4 · spec · build |
| Q-009 | Task links | Ability to store third-party URLs against a task. | NEW | Notes; M4 · spec · build |
| Q-010 | Complete / cancel reasons | Complete reason optional or free-form (omit for completed requests); cancellations require a predefined reason. Admin: cancellation reasons must map to standard categories so the system "knows" the reason (cost / gone into care / no longer required / …). | CHANGE | Notes; M4, M5 · spec · build |
| Q-011 | Request cancellation | On cancel, stock is automatically disassociated from the customer and becomes spare (possibly in a secondary store). Completed requests cannot be cancelled – create a change request instead. Partial removal of stock supported (incomplete installations release unused items). Full cancellation process: to discuss. | TBD | Notes; M4 · spec · build |
| Q-012 | "Change equipment" rename | The Change request type is renamed Change equipment across the New-request form, type filters and request detail – clearer that the type covers equipment exchange / add / remove / battery, not a generic change. | CHANGE | Ivan, 19 Jun 2026 · spec |
| Q-013 | New-request form: Type+Priority first, progressive disclosure | Type and Priority are the first two fields. For a new request only Type, Priority, Title and Details show initially; the type-specific fields, default task set, channel and cross-user option are revealed once a type is chosen. No type is pre-selected. | NEW | Ivan, 19 Jun 2026 · spec |
| Q-014 | Requester from contacts or free-form | The Requester can be selected from the service user's contacts (Circle of Care, S-011) or entered as a free-form name + phone for a one-off caller. Replaces the bare Mark-flagged text field. | NEW | Ivan, 19 Jun 2026 · spec |
| Q-015 | Day-aware assignment, schedule picker & what3words | Available assignees are filtered to who is on shift the selected visit day. The operator can open the schedule and assign a person directly from their free slots; the booked date/time is then shown under the assignee. what3words can be picked from the property's saved squares or chosen on a map. (Full distance-ranked / route assignment returns with Scheduling, C-004.) | NEW | Ivan, 19 Jun 2026; M4 (what3words) · spec |
| Q-016 | Unified request detail; tasks delete/reassign/reschedule; SLA & booking | One canonical request-detail layout – the detail opened from a profile's Requests tab is identical to the one from the all-Requests console (file 14). "Next action by" is replaced by the SLA target plus who the work is booked on and when. Tasks can be deleted, reassigned and rescheduled (audited) from the detail and the task panel. | CHANGE | Ivan, 19 Jun 2026 · spec · spec2 |
| Q-017 | Links: Tunstall reference library + auto-suggest | Beyond third-party URLs (Q-009), a link can point to an existing document/guide in a Tunstall reference library (searchable picker, type filter). Relevant guides are auto-suggested from the request type and affected equipment. | NEW | Ivan, 19 Jun 2026 · spec |
| Q-018 | Cross-service-user / linked-agreement requests | Multiple requests may exist for the same property or via a linked agreement. These linked requests are indicated within each service user's request details (Requests tab + detail). On creation, an option applies the request to all service users involved, creating the paired linked request. | NEW | Ivan, 19 Jun 2026 · spec · spec2 |
| Scheduling | ||||
| C-001 | Scheduling section | Keep the section name (replace "bookings" wording). Adopt NSM functions/look. Home page of the section = the bookings page. Subpages: Roster, Daily Planner, Daily Planning (consider combining the last two). | CHANGE | Notes; M8 · spec · wf · build |
| C-002 | Roster changes | When a roster changes (e.g. sickness), workflow pages help reassign all affected tasks – the "Reassign affected work" flow lists each affected task with its own assignee selector (plus set-all / auto-distribute by travel). | NEW | Notes; M8 · spec · wf · build |
| C-003 | Scheduler filtering | Filter the scheduler by task type (e.g. assessments only). | NEW | Notes; M5, M8 · spec · wf · build |
| C-004 | Scheduling (SaaS4) | Weakest-scored module (2–4/9). Demands: recurring tasks; sick/holiday/training entries; shift-pattern integration (MS Teams/O365); outfield staff access with accept/reject + push notifications; route planning by priority and travel time; full client name/address in planner. Treat as priority backlog for this module's design. | NEW | SaaS4 review · spec · wf · build |
| C-005 | Per-job-type durations | Configure how long each job type should take (and per T-shirt size, C-006). The scheduler uses it to lay out lanes and pre-fill the visit duration. Configured per organisation in Administration. | NEW | Client (major), 23 Jun 2026 · spec · wf |
| C-006 | T-shirt job sizing | Classify jobs by size – S / M / L / XL – for the Tunstall team. Size combines with the job type to set the expected duration (C-005) and shows as a badge in the queue, board and outfield app. | NEW | Client (major), 23 Jun 2026 · spec · wf |
| C-007 | Tray aging / wait time | Show how long a job has been sitting in the tray; escalate its colour (green → amber → red if not accepted within an hour) so stale, un-actioned work surfaces. | NEW | Client (major), 23 Jun 2026 · spec · wf |
| C-008 | Available-jobs pool (self-accept) | Jobs can be offered to a shared pool; any on-shift team member can accept one, which moves it into their own queue (pull model alongside dispatcher push). | NEW | Client (major), 23 Jun 2026 · spec · wf |
| C-009 | Self-service reassignment | Assignees can reassign / hand over their own jobs to another on-shift colleague themselves – no dispatcher needed; the colleague is notified. | NEW | Client (major), 23 Jun 2026 · spec · wf |
| C-010 | Recurring appointments | Repeat an appointment or a whole week's schedule (e.g. the same schedule again next week); each occurrence is auto-created. Extends the recurring-tasks ask in C-004. | NEW | Client (major), 23 Jun 2026 · spec · wf |
| C-011 | Microsoft Teams integration | Required: sync shifts & bookings to Teams / Microsoft 365 calendars, push jobs as Teams notifications, and accept/reject from within Teams. Strengthens the shift-pattern sync in C-004. | NEW | Client (major), 23 Jun 2026 · spec · wf |
| C-012 | Gender-restricted visits | Service users can carry the keyword "Visits by females only" or "Visits by males only" – their tasks may only be assigned to staff of that gender. The Scheduling board marks restricted tasks; assigning a mismatched responder raises an explanatory popup that still lets the planner proceed (override audited). Auto-schedule respects the restriction, and the schedule/reassign/add-task people lists make only allowed-gender staff selectable (refined 02 Jul 2026 PM); the drag-drop override popup remains for edge cases. | NEW | Ivan, 02 Jul 2026 · spec · wf |
| C-013 | Responder pairing (bind two schedules) | Administration can bind two Responders for a period (shared van, partnership or training) and later unbind them (confirmation popup, audited). While bound their schedules stay aligned; the Daily-Planning board shows the pair as one shared lane ("A + B" with a Paired chip), booking on it books both, and the Roster shows a Paired chip on both people. Binding now checks for time-overlapping bookings – a popup lists them and offers "Unschedule those & bind" or cancel; each pair records a home-base address (where the shared day starts/ends); the Calendar shows the pair on one double-height row; a partner on leave is shown crossed-out on the shared lane (refined 02–03 Jul 2026). | NEW | Ivan, 02 Jul 2026 · spec · wf |
| C-014 | Multi-person tasks | Task creation gains a "People required" field. A multi-person task must align all attendees: each can reach the address at ~the same time (the latest natural arrival sets the shared start; earlier arrivals wait), each is available for the full duration, and travel is calculated to/from each person's own separate other tasks. The board flags tasks still short of people and offers a second-responder picker with per-person arrival estimates. | NEW | Ivan, 02 Jul 2026 · spec · wf |
| C-015 | Handover – next-shift orientation | Handover moves under My Work. Each entry carries a toggle: "Inform next shift" (shown prominently to the incoming team) vs "Log for everybody"; a To do contribution type is added. The previous-shift summary has an Acknowledge button (inactive once pressed, audited); until acknowledged the nav shows an unread indicator and Home + My Work show a warning linking to the Handover. The page is two equal columns: left = previous shifts (each shift's summary on top of its issues; the latest carries the Acknowledge button, older ones show who acknowledged them); right = Current shift (issue logging, the End of shift Summary with autosave – no draft button – the shift's logged issues with per-entry delete-with-confirmation, and Finalise below). Formatting bar: bold/italic/bullets. (Refined 03 Jul 2026.) | CHANGE | Ivan, 02 Jul 2026 · spec · wf |
| C-016 | Rotating schedules (up to 4 weeks) | A person's custom schedule is built as week blocks: the filled-in week is "Week 1" and an "Add a week" button appends Week 2–4; the whole set repeats indefinitely as an N-week rotation (weekly for a single week), so rotating shift patterns roster in one step. The Roster's person popup offers a matching "Personal Schedule" type (no fixed start/end – hours come from the rotation). (Refined 02 Jul 2026 PM.) | NEW | Ivan, 02 Jul 2026 · wf |
| C-017 | Roster access privilege | Viewing and editing the roster are separate privileges: everyone signed in can view; only authorised roles (Administrator always; Supervisor/Dispatcher/Team leader configurable) can edit. A person can also be removed from the roster from the shift-pattern popup (confirmation; booked work released for reassignment). | NEW | Ivan, 02 Jul 2026 · wf · wf |
| C-018 | Uncompleted-task release timing | An admin setting controls when uncompleted tasks are released back to Unscheduled after a shift ends – immediately / at midnight (default) / 24 h / 48 h – rather than always immediately at shift end. Released tasks carry the existing "Released" badge and reason. | NEW | Ivan, 02 Jul 2026 · wf |
| Inventory | ||||
| I-001 | Stock items | Query lists all possible stock items regardless of stock level. Ability to define new product definitions. Use NSM pages for creating manufacturers and stock items (single page each). Static data creatable in place, visible at the correct level. Same stock associable with different part numbers. | CHANGE | Notes; M6 · spec · wf |
| I-002 | Barcode scanning | Read barcodes/QR codes (Tunstall or third-party stock) and map the data to database fields automatically; generic mapping functionality for manufacturers' tags; manual population fallback. (SaaS4: barcode via mobile phone, by outfield staff, strongly requested.) | NEW | Notes; M6, M7; SaaS4 · spec · wf |
| I-003 | Stock transfer | Between any two stores of the same organisation. Transfer reasons addable in place (not only admin). Scan one or multiple products; search by name and serial number; further filter by serial. "View basket" shows count + list (fixes current bug where not all items display). Confirm transfer at the bottom of the basket; success message shown. | CHANGE | Notes; M6 · spec · wf |
| I-004 | Receipt confirmation | Receiving store confirms receipt (Goods In lists items due); unconfirmed items return to the original store; stock unusable until confirmed. NEW: per-secondary-store flag requiring receipt confirmation; primary↔primary transfers always require it. | NEW | Notes; M6 · spec · wf |
| I-005 | Stock take | NEW: simple stock-take process – scan stock in a store; report shows correct items, missing stock and overstock (catches wrongly installed items). | NEW | Notes; M6, M7; SaaS4 · spec · wf |
| I-006 | Goods In | Scanning auto-populates item data (currently doesn't). Stock arrives into primary stores only – but the single-primary-store limitation is removed (multiple primary stores allowed). Secondary stores can't receive goods directly; transfer is a separate step. Bulk goods-in from delivery notes requested (SaaS4). | CHANGE | Notes; M6, M7; SaaS4 · spec · wf |
| I-007 | Store types & hierarchy | NEW: introduce store types (van, maintenance, scrap, …) – currently names are plain text. Primary stores send/receive to manufacturers (incl. cleaning/maintenance and scrap stores); secondary stores send/receive to service users and primary stores; sub-stores supported; secondary stores map to engineers who may only use their own store's equipment. Clients receive stock only from secondary stores. | NEW | Notes; M6, M7 · spec · wf |
| I-008 | Returned / decommissioned stock | Flow: customer premises → secondary store → quarantine store (clean/check/reprogram, with tasks for cleaning/reprogramming/servicing) → primary stock or scrap. Decommissioned equipment flagged and unusable until serviced. Programmatic state flags ("outgoing", "incoming", "cleaned", …). | NEW | Notes; M7, M9 · spec · wf |
| I-009 | Faulty item exchange / manufacturer returns | Faulty items exchanged with good ones immediately, then sent for repair from a primary store; on return they join the new/refurbished pool. Items with a manufacturer are flagged as such; replacements come in as new items. | KEEP | Notes; M7, M9 · spec · wf |
| I-010 | Scrap store | Current scrap store = ghost stock piling up 4+ years. Need purge capability and visibility of scrapped stock value over the past 6/12 months. | NEW | Notes; M7; SaaS4 · spec · wf |
| I-011 | Task allocation vs stock | When tasks are allocated, tie requests to the stock availability of the engineer's store. (To define – links to Q-004.) | TBD | Notes; M6 · spec · wf |
| Operational Reports | ||||
| P-001 | Report scoping | All reports scoped to the logged-in user's customer level: authority, ARC, region, global (multi-customer logins for engineers/support). Confirm what multi-tenancy PTL delivered in the ILOS ARC (26 May). | CHANGE | Notes; M5 · build · spec · wf |
| P-002 | Report platform features | Schedule reports for a date and email users a link. Search "as of" a date (requires change dates on everything). Key requirement: custom reports per customer querying any data. Column show/hide starts from most-used; browser remembers per-user selections. | NEW | Notes; M5 · build · spec · wf |
| P-003 | Assessment Next Review Date | Aids planning – possibly moves to Scheduling/planning. Click through to the previous assessment. NEW: search a date range around expiry (week/month planning); search the auto-generated review tasks. If moved, keep an exportable report and ensure the scheduler can show assessment schedules only. | CHANGE | Notes; M5 · build · spec · wf |
| P-004 | Cancellation Reasons report | Not needed as-is – split into two: a Referral report (referrals received / converted / rejected with reasons) and a Request report. | REMOVE | Notes; M5 · spec · build · spec · wf |
| P-005 | Request report (new) | Merges 4 reports: request cancellations, Request Cause & Resolution, Requests vs Targets, Incidents. Shows original request and final outcome (resolution from admin-defined list); filter by request type (e.g. urgent); SLAs shown where set up. | NEW | Notes; M5 · build · spec · wf |
| P-006 | Service agreements report (new) | One flexible query over agreements + their services, replacing Flexible Services History, Flexible Services Trouble Shooting, Service Agreement reports up to Services Active Between Given Dates. Filter service users by feature (e.g. responder service, private pay). Design TODO – maybe sub-queries. Addresses customer complaint: too many reports merged manually in Excel. | NEW | Notes; M5; SaaS4 · build · spec · wf |
| P-007 | Stock report (new) | Merge of all stock reports. Shows what's in stock, where, expiry dates (battery/warranty), current stock value. NEW: generate a battery-replacement change request from the report. Recommended re-order level from min/recommended levels, weekly usage and delivery time (SaaS4: with manager approval). Missing-stock view included. | NEW | Notes; M5; SaaS4 · build · spec · wf |
| P-008 | Stock transfer history / Task SLA / Termination reasons | Stock transfer history → replaced by a new Audit report (all tracked activities). Task SLA and Termination Reasons reports absorbed into the Request report. | REMOVE | Notes; M5 · build · spec · wf |
| P-009 | Copy the whole dashboard as one image | Every report keeps its per-chart "Copy image" action and gains a "Copy dashboard" action that renders every KPI card and every chart on the report into a single shareable image – with the ILOS header, the filters actually applied, and the values baked onto the charts. Copies to the clipboard where the browser allows it, otherwise downloads a PNG. For pasting a whole report picture into a board pack or an email in one action rather than chart by chart. | NEW | Ivan, 13 Jul 2026 · spec · wf |
| P-010 | Popups must survive in-app zoom | Defect. The report Export menu did not open where the button was (and so appeared not to work) whenever the page was zoomed in. Root cause: the in-app text-size control sets zoom on the root element, so client rects come back in visual pixels while the popup lays out in unzoomed ones. Fixed centrally in shell-a11y.js (uiRect/uiVW/uiVH); the same bug affected the shared Columns popups and the styled tooltips on every page, and all are now zoom-aware. Standing rule: never position a popup from a raw getBoundingClientRect() – always go through the shared helpers. | CHANGE | Ivan, 13 Jul 2026 · spec · wf |
| Cross-cutting customer asks (SaaS4 – secondary input) | ||||
| X-001 | – | RAG/SLA status colouring is liked – keep and extend (push/notification when SLA approached or breached; prompts for incomplete steps before proceeding). | KEEP | SaaS4 review · build |
| X-002 | – | Left menu with direct access to key functions is liked; breadcrumbs/path-tree requested over the back button. | KEEP | SaaS4 review · build |
| X-003 | – | Friends & Family app: contacts self-manage their data (phones, address, availability) and view history overview. Referenced by R-003 (post-agreement referral edits). | NEW | SaaS4; Notes M2 · build |
| X-004 | – | Integrations repeatedly requested: DMP (view data / suspend SIM on scrap/loss), Power BI / raw data access, Mosaic, Liquid Logic, CM2000, finance export. Mobile app for outfield staff (notes, signatures, offline). | TBD | SaaS4 review · build |
| OQ-SH1 | – | Open question – roles & menu visibility. The wireframes demo a menu-level role model (Coordinator, Dispatcher, Responder, Assessor, Store keeper, Admin) via the drawer’s "View as role" control. Tunstall to confirm the role list and the section mapping before build; per-widget permissions are out of wireframe scope. | TBD | Ivan, 10 Jul 2026 |
| OQ-MSG1 | – | Open question – bulk SMS guardrail (proposed, to confirm). When a message goes to a team or a large audience over SMS, the compose flow shows a live recipient count and estimated cost, and swaps Send for Request approval above a platform-set threshold (configured in Administration). Prompted by the M4 Dumfries note on accidental bulk sends. Tunstall to confirm the threshold and the approver. | TBD | M4 · Ivan, 10 Jul 2026 |