ILOS

SSL Service Manager

Enter the password to continue

Scheduling – Functional Specification v0.9

SSL Service Manager · Scheduling module · Getting requests and tasks onto the right person’s day – installs, equipment changes, decommissions, assessments and welfare calls. The old Service Manager’s weakest-scored area (SaaS4: 2–4/9). Keeps the section name and adopts Mark’s look/functions (C-001), and is reimagined around the customer demands recorded in C-004. Sources: consolidated meeting notes (M5, M8), the Current SM “6 Scheduling” screenshots, Mark’s prototype (Daily Planning / Dispatch / Live Service), SaaS4 customer review. Decision IDs refer to the Decisions Register (00).

Artifacts: 00 Register · 01 Shell · 02 Profile spec · 03 Profile wf · 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

Scope & structural change wireframe ↗

Scheduling is where a request’s tasks (G-002) become booked visits on a named person’s day. It stays a top-level section (G-004) and keeps its name (C-001). In the old SM it was a searchable task list plus a single Planner; everyone agreed this was “the real area that needs simplifying”. The SSL Service Manager rebuilds it into three working screens and adds the things customers have been asking for.

Old SMSSL Service ManagerRef
“Scheduling” = an Advanced/Basic task search list (Task State / Task Type / Actions / Add General Task) + a PlannerScheduling – section home = Bookings (the work-to-schedule queue); sub-pages Daily Planning (dispatcher board) and Roster. “Bookings” replaces the old “bookings” wording without renaming the section.C-001, G-004
Separate Daily Planner + Daily Planning ideas in Mark’s prototypeCombined into one board – unscheduled work, responder lanes and the route map on a single screen (C-001 “consider combining the last two”).C-001
No rostering at allRoster – shift patterns plus sick / holiday / training / admin time; the scheduler only offers staff who are on shift.C-004
Appointments booked only as “AM / PM”; the install team “check the scheduler each morning and verbally agree who does what”; planners screenshot the day and take changes by phoneNamed person + timed slot, day-aware assignment, route planning by priority & travel time, full client name/address everywhere, and an outfield app that pushes jobs and takes accept/reject.C-004, Q-015
“This is, you can see why this was so complicated and such a nightmare for people to just get these requests and tasks and then get them scheduled into the scheduler / the planner. … And this is the real area that needs simplifying.” – Andy Hart, M8 (scheduling, tasks & requests workflow).
The customer mandate (C-004). Scheduling scored 2–4/9 across every site that used it – the lowest of any module. The recorded demands drive this design: recurring tasks; sick / holiday / training entries; shift-pattern integration (MS Teams / O365); outfield access with accept/reject + push notifications; route planning by priority and travel time; full client name & address in the planner; and allocating jobs to a whole team, not just an individual.

Design principle. A booking is never one-click guesswork. The queue shows what needs doing and by when (SLA-derived, Q-006); the board shows who is free and where they already are; auto-schedule proposes an order by priority then travel, and every booking stays editable – reassign, reschedule or return to the queue, all audited.

1 · Bookings – the work-to-schedule queue wireframe ↗

The section landing view is a cross-client list of every schedulable item – tasks from requests (G-002), auto-generated assessment-review tasks (P-003) and recurring occurrences – using the same engine pattern as the Requests and Referrals consoles for consistency.

Status filters & scope NEW

Five count tiles are the filter: Unscheduled · Overdue · Due today · Due in 7 days · Scheduled. Clicking a tile filters the list and highlights it; clicking again clears. A separate All teams / My team / Mine scope toggle limits the view. The 30-day ceiling customers complained about is gone – the queue plans arbitrarily far ahead.

“Customers plan work schedules far more than 30 days. … there’s no date range to put in on the search.” – M5.

Columns

ColumnNotesRef
TaskTask ID above its parent request (REQ-yyyy-nnnn). Opens in the request (Requests console).G-002
Service user & addressName and full address – never an ID alone. Directly fixes the old planner that “needs to display full client name / address”.C-004
TypeInstallation · Equipment change · Decommission · Assessment · Welfare call · Other. A recurs tag marks recurring tasks.C-003, C-004
SLA windowDerived from the task type’s SLA in Administration (no user-set due dates, Q-006); RAG-aged. Urgent tasks carry an Urgent pill.Q-006
Status / Assigned / BookedUnscheduled vs Scheduled; the person (or whole team); the booked date & time once placed.Q-016
ActionsBy state: Schedule + Make-recurring (unscheduled); Reschedule + Reassign (scheduled); Open request (always).Q-015

