> ## Documentation Index
> Fetch the complete documentation index at: https://docs.waveyhq.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Anonymous Occupancy Analytics with WiFi CSI

> Generate zone-level utilization metrics from WiFi CSI without tracking devices, capturing personal data, or installing cameras.

Facilities teams need to know how spaces are actually used: peak hours, dead zones, desk utilization. CSI analytics provides anonymous utilization signals from the radio environment without installing cameras or tracking employee devices.

## 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?

These metrics drive real decisions: rightsizing meeting rooms, adjusting HVAC schedules, reallocating desk inventory. None require knowing who was present.

## Temporal aggregation

Raw CSI events are noisy at second-level resolution. Analytics pipelines aggregate over minutes to hours.

<Steps>
  <Step title="Apply debounce and hysteresis">
    Filter rapid toggles at the event layer, same as [smart-home automation](/use-cases/smart-home-automation).
  </Step>

  <Step title="Bucket into time windows">
    Aggregate into 15-minute, hourly, or daily windows.
  </Step>

  <Step title="Compute utilization">
    Calculate occupied samples divided by total samples per window.
  </Step>

  <Step title="Visualize">
    Render as heatmaps, trend lines, or zone rankings.
  </Step>
</Steps>

Motion intensity adds a secondary axis (high-traffic versus low-traffic occupancy) when [activity detection](/use-cases/motion-activity-detection) is available.

## 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.

CSI analytics reads how bodies disturb the signal. No identifiers are captured or stored. The output is zone-level utilization, not individual tracking. For regulatory context, this is closer to a people-counter beam than a WiFi probe request log.

## 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](/concepts/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.

<CardGroup>
  <Card title="Occupancy detection" icon="users" href="/use-cases/occupancy-detection">
    The underlying signal for analytics
  </Card>

  <Card title="Device-free occupancy sensing" icon="shield" href="/posts/device-free-occupancy-sensing-explained">
    Keeping analytics stable with baselines
  </Card>

  <Card title="Getting started" icon="rocket" href="/getting-started">
    Deploy your first analytics pipeline
  </Card>
</CardGroup>
