Rota — week of
Double-click an empty cell to add a shift there. ⚠ = officer double-booked · 🔴 = SIA licence expired for that date.
Payroll
Choose a period and Generate to derive a paysheet from rostered shifts. Pay = hours × rate (shift rate → officer rate → £12 fallback). Overnight shifts crossing midnight are handled.
Saved pay runs
Loading…
Finance & Invoicing
Pick a billing period and Generate. One draft invoice is raised per client from delivered shifts (hours × the client's active contract bill rate), with 20% VAT.
Invoices
Loading…
Reports
Loading…
Vetting & screening (BS7858)
Loading…
Patrols & guard tours
Loading…
Daily Occurrence Book
Loading…
New occurrence report
Administration
Loading…
Documents
Loading…
Upload document
Welfare checks
Loading…
Leave & absence
Loading…
Add leave / absence
Client service requests
Loading…
Timesheets
Hours are derived from clock-in / clock-out pairs. Open shifts show as in progress. Estimated cost uses each shift's rate.
Live operations
Status is time-based for now (Upcoming / On now / Ended / Unassigned). Verified clock-in and “missed clock-in” arrive with the attendance module.
⚠ Reminders / Compliance — right to work
Security licences — SIA
Operational alerts
Loading…
Guard coverage map — click an area to see its guards
Click an area on the map above to list the guards based there.
Top areas by guard count
Status breakdown
Quick actions
| Name | Postcode | Area | Role | Phone | Status | Rating | Tags |
|---|
UK guard density heat map
few
more
most
· circle size & colour = number of guards in that postcode area · click a bubble to filter
Areas ranked by guard count
⚡ Urgent shift cover request
1 · Target guards
2 · Message
Automated bulk send (Twilio SMS + WhatsApp Business + email API) is wired as a stub — flip DEMO_MODE off once your backend keys are set (see the production plan). Right now each channel opens the pre-filled message per guard so you can send in one tap.
3 · Send
Import guards (CSV)
Columns accepted (header row, any order): name, email, phone, postcode, role, worker, car, sia, sia_expiry, ni, dob, share, rtw_expiry, tags, status, rating, site, notes. Rating 1–10; car = Yes/No; dates = YYYY-MM-DD. Tags separated by ; or |. Rows whose mobile or NI number already exists are skipped (both are unique). Photos aren't included in CSV. Handles tens of thousands of rows.
📁 Click to choose a CSV file, or drag & drop here
0 logged actions — every add, edit, delete, import, bulk change, dispatch and shift assignment is recorded here with who and when.
| When | Who | Action | Detail |
|---|