Filter by task type NEW

A type dropdown lets a planner narrow to one kind of work – e.g. assessments only – which was the explicit ask for handling assessment renewals separately from field jobs (C-003). This also satisfies the reporting discussion in M5: rather than running a “scheduled-assessment report”, the planner filters the scheduler to assessments and works the list in place; an exportable report remains available in Reports (P-003).

“For the scheduler … it needs to be able to filter by the type of task. So for example, you’re looking at scheduling assessments only.” – Dagmara Milian, M5 (→ C-003).
Assessment review tasks. When an assessment’s Next Review Date approaches, the system auto-creates a review task and drops it into this queue (P-003). The planner can see whether each is still unscheduled or already booked/assigned, so nothing silently goes overdue.

2 · Daily Planning – the dispatcher board wireframe ↗

One board with three columns: Unscheduled work · Responder lanes · a route map. It combines Mark’s “Daily Planner” and “Daily Planning” concepts (C-001) and keeps his drag-into-lanes pattern, but adds the routing and travel-time intelligence customers asked for.

Responder lanes

BehaviourDetailRef
On-shift only NEWLanes show only staff on shift that day (from the Roster). A person on holiday/sick simply isn’t a drop target – the day-aware rule behind Q-015.Q-015
Plan date arrows NEWPrev/next-day arrows beside the date picker flick the board through days.Client, 23 Jun
Place work anywhere CHANGEDSelect an unscheduled item, then a single + slot to drop it at any position in a lane – start, middle or end, not just the bottom. Each leg shows travel time and distance (min · km) between stops.C-004
Whole-team lanes NEWWork can be booked to a team (any member can pick it up), not only a named person – “allocate jobs to full teams”.C-004
End-of-shift & return NEWEach lane header shows the shift end and the projected back-to-depot time; a day that would overrun is flagged ⚠ late, so it’s obvious whether the person can return on time.Client, 23 Jun

Auto-schedule & optimise – propose, don’t commit CHANGED

Auto-schedule orders unscheduled work by priority then SLA and assigns each to the on-shift responder whose last stop is nearest (least travel), respecting capacity and skill/team – but it makes proposals only: each proposed booking is shown highlighted in the lane with Accept / Reject buttons (plus Accept all / Reject all), and nothing is committed until accepted. Optimise routes likewise proposes a nearest-neighbour re-sequence: the lane is shown in the proposed order with the moved stops highlighted (kept full-size, no cross-out), accepted or rejected per route. Accepted bookings remain fully editable.

“Needs to plan recommended route / order based upon priority and travel times.” / “Scheduling should allow for route planning of days tasks.” – SaaS4 customer review (→ C-004).

Interactive route map CHANGED

A real interactive map (Leaflet + OpenStreetMap) replaces the schematic – pan/zoom, real Leeds positions, coloured pins per responder and a routed polyline. It carries a legend (depot · scheduled · unscheduled · selected route). Hovering a job enlarges its pin; clicking a pin highlights the job in the list (and vice-versa). Selecting a lane draws that person’s route while all other pins stay visible (including unassigned), with total distance and time. Travel legs everywhere read min · km. People use a high-contrast colour each so routes don’t blend.

Unscheduled tray & lanes NEW

The tray is ordered with the longest-waiting jobs on top, each box colour-coded by task type (tag colours). The task-type filter sits in the Unscheduled section. The lanes sit under a “Responsible’s user group” selector (All / Installations team / Assessors) so the board can be narrowed to one group.

what3words. Each job carries its property’s what3words square (from the request, Q-015), shown on the job and used for navigation in the outfield app. The wireframe now uses a real Leaflet/OpenStreetMap map; production adds true drive-time routing.

3 · Roster wireframe ↗

A brand-new capability – rostering did not exist in the old Service Manager (“rostering that didn’t exist before, which is obviously a great new feature”, M5). A weekly grid of staff × days. Each day cell is a 24-hour bar with only the on-shift hours coloured, so you can see who covers which part of the day at a glance; absences (off · sick · holiday · training · admin) colour the whole cell.

