Risk Assessments ​
Safety checks engineers complete before starting work at a property. Risk assessments are mandatory on-site safety assessments aligned with HSE (Health & Safety Executive) guidelines.
Assessment Questions ​
Engineers answer questions across 18 hazard categories. Each question follows a flow:
- Is the hazard present? - Yes/No
- Is it controlled? - If present
- Is it safe to continue? - If not controlled
- Can the task be made safe? - If not safe to continue
Hazard Categories ​
| Category | Description |
|---|---|
| Manual Handling | Heavy lifting or physical handling hazards |
| Hazardous Substances | Including asbestos and other dangerous materials |
| Slips, Trips, Falls | Floor hazards, obstacles, wet surfaces |
| Hot Works | Flames, high temperatures, welding |
| Hand/Sharp Tools | Tools and equipment risks |
| Working at Height | Elevated work, ladders, scaffolding |
| Electrical Safe Isolation | Electrical safety process verification |
| Gas | Gas system risks and leaks |
| Waste | Debris management and disposal |
| Other Contractors | Other workers present on site |
| Confined Spaces | Enclosed or restricted work areas |
| Vibration | Vibrating equipment hazards |
| Vulnerable Persons | Elderly, children, or vulnerable individuals present |
| Animals | Pets or animals at the property |
| Access Restrictions | Site access control and limitations |
| Sufficient Phone Signal | Mobile signal availability for emergencies |
| Safe Emergency Access | Emergency service access to property |
| Earth Test | Visual earth/service inspection |
Special Questions ​
Some questions have specific completion requirements:
- Electrical Safe Isolation: Requires confirming the safe isolation process was followed
- Safe Emergency Access: Must be confirmed as safe (triggers callback if blocked)
- Earth Test: Must pass (triggers callback if failed)
When Required ​
Risk assessments are required:
- Before starting any work on an installation job
- Each day of a multi-day job - a new assessment must be completed daily
- Before accessing the job checklist - the risk assessment action card must be completed first
The system tracks completion status per day using the riskAssessmentUploaded object:
day1: boolean
day2: boolean
day3: boolean
day4: boolean
day5: booleanCompleting an Assessment ​
Day 1 Flow ​
- Navigate to job details and tap the "Risk Assessment" action card
- Full-screen carousel displays questions sequentially
- Answer each hazard question with Yes/No responses
- Follow-up sub-questions appear based on answers
- Final confirmation screen requires engineer signature
- Assessment is submitted to the backend
Day 2+ Flow (Multi-Day Jobs) ​
Multi-day jobs have a streamlined process for subsequent days:
"Are you on-site?" - First question asks if engineer is on-site
- If "No": Assessment completes (work finished early)
- If "Yes": Continues to next question
"Has anything about the work environment changed since yesterday?"
- If "No": Previous day's answers are auto-populated, skips directly to confirmation
- If "Yes": Engineer must re-answer all 18 hazard questions
This optimization saves time when conditions haven't changed while ensuring safety when they have.
Environment Changed Logic ​
The "environment changed" question appears on Day 2+ if the previous assessment:
- Was answered as "not on-site", OR
- Had any hazards present, OR
- Had any incomplete questions
Saving Process ​
Risk assessments use an upsert pattern - a single function handles both creating new assessments and updating existing ones. The system tracks whether an assessment already exists via assessmentId state:
- No assessment ID: Creates a new assessment (POST)
- Has assessment ID: Updates the existing assessment (PUT)
Draft Save ​
Saves progress without marking the assessment complete (completed: false). Triggered in two scenarios:
- Navigating away - When the engineer leaves the risk assessment screen, progress is automatically saved
- Before Intercom callback - When requesting support, progress is saved before opening the chat
Draft saves are skipped if:
- No answers have been provided yet
- A save is already in progress
- The completion flow is active
Complete ​
Marks the assessment as finished (completed: true). Triggered when the engineer confirms on the final screen.
The completion flow:
- Sets a completion flag to block any concurrent draft saves
- Submits the assessment with
completed: true - Navigates back to job details on success
- Clears the completion flag on error so the engineer can retry
Session Stability ​
On mount, the context captures:
- Day number: Calculated from how many assessments have been submitted
- Date: The job date for that day
These values are frozen for the session. This prevents race conditions where RTK Query optimistic updates could change the day number mid-submission.
Triggering Intercom (Callback Required) ​
Certain answers trigger a callback modal requiring engineer support contact. This ensures dangerous situations are escalated before work proceeds.
Callback Triggers ​
The callback modal appears when an engineer answers:
| Condition | Meaning |
|---|---|
isTheTaskMadeSafe === false | Cannot make the task safe after identifying a hazard |
safeEmergencyAccess === false | Emergency services cannot access the property |
earthTest === false | Earth test failed |
processFollowed === false | Electrical safe isolation process was not followed |
Callback Flow ​
- Engineer answers with a callback-triggering response
- Modal displays: "Do not proceed - Chat with engineer support"
- Engineer taps "Start live chat"
- Intercom opens with pre-populated context:
- Job type and reference ID
- Job date
- Hazard category title
- Specific responses (controlled status, safe to continue, comments)
- Engineer discusses with support before proceeding
Intercom Contact Intentions ​
| Intention | When Used |
|---|---|
RISK_ASSESSMENT_EMERGENCY_ACCESS | Emergency services cannot access the property |
RISK_ASSESSMENT_GENERAL | All other hazard-related callbacks |