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 doppler_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 105 13:31–21:01 library time
2026-08-28 61 0 0 00:13–01:13 library time
2026-08-29 122 61 31 12:32–15:02 library time
2026-08-31 61 31 19 14:54–15:54 library time
2026-09-01 327 327 217 10:48–16:14 library time
2026-09-02 611 611 310 10:43–23:59 library time
2026-09-03 652 652 183 00:00–23:59 library time
2026-09-04 879 879 182 00:00–21:44 library time
2026-09-05 533 533 167 04:45–20:34 library time
2026-09-06 583 582 341 02:13–23:59 library time
2026-09-07 645 645 152 00:00–23:59 library time
2026-09-08 500 500 45 00:00–23:59 library time
2026-09-09 712 712 153 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, pooled over every day. κ 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 5684 57 % 0.28
doppler_inj rate_inj 5684 64 % 0.33
env_inj doppler_inj 5684 65 % 0.40
env_inj env_pooled 5685 66 % 0.38
env_inj rate_inj 5685 76 % 0.51
rate_inj env_pooled 5685 74 % 0.46

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

doppler_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 329 0.002502 0.000223 0.03523
2026-09-03 monad02 329 0.0022 0.000146 0.01025 2026-09-02 -1.4
2026-09-05 monad02 108 0.002533 0.000547 0.047 2026-09-03 +2.3
2026-09-06 monad02 314 0.002251 0.000325 0.01436 2026-09-05 -0.5
2026-09-07 monad02 333 0.002795 0.000157 0.0685 2026-09-06 +1.7
2026-09-08 monad02 310 0.00452 0.00397 0.05622 2026-09-07 +11.0
2026-09-02 monad03 330 0.002914 0.000144 0.05507
2026-09-03 monad03 332 0.002682 9.11e-05 0.01399 2026-09-02 -1.6
2026-09-05 monad03 109 0.002867 0.000384 0.04255 2026-09-03 +2.0
2026-09-06 monad03 318 0.003076 0.00013 0.01436 2026-09-05 +0.5
2026-09-07 monad03 331 0.002946 0.00011 0.04239 2026-09-06 -1.0
2026-09-08 monad03 316 0.003491 0.00207 0.03402 2026-09-07 +5.0
2026-09-02 monad04 332 0.003073 0.000223 0.03513
2026-09-03 monad04 330 0.002392 0.000221 0.0114 2026-09-02 -3.0
2026-09-05 monad04 108 0.002576 0.000887 0.05085 2026-09-03 +0.8
2026-09-06 monad04 317 0.002956 0.000192 0.03991 2026-09-05 +0.4
2026-09-07 monad04 333 0.003104 0.000131 0.07679 2026-09-06 +0.8
2026-09-08 monad04 317 0.004398 0.00291 0.06046 2026-09-07 +9.9
2026-08-27 monad05 61 0.003895 0.00235 0.01092
2026-09-02 monad05 330 0.002601 0.000104 0.03835 2026-08-27 -0.5
2026-09-03 monad05 329 0.002205 6.86e-05 0.01469 2026-09-02 -3.8
2026-09-05 monad05 109 0.002122 0.000213 0.01704 2026-09-03 -1.2
2026-09-06 monad05 317 0.002068 7.54e-05 0.01667 2026-09-05 -0.3
2026-09-07 monad05 336 0.002062 6.79e-05 0.02173 2026-09-06 -0.1
2026-09-08 monad05 314 0.002465 0.00101 0.04554 2026-09-07 +5.9
2026-09-02 monad06 331 0.00193 0.000214 0.01674
2026-09-03 monad06 330 0.002556 0.000107 0.01724 2026-09-02 +2.9
2026-09-05 monad06 109 0.002398 0.000273 0.01387 2026-09-03 -1.5
2026-09-06 monad06 317 0.002322 0.000134 0.01507 2026-09-05 -0.3
2026-09-07 monad06 335 0.001176 0.000106 0.01665 2026-09-06 -8.6
2026-09-08 monad06 288 0.003791 0.00188 0.01353 2026-09-07 +24.6
2026-09-02 monad07 327 0.0008568 7.63e-05 0.07699
2026-09-03 monad07 327 0.001484 0.000167 0.05307 2026-09-02 +8.2
2026-09-05 monad07 110 0.003882 0.000591 0.05701 2026-09-03 +14.4
2026-09-06 monad07 318 0.003441 0.000211 0.05112 2026-09-05 -0.7
2026-09-07 monad07 334 0.004563 0.000179 0.06773 2026-09-06 +5.3
2026-08-27 monad08 60 0.006211 0.00529 0.02035
2026-09-02 monad08 323 0.003129 0.000131 0.1167 2026-08-27 -0.6
2026-09-03 monad08 333 0.003028 0.000168 0.05631 2026-09-02 -0.8
2026-09-05 monad08 108 0.003006 0.000336 0.03621 2026-09-03 -0.1
2026-09-06 monad08 317 0.002987 0.000241 0.03205 2026-09-05 -0.1
2026-09-07 monad08 326 0.002901 0.000135 0.03325 2026-09-06 -0.4
2026-09-02 monad09 331 0.005059 0.000205 0.058
2026-09-03 monad09 329 0.005417 0.000389 0.09985 2026-09-02 +1.7
2026-09-05 monad09 110 0.00441 0.000988 0.08631 2026-09-03 -2.6
2026-09-06 monad09 317 0.004968 0.000313 0.08292 2026-09-05 +0.6
2026-09-07 monad09 336 0.004785 0.000164 0.01736 2026-09-06 -0.6
2026-09-02 monad10 323 0.003303 0.000198 0.09197
2026-09-03 monad10 330 0.002831 0.000133 0.0398 2026-09-02 -2.4
2026-09-05 monad10 109 0.003723 0.000449 0.0543 2026-09-03 +6.7
2026-09-06 monad10 320 0.003638 0.000183 0.04363 2026-09-05 -0.2
2026-09-07 monad10 329 0.003775 0.000156 0.07371 2026-09-06 +0.7

