Occupancy metrics

This chapter explains how Spacewell calculates various occupancy metrics.

Summary

image-20251204-102059.png

M1 - Presence

Definition: Presence = 1 (“presence”) or 0 (“no presence”) in 1 space, as detected during a timeslot

Presence is detected via all types of occupancy sensors.
This metric is useful when analyzing 1 individual space

Example: presence on 1 specific workplace, hourly

image-20251204-102441.png

M2 - Headcount

Definition: Headcount  = nr of persons in 1 space, detected by a sensor at a given timestamp

Some sensor types can only detect presence (thus headcount = 1), others can detect actual headcount (thus headcount = N)

All timeslots contain Presence and Headcount values, even if there are no headcount sensors installed:

  • When a presence sensor is installed:

    • Presence = 1 (per timeslot)

    • Headcount = a decimal value between 0 and 1 (per timeslot)

      • The value depends on how long a person has occupied a space during the timeslot.
        Examples for 1h timeslot:

        • when occupied the whole hour, headcount = 1

        • when occupied for 3/4 hour, headcount = 0,75
        • when occupied for 1/2 hour, headcount = 0,5
        • when occupied for 1/4 hour, headcount = 0,25
      • This means that per timeslot, Spacewell stores 3 headcount values:

        • headcount_avg (average value per timeslot)

        • headcount_peak (highest value per timeslot)
        • headcount_low (lowest value per timeslot)
  • When a headcount sensor is installed:

    • Presence = 1 (per timeslot) – derived from Headcount value

    • Headcount = N (per timeslot) – derived from sensor

Example: headcount in 1 specific meeting room with capacity of 6 seats, hourly

image-20251204-104456.png


When considering a single space, the headcount metric really defines how many persons are occupying it at a given point in time.


However, when considering multiple spaces, for example a whole floor, “headcount” becomes an “estimated headcount” instead of a real number of people. The reason is that sensors are unaware of each other. Each sensors simply measures what happens to it.


A typical use case is that a person has booked a desk for an entire day, just to be sure that he/she will have a seat to work. During the day, this person will not only sit at the reserved/occupied workplace. There will be times where the person leaves his/her desk, going into meeting/focus rooms for conferencing, or going into social spaces for time off.

Consequently, when a person arrives at a desk at 09:00am, works there for 15 minutes, then goes to the coffee corner for 10 minutes, and finally enters a meeting room at 09:45, the sensors will reveal this information:

Timeslot (9am to 1am)

Space

Avg headcount

Peak headcount

09:00 - 10:00

desk

0.25 (15 mins)

1

09:00 - 10:00

coffee corner

0.17 (10 mins)

1

09:00 - 10:00

meeting room

0.25 (15 mins)

1

09:00 - 10:00

aggregation effect across multiple spaces

0.67 (sum)

3 (sum)

M3 - Occupancy

Definition: Occupancy = nr of occupied spaces / nr of monitored spaces at a given timestamp

By definition, Occupancy is always represented as a percentage and is sometimes called “Occupancy rate”.

The metric “occupancy” makes most sense when considering multiple spaces in a zone, floor or building! It’s not useful for 1 individual space. Nevertheless we store a value per individual space, but it is either 0% or 100% per 15-minute timeslot.

Illustration:

image-20251204-105235.png

In this example, we monitor 4 individual workplaces that are contained in a room called “High Desks”.

On a given date, e.g. 2025-10-07, we see these values in the 1-hour time slots for each of the 4 workplaces:

image-20251204-105332.png

Per hour we have 4 values, each representing 1 monitored workplace.

In this example, for the 9th hour of the day:

  •    Workplace ‘1610000000015935’ was occupied for 0.25 hours
  •    Workplace ‘1610000000015936’ was not occupied at all
  •    Workplace ‘1610000000015937’ was occupied for 1 hour
  •    Workplace ‘1610000000015938’ was occupied for 1 hour

For individual spaces like these 4 workplaces, the tables also have a column “occupancy_rate”.

By definition, occupancy rate = nr of occupied locations / nr of monitored locations.

Per workplace, nr of monitored locations is always 1 of course.

Consequently, occupancy_rate is always equal to utilization_rate when looking at 1 monitored location!

The occupancy rate becomes much more useful when looking at the room “High Desks” that contains these 4 workplaces:

image-20251204-105442.png

