Appearance
Roll Call
When the alarm goes, the question is not how many people are in the building. It is which people, and which of them are not yet at the assembly point.
Who it is for
| Fire wardens | The live muster board during an evacuation |
| Safety officers | Drills, cadence, and the after-action review |
| Whoever signs the compliance record | Drill history and exports |
Before it is useful
Tags on people. This app is one of the few where BLE tags are the right answer rather than a compromise: you need identity, not a headcount, and a radar cannot tell you who is missing.
Say which tags are people. The muster expects every active tag that is bound to a person entity — people and assets is the way to do it, and it is what puts a name on the board — plus any tag carrying the free-form label staff, employee, human or visitor on the device page. If no tag is bound to a person and none carries a label, the app expects every active tag instead, which means asset tags muster too and show as "missing" for ever. Sort this out before the first drill.
A zone for the assembly point. That is where "accounted for" is measured. It is usually outdoors, which is exactly where gateway coverage is weakest — check it before the drill, not during it.
Names come from the entity
The board shows each tag by the person it is bound to (Places → Entities, bind the tag as one of the person's sensors), with the badge's own name and MAC underneath. A tag bound to nobody musters by its device name, and a tag with no name by its MAC address. A tag bound to a person is expected at every muster even if the device carries no staff label.
What happens in an event
Start a roll call — a drill or the real thing — and the app takes a snapshot of every expected tag and where it was at that moment. That snapshot is the list you are working against. From then on each tag is one of:
| Status | Means |
|---|---|
| Present | Seen at the assembly point |
| Expected | Not there yet, but the event is under a minute old |
| Missing | Over a minute in and not at the assembly point |
| Unknown | The tag has not been heard at all for five minutes — it could be anywhere, including a blind spot |
| Excused | A warden marked them off — known to be off site, or accounted for another way |
The board shows who is accounted for, who is not, and where each missing person was last seen. The last part matters most: a name with a last-known zone is a search area, and the trail behind it shows how they got there.
Marking by hand stands. A warden who presses Present for somebody standing next to them with a flat battery is not overruled by the sensors on the next refresh.
Fan-out splits a large site into one board per venue — each floor musters separately, rolled up into one event. The set of floors is fixed when the event starts.
Re-snapshot rebuilds the expected list from the current tags without ending the event, for when the drill started before the badges were labelled.
Drills
The app is built on the assumption that you will run drills and then forget about it for a year. Cadence tracking exists to push against that: it counts the days since the last drill against a target (ninety by default), and on the first of each month emails your administrator if the target has passed.
Drill history gives you the year's summary — how many drills, average accountability, the slowest venue to clear — for drills, real events, or both. The slowest venue is the actionable one; it is usually the same one every time, and usually for a reason you can fix.
After-action review
Every event produces an AAR: the timeline, per-zone headcount, accountability and response time, who was accounted for and when, a lessons-learned section to fill in, and a reliability rating for each tag — reliable, intermittent, unreliable or unknown — worked out from how many of the last thirty days it reported and how strong its signal has been. A drill where three tags never reported is a drill that told you something about the tags rather than the people, and the AAR says so instead of letting the number stand.
The marshal export is a CSV with one row per person, status and timestamps — the artifact somebody signs at the debrief.
Starting one automatically
Roll Call is available as a rule action: Start a roll call, with the name, venue and assembly-point zone to use. Paired with a condition — a panic button pressed, a smoke or temperature sensor over its limit — the muster is running before anyone has reached the app. Rule-started events are prefixed [Rule] so the history tells them apart from manual ones, and a webhook subscriber sees them as rollcall.fired.
When it disappoints
The list is short. Only labelled tags are in it. Anyone without a tag has to be marked by hand, and the app cannot know they exist.
The list is far too long, full of things. No tag is bound to a person and none carries a people label, so every tag is expected — including the ones on laptops and trolleys. Bind or label the people's tags.
People are not marked present automatically. The assembly point has no zone, or the zone has no gateway coverage. Check it before the drill, not during it.
Everybody goes "unknown" outside. Same cause: once past the last gateway the tags fall silent, and five minutes later the app stops claiming to know where they are. A gateway at the assembly point turns those into present.
Accountability looks poor every time. Read the AAR's tag reliability before concluding anything about people.