Asking the fleet what it is doing…
monad-knowledge Wi-Fi sensing lab · FIIT STU
Instrument · what the count rests on

What the headcount is made of.

The app on the previous page prints one number per minute. This page opens the back of the instrument and shows what that number rests on: every measured day on one clock, the four ways of computing a level and how often they agree, the minutes with a known headcount the count map passes through, what an empty floor reads night by night, how often each rule would have cried wolf on a night nobody was there, which receivers raise alarms alone, whether the phones in the room move with the radio reading, and whether a warm node reads differently from a cool one.

In plain words Like a thermostat's chart for a house, but for people: a calendar of the days the fleet listened, a twenty-four-hour curve for the day you pick, and a headcount for each minute with the range the instrument can honestly give. A gap in the curve is a gap; nobody fills it with a zero.

Method for the level panels: Envelope, our transmitter only · Doppler 20–60 Hz, our transmitter only · Delivered-rate collapse · Envelope, every transmitter

Every measured day, on one clock

Per day, for rate_inj: minutes captured, minutes the fleet could score (three or more receivers with a floor), and minutes whose most likely bucket was occupied or high.
Day Captured min Scored min Occupied+ min Span
2026-08-26 151 151 3 13:31–21:01 library time
2026-08-28 61 0 0 00:13–01:13 library time
2026-08-29 122 62 4 12:32–15:02 library time
2026-08-31 61 31 1 14:54–15:54 library time
2026-09-01 327 327 102 10:48–16:14 library time
2026-09-02 611 611 42 10:43–23:59 library time
2026-09-03 652 652 33 00:00–23:59 library time
2026-09-04 879 879 17 00:00–21:44 library time
2026-09-05 533 533 10 04:45–20:34 library time
2026-09-06 583 582 66 02:13–23:59 library time
2026-09-07 645 645 23 00:00–23:59 library time
2026-09-08 500 500 9 00:00–23:59 library time
2026-09-09 712 712 12 00:00–21:44 library time
2026-09-10 277 0 0 05:24–10:00 library time

How the four methods agree

Scope: every day pooled · 2026-08-26 · 2026-08-28 · 2026-08-29 · 2026-08-31 · 2026-09-01 · 2026-09-02 · 2026-09-03 · 2026-09-04 · 2026-09-05 · 2026-09-06 · 2026-09-07 · 2026-09-08 · 2026-09-09 · 2026-09-10

Agreement on the fleet bucket, 2026-08-29. κ of 1 is perfect agreement, 0 is chance, below 0 is systematic disagreement.
Method A Method B Minutes both scored Same bucket Cohen's κ
doppler_inj env_pooled 61 39 % 0.22
doppler_inj rate_inj 61 46 % 0.29
env_inj doppler_inj 61 61 % 0.44
env_inj env_pooled 62 55 % 0.34
env_inj rate_inj 62 61 % 0.44
rate_inj env_pooled 62 55 % 0.31

The calibration

The anchors of the count map on env_inj: for each labelled count, the fleet minutes inside its labelled windows and where their level sat. Zero is the certified-empty floor by construction.
PeopleMinutesLevel median (oct)p10p90
00.000
280.8820.4981.177
3180.9260.4841.206

One integer per minute with an interval, from a piecewise-linear map through the anchors. Zero is the floor by construction. Above the top anchor the upper bound is open.