The false-alarm ledger

doppler_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 93 17.12 20.19
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 90 16.56 19.62
2026-09-02 fleet-median 0.75 10 min 33 19 3.45 4.37
2026-09-02 fleet-median 1.50 1 min 326 85 15.64 18.66
2026-09-02 fleet-median 1.50 10 min 33 19 3.45 4.37
2026-09-02 k2-of-N 0.25 1 min 326 97 17.85 20.96
2026-09-02 k2-of-N 0.25 10 min 33 19 3.45 4.37
2026-09-02 k2-of-N 0.75 1 min 326 96 17.67 20.77
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 91 16.75 19.81
2026-09-02 k2-of-N 1.50 10 min 33 19 3.45 4.37
2026-09-03 fleet-median 0.25 1 min 326 65 11.96 14.77
2026-09-03 fleet-median 0.25 10 min 33 21 3.82 4.67
2026-09-03 fleet-median 0.75 1 min 326 46 8.47 10.99
2026-09-03 fleet-median 0.75 10 min 33 17 3.09 4.05
2026-09-03 fleet-median 1.50 1 min 326 25 4.60 6.65
2026-09-03 fleet-median 1.50 10 min 33 12 2.18 3.20
2026-09-03 k2-of-N 0.25 1 min 326 102 18.77 21.91
2026-09-03 k2-of-N 0.25 10 min 33 27 4.91 5.48
2026-09-03 k2-of-N 0.75 1 min 326 91 16.75 19.81
2026-09-03 k2-of-N 0.75 10 min 33 25 4.55 5.23
2026-09-03 k2-of-N 1.50 1 min 326 73 13.44 16.33
2026-09-03 k2-of-N 1.50 10 min 33 23 4.18 4.96
2026-09-05 fleet-median 0.25 1 min 107 50 28.04 33.68
2026-09-05 fleet-median 0.25 10 min 11 9 4.91 5.69
2026-09-05 fleet-median 0.75 1 min 107 47 26.36 32.03
2026-09-05 fleet-median 0.75 10 min 11 9 4.91 5.69
2026-09-05 fleet-median 1.50 1 min 107 37 20.75 26.39
2026-09-05 fleet-median 1.50 10 min 11 7 3.82 5.09
2026-09-05 k2-of-N 0.25 1 min 107 51 28.60 34.23
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 50 28.04 33.68
2026-09-05 k2-of-N 0.75 10 min 11 9 4.91 5.69
2026-09-05 k2-of-N 1.50 1 min 107 47 26.36 32.03
2026-09-05 k2-of-N 1.50 10 min 11 9 4.91 5.69
2026-09-06 fleet-median 0.25 1 min 314 77 14.71 17.74
2026-09-06 fleet-median 0.25 10 min 32 20 3.75 4.62
2026-09-06 fleet-median 0.75 1 min 314 64 12.23 15.11
2026-09-06 fleet-median 0.75 10 min 32 19 3.56 4.47
2026-09-06 fleet-median 1.50 1 min 314 34 6.50 8.85
2026-09-06 fleet-median 1.50 10 min 32 14 2.62 3.64
2026-09-06 k2-of-N 0.25 1 min 314 109 20.83 24.08
2026-09-06 k2-of-N 0.25 10 min 32 25 4.69 5.34
2026-09-06 k2-of-N 0.75 1 min 314 104 19.87 23.10
2026-09-06 k2-of-N 0.75 10 min 32 25 4.69 5.34
2026-09-06 k2-of-N 1.50 1 min 314 80 15.29 18.34
2026-09-06 k2-of-N 1.50 10 min 32 21 3.94 4.78
2026-09-07 fleet-median 0.25 1 min 330 59 10.73 13.43
2026-09-07 fleet-median 0.25 10 min 33 16 2.91 3.89
2026-09-07 fleet-median 0.75 1 min 330 51 9.27 11.85
2026-09-07 fleet-median 0.75 10 min 33 14 2.55 3.55
2026-09-07 fleet-median 1.50 1 min 330 38 6.91 9.25
2026-09-07 fleet-median 1.50 10 min 33 11 2.00 3.02
2026-09-07 k2-of-N 0.25 1 min 330 89 16.18 19.20
2026-09-07 k2-of-N 0.25 10 min 33 20 3.64 4.52
2026-09-07 k2-of-N 0.75 1 min 330 82 14.91 17.87
2026-09-07 k2-of-N 0.75 10 min 33 18 3.27 4.21
2026-09-07 k2-of-N 1.50 1 min 330 65 11.82 14.60
2026-09-07 k2-of-N 1.50 10 min 33 18 3.27 4.21
2026-09-08 fleet-median 0.25 1 min 311 152 29.32 32.65
2026-09-08 fleet-median 0.25 10 min 32 28 5.25 5.70
2026-09-08 fleet-median 0.75 1 min 311 115 22.19 25.48
2026-09-08 fleet-median 0.75 10 min 32 23 4.31 5.07
2026-09-08 fleet-median 1.50 1 min 311 108 20.84 24.11
2026-09-08 fleet-median 1.50 10 min 32 21 3.94 4.78
2026-09-08 k2-of-N 0.25 1 min 311 159 30.68 33.98
2026-09-08 k2-of-N 0.25 10 min 32 28 5.25 5.70
2026-09-08 k2-of-N 0.75 1 min 311 129 24.89 28.22
2026-09-08 k2-of-N 0.75 10 min 32 27 5.06 5.59
2026-09-08 k2-of-N 1.50 1 min 311 110 21.22 24.50
2026-09-08 k2-of-N 1.50 10 min 32 21 3.94 4.78

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

doppler_inj, pooled over every day: 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 5501 1702 24 1 % 3 152 of 161 0.75 (n 3490)
monad03 5683 1912 9 0 % 4 161 of 161 0.84 (n 3540)
monad04 4572 1472 85 6 % 0 131 of 153 0.60 (n 3089)
monad05 5699 1421 13 1 % 1 115 of 159 0.79 (n 3520)
monad06 4881 1361 92 7 % 0 135 of 151 0.42 (n 3334)
monad07 5049 2004 495 25 % 3 123 of 161 -0.16 (n 3142)
monad08 5070 1676 36 2 % 0 134 of 159 0.10 (n 3233)
monad09 5182 1755 37 2 % 3 143 of 159 0.15 (n 3274)
monad10 4807 1435 164 11 % 0 113 of 159 -0.05 (n 3146)

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