Workplace Incident Report Form

This comprehensive workplace incident report form helps organizations document and investigate safety incidents effectively. Capture incident details, involved parties, witness information, contributing factors, and corrective actions. The multi-step workflow guides reporters through systematic documentation while ensuring compliance with OSHA recordkeeping requirements. Suitable for injuries, accidents, property damage, and near-miss events.

Specialized

Try the Form

Document all workplace incidents promptly and accurately. This information is essential for investigation and prevention.
Step 2: What Happened?
 
 
 
Report Filed By
 
 
 
Witnesses
 
 
 
Step 4: Contributing Factors
Contributing Possible Not a Factor Unknown
Lack of training / knowledge
Procedure not followed
Equipment failure / defect
PPE not used / inadequate
Poor housekeeping
Inadequate supervision
Fatigue / stress
Rushing / time pressure
Distraction
Environmental conditions
5/10
5 /10
110
Moderate risk - Corrective actions recommended.
 
 
Step 5: Review & Submit
📋 INCIDENT REPORT SUMMARY ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Recurrence Risk: 5/10
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
export function incidentReportForm(form: FormTs) {
// Workplace Incident Report Form
// Demonstrates: Pages (multi-page), Datepicker, Timepicker, Dropdown, RadioButton, CheckboxList, Textarea, Slider
// Focus: Structured incident documentation with investigation workflow
 
// ============================================
// HEADER
// ============================================
form.addRow(row => {
row.addTextPanel('header', {
label: 'Workplace Incident Report',
computedValue: () => 'Document all workplace incidents promptly and accurately. This information is essential for investigation and prevention.',
customStyles: {
backgroundColor: '#b91c1c',
color: 'white',
padding: '24px',
borderRadius: '12px',
textAlign: 'center'
}
});
});
 
// ============================================
// MULTI-PAGE WIZARD
// ============================================
const pages = form.addPages('incidentPages', {
heightMode: 'current-page'
});
 
// ============================================
// PAGE 1: Incident Details
// ============================================
const page1 = pages.addPage('details');
 
const detailsSection = page1.addSubform('detailsSection', {
title: 'Step 1: Incident Details'
});
 
detailsSection.addRow(row => {
row.addDropdown('incidentType', {
label: 'Type of Incident',
options: [
{ id: 'injury', name: 'Injury / Illness' },
{ id: 'near-miss', name: 'Near Miss (No Injury)' },
{ id: 'property', name: 'Property Damage' },
{ id: 'environmental', name: 'Environmental Release' },
{ id: 'security', name: 'Security Incident' },
{ id: 'vehicle', name: 'Vehicle Accident' },
{ id: 'other', name: 'Other' }
],
placeholder: 'Select incident type',
isRequired: true
});
});
 
detailsSection.addRow(row => {
row.addDatepicker('incidentDate', {
label: 'Date of Incident',
isRequired: true,
maxDate: () => new Date().toISOString()
}, '1fr');
row.addTimepicker('incidentTime', {
label: 'Time of Incident',
isRequired: true
}, '1fr');
});
 
detailsSection.addRow(row => {
row.addTextbox('location', {
label: 'Exact Location',
placeholder: 'Building, floor, room, or specific area',
isRequired: true
});
});
 
detailsSection.addRow(row => {
row.addDropdown('severity', {
label: 'Initial Severity Assessment',
options: [
{ id: 'minor', name: 'Minor - First aid only' },
{ id: 'moderate', name: 'Moderate - Medical treatment required' },
{ id: 'serious', name: 'Serious - Lost time or hospitalization' },
{ id: 'critical', name: 'Critical - Life threatening' },
{ id: 'fatality', name: 'Fatality' },
{ id: 'near-miss', name: 'Near Miss - No injury/damage' }
],
placeholder: 'Select severity',
isRequired: true
});
});
 
detailsSection.addRow(row => {
row.addTextPanel('severityWarning', {
computedValue: () => {
const severity = detailsSection.dropdown('severity')?.value();
if (severity === 'serious' || severity === 'critical' || severity === 'fatality') {
return '⚠️ CRITICAL: Immediately notify your supervisor, safety manager, and HR. Preserve the scene for investigation.';
}
return '';
},
customStyles: () => ({
backgroundColor: '#fee2e2',
color: '#991b1b',
padding: '12px',
borderRadius: '6px',
fontWeight: 'bold',
textAlign: 'center'
}),
isVisible: () => {
const severity = detailsSection.dropdown('severity')?.value();
return severity === 'serious' || severity === 'critical' || severity === 'fatality';
}
});
});
 
// Navigation buttons for page 1
const nav1 = page1.addSubform('nav1', { sticky: 'bottom' });
nav1.addRow(row => {
row.addButton('nextBtn1', {
label: 'Continue to Description →',
onClick: () => pages.goToPage('description'),
isDisabled: () => !detailsSection.dropdown('incidentType')?.value()
});
});
 
// ============================================
// PAGE 2: Description
// ============================================
const page2 = pages.addPage('description');
 
const descSection = page2.addSubform('descSection', {
title: 'Step 2: What Happened?'
});
 
descSection.addRow(row => {
row.addTextarea('description', {
label: 'Describe what happened',
placeholder: 'Provide a clear, factual account of the incident. Include what the person was doing, what equipment was involved, and the sequence of events leading to the incident...',
rows: 6,
autoExpand: true,
isRequired: true
});
});
 
descSection.addRow(row => {
row.addTextarea('immediateActions', {
label: 'Immediate actions taken',
placeholder: 'What was done immediately after the incident? First aid, evacuation, area secured, equipment shut down, etc.',
rows: 3,
autoExpand: true
});
});
 
// Injury details (conditional)
const injurySection = page2.addSubform('injurySection', {
title: 'Injury Details',
isVisible: () => detailsSection.dropdown('incidentType')?.value() === 'injury',
customStyles: { backgroundColor: '#fef2f2', padding: '16px', borderRadius: '8px' }
});
 
injurySection.addRow(row => {
row.addCheckboxList('injuryType', {
label: 'Type of Injury (select all that apply)',
options: [
{ id: 'cut', name: 'Cut / Laceration' },
{ id: 'bruise', name: 'Bruise / Contusion' },
{ id: 'sprain', name: 'Sprain / Strain' },
{ id: 'fracture', name: 'Fracture / Break' },
{ id: 'burn', name: 'Burn' },
{ id: 'eye', name: 'Eye Injury' },
{ id: 'respiratory', name: 'Respiratory' },
{ id: 'amputation', name: 'Amputation' },
{ id: 'other', name: 'Other' }
],
orientation: 'vertical'
});
});
 
injurySection.addRow(row => {
row.addCheckboxList('bodyPart', {
label: 'Body Part Affected',
options: [
{ id: 'head', name: 'Head / Face' },
{ id: 'neck', name: 'Neck' },
{ id: 'shoulder', name: 'Shoulder' },
{ id: 'arm', name: 'Arm / Elbow' },
{ id: 'hand', name: 'Hand / Wrist' },
{ id: 'fingers', name: 'Fingers' },
{ id: 'back', name: 'Back' },
{ id: 'chest', name: 'Chest / Torso' },
{ id: 'leg', name: 'Leg / Knee' },
{ id: 'foot', name: 'Foot / Ankle' },
{ id: 'toes', name: 'Toes' }
],
orientation: 'vertical'
});
});
 
injurySection.addRow(row => {
row.addRadioButton('medicalTreatment', {
label: 'Medical treatment received',
options: [
{ id: 'none', name: 'No treatment needed' },
{ id: 'first-aid', name: 'First aid on site' },
{ id: 'clinic', name: 'Clinic / Urgent care visit' },
{ id: 'er', name: 'Emergency room' },
{ id: 'hospital', name: 'Hospital admission' }
],
orientation: 'vertical'
});
});
 
// Navigation for page 2
const nav2 = page2.addSubform('nav2', { sticky: 'bottom' });
nav2.addRow(row => {
row.addButton('backBtn2', {
label: '← Back',
onClick: () => pages.goToPage('details')
}, '1fr');
row.addButton('nextBtn2', {
label: 'Continue to People Involved →',
onClick: () => pages.goToPage('people'),
isDisabled: () => !descSection.textarea('description')?.value()
}, '1fr');
});
 
// ============================================
// PAGE 3: People Involved
// ============================================
const page3 = pages.addPage('people');
 
const injuredSection = page3.addSubform('injuredSection', {
title: 'Step 3: Injured/Affected Person',
isVisible: () => detailsSection.dropdown('incidentType')?.value() === 'injury'
});
 
injuredSection.addRow(row => {
row.addTextbox('injuredName', {
label: 'Injured Person\'s Name',
placeholder: 'Full name',
isRequired: () => detailsSection.dropdown('incidentType')?.value() === 'injury'
}, '1fr');
row.addTextbox('injuredTitle', {
label: 'Job Title / Department',
placeholder: 'Position'
}, '1fr');
});
 
injuredSection.addRow(row => {
row.addDropdown('employeeType', {
label: 'Employment Status',
options: [
{ id: 'employee', name: 'Employee' },
{ id: 'contractor', name: 'Contractor' },
{ id: 'visitor', name: 'Visitor' },
{ id: 'vendor', name: 'Vendor' },
{ id: 'public', name: 'Member of Public' }
],
placeholder: 'Select status'
}, '1fr');
row.addTextbox('supervisor', {
label: 'Supervisor Name',
placeholder: 'Direct supervisor'
}, '1fr');
});
 
// Reporter Info
const reporterSection = page3.addSubform('reporterSection', {
title: 'Report Filed By'
});
 
reporterSection.addRow(row => {
row.addTextbox('reporterName', {
label: 'Your Name',
placeholder: 'Person filing this report',
isRequired: true
}, '1fr');
row.addTextbox('reporterTitle', {
label: 'Your Title / Department',
placeholder: 'Position'
}, '1fr');
});
 
reporterSection.addRow(row => {
row.addTextbox('reporterPhone', {
label: 'Phone Number',
placeholder: 'For follow-up questions'
}, '1fr');
row.addEmail('reporterEmail', {
label: 'Email',
placeholder: 'your@email.com'
}, '1fr');
});
 
// Witnesses
const witnessSection = page3.addSubform('witnessSection', {
title: 'Witnesses'
});
 
witnessSection.addRow(row => {
row.addRadioButton('hasWitnesses', {
label: 'Were there any witnesses?',
options: [
{ id: 'yes', name: 'Yes' },
{ id: 'no', name: 'No' },
{ id: 'unknown', name: 'Unknown' }
],
orientation: 'horizontal'
});
});
 
witnessSection.addRow(row => {
row.addTextarea('witnessInfo', {
label: 'Witness names and contact information',
placeholder: 'List all witnesses with their names and how to contact them...',
rows: 2,
autoExpand: true,
isVisible: () => witnessSection.radioButton('hasWitnesses')?.value() === 'yes'
});
});
 
// Navigation for page 3
const nav3 = page3.addSubform('nav3', { sticky: 'bottom' });
nav3.addRow(row => {
row.addButton('backBtn3', {
label: '← Back',
onClick: () => pages.goToPage('description')
}, '1fr');
row.addButton('nextBtn3', {
label: 'Continue to Contributing Factors →',
onClick: () => pages.goToPage('factors')
}, '1fr');
});
 
// ============================================
// PAGE 4: Contributing Factors
// ============================================
const page4 = pages.addPage('factors');
 
const factorsSection = page4.addSubform('factorsSection', {
title: 'Step 4: Contributing Factors'
});
 
factorsSection.addRow(row => {
row.addMatrixQuestion('contributingFactors', {
label: 'Identify factors that may have contributed to this incident:',
rows: [
{ id: 'training', label: 'Lack of training / knowledge' },
{ id: 'procedure', label: 'Procedure not followed' },
{ id: 'equipment', label: 'Equipment failure / defect' },
{ id: 'ppe', label: 'PPE not used / inadequate' },
{ id: 'housekeeping', label: 'Poor housekeeping' },
{ id: 'supervision', label: 'Inadequate supervision' },
{ id: 'fatigue', label: 'Fatigue / stress' },
{ id: 'rushing', label: 'Rushing / time pressure' },
{ id: 'distraction', label: 'Distraction' },
{ id: 'environment', label: 'Environmental conditions' }
],
columns: [
{ id: 'yes', label: 'Contributing' },
{ id: 'possible', label: 'Possible' },
{ id: 'no', label: 'Not a Factor' },
{ id: 'unknown', label: 'Unknown' }
],
striped: true,
fullWidth: true
});
});
 
factorsSection.addSpacer();
 
factorsSection.addRow(row => {
row.addSlider('recurrenceRisk', {
label: 'How likely is this type of incident to happen again?',
min: 1,
max: 10,
step: 1,
defaultValue: 5,
showValue: true,
unit: '/10'
});
});
 
factorsSection.addRow(row => {
row.addTextPanel('riskWarning', {
computedValue: () => {
const risk = factorsSection.slider('recurrenceRisk')?.value();
if (!risk) return '';
if (risk <= 3) return 'Low recurrence risk - Document and monitor.';
if (risk <= 5) return 'Moderate risk - Corrective actions recommended.';
if (risk <= 7) return 'Elevated risk - Priority corrective actions needed.';
return 'High risk - Immediate action required to prevent recurrence!';
},
customStyles: () => {
const risk = factorsSection.slider('recurrenceRisk')?.value();
let bg = '#dcfce7';
if (risk && risk > 3) bg = '#fef3c7';
if (risk && risk > 5) bg = '#ffedd5';
if (risk && risk > 7) bg = '#fee2e2';
return {
backgroundColor: bg,
padding: '10px',
borderRadius: '6px',
textAlign: 'center'
};
},
isVisible: () => !!factorsSection.slider('recurrenceRisk')?.value()
});
});
 
factorsSection.addSpacer();
 
factorsSection.addRow(row => {
row.addTextarea('rootCause', {
label: 'Preliminary Root Cause Analysis',
placeholder: 'What was the underlying cause of this incident? Consider the 5 Whys technique...',
rows: 3,
autoExpand: true
});
});
 
// Navigation for page 4
const nav4 = page4.addSubform('nav4', { sticky: 'bottom' });
nav4.addRow(row => {
row.addButton('backBtn4', {
label: '← Back',
onClick: () => pages.goToPage('people')
}, '1fr');
row.addButton('nextBtn4', {
label: 'Continue to Review →',
onClick: () => pages.goToPage('review')
}, '1fr');
});
 
// ============================================
// PAGE 5: Review & Submit
// ============================================
const page5 = pages.addPage('review');
 
const reviewSection = page5.addSubform('reviewSection', {
title: 'Step 5: Review & Submit'
});
 
reviewSection.addRow(row => {
row.addTextPanel('summaryContent', {
computedValue: () => {
const type = detailsSection.dropdown('incidentType')?.value();
const date = detailsSection.datepicker('incidentDate')?.value();
const severity = detailsSection.dropdown('severity')?.value();
const location = detailsSection.textbox('location')?.value();
const reporter = reporterSection.textbox('reporterName')?.value();
const risk = factorsSection.slider('recurrenceRisk')?.value();
 
const typeLabels: Record<string, string> = {
'injury': 'Injury/Illness', 'near-miss': 'Near Miss', 'property': 'Property Damage',
'environmental': 'Environmental', 'security': 'Security', 'vehicle': 'Vehicle Accident', 'other': 'Other'
};
const severityLabels: Record<string, string> = {
'minor': 'Minor', 'moderate': 'Moderate', 'serious': 'Serious',
'critical': 'Critical', 'fatality': 'Fatality', 'near-miss': 'Near Miss'
};
 
let summary = '📋 INCIDENT REPORT SUMMARY\n';
summary += '━'.repeat(32) + '\n\n';
if (type) summary += `Type: ${typeLabels[type] || type}\n`;
if (date) summary += `Date: ${new Date(date).toLocaleDateString()}\n`;
if (location) summary += `Location: ${location}\n`;
if (severity) summary += `Severity: ${severityLabels[severity] || severity}\n`;
if (risk) summary += `Recurrence Risk: ${risk}/10\n`;
summary += '\n';
if (reporter) summary += `Reported by: ${reporter}\n`;
 
return summary;
},
customStyles: () => {
const severity = detailsSection.dropdown('severity')?.value();
let bg = '#f3f4f6';
let border = '#6b7280';
if (severity === 'minor' || severity === 'near-miss') { bg = '#dcfce7'; border = '#22c55e'; }
if (severity === 'moderate') { bg = '#fef3c7'; border = '#f59e0b'; }
if (severity === 'serious' || severity === 'critical' || severity === 'fatality') { bg = '#fee2e2'; border = '#ef4444'; }
return {
backgroundColor: bg,
borderLeft: `4px solid ${border}`,
padding: '16px',
borderRadius: '8px',
whiteSpace: 'pre-wrap',
fontFamily: 'monospace',
fontSize: '14px'
};
}
});
});
 
reviewSection.addRow(row => {
row.addTextarea('correctiveActions', {
label: 'Recommended Corrective Actions',
placeholder: 'What actions should be taken to prevent this from happening again?',
rows: 3,
autoExpand: true
});
});
 
reviewSection.addRow(row => {
row.addCheckbox('confirmAccuracy', {
label: 'I confirm that all information provided in this report is accurate and complete to the best of my knowledge.',
isRequired: true
});
});
 
// Navigation for page 5
const nav5 = page5.addSubform('nav5', { sticky: 'bottom' });
nav5.addRow(row => {
row.addButton('backBtn5', {
label: '← Back to Edit',
onClick: () => pages.goToPage('factors')
});
});
 
// ============================================
// FORM CONFIGURATION
// ============================================
form.configureSubmitButton({
label: 'Submit Incident Report',
isVisible: () => reviewSection.checkbox('confirmAccuracy')?.value() === true
});
 
form.configureCompletionScreen({
type: 'text',
title: 'Incident Report Submitted',
message: 'Your incident report has been filed. A copy has been sent to the safety department and relevant supervisors. You may be contacted for additional information during the investigation. Thank you for reporting this incident promptly.'
});
}
 

Frequently Asked Questions

When should I file an incident report?

File a report immediately for any workplace injury, accident, property damage, or near-miss. Even minor incidents should be documented - they often reveal hazards that could cause serious injuries. Most organizations require reporting within 24 hours.

What incidents are OSHA recordable?

OSHA requires recording work-related injuries/illnesses resulting in death, days away from work, restricted work, medical treatment beyond first aid, loss of consciousness, or significant injury/illness diagnosed by a physician. Near-misses don't require OSHA recording but should be documented internally.

Who should complete the incident report?

The injured employee or the person who witnessed/discovered the incident should initiate the report. Supervisors then review, add investigation findings, and ensure corrective actions are assigned. Safety managers may conduct additional investigation.

What if I don't know all the details?

Fill in what you know factually and indicate where information is unknown or estimated. Follow up with witnesses and involved parties to complete missing details. Accuracy is more important than completeness - update the report as you learn more.

How long should we retain incident reports?

OSHA requires keeping injury/illness records for 5 years. Best practice is to retain all incident documentation permanently for liability protection, trend analysis, and demonstrating safety program effectiveness. Store securely with limited access.