BehaviourDetailRef
24-hour day cells NEWEach cell shows a 0–23h strip with the worked hours filled – “see who is on shift in the different parts of the day”. Training has its own colour, distinct from a shift.Client, 23 Jun
Flexible shift patterns NEWClicking a person’s name opens a recurring-pattern editor for irregular weeks – pick any days and a start/end time, e.g. every week Wed–Sat, 07:00–15:00. Clicking a single day cell still makes a one-off change/absence.Client, 23 Jun
Drives the schedulerOn-shift status is what the board and the schedule picker read when offering assignees (Q-015).Q-015
Week navigation + filters NEWWorking prev/next week arrows; week dates, arrows, a filter-by-name box and the team dropdown sit on one row above the grid.Client, 23 Jun
Roster-change reassign CHANGEDMarking someone sick/holiday who has booked work opens the “Reassign affected work” flow (renamed from “re-home”): every affected task is listed with its own assignee dropdown, plus “set all to …” and auto-distribute-by-travel helpers.C-002
Locked referrals surfaced too NEWBooked tasks are not the only work stranded when someone goes off. Opening a referral locks it to that user (R-008), so a referral opened at 16:55 by a person who then calls in sick is invisible work nobody else can touch. The reassign flow therefore has a second section – “Referrals locked to them” – listing each locked referral (id, prospect, status, how long it has been held, urgent flag, link into the Referrals module) with a per-row choice: reassign to a colleague (the lock transfers), release to the team queue (unlocked, whoever opens it next takes it), or deliberately leave locked. “Release all” and “set all to …” helpers mirror the task section, and both sections are applied in one confirm, one audit entry apiece. Crucially, the flow now opens even when the person has no booked tasks but does hold locked referrals – that case previously slipped through with no prompt at all.R-008, C-002
MS Teams / 365 syncBuilt as a Teams panel (see §8) – sync shifts/bookings to Teams/365 calendars, push jobs, accept/reject in Teams. Copy week → duplicates the week’s roster.C-011
“When a roster changes (e.g. sickness), workflow pages help reassign all affected tasks.” – M8 (→ C-002). “If the person goes on holiday, I can manage it behind the scenes and pick someone else.” – Andy Hart, M8.

4 · Schedule, reassign, reschedule & recurring wireframe ↗

FlowBehaviourRef
Schedule (day-aware)Pick a visit day and duration; assignees are filtered to who’s on shift that day; choose a free slot from a grid (busy slots greyed). Books a named person + time.Q-015
ReassignGroup → person within it (no ghost users), with an audited reason – including “closer to other jobs (travel)”.Q-005
RescheduleMove a booking to another day/time; SLA target is unchanged and a move past target is flagged; audited.Q-016
Make recurring NEWWeekly … annual frequency; each occurrence auto-created and queued; option to create the next only after the current closes.C-004
These mirror the task-level reschedule/reassign behaviour already defined for the request detail (Q-016), so a task behaves identically whether it’s touched from the request, the queue or the board.

5 · Outfield app preview wireframe ↗

The field crew’s phone view, included to show the loop the planner depends on. Today crews “take screen grabs prior to leaving office … and receive changes via phone calls”; this replaces that with push.

CapabilityDetailRef
Push + accept / reject NEWNew jobs are pushed to the assignee; they accept or reject with a reason. A rejection returns the job to Unscheduled and notifies the dispatcher.C-004
Live to the ARCAccept, start, complete and outcomes sync the moment the crew taps – no end-of-day catch-up.C-004
Navigate & signTurn-by-turn to the what3words square; capture notes and a signature on completion.SaaS4
Offline TBDSeveral sites have poor signal – updates queue and sync when back in range.SaaS4
“This should allow outfield staff access to schedule and ability to update/adjust.” / “Schedule adjustments should be pushed out to staff with option to reject with reason and notify ARC.” – SaaS4 (→ C-004).

6 · Dependencies

Depends on / feedsWhatRef
Requests (13/14)Tasks originate from requests; the queue links back to each request. Task delete/reassign/reschedule grammar is shared (Q-016).G-002
AdministrationTask types & their SLAs (Q-003/Q-006), shift patterns, skills, teams, and the recurring/follow-on options are configured there.Q-003
InventoryStock reserved for an install task is held against the request (Q-004); the old “Task Stock” screens belong to Inventory, not Scheduling.Q-004
ReportsScheduled-assessment report and route/utilisation reporting (P-003) live in Reports; the scheduler can show assessment schedules only.P-003
ILOS call-handlingWelfare/notification calls captured on a service push to ILOS as reminders; a separate sync workstream (deep-review meeting 2, item 33).M2 review
Service User ProfileDecommission schedules an equipment-recovery task (S-005); a request’s follow-on is auto-scheduled for its date (S-012).S-005, S-012