Every labelled window the snapshot read. A label is a person's statement with a basis; it is what the map passes through.
LabelDayWindow (library time)PeopleSourceBasis
OL-001 2026-09-02 10:45–10:49 2 diary Two people filming a promotional video, moving all over the floor, before 11:20 (diary 2026-09-02 §3, the researcher's own timeline). The window edges are the detector's episode edges on nine receivers (§4b); the count is the researcher's. The quiet minutes between this and OL-002 are unlabelled because where the crew stood then is not recorded.
OL-002 2026-09-02 10:57–11:01 2 diary Same two people filming (diary 2026-09-02 §3, 'the 10:45 and 10:57 episodes fall in the window the researcher places two people making a video on the floor'). Window edges from §4b; count from the researcher.
OL-003 2026-09-02 11:16–11:26 3 diary Three people: the diary's calibration (§10) labels 'eighteen minutes with three people' across the 11:16 to 11:25 and 11:31 to 11:38 episodes, inside the researcher's own 11:20 to 11:45 visit (§3). Window edges from §4b; count from the researcher.
OL-004 2026-09-02 11:31–11:39 3 diary Three people, the second of the two episodes the diary's calibration (§10) labels as three people, inside the researcher's 11:20 to 11:45 visit (§3). Window edges from §4b; count from the researcher.

Edges calibrated on 2026-09-02 (nine receivers, the transmitter-scoped envelope): fleet level 0.00 octaves on 62 quiet minutes (p90 0.03), 1.05 on nine minutes with two moving people, 1.10 on eighteen minutes with three people. Empty against occupied separates; two against three people does not. `high` has never been observed and is a placeholder until the staged crowd days run. Buckets are levels, not head counts.

The empty floor, night by night

rate_inj: per night and receiver, the certified-empty minutes and their median, MAD and 99th percentile of the raw statistic. "Shift" is this night's median minus the previous decoded night's, in units of that night's MAD.
Night of Receiver Minutes Median MAD p99 Previous Shift (MAD)
2026-09-02 monad02 336 1.462e+04 429 1.494e+04
2026-09-03 monad02 336 1.487e+04 167 1.499e+04 2026-09-02 +0.6
2026-09-05 monad02 110 1.43e+04 916 1.493e+04 2026-09-03 -3.4
2026-09-06 monad02 323 1.468e+04 381 1.495e+04 2026-09-05 +0.4
2026-09-07 monad02 340 1.47e+04 172 1.489e+04 2026-09-06 +0.0
2026-09-08 monad02 320 1.291e+04 2.9e+03 1.492e+04 2026-09-07 -10.4
2026-09-02 monad03 335 1.495e+04 48.9 1.499e+04
2026-09-03 monad03 336 1.497e+04 23 1.5e+04 2026-09-02 +0.5
2026-09-05 monad03 110 1.487e+04 160 1.498e+04 2026-09-03 -4.5
2026-09-06 monad03 323 1.495e+04 37.1 1.499e+04 2026-09-05 +0.5
2026-09-07 monad03 338 1.496e+04 32.6 1.499e+04 2026-09-06 +0.1
2026-09-08 monad03 320 1.231e+04 3.93e+03 1.498e+04 2026-09-07 -81.3
2026-09-02 monad04 336 1.49e+04 105 1.498e+04
2026-09-03 monad04 336 1.491e+04 91.9 1.499e+04 2026-09-02 +0.1
2026-09-05 monad04 110 1.48e+04 251 1.497e+04 2026-09-03 -1.2
2026-09-06 monad04 324 1.492e+04 80.8 1.499e+04 2026-09-05 +0.5
2026-09-07 monad04 339 1.492e+04 35.6 1.497e+04 2026-09-06 +0.0
2026-09-08 monad04 320 1.34e+04 2.33e+03 1.498e+04 2026-09-07 -42.8
2026-08-27 monad05 62 1.174e+04 4.7e+03 1.494e+04
2026-09-02 monad05 335 1.482e+04 139 1.494e+04 2026-08-27 +0.7
2026-09-03 monad05 336 1.493e+04 35.6 1.496e+04 2026-09-02 +0.8
2026-09-05 monad05 110 1.468e+04 367 1.492e+04 2026-09-03 -7.1
2026-09-06 monad05 324 1.485e+04 112 1.495e+04 2026-09-05 +0.5
2026-09-07 monad05 340 1.492e+04 28.2 1.495e+04 2026-09-06 +0.6
2026-09-08 monad05 321 1.327e+04 2.33e+03 1.488e+04 2026-09-07 -58.4
2026-09-02 monad06 336 1.482e+04 175 1.495e+04
2026-09-03 monad06 334 1.49e+04 70.4 1.496e+04 2026-09-02 +0.5
2026-09-05 monad06 110 1.473e+04 350 1.497e+04 2026-09-03 -2.4
2026-09-06 monad06 324 1.49e+04 102 1.497e+04 2026-09-05 +0.5
2026-09-07 monad06 340 1.482e+04 75.6 1.494e+04 2026-09-06 -0.7
2026-09-08 monad06 290 1.428e+04 1.03e+03 1.499e+04 2026-09-07 -7.2
2026-09-02 monad07 334 1.479e+04 225 1.496e+04
2026-09-03 monad07 335 1.492e+04 60.8 1.497e+04 2026-09-02 +0.6
2026-09-05 monad07 110 1.457e+04 569 1.495e+04 2026-09-03 -5.8
2026-09-06 monad07 324 1.484e+04 187 1.497e+04 2026-09-05 +0.5
2026-09-07 monad07 339 1.487e+04 63.8 1.497e+04 2026-09-06 +0.2
2026-08-27 monad08 62 1.26e+04 3.14e+03 1.499e+04
2026-09-02 monad08 336 1.488e+04 137 1.498e+04 2026-08-27 +0.7
2026-09-03 monad08 335 1.482e+04 111 1.49e+04 2026-09-02 -0.4
2026-09-05 monad08 109 1.486e+04 165 1.498e+04 2026-09-03 +0.4
2026-09-06 monad08 323 1.477e+04 255 1.497e+04 2026-09-05 -0.6
2026-09-07 monad08 339 1.477e+04 225 1.496e+04 2026-09-06 +0.0
2026-09-02 monad09 336 1.495e+04 50.4 1.499e+04
2026-09-03 monad09 334 1.492e+04 70.4 1.498e+04 2026-09-02 -0.5
2026-09-05 monad09 110 1.471e+04 378 1.496e+04 2026-09-03 -3.1
2026-09-06 monad09 324 1.492e+04 71.9 1.497e+04 2026-09-05 +0.6
2026-09-07 monad09 340 1.493e+04 38.5 1.498e+04 2026-09-06 +0.1
2026-09-02 monad10 336 1.465e+04 401 1.494e+04
2026-09-03 monad10 336 1.474e+04 302 1.495e+04 2026-09-02 +0.2
2026-09-05 monad10 110 1.432e+04 892 1.493e+04 2026-09-03 -1.4
2026-09-06 monad10 324 1.484e+04 134 1.494e+04 2026-09-05 +0.6
2026-09-07 monad10 340 1.469e+04 142 1.491e+04 2026-09-06 -1.1

The false-alarm ledger

rate_inj, per night, rule, bucket edge and window: the windows that fired, the rate per empty hour, and the Wilson 95 % upper bound. The level is judged against the same night's floor.
Night of Rule Edge (oct) Window Windows Fired Per hour Upper 95 %
2026-09-02 fleet-median 0.25 1 min 326 77 14.17 17.11
2026-09-02 fleet-median 0.25 10 min 33 19 3.45 4.37
2026-09-02 fleet-median 0.75 1 min 326 23 4.23 6.22
2026-09-02 fleet-median 0.75 10 min 33 11 2.00 3.02
2026-09-02 fleet-median 1.50 1 min 326 0 0.00 0.70
2026-09-02 fleet-median 1.50 10 min 33 0 0.00 0.63
2026-09-02 k2-of-N 0.25 1 min 326 88 16.20 19.24
2026-09-02 k2-of-N 0.25 10 min 33 20 3.64 4.52
2026-09-02 k2-of-N 0.75 1 min 326 80 14.72 17.69
2026-09-02 k2-of-N 0.75 10 min 33 19 3.45 4.37
2026-09-02 k2-of-N 1.50 1 min 326 39 7.18 9.56
2026-09-02 k2-of-N 1.50 10 min 33 15 2.73 3.72
2026-09-03 fleet-median 0.25 1 min 326 40 7.36 9.77
2026-09-03 fleet-median 0.25 10 min 33 16 2.91 3.89
2026-09-03 fleet-median 0.75 1 min 326 7 1.29 2.62
2026-09-03 fleet-median 0.75 10 min 33 5 0.91 1.86
2026-09-03 fleet-median 1.50 1 min 326 0 0.00 0.70
2026-09-03 fleet-median 1.50 10 min 33 0 0.00 0.63
2026-09-03 k2-of-N 0.25 1 min 326 76 13.99 16.92
2026-09-03 k2-of-N 0.25 10 min 33 23 4.18 4.96
2026-09-03 k2-of-N 0.75 1 min 326 19 3.50 5.35
2026-09-03 k2-of-N 0.75 10 min 33 7 1.27 2.27
2026-09-03 k2-of-N 1.50 1 min 326 11 2.02 3.56
2026-09-03 k2-of-N 1.50 10 min 33 6 1.09 2.06
2026-09-05 fleet-median 0.25 1 min 107 41 22.99 28.67
2026-09-05 fleet-median 0.25 10 min 11 8 4.36 5.42
2026-09-05 fleet-median 0.75 1 min 107 11 6.17 10.49
2026-09-05 fleet-median 0.75 10 min 11 4 2.18 3.88
2026-09-05 fleet-median 1.50 1 min 107 0 0.00 2.08
2026-09-05 fleet-median 1.50 10 min 11 0 0.00 1.55
2026-09-05 k2-of-N 0.25 1 min 107 50 28.04 33.68
2026-09-05 k2-of-N 0.25 10 min 11 9 4.91 5.69
2026-09-05 k2-of-N 0.75 1 min 107 44 24.67 30.36
2026-09-05 k2-of-N 0.75 10 min 11 8 4.36 5.42
2026-09-05 k2-of-N 1.50 1 min 107 22 12.34 17.50
2026-09-05 k2-of-N 1.50 10 min 11 5 2.73 4.32
2026-09-06 fleet-median 0.25 1 min 314 59 11.27 14.09
2026-09-06 fleet-median 0.25 10 min 32 19 3.56 4.47
2026-09-06 fleet-median 0.75 1 min 314 3 0.57 1.66
2026-09-06 fleet-median 0.75 10 min 32 2 0.38 1.21
2026-09-06 fleet-median 1.50 1 min 314 0 0.00 0.73
2026-09-06 fleet-median 1.50 10 min 32 0 0.00 0.64
2026-09-06 k2-of-N 0.25 1 min 314 93 17.77 20.93
2026-09-06 k2-of-N 0.25 10 min 32 23 4.31 5.07
2026-09-06 k2-of-N 0.75 1 min 314 57 10.89 13.68
2026-09-06 k2-of-N 0.75 10 min 32 19 3.56 4.47
2026-09-06 k2-of-N 1.50 1 min 314 39 7.45 9.92
2026-09-06 k2-of-N 1.50 10 min 32 16 3.00 3.98
2026-09-07 fleet-median 0.25 1 min 330 48 8.73 11.25
2026-09-07 fleet-median 0.25 10 min 33 15 2.73 3.72
2026-09-07 fleet-median 0.75 1 min 330 7 1.27 2.59
2026-09-07 fleet-median 0.75 10 min 33 5 0.91 1.86
2026-09-07 fleet-median 1.50 1 min 330 0 0.00 0.69
2026-09-07 fleet-median 1.50 10 min 33 0 0.00 0.63
2026-09-07 k2-of-N 0.25 1 min 330 70 12.73 15.56
2026-09-07 k2-of-N 0.25 10 min 33 19 3.45 4.37
2026-09-07 k2-of-N 0.75 1 min 330 34 6.18 8.43
2026-09-07 k2-of-N 0.75 10 min 33 8 1.45 2.46
2026-09-07 k2-of-N 1.50 1 min 330 24 4.36 6.36
2026-09-07 k2-of-N 1.50 10 min 33 7 1.27 2.27
2026-09-08 fleet-median 0.25 1 min 311 72 13.89 16.89
2026-09-08 fleet-median 0.25 10 min 32 18 3.38 4.31
2026-09-08 fleet-median 0.75 1 min 311 13 2.51 4.21
2026-09-08 fleet-median 0.75 10 min 32 5 0.94 1.91
2026-09-08 fleet-median 1.50 1 min 311 0 0.00 0.73
2026-09-08 fleet-median 1.50 10 min 32 0 0.00 0.64
2026-09-08 k2-of-N 0.25 1 min 311 100 19.29 22.52
2026-09-08 k2-of-N 0.25 10 min 32 23 4.31 5.07
2026-09-08 k2-of-N 0.75 1 min 311 55 10.61 13.39
2026-09-08 k2-of-N 0.75 10 min 32 14 2.62 3.64
2026-09-08 k2-of-N 1.50 1 min 311 0 0.00 0.73
2026-09-08 k2-of-N 1.50 10 min 32 0 0.00 0.64

Receiver commissioning

A flag is a receiver-minute whose own level bucket is occupied or above. A lone flag is one no other receiver scored that minute shared. Lone flags inside an episode the fleet later joined are the best-placed receiver hearing first; lone flags outside every episode are the alarms nobody else ever joined. Quiet correlation is the receiver's level against the fleet median on minutes the fleet read empty: common-mode drift shows here. The ranking must hold on two independent days before it is quoted, which is why the scope can be one day. Scope: every day pooled · 2026-08-26 · 2026-08-28 · 2026-08-29 · 2026-08-31 · 2026-09-01 · 2026-09-02 · 2026-09-03 · 2026-09-04 · 2026-09-05 · 2026-09-06 · 2026-09-07 · 2026-09-08 · 2026-09-09 · 2026-09-10

rate_inj, 2026-08-29: per receiver, minutes scored, minutes it flagged, its lone flags and their rate, how many lone flags fell inside a fleet episode, the episodes it flagged over the episodes on its days, and its correlation with the fleet median on fleet-quiet minutes.
Receiver Minutes Flags Lone Lone rate Lone in episode Episodes flagged Quiet ρ
monad02 31 1 0 0 % 0 0 of 3 0.12 (n 14)
monad03 62 2 0 0 % 0 0 of 3 0.99 (n 28)
monad04 62 9 2 22 % 2 2 of 3 0.51 (n 28)
monad05 122 35 27 77 % 3 2 of 3 1.00 (n 28)
monad06 31 3 0 0 % 0 1 of 3 0.04 (n 14)
monad07 31 2 0 0 % 0 1 of 3 1.00 (n 14)
monad08 122 2 0 0 % 0 0 of 3 0.99 (n 28)
monad09 62 6 0 0 % 0 2 of 3 0.98 (n 28)
monad10 31 6 2 33 % 2 1 of 3 0.02 (n 14)

Bystander devices against the envelope

Bystanders are advertisers with no lab identity; our own handsets are counted apart. The first ten minutes of every host-session are dropped because a new session re-salts every hash. The level is log2((n + 1) / (floor + 1)) against each receiver's own empty-night count, through the same floor rules, edges and receiver bootstrap as the CSI methods. It counts phones, not bodies.

Bucket agreement between env_inj and ble_bystanders on shared minutes: κ on four buckets, κ on the two-level collapse (empty+low against occupied+high), and the 2×2 of that collapse. The design's reading: agreement on quiet and disagreement on active means Bluetooth counts phones and the envelope counts bodies.
Scope Minutes Same bucket κ (4) κ (2) Both quiet Envelope only Bluetooth only Both active
2026-08-26 151 30 % 0.04 0.15 77 44 13 17
2026-08-29 62 40 % -0.05 0.00 40 22 0 0
2026-08-31 31 29 % 0.00 0.00 13 18 0 0
2026-09-01 327 22 % -0.03 -0.04 112 184 16 15
2026-09-02 611 40 % -0.01 0.02 299 241 36 35
2026-09-03 652 64 % 0.06 0.02 516 128 5 3
2026-09-04 879 78 % 0.06 0.08 809 56 10 4
2026-09-05 533 66 % 0.00 0.00 445 88 0 0
2026-09-06 582 39 % 0.00 0.00 406 176 0 0
2026-09-07 645 74 % 0.01 0.04 595 49 0 1
2026-09-08 500 89 % -0.00 0.00 477 23 0 0
2026-09-09 712 78 % -0.00 0.00 680 32 0 0
all 5685 63 % 0.05 0.07 4469 1061 80 75

Temperature against the empty floor

Per receiver-hour, the node temperature from the fleet export beside the hour's median raw statistic (dB), its level and its time-in-session. The fit is a slope in dB per degree over certified-empty hours with a bootstrap over nights, and a second slope against time-in-session. Hours within a night are serially dependent, so there is no p-value and the interval is over nights.

Per receiver over certified-empty hours: the slope of the raw env_inj statistic in dB per degree with a 5–95 % bootstrap over nights, and the slope against hours since the segment started. A floor that moves with temperature and not with time-in-session is thermal; the reverse is the radio settling. Fewer than 2 nights prints no interval.
Receiver Hours Nights Temp range (°C) dB per °C 5–95 % dB per hour in session 5–95 %
monad02 32 6 1.3 +0.0083 -0.0102 to +0.0242 +0.0390 -0.0070 to +0.0919
monad03 32 6 1.9 +0.0088 +0.0007 to +0.0118 +0.0057 -0.0304 to +0.0358
monad04 32 6 2.8 +0.0116 -0.0077 to +0.0161 +0.0278 +0.0028 to +0.0672
monad05 34 7 2.2 +0.0035 -0.0093 to +0.0136 +0.0143 -0.0114 to +0.0701
monad06 32 6 2.3 +0.0061 -0.0029 to +0.0094 -0.0105 -0.0249 to +0.0253
monad07 26 5 1.3 +0.0106 +0.0014 to +0.0174 -0.0629 -0.1262 to -0.0038
monad08 28 6 1.4 +0.0045 -0.0021 to +0.0112 -0.0533 -0.1243 to +0.0296
monad09 26 5 1.0 +0.0052 -0.0001 to +0.0064 +0.0049 -0.0163 to +0.0149
monad10 26 5 1.6 +0.0034 -0.0042 to +0.0088 +0.0391 +0.0045 to +0.1319

JSON: days · agreement · nights · false alarms · receivers · bystanders · temperature · episodes