What to measure
Binary occupancy over time is the robust foundation. Aggregate it into four core metrics:- Utilization rate — fraction of time a zone was occupied during business hours.
- Peak occupancy periods — when does this room actually fill up?
- Dwell time — how long does occupancy persist once triggered?
- Zone comparison — which floors, wings, or desks see traffic?
Temporal aggregation
Raw CSI events are noisy at second-level resolution. Analytics pipelines aggregate over minutes to hours.1
Apply debounce and hysteresis
Filter rapid toggles at the event layer, same as smart-home automation.
2
Bucket into time windows
Aggregate into 15-minute, hourly, or daily windows.
3
Compute utilization
Calculate occupied samples divided by total samples per window.
4
Visualize
Render as heatmaps, trend lines, or zone rankings.
Anonymous CSI vs MAC analytics
MAC-address tracking logs device identifiers. This creates three problems:- One person with three devices inflates the count.
- Five people sharing one screen undercounts.
- Device identifiers may be personal data under GDPR.
Honest limits on headcount
Binary occupancy per zone is reliable. Exact person count is not: multipath superposition from multiple bodies creates ambiguous CSI patterns without spatial diversity. WiFree achieved 92.8% crowd-count accuracy with transfer-kernel learning on building-scale CSI, but that required calibrated multi-AP infrastructure, not a single ESP32 node. The detection ladder places person count at rung 7. Design dashboards around utilization and presence trends, not exact headcounts. Estimates are possible with multiple nodes and calibration, but treat them as approximate.Occupancy detection
The underlying signal for analytics
Device-free occupancy sensing
Keeping analytics stable with baselines
Getting started
Deploy your first analytics pipeline
