Glossary

Every value shown on the dashboard, how it is calculated, and how trustworthy it is.

MEASURED
a timestamped system event or device ping — a real observation
DERIVED
computed from measured events, but layered with an assumption or definitional choice
ASSUMPTION
driven by a timer or estimate, not an observation — treat with suspicion
SELF-REPORTED
entered by the visitor, not verified
CONFIG
a configured constant from the queue's settings, not a measurement
DISPLAY
an arbitrary threshold chosen for readability; only affects how things are painted

Data sources

State transition log MEASURED
Every state change of every queue entry (join, summon, serve, …) with a server timestamp. The backbone of every number on this dashboard.
Location pings MEASURED
Device reports: which named venue spaces the device is in, battery level, timestamp. Cadence is device-driven — gaps of minutes are normal, and a dead or offline device simply stops pinging, so any 'location' is only as fresh as the last ping.
Group size SELF-REPORTED
Declared by the visitor when joining the queue. Every people-count on the dashboard scales by it.
Queue configuration CONFIG
Capacity, estimated view time, summon expiry windows, open/close times — settings, not observations.

Event vocabulary (who fires what)

Join Queue MEASURED
Visitor taps “join” on their device.
Summon MEASURED
The tick algorithm decides there is room and calls the next group.
Force Summon MEASURED
Manual staff override summon.
Acknowledge Summon MEASURED
Visitor taps to confirm they saw the summon.
Serve MEASURED
Staff admit the group at the exhibit door. As a proxy for “the group arrived” it includes however long staff took to press the button.
Complete ASSUMPTION
Fires automatically ≈ the configured estimated view time (+ ~5 s of tick latency) after Serve. Not an observation of the group leaving — everything derived from it inherits this.
Postpone MEASURED
Visitor answers “not yet” to a summon; the entry returns to waiting.
Requeue MEASURED
System returns a postponed entry to the queue.
Expire MEASURED
A summon timed out unacknowledged, or the group never arrived. The event is real; the timeout lengths are configuration.
Cancel MEASURED
Visitor leaves the queue.
Cancel Queue MEASURED
Staff or system cancel the whole queue (e.g. at closing).

Timeline chart