7 · Coverage of the old “Scheduling” section

The Current SM 6 Scheduling folder holds 15 screenshots. Every one is accounted for below; the counts sum to 15.

Old SM screen groupCountDispositionWhere
Advanced Search 1 & 2, Basic Search, Add General Task, Task State menu, Task Type menu, end-of-table Actions7REBUILT as the Bookings queue (search, type filter → C-003, add task, row actions).Scheduling – §1 (built)
Task Details menu (1 & 2)2OWNED ELSEWHERE Task detail is the request/task detail; surfaced here via Open request + the board’s Job detail.Requests (13/14)
Task Stock menu + Stock Items / Allocated-from-Prescription / Deallocated / Parts Used tables5OWNED ELSEWHERE Stock against a task belongs to Inventory.Inventory (later)
Planner1REBUILT as Daily Planning (lanes + route map + auto-schedule).Scheduling – §2 (built)
Total old screens15 / 15 ✓

Net-new (no old screen): Roster (§3), the day-aware Schedule / Reassign / Reschedule / Recurring flows (§4), Auto-schedule & route map (§2) and the Outfield app (§5) – all driven by C-002 and C-004.

8 · Client requirements – major client (23 Jun 2026) wireframe ↗

A major client raised seven requirements that touch Scheduling. All are implemented in the wireframe and recorded as decisions C-005…C-011.

RequirementHow it’s implementedRef
Recurring appointments – “same schedule for another week”A NEW Recurring-appointment flow (weekly … annual) plus a Repeat week → action on Daily Planning and a Copy week → on the Roster that duplicate the week’s shifts & bookings; each occurrence is auto-created and individually editable.C-010
See how long a job has waited – colour-change if not accepted within an hourA NEW wait-time chip on every un-booked job and pool item: green < 30 min, amber 30–60, red > 1 hour (a gentle pulse) – in the queue, the planning tray and the outfield app.C-007
Accept jobs into an available queueA NEW Available jobs pool: a job can be offered to the team (Offer to pool) and any on-shift member self-accepts it into their own day – on the dispatcher console and in the outfield app.C-008
Reassign tasks to others – by themselvesSelf-service hand-over on the outfield app (and reassign on the console): the assignee moves their own job to another on-shift colleague, who is notified – no dispatcher required.C-009
T-shirt job sizing (S/M/L/XL) for the Tunstall teamA NEW size badge on every job (queue, board, outfield); size combines with the job type to set the expected duration.C-006
Configure how long a job should take (per job type)Job durations are configured in the Administration module – minutes (m) per job type × size – not on the scheduling screen; the scheduler reads them to lay out lanes and pre-fill the visit duration.C-005
Teams app integrationA NEW Microsoft Teams panel: sync shifts/bookings to Teams / 365 calendars, push jobs as Teams notifications, and accept/reject from within Teams (adaptive cards).C-011
Interpretation flagged for confirmation. “Accept jobs and they go to the queue of jobs available” is implemented as a pull model (offer-to-pool → self-accept). The T-shirt scale (S/M/L/XL) and whether the per-type/size duration is the single source vs an editable per-job override are defaulted here – see the open questions.
Follow-up corrections (23 Jun 2026). Also applied to the Scheduling pages: a new Calendar sub-page (tasks assigned to people, per person × day); the Work Queue page removed from the Scheduling navigation (the Bookings queue supersedes it); the page-freshness label changed from “As of” to “Updated” to match the other modules; job-duration configuration moved out of the scheduling screen into Administration; and the roster overhaul in §3 (24-hour day cells, flexible shift patterns on name-click, working week navigation, filter-by-name, distinct Training colour, and the renamed per-task “Reassign affected work” flow).
Daily Planning refinements (23 Jun 2026). Per §2: Auto-schedule and Optimise now propose only (Accept/Reject per task or route; old position crossed out, new highlighted); tasks can be inserted at any position in a lane (single + slot); each lane shows its end-of-shift and projected return time (⚠ late); the map is interactive (legend, hover-to-find-pin, click-pin-to-find-task, focused route keeps all pins visible) and travel legs show min · km; plan-date arrows added; the “Repeat week” button removed. A robust favicon was also applied to the Scheduling pages.
Menu & board round (23 Jun 2026). Left menu aligned to the current shell: Administration is now a working link (it was a dead stub on this page), Live Service and My Work items added, and the active Scheduling parent + sub-pages (Daily Planning / Roster / Calendar) highlight the same way as the Service Users sub-pages. Daily Planning also gained: a real Leaflet/OpenStreetMap route map (interactive, legend, hover-/click-linked pins, focused route keeps all pins); Optimise now shows the proposed order with moved stops highlighted at full size (no cross-out); the tray is ordered longest-waiting first; task boxes are colour-coded by type; people use high-contrast colours; the type filter moved into Unscheduled; and lanes sit under a “Responsible’s user group” selector.