The hourly timeslots show that for the 9th hour of the day:

  • Peak occupancy rate was 75%, meaning that during this hour, 3 out of 4 workplaces were occupied simultaneously during the busiest quarter-of-hour (from the 15-minute values)
  • Low occupancy rate was 50%, , meaning that during this hour, 2 out of 4 workplaces were occupied simultaneously during the calmest quarter-of-hour (from the 15-minute intervals)
  • Average occupancy rate was 56,25% based on the quarter-of-hours

These are the 15-minute values for the same room, 9th hour_of_day on 2025-10-07:

image-20251204-105642.png

   Per 15-minutes, occupancy rate = locations_occupied / locations_occupancy_monitored

   Aggregated per hour:

  • occupancy_rate = average of the 15-minute values = 56,25%
  • occupancy_rate_peak = highest of the 15-minute values = 75%
  • occupancy_rate_low = lowest of the 15-minute values = 50%

M4 - Utilization

   Definition: Utilization = how many hours an individual space is used on a timeline

   Can be expressed as absolute value or rate:

  • Utilization time         (hours) = hours used (absolute value)
  • Utilization rate          (%)       = hours used / hours available (relative value)

Illustration:

Meeting room “Coral” was used for short periods of time on 2025-10-10:

   At 12:00 for just 15 minutes

   And from 13:00 to 14:15 (5 consecutive quarter-hours)

In the 15-minute timeslots, utilization time is either 0 or 0,25 hours per quarter-hour and of course 0 or 100% per quarter-hour.

image-20251204-105929.png

When looking at the same using the 1-hour timeslots:

image-20251204-110005.png

M5 - Dwell time

Definition: Dwell time = uninterrupted hours of presence for a given space. Is the longest streak of presence detected per space on a given day

  • Is always an absolute value (in hours)
  • We calculate these 3 values on daily basis – see chapter 4.3

    • Average dwell time

    • Longest dwell time
    • Shortest dwell time

Illustration:

In the 15-minute timeslots, we see short periods of presence for meeting room “Coral” on 2025-10-10:

image-20251204-110202.png

Based on these, dwell times are calculated in the 1-day timeslots:

image-20251204-110327.png

The longest dwell time on that day is 1,25h (from 13:00 to 14:15), the shortest is 0,25h (either at 12:00 or at 18:30) and the average dwell time is 0,58h. It means that the space was occupied for 0,58 uninterrupted hours on average.

Info

NOTE - The dwell time metric is not yet available in the dashboards, only in the Data Platform.

M6 - Capacity

Definition: Capacity = nr of seats in a space

  • For Workplaces / Parking places:        capacity = 1 (always)
  • For Meeting spaces:                            capacity = nr of seats
  • For Work / Focus spaces                     capacity = nr of workplaces inside
  • For Other spaces                                 capacity = nr of seats

Every space always has a capacity

Capacity is considered to be relatively static. Nevertheless, it can change over time, therefore the value is recorded per timeslot.

Illustration:

image-20251204-110549.png

M7 - Efficiency

Efficiency values tell us how efficiency a space is being used, during presence.

Spacewell applies two efficiency metrics:

  • Efficiency rate
  • Efficiency score


Note that efficiency can only be measured via headcount sensors!

Definition: Efficiency rate = average headcount / capacity, during presence

  • Determines how “full” an individual space is during presence, or otherwise said, how many seats are occupied during presence
  • Is always a rate (%)
  • Spacewell only calculates values during presence. In timeslots where presence = 0 the values are NULL

Illustration:

Meeting room “Coral” was used for short periods of time on 2025-10-10 but only by 1 person (headcount_average = 1). During presence, the utilization_rate is 100% but the efficiency_rate is 25% because it’s a meeting room with capacity for 4 persons.

image-20251204-111156.png

 Definition: Efficiency score = utilization_rate x efficiency_rate

  • Determines how “full” an individual space is during its entire availability
  • Is always a rate (%)
  • Because Efficiency is NULL when there is no presence, the calculation is:
  • IF Efficiency is NULL then Efficiency Score = Utilization
    ELSE Efficiency Score = Utilization x Efficiency

   Values are only calculated per day

Illustration:

image-20251204-111326.png

On 2025-10-10, meeting room “Coral” was used 1,75 hours in total (utilization_time), which is 14,58% of the available 12 business hours (from 8am to 8pm). And because it’s a meeting room with capacity of 4, used by 1 person, the efficiency rate is 25%.

This leads to a utilization score of 14,58% x 25% = 3,65% for this day.

It means that only 3,65% of the full capacity per day (12 business hours x 4 persons) is used: 1,75 hours used out of (12 x 4 = 48 total) = 3,65%.