Waiting to enter (people) — blue line DERIVED
Per minute: sum of group sizes over entries in IN_VIRTUAL_QUEUE or POSTPONED — the same definition as the “Waiting” tile, so line and tile agree. Summoned groups are excluded (they appear as summon dots instead), so the line drops the moment a group is called in.
In exhibit (people) — green area DERIVED
Per minute: sum of group sizes over entries in SERVED state. Entry into the state is the staff Serve (measured); exit is the Complete timer — occupancy is modeled, showing groups inside for exactly the configured view time.
Capacity — dashed line CONFIG
The queue's configured exhibit capacity in people.
Summon dots (orange) MEASURED
One dot per person in the summoned group, at the moment the Summon / Force Summon fired. Bright dots: the visitor acknowledged that summon (an Acknowledge Summon before the group's next summon). Dim dots: no acknowledgment ever arrived — though a group can still show up and be served without tapping acknowledge. Same-minute dots stack in one column, bright at the bottom; hover shows time, entry, group size and outcome; the legend checkbox toggles them.
Chart scale (2–5 px/min) DISPLAY
The chart renders at a uniform 2, 3, 4 or 5 pixels per minute, scrolls horizontally when wider than the panel, and follows the playhead.
Resolution DISPLAY
The chart is bucketed per minute; the tiles and table below are exact at the selected second.

Stat tiles

One tile per group (states are disjoint) DERIVED
Waiting, Summoned and In exhibit partition the live queue by current state: every group is counted in exactly one of them. Summoned people are not part of the Waiting count, and Waiting + Summoned + In exhibit = people currently in the system.
Waiting (people · groups) MEASURED
People whose group is currently in IN_VIRTUAL_QUEUE or POSTPONED — still holding a spot in the queue, not yet called. The subtitle gives the group count, plus postponed people when there are any. People is the sum of self-reported group sizes.
Summoned (people on their way · groups) MEASURED
People whose group is currently in SUMMON_PENDING or SUMMONED — already called in and walking over. Not part of the Waiting count.
In exhibit x/cap · spots free DERIVED
People in SERVED state versus configured capacity. Inherits the modeled occupancy (Complete timer).
Served today (people · groups) MEASURED
People (and groups) that hit Serve at any point earlier in the replay day, including those currently in the exhibit.
Longest current wait MEASURED
max(now − join time) over the groups currently waiting.
Actual wait (last 5 served) MEASURED
Median of (serve − join) over the 5 most recently served groups — a deliberately small, current sample of what a visitor served right now actually waited.
Wasted summons (+ cancelled) MEASURED
Groups whose day has ended in EXPIRED so far; the subtitle counts USER_CANCELLED the same way.

Alerts

Exhibit EMPTY while N groups wait DERIVED
Modeled occupancy is zero while entries wait. Because occupancy is modeled, a group may in truth still be inside past the timer.
N idle spots while groups wait DERIVED
Modeled occupancy below configured capacity while entries wait — same caveats as above.

Group table

Status (“for X”) MEASURED
Destination state of the entry's latest transition; “for” is the time since that transition.
ID / device MEASURED
First 8 characters of the entry id, and the device name from the session.
People (👤 icons) SELF-REPORTED
Group size declared at join.
Waiting (bar + time) DISPLAY
Time is measured (now − join). The bands are display choices: green under 15 min, amber 15–40 min, red over 40 min; the bar reaches full width at 90 min.
in exhibit X ⚠ DERIVED
Time since Serve. The ⚠ appears past the configured estimated view time, and “still inside” is the modeled-occupancy assumption.
Joined MEASURED
Timestamp of the Join Queue transition.
In venue DERIVED
now − the session's first location ping of that day. A proxy for entering the venue; a device that pinged late (or a visit spanning midnight) skews it.
Last location MEASURED
Space names from the latest ping at or before now; overlapping spaces are joined with “·”. Only as fresh as the last ping.
Battery MEASURED
Battery level from that ping. The red “low” styling under 20% is a display choice.
Updated (+ red “!”) MEASURED
Time of the last ping; the “!” marks pings older than 10 minutes (display threshold).
Summoned from (“X ago”) DERIVED
Space names from the last ping before the summon. If the device hadn't pinged recently this is where the group was last seen, not necessarily where they were.
Finished in the last 15 min DISPLAY
Terminal entries linger on screen for 15 minutes; “waited” is their final wait (terminal time − join).

Event feed

Feed rows MEASURED
Time, action, entry, resulting state, and the group's location at that moment (last ping at or before the event — same staleness caveat). “after X in queue” = summon − join; “total wait” = serve − join.

Per-visit anchor timestamps

joined_at MEASURED
The Join Queue transition.
summoned_at MEASURED
The last Summon / Force Summon before the serve — the one the visitor actually acted on, so postpone-and-resummon cycles don't distort the walk time. For never-served groups, the first summon.
served_at MEASURED
The Serve transition — the staff button-press, used as a proxy for arrival.
completed_at ASSUMPTION
The Complete transition, fired by a timer ≈ the configured estimated view time after the serve.

Intervals, statistics & sync

Interval (from / to, presets) DERIVED
Whole Hobart days, inclusive. A visit belongs to the interval if its join falls inside it. Default: the 30 days ending on the latest event in the database.
data through … MEASURED
The newest transition synced into the local stats database (the sync watermark). The ↻ refresh button pulls anything newer from the source.
average / median / P95 / P99 DERIVED
Mean and interpolated percentiles over the per-group durations in the interval. P95 = 95% of groups were at or below this value; P99 shows the worst-case tail.
n= MEASURED
How many groups had both endpoints of that metric recorded — the sample the statistics are computed over.

Exhibit metrics

groups joined / served MEASURED
Entries whose join falls in the interval; “served” is the subset that reached Serve.
Time in queue (join → summon) DERIVED
summoned_at − joined_at (for the rare direct serves, served_at − joined_at). Includes groups that were summoned but never arrived. A visitor who postpones inflates their own queue time — the delay was their choice.
Summon → arrival (summon → serve) DERIVED
served_at − summoned_at, only where both exist. Serve is the staff button-press, so this includes staff reaction time, and groups that never arrived are excluded — it only describes successful arrivals.
Time in exhibit (serve → complete) ASSUMPTION
completed_at − served_at. Complete is timer-fired at ≈ the configured view time + ~5 s, so this metric essentially echoes configuration (Breathe median 8m 25s vs 500 s configured; Confessional 3m 05s vs 180 s). It is not a measurement of how long people really stayed — true dwell would have to come from location pings.

Location breakdown

Location at summon DERIVED
Space names from the group's last ping before summoned_at; overlapping spaces are one combined label, so a group counts once. A stale device attributes the group to wherever it last reported.
Unknown (no location ping) DERIVED
Groups with no ping at all before their summon.
Groups MEASURED
Count of arrivals (summoned and served) from that location in the interval.
All locations row DERIVED
The same summon → arrival aggregate over every group regardless of location.
Dimmed rows DISPLAY
Locations with fewer than 5 groups — too small a sample to trust.

The biggest caveats, ranked

1. Anything “in exhibit” is modeled, not observed ASSUMPTION
Complete is a timer. Time-in-exhibit stats, chart occupancy, “spots free”, the overstay ⚠ and both idle/empty alerts all inherit this.
2. Arrival = staff pressing Serve DERIVED
Summon → arrival includes staff reaction time, and only counts groups that actually showed up.
3. Locations are only as fresh as the last ping DERIVED
“Summoned from” and the Location Stats grouping use the last known position.
4. Group size is self-reported SELF-REPORTED
All people-counts scale by it.
5. Queue time can be inflated by visitor postpones DERIVED
The wait was partly their choice; the stats don't distinguish.