Visualizing Busy-ness
In a recently NFPA published paper analyzing fire department response metrics, the authors defined and discussed visualization techniques of a department’s workload or “busy-ness”. As a preliminary step, a fire department can explore this level of busy-ness by analyzing and visualizing the number of companies/units that are engaged on assignment per hour.
This sounds great in theory, but breaks down in practice. Attempting to build these types of visualizations natively with RMS, CAD, or even worse, manually using spreadsheet exports, will surely lead to headaches and frustration! Trying to do this dynamically, with varying time ranges, field filters, and streaming incoming data is downright impossible.
Fortunately, we recently integrated an exciting new Swimlane visualization. A Swimlane visualization displays the behavior of a metric value over time aggregating across a data field. Each lane displays a different value of the selected field, with the relative size of the metric for that field over each time indicated by the color of the symbol at that time.
How might we do this in our Dashboards?
Units Engaged Per Hour
Lets visualize units engaged per hour as defined in the reference paper:
“Units engaged per hour refers to the total number of emergency events to which apparatus are assigned within any one-hour time interval. Units engaged per hour is measured in one-hour intervals though the total time assigned for a particular unit may be shorter or longer than a single hour”
- From the Visualization Tab, create a new Swimlane, and select the apparatus index
2. Now set the visualization options
a) Set Metrics to Count, because we are “counting’ the number of responses over the time period in question.
b) Choose a Terms aggregation with field, apparatus_data.unit_id to display one unit per row. Don’t forget to increase the Size to the number of units you want to display
c) Add a sub aggregation on the time the event was opened, description.event_opened.
d) Press the play button to preview. Don’t forget to increase the total time range on top menu bar if needed.
You should now see a visualization similar to this:
4. Lets apply some styling tweaks
a) On options tab, select band thresholds (blue=1, yellow=2, red=3). A yellow rectangle indicates that there were 2 responses during the time interval.
b) Press play
c) Set the time interval as desired. For units engaged per hour, you would choose “hourly”, but for this particular department, we can instead look at a 3 hour interval, adapting for their lower call volume. For larger time ranges, such as months, you will want to choose a larger interval such as day.
You should now have a styled visualization similar to this:
As you can tell, clear patterns and insights quickly emerge including
- E5 and E22 appear to be the busiest unit in terms of number of responses, generally with at least 1 response every three hours.
- Strong vertical lines of reds and yellows down the chart, such as on Jan 23 07:00–10:00 indicate particular times of busy-ness. We can see E5, T3, E20, and several other units all had 3 responses during this 3 hour period.
Next steps….
Of course, aggregating on Count and Unit Id is just one example of how to build Swimlane visualizations. We can increase the timeframe, for example to see if particular months are “busier” than other months, or even apply filters — to only look at overdose calls for example.
Unit engagement is just one example of a Swimlane, but the Swimlane visualization is also very useful for visualization trends over time such as:
- Overall System Utilization (aggregated on a unit, first due station, or unit type)
- Average or Max Turnout (aggregated on a unit, first due station, unit type, or incident type)
- Travel Duration (aggregated on unit type, call priority, or incident type)
Have another use case for Swimlane visualizations?
— email us at contact@statengine.io