9 · Corrections round – 02 Jul 2026 wireframe ↗

Ivan's review batch of 02 Jul 2026 – three functional additions (decisions C-012…C-014) plus board polish. All are implemented in the wireframes.

CorrectionHow it's implementedRef
Gender-restricted visits – service users may carry the keyword "Visits by females only" / "Visits by males only"The keywords join the ILOS vocabulary (Administration → Keyword management; also on the profile keyword picker). Restricted tasks carry a NEW ♀/♂ chip in the tray, on lane cards, in the work queue and in the task panel. Dropping a task on a mismatched responder opens an explanatory popup – the planner can still Assign anyway (recorded in the audit log). The schedule/reassign people lists mark mismatched staff, and Auto-schedule only proposes matching staff.C-012
Responder pairing – bind two Responders so their schedules align for a period (shared van / partnership / training), unbind laterA NEW Administration → Responder pairing page: bind two same-group Responders with a reason and a from–to period; active pairs listed; Unbind asks for confirmation and is audited. While bound, Daily Planning shows a Paired · [partner] chip on both lanes, the two lanes mirror each other (booking on either books both), and Auto-schedule / Optimise treat the pair as one unit.C-013
Multi-person tasks – "number of people required" at task creation; all attendees must alignThe Add-task popup (Requests / profile) gains a NEW People required field. On the board, multi-person tasks carry a ×N chip; when booked with fewer people than required a second-responder picker opens, showing each candidate's arrival time computed from their own route and shift fit. The latest natural arrival sets the shared start; earlier attendees show an explicit "waits n min so all people start together" leg and a striped wait segment on the day bar; each attendee's travel to/from their own other tasks stays their own.C-014
Responsive board – at 1456 × 858 the centre column was too narrow to useThe three-column plan grid now steps down: side columns shrink first (≤1780px), the map drops below the board at ≤1560px, the tray narrows at ≤1300px, and everything stacks ≤900px – the Responders'-day column stays usable at laptop widths.
Day-bar tooltips show durationHovering a work / travel / Teams-busy / wait block on a responder's day bar now shows start–end · duration (e.g. "Work: 09:30–10:15 · 45m").
Also in this round (My Work, file 21): the end-of-day line follows the Daily-Planning format – "47 min · 15,4km to home arriving at ~10:34 · shift ends at 16:00".

10 · Corrections round 2 – 02 Jul 2026 wireframe ↗

Ivan's second 02 Jul batch – decisions C-015…C-018, G-012, G-013 and a revision of Q-008. All implemented in the wireframes.

