SWAP

Survey Work Allocation & Planning

Organisation logo goes here.

Phase 2 screen — the most complex surface in the project. One screen, but roughly four or five screens' worth of build.
Shift Early · 07:00–15:00 Mid · 09:00–17:00 Late · 13:00–21:00 Not rostered Cell shading shows the surveyor's rostered shift that day — a duty can only be dropped on a matching shift.

20–26 Jul 2026

Team Member
Mon 20
Tue 21
Wed 22
Thu 23
Fri 24
Sat 25
Sun 26
Alice Johnson
8034/11
Bob Wilson
8034/12
David Martinez
8034/13
Emily Clark
8034/14
Jane Smith
8034/15
John Doe
Kevin Thompson
8034/16
Lisa Anderson
8034/17
Michael Brown
Rachel White
Sarah Davis
8034/18

Selected duty

Allocated
Operator
Mobile Solutions Limited
Service
33
Start / End
07:00–15:00
First Stop
Bus Station 07:05
Last Stop
Riverside Park 14:55
Days Operable
M–F

Allocation warnings

Every duty carries its own date, set on Add Duty, so it can only be dropped in that date’s column — the column lights up as you start dragging. Changing the date is an edit to the duty, not a planner action. A shift mismatch is blocked outright; a date whose weekday falls outside the duty’s Days Operable is allowed but flagged here, as is any overlap in a surveyor’s times. Auto-allocate walks the unallocated list one duty at a time and gives it to the first surveyor who is rostered for that duty’s shift (Team › Member Shifts) and has the day free. A duty whose shift nobody free can work is left unallocated and reported here.

Work Monitor

Manual entry only — no field feed in Phase 1Custom
0
Total Duties
0
Complete
0
Active
0
Pending
0
CPS Journeys In
0 / 0
Actual vs Anticipated

Duties

Duty Type: —
DutyDateSurveyorShiftTypeProgressStatus

Duty 8034/01

Active
Date
20 Jul 2026
Surveyor
Sarah
Shift
07:00–15:00
Type
CPS
Service
33
Stops
Bus Station → Riverside Park
Total Journeys
5
Progress
3/5
Anticipated (M–F)
8

Journeys

1Outbound07:0508:20
2Inbound08:3009:45
3Outbound10:0011:15
4Inbound11:3012:45
5Outbound13:0014:15
Total Returns6

CPS Survey Review

Phase 2

Reached from the project monitor, as the source documents specify — not a separate menu item. A journey in the list above that has an arrow icon has a survey in from the TS App — click it to review and edit the survey code. The same records live in CPS › CPS Surveys for bulk work. Last synced 19 Sep 2026 08:00.

All Projects

Custom
Project No.YearSurvey TypeServiceDescriptionTarget StartTarget EndDaysTotal JourneysStatusActions
80342026CPS33Autumn CPS round20 Jul 202630 Sep 2026M–F15Active
99992026OtherSNAP!20 Jul 202615 Aug 2026M–Sat6Pending
74122027SSSSimple Service Sample05 Jan 202712 Jan 2027All week4New

All Duties

⚠ Open Item 5 — Task StatusCustom
Project No.TypeDateTimeTeam MemberJourneysBreakDuty StatusTask StatusDaysActions
8034/01CPS20 Jul 202607:00–15:00Sarah Davis515 minAllocatedActiveM–F
8034/03CPS20 Jul 202608:00–16:00Imran Khan515 minAllocatedCompleteM–F
8034/04CPS21 Jul 202607:00–15:00515 minUnallocatedNewM–F

Import Timetable

Custom

Imports are all-or-nothing. Any invalid row cancels the whole import and nothing is written. Records that already exist are updated; new records are created.

After validation, every distinct service number in the file is upserted into Timetable › Services — created if new, or its name and operator refreshed if it already exists.

Drop a timetable file here
or — .csv or .xlsx
No file selected

Last import — result

Accepted
Fileservice33_summer26.csv
Services created2
Services updated1
Journeys created128
Journeys updated46
Stops created1,152
Rows rejected0

Example of a rejected import

Cancelled

Nothing was written. Fix the file and upload again.

Row 47 — unknown stop code BSTN04Error
Row 112 — departure earlier than arrivalError
Row 209 — missing directionError

Stages View

⚠ Open Item 6 — depends on import⚠ Open Item 4 — cross-boundaryCustom
33 — Bus Station – Riverside Park – Bus Station
Effective 06 Apr 2026 · Mondays to Fridays · J03 and J04 are short workings terminating at Retail Park
Outbound ↑ reads bottom to topInbound ↓ reads top to bottomCross-boundary stop
Times shown are departures
StopJ01J02J03J04J05J06J07J08
Bus Station07:0509:4509:5511:4212:4515:2515:3518:15
High Street07:1109:3910:0111:3612:5115:1915:4118:09
Market Square07:1809:3210:0811:2912:5815:1215:4818:02
Church Lane07:2409:2610:1411:2313:0415:0615:5417:56
Hospital07:3309:1710:2311:1413:1314:5716:0317:47
College Road07:4109:0910:3111:0613:2114:4916:1117:39
Retail Park07:5208:5810:4210:5513:3214:3816:2217:28
Mill Bridge ⚠ Cross-boundary stop08:0408:4613:4414:2616:3417:16
Riverside Park08:2008:3014:0014:1016:5017:00

Import Fare Table

⚠ Open Item 8Custom · Phase 2
Phase 2 screen — shown for review only.

Same import pattern as the timetable. Each import carries an effective date; superseded versions are retained, never overwritten, so a past export can be reproduced against the fare table that was current at the time.

Drop the fare table export here
Source format not yet confirmed — see Open Item 8

Export CPS

⚠ Open Item 9Custom · Phase 2
Phase 2 screen — shown for review only.

Works at survey level, not duty level — each completed journey survey is matched against the fare table effective for its service and date, then written to the export file. Confirmed: match-then-export against the fare table. Still open: the exact file format — see Open Item 9.

Survey IDDutyJourneySurveyorFare Table MatchStatus

Admin-generated
Standard generated CRUD — list, filter, create, edit, delete. Layout is the framework's, not bespoke.