Occupancy sensing is the input signal that HVAC optimization depends on most — and it's also the one that fails most quietly. A PIR sensor that stopped registering occupants three years ago will show up in your BMS logs as "unoccupied" on a floor that has 40 people on it. A CO2 sensor that's been drifting high will trigger HVAC recovery in empty conference rooms. A calendar-based occupancy proxy will tell the system the building is empty at noon on a Tuesday because a meeting room has no events booked, even though the floor has dozens of people at their desks.
Understanding what each occupancy sensing technology actually measures — and what it misses — is essential for evaluating whether your current occupancy data is good enough to make HVAC control decisions from. This piece covers the four main signal types we encounter in commercial BMS installations: PIR (passive infrared), CO2 concentration, scheduled/calendar proxies, and VAV airflow-derived estimates. Each has different accuracy characteristics, lag times, and failure modes.
PIR Sensors: Fast But Narrow
Passive infrared sensors detect changes in infrared radiation — essentially, they register motion from warm bodies. They're the most common occupancy sensing technology in commercial buildings, typically installed in ceiling-mounted units that feed binary signals (occupied/unoccupied) to the BMS via the zone controller.
PIR sensors are accurate within their detection range and respond quickly — typically within 5-10 seconds of motion detection. For HVAC control, this speed matters: a PIR signal can trigger a setpoint change while occupants are actually present, not after a 15-minute averaging period.
The limitations are well-documented but often overlooked in practice. PIR sensors require motion to register occupancy — a person sitting still at a desk for 20 minutes may not register as occupied, particularly with older sensor calibrations. Coverage gaps are common in large open-plan floors where sensor placement was designed around 1990s private-office layouts. And critically: most PIR sensors report instantaneous state, not cumulative occupancy over time. The BMS log shows a sequence of 0/1 transitions, but not how many people are in the space.
For HVAC pre-conditioning specifically, PIR sensors are the wrong signal. You need to know whether the building will be occupied two to three hours from now, not whether it's occupied at this moment. A PIR signal telling you the floor is empty at 4am is correct but useless for deciding whether to pre-cool before 7am occupancy. PIR is a real-time reactive signal, not a predictive one.
CO2 Concentration: Lagging but More Granular
CO2 sensors (typically NDIR-type) measure the concentration of carbon dioxide in zone air, expressed in parts per million. Outdoor baseline is approximately 400-420 ppm. A space at 800+ ppm with normal ventilation indicates meaningful human occupancy. This makes CO2 a proxy for occupant density — unlike PIR, it gives some sense of how many people are present, not just whether anyone is there.
ASHRAE Standard 62.1 uses CO2 as a proxy for demand-controlled ventilation (DCV) — the standard minimum ventilation rates are designed to maintain CO2 below approximately 1,100 ppm in occupied spaces. Many commercial BMS systems with DCV capabilities already have CO2 sensors feeding the AHU control logic.
The key characteristic of CO2 for HVAC control is its lag time. CO2 concentration builds gradually as people enter a space and dissipates gradually as they leave or ventilation increases. In a conference room with 10 people, CO2 might not reach 700 ppm until 15-20 minutes after the meeting started. After everyone leaves, CO2 may take 30-45 minutes to fall back to baseline, depending on ventilation rates. This lag means CO2 is a delayed indicator of current occupancy — and a very delayed predictor of future occupancy.
For HVAC pre-conditioning, CO2 data from the past two to four weeks gives useful pattern information: which zones consistently show elevated CO2 on Tuesday mornings vs. Thursday afternoons, for instance. That historical pattern is predictive even if the real-time CO2 reading is not. We use CO2 trend data as one of several inputs to the occupancy pattern model, weighted appropriately for its lag characteristics.
Calendar and Schedule Proxies: Accurate for Rooms, Blind to Floors
For buildings without dedicated occupancy sensors, or where sensor data is unreliable, calendar integrations — Exchange or Google Calendar room booking data — provide a useful proxy. A conference room with a calendar event from 10am to 11am is almost certainly occupied during that window. The predictive value of calendar data is higher than either PIR or CO2, because the event exists before the occupancy occurs.
The critical limitation: calendar data covers booked rooms, not floor-wide occupancy. A floor with 60 workstations where the conference rooms are empty from 2pm to 5pm on a Friday may show as "unoccupied" in a calendar-based model, when in fact 40 people are at their desks. This is a real failure mode — HVAC systems that use calendar-only occupancy signals can aggressively setback temperatures on active work floors based on an absence of room bookings.
We're not saying calendar integration is useless — it's actually one of the most reliable predictors of heavy occupancy events (all-hands meetings, training sessions) that drive demand spikes. But it should be used as a supplementary signal, not a primary occupancy source for floor-level HVAC control. The combination of calendar events (high confidence for specific rooms at specific times) plus historical day-of-week patterns (moderate confidence for floor-level baseline) is more reliable than either alone.
VAV Airflow-Derived Estimates: An Underused Signal
In buildings with VAV (variable air volume) terminal units connected to the BMS, the VAV damper position and airflow readings provide a surprisingly useful indirect occupancy signal. When zone occupancy increases, zone temperature tends to rise (from body heat and equipment loads), and the VAV controller responds by opening the damper to increase cooling airflow. When a zone is empty, demand drops, temperatures stabilize, and VAV damper positions decrease.
This isn't a direct occupancy measurement — it's a thermal load measurement. But in many commercial buildings, the thermal signature of occupancy is distinctive enough that VAV airflow patterns can validate or contradict what the explicit occupancy sensors report. A zone where the BMS PIR says "unoccupied" but the VAV is running at 70% damper position for three hours probably has people in it.
The value of this signal is as a cross-validation layer. If your PIR sensors are unreliable or coverage is patchy, VAV airflow data from the same BMS can help identify which zones have occupancy patterns that don't match the sensor reports. We flag these discrepancies in our observation period — typically within the first two weeks of connecting to a building — and note them to facilities teams as potential sensor maintenance items.
How We Handle Occupancy Data Quality in Practice
In a 55,000 sq ft office building in Portland that we connected to recently — four floors, Honeywell Forge BMS, mixed PIR and CO2 sensors installed during a 2019 renovation — we found three zones where PIR sensors were consistently reporting unoccupied despite visible building activity during business hours. The CO2 sensors in those zones told a different story: regular weekday elevation patterns that matched occupied conditions.
Rather than building the occupancy model on the PIR data for those zones, we weighted the CO2 trend data more heavily and used historical VAV airflow patterns to anchor the predictions. For a pre-conditioning system, the consequence of treating an occupied zone as empty is a comfort complaint — the space gets too warm or too cold before people arrive because the system thought it didn't need to pre-condition. That's the failure mode we're trying to avoid.
The general principle: occupancy signal quality needs to be assessed per zone, not per building. A building with 90% reliable PIR coverage still has zones where the signal is wrong, and those zones need to be handled differently. The confidence level of the occupancy model affects the aggressiveness of the pre-conditioning action — low-confidence zones get conservative setpoint adjustments (1-1.5°F) rather than the larger adjustments justified by high-confidence signals.
What This Means for Your Building
If you're evaluating an HVAC optimization system, ask specifically how it handles occupancy signal quality. The right answer involves the system knowing which signals are high-confidence and which are low-confidence — and adjusting control behavior accordingly. A system that treats all occupancy inputs as equally reliable will eventually cause a comfort complaint in a zone where the signal is wrong.
For your own diagnostic: pull the BMS occupancy logs for two or three zones you know well — places where you can visually verify whether they're occupied — and compare the BMS records to reality. If PIR sensor logs show "unoccupied" for a floor that you know had 30 people on it on a given Tuesday, that's a signal that the occupancy data feeding your HVAC schedule has a reliability problem worth addressing, regardless of what optimization software you use or don't use.
Occupancy sensing is not glamorous infrastructure — it's poorly maintained sensor networks that were installed during building commissioning and never audited since. But it's the input that most directly determines whether automated HVAC control produces comfort or complaints. Getting the data quality right before building a control strategy on top of it is the unsexy prerequisite that nobody in the vendor-demo circuit talks about.