CorrectionHow it's implementedRef
Handover re-oriented to the next shift and moved under My WorkThe staff-names list is replaced by a per-entry toggle – Inform next shift (prominent teal callout for the incoming team) vs Log for everybody; a To do contribution type is added. A Previous shift – summary card carries an Acknowledge button that goes inactive once pressed (audited). Until acknowledged, the Handover nav item (now under My Work in every shell) shows a red ! and Home + My Work display a warning banner linking to the Handover. The end-of-shift summary is a larger input with basic formatting (bold / italic / bullets / ☐ to-do lines).C-015
Hold is task-level onlyRequests can no longer be put on hold on their own: the Tasks queue gains pause/resume actions with a reason + review date; holding a task automatically puts the whole request On hold and pauses its SLA; only a task can be resumed, which releases the request. The Requests console modals were reworded accordingly, and My Work gains an On hold section listing each hold with its review date (overdue reviews flagged).Q-008
Roster – Copy week removed; people can be removedThe Copy week button is gone (rotating patterns supersede it). The shift-pattern popup (click a person's name) gains Remove from roster… with a confirmation popup – booked work is released for reassignment (C-002), history kept per retention.C-017
Rotating schedules – up to 4 weeksEach availability row in the employee editor carries a Week 1–4 selector; the set repeats as an N-week cycle (weekly if only Week 1 is used), so rotating shift patterns roster in one step. The employees table summarises per-week patterns ("Wk1 … · Wk2 … · repeats as a 2-week cycle").C-016
Roster access privilegeView and edit are separate: everyone can view the roster; only authorised roles edit (Administration → Security & permissions). The roster page states that non-editors see it read-only.C-017
Uncompleted-task release timingAdministration → Platform settings: release uncompleted tasks back to Unscheduled immediately / at midnight (default) / 24 h / 48 h after the shift, using the existing "Released" badge + reason.C-018
Global units & time formatAdministration → Platform settings holds the distance unit (miles by default) and 24-hour vs AM/PM; the planner, people cards, route bar and My Work now display mi.G-012
Leaver data retentionA leaver's roster & activity data is kept for a configurable period (default 12 months) then redacted – same model as service users.G-013
Tasks page search-field overlapThe "Search task…" input had the same cascade bug as Requests/Referrals (the generic input[type=text] rule overriding the padded search style); fixed with a higher-specificity selector.
Also this round (other modules): the optional free-text customer reference is searchable from the header search and shown next to the agreement number on the profile (per G-005); Messages compose sends to a whole team or a specific person and can link the service user a conversation refers to (chip opens the profile).

11 · Corrections round 3 – 02 Jul 2026 wireframe ↗

Ivan's 17-item refinement batch on the 02 Jul work – mostly polish of C-012…C-018. Highlights:

CorrectionHow it's implementedRef
Map placementWhen the three Daily-Planning columns no longer fit (≤1560px), the map moves above the board instead of below it (grid row 1, full width); same on tablet/phone.
Responders' day polishLane headers show the shift start ("starts 08:00"); day-bar hover now also reports free-time gaps with start–end and duration; Teams-busy cards carry the Teams icon on the right so the hour column aligns.
Pairs everywhereA bound pair renders as one shared lane ("Anika Patel + Sam Doyle · Paired") – no duplicate lane; the people cards and responder filter merge too, and the Roster shows a Paired chip on both people.C-013
Roster person popupThe Type list gains "Personal Schedule" – the rotation defined in Administration; start/end fields hide (hours vary across the cycle). The popup also offers "Remove from my roster" (stop managing their schedule – they stay on the roster; restorable via the "Hidden" pill) alongside the destructive Remove from roster….C-016 · C-017
Add-task modal"Welfare phone call" removed from the task types; SLA sits beside Task type at the top; User group + People required share the row under the description; Notify assignee removed. With People required > 1 the Assigned list offers only tandems (two Responders sharing a van) – individuals are visible but not selectable.C-014
Gender restriction enforced in pickersAssignment dropdowns (schedule, reassign, add-task, second-responder picker) make only allowed-gender staff selectable for a restricted service user; Administration's employee editor gains a Gender picker (Male/Female). Mrs Edith Carter carries "Visits by females only".C-012
Rotating-schedule editorWeek blocks with an "Add a week" button (titles "Week 1", "Week 2"… up to 4); the set repeats indefinitely.C-016
HandoverThe "Inform next shift" tag is now a loudspeaker icon; contributor names replace "Dispatcher"; each shift's summary sits on top of its issues in the stream – the Acknowledge button (on the previous shift's summary) covers the summary and all its entries; the ☐ to-do button was dropped from the end-of-shift formatting bar.C-015
HoldsRequest rows no longer offer any hold action (tasks only); the Tasks-page hold popup gains a Note; My Work orders holds by nearest review date first.Q-008

12 · Corrections round – 03 Jul 2026 wireframe ↗

Ivan's fourth batch – Handover restructure, pairing depth, Calendar polish. Highlights:

