With this report, you can generate a bar graph report that shows a count of incidents (on the Y axis) according to various criteria, including by type, by type over time, by site, by property, or by building (on the X axis). You can further filter this data by date range, injury category, affected employee, and other criteria.
To run the Incident Count report:
This report does not intend to convey the total count of incidents across all locations and categories as much as it intends to show the number of incidents that affected any given location, organizational unit, etc. The report does not double-count parent and child incidents within the same grouping. However, the report does count the same incident once for each group if multiple incident records with the same parent_incident_id are split between the different chart groups. This is as designed; if the report were to exclude child incidents in all cases and an incident did affect multiple people in multiple buildings simultaneously, querying incidents at any one of the buildings might not show the expected results. For example, if an incident affected buildings A, B, and C, with the 'parent' incident record associated with building A, you might filter show to only buildings B and C and not see record of the event's effects on those buildings.
When you click a chart bar to see detailed records, you may observe cases where there is a Grouped Incident Code with no matching Incident Codes. This would indicate that the incident spans multiple chart groups and therefore may affect the count displayed in more than one bar, even though the counts stem from a single incident.
The following explains how the headcount and area values are calculated for some of the “Group by” options.
Since there is typically a small number of incidents and big numbers for the areas, the report normalizes the value by multiplying by 0.001.
- Area: use value of bl.area_gross_int for the division
- Headcount:
SELECT count(em.em_id) FROM em where em.bl_id = ehs_incidents.bl_id
if is not zero, else:
SELECT bl.count_em FROM bl WHERE bl.bl_id = ehs_incidents.bl_id
if bl.count_em is also zero AND count of incidents >=1, then return 1 as the final result for the building; but if number of incidents = 0 then the result is 0
- Area: use value of property.area_bl_gross_int for the division.
- Headcount:
SELECT count(em.em_id) FROM em WHERE em.bl_id = bl.bl_id AND bl.pr_id = ehs_incidents.pr_id
if is not zero, else:
SELECT SUM(bl.count_em) FROM bl WHERE bl.pr_id =
ehs_incidents.pr_id
Same comments as above regarding 0 or 1 as final result for the grouping (normalized) value.
- Area: use value of site.area_gros_int for the division.
- Headcount:
SELECT count(em.em_id) FROM em, bl WHERE em.bl_id = bl.bl_id AND bl.site_id = ehs_incidents.site_id
if is not zero, else:
SELECT SUM(bl.count_em) FROM bl WHERE bl.site_id = ehs_incidents.site_id
Same comments as above regarding 0 or 1 as final result for the grouping (normalized) value.
If a user queries incidents by property, then selects to normalize by headcount, and if both values are non-zero, the system uses:
total number of incidents both for employees and non-employees together associated with the property & its buildings/
total number of employees, (that is, headcount for all buildings on that property)