CorrectionHow it's implementedRef
Handover – two equal columnsLeft: Previous shifts, each with its summary on top and its issues below – the latest shift carries the Acknowledge button (covers summary + issues; drives the nav dot and Home/My Work warnings) and the shift before shows "✓ Acknowledged by …". Right: Current shift – issue logging, the End of shift Summary (autosaves as you type, no draft button), the shift's logged issues each with a delete (confirmation popup), and Finalise underneath. The loudspeaker tag is sized to fit; the type is "To Do".C-015
Pair binding checks overlapsBinding two Responders now shows a popup counting the time-overlapping booked tasks that cannot survive in one combined schedule, listing them, with "Unschedule those & bind" or Cancel. Each pair records a home-base address (bind form + table column).C-013
CalendarA bound pair shares one double-height row (tasks fill it); the day view is zoomed ×2 (each hour column twice as wide, horizontal scroll with sticky name column) and opens scrolled to the first task instead of a blank midnight.C-013
Daily PlanningShift start moved from the lane header to the first driving leg ("shift starts 08:00 · 12 min · 3.1 mi"); the pair's call button opens a who-to-call chooser; each person in a pair shows their own skill level; a second pair (M. Okafor + Rachel Johnson) demos a partner crossed out while on holiday (tooltip explains); the Unscheduled tray shows task keys; TSK-5001 (Mrs Edith Carter) is pre-assigned to Anika Patel (matches the female-only restriction).C-012 · C-013
Roster / My Work / profileAll seven day columns share the same width; the My Work On hold table sorts by column (dates sort chronologically via data-sort); the Language & validation block was removed from the profile's Edit details.
Follow-ups (03 Jul 2026, PM). My Work: on-hold task names are clickable and open the same task-detail popup as "Assigned to me". Handover: the audience tag is slightly larger (icon size unchanged). Responder pairing: the two dropdowns exclude each other's selection, and bound pairs are editable (Edit loads the pair into the form; Save updates reason, period and home base in place). Calendar: initial scroll lands exactly on the first task (the sticky name column no longer offsets it); day rows keep their background across the full 24-h width; completed tasks are solid grey with readable white text; a bound pair's names sit on two non-wrapping lines ("Anika Patel" / "+ Sam Doyle") and its call button opens the same who-to-call chooser as Daily Planning. Round 5: the End-of-shift Summary sits at the bottom of the Current-shift column just above Finalise; the Calendar's day grid is unified on one hour-width token (112px) so the gridlines align with the hour headers and run the full 24 h; the pair bind form has a compact home-base field with a Leaflet map preview of the selected address, and editing a bound pair opens a dedicated popup; the board's first driving leg now mirrors the end-of-day line style ("shift starts at 08:00 · …"); the Handover's under-construction notice is gone.

13 · Corrections round – 03 Jul 2026 (evening)

Ivan's fifth batch. Headlines (full detail in the project instructions):

Follow-ups (03 Jul, night). My Work gains an "Unassigned near my route" section with a miles filter (detour distance from the planned route, self-accept per C-008). The handover nav counter is a normal badge and the shift label left the page header. Platform settings: stock-transfer receipting sits in its own section (it sets the Transfers-page auto-receive default) and a new Shift-handover section sets the hours before an unresolved issue turns red for the supervisor. Binding a new pair happens in a popup, and both pairing popups make self-binding impossible. The scan-verify button now sits next to the stock item on every screen showing the task – request stock table, task details (Requests, profile, Scheduling, My Work) and the outfield app.

Open questions for Tunstall

IDQuestionRef
OQ-SC1MS Teams / O365 sync – confirm direction (read-only import of leave vs full two-way) and the source of truth when they disagree.C-004
OQ-SC2Auto-schedule policy – confirm the ordering rule (priority → SLA → nearest travel) and whether skills/zones constrain candidates; should auto-schedule ever auto-book, or only propose for confirmation?C-004
OQ-SC3Slot granularity – fixed slots vs free start times; default visit durations per task type (from Administration).Q-006
OQ-SC4Team vs individual booking – when booked to a whole team, how is SLA/ownership tracked until a member picks it up?C-004
OQ-SC5Recurring tasks – which task types may recur, and where the catalogue of recurrence options is configured (Administration).C-004
OQ-SC6Outfield offline + rejection routing – confirm offline behaviour and whether a rejected job re-enters auto-schedule or waits for the dispatcher.C-004
OQ-SC7T-shirt sizing & duration source – confirm the size scale (S/M/L/XL?), whether sizing applies only to the Tunstall team, and whether duration comes purely from type × size or can be overridden per job.C-006, C-005
OQ-SC8Available-jobs pool – who may offer to the pool and who may accept (skill/zone limits?); how SLA/ownership is tracked while a job sits unclaimed; and the wait-time thresholds (default 30 / 60 min) for the colour escalation.C-008, C-007
OQ-SC9Teams integration scope – calendar sync direction, whether accept/reject adaptive cards write straight back to the scheduler, and channel-posting policy (per the C-011 build).C-011