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

# Optimized Start/Stop (OSS)

> Use AI-powered Optimized Start/Stop to calculate the optimal HVAC start time, balancing energy savings with occupant comfort.

<Info>
  OSS is a building-level module. Select a building from the [sites list](/products/kode-os/sites-and-map), then navigate to `OSS` in the left sidebar. You can also access OSS from the `Schedules` module by clicking the `OSS` tab.
</Info>

<Tooltip tip="Optimized Start/Stop uses machine learning to start HVAC equipment at the latest time that still meets comfort targets by occupancy.">Optimized Start/Stop (OSS)</Tooltip> is an AI-powered module that determines the latest possible time to start HVAC equipment while still achieving comfortable zone temperatures by the time occupants arrive. Instead of starting equipment at a fixed early time, OSS uses machine learning to predict the optimal start time based on current building conditions, weather data, and historical performance.

### Benefits

* **Energy savings** -- reduces energy consumption by starting HVAC equipment only when needed, avoiding unnecessary early starts
* **Occupant comfort** -- ensures spaces reach the target temperature by the time occupants arrive
* **Engineering efficiency** -- frees up engineers from manually adjusting start times based on weather and building conditions
* **Real-time insights** -- provides daily data on comfort performance and space conditions through the OSS dashboard
* **Performance tracking** -- analyzes energy savings and equipment performance over time with historical trend data

## How OSS works

The OSS algorithm analyzes three categories of input to calculate the optimal start time:

* **Sensor data** -- indoor zone temperatures, setpoints, occupied mode, run status, and fan commands
* **Weather data** -- outdoor temperature, humidity, wind speed, and atmospheric pressure
* **Building factors** -- insulation characteristics, current conditions, and device performance history

Using these inputs, OSS predicts how long the building needs to reach the target temperature and calculates the start time:

`OSS Start Time = Schedule Start Time - OSS Prediction`

For example, if the schedule start time is 08:00 and OSS predicts 45 minutes to reach the setpoint, OSS starts the equipment at 07:15 instead of the traditional 06:00 fixed start.

<Frame caption="OSS calculates a variable start time between the traditional fixed start and occupancy time, creating potential energy savings">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-timeline.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=fa3bfcbd13eece396a38952c7af2b40e" alt="Timeline diagram showing a traditional scheduled start at 6:00 AM without OSS regardless of weather conditions, a variable OSS start window from 6:30 AM to 8:30 AM depending on weather, occupancy time at 8:30 AM, and the shaded area between fixed start and OSS start representing potential energy savings" width="1024" height="398" data-path="images/kode-os/oss/kode-os-oss-timeline.png" />
</Frame>

For accurate predictions, the algorithm requires reliable sensor data. Faulty sensors or insufficient historical data can reduce prediction accuracy.

## Operation modes

OSS provides three modes that balance comfort and energy savings differently. Select the operation mode from the OSS page. The status bar at the bottom shows whether OSS is currently active or inactive, with an `Activate` button to enable it.

<Frame caption="The OSS page shows the operation mode selector, adapter configurations, and activation status">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-main.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=b6761d895fbafeecf183f3940516b13f" alt="Optimized Start Stop page showing Operation Mode with Comfort, Balanced, and Energy Savings options, Balanced selected, an adapter named Test - Point References with 1/1 devices in Floor 2, an edit icon, and OSS is inactive status with Activate button" width="1024" height="723" data-path="images/kode-os/oss/kode-os-oss-main.png" />
</Frame>

| Mode               | Goal                       | Behavior                                                                                                                                                                                                                                                                                                            |
| ------------------ | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Comfort**        | Maximum occupant comfort   | All zones reach setpoints by the schedule start time. OSS starts the first <Tooltip tip="Variable Air Volume box — zone-level terminal unit.">VAV</Tooltip> and overrides the <Tooltip tip="Air Handling Unit — primary airside equipment.">AHU</Tooltip> simultaneously, with remaining VAVs activating as needed. |
| **Balanced**       | Comfort and energy savings | Once 25% of VAVs are ready, OSS overrides the AHU and starts them. The remaining VAVs activate progressively to reach full occupancy by start time.                                                                                                                                                                 |
| **Energy Savings** | Maximum energy efficiency  | OSS overrides the AHU and starts the first 50% of VAVs when ready. The rest activate gradually to reach full occupancy by start time.                                                                                                                                                                               |

## Requirements

### Permissions

The following user roles have default permissions to configure OSS:

* Super Admin
* System Admin
* System Integrator
* Engineering Manager

### Required points

The OSS machine learning model requires these five points on each device:

<ParamField path="Zone Air Temperature Sensor" type="Sensor">
  The sensor that measures the zone air temperature for the space you want to optimize.
</ParamField>

<ParamField path="Zone Air Temperature Cooling Setpoint" type="Setpoint">
  The cooling temperature setpoint for the zone. This may be an effective, occupied, or general zone temperature setpoint depending on how the device is programmed.
</ParamField>

<ParamField path="Zone Air Temperature Heating Setpoint" type="Setpoint">
  The heating temperature setpoint for the zone. Similar to the cooling setpoint, select the appropriate variant for your device configuration.
</ParamField>

<ParamField path="Run Status" type="Sensor">
  A point that indicates whether the device is currently on or off.
</ParamField>

<ParamField path="Occupied Mode" type="Control">
  A writable point that overrides the device between on and off states. At least one `occupied_mode` point must be writable on either the base or reference device.
</ParamField>

### Schedule requirements

OSS requires a valid schedule configured on the devices. Without a schedule, OSS cannot determine when occupancy starts or control equipment start times.

<Warning>
  Schedules should not be configured so that starting one device (for example, an AHU) automatically enables its downstream devices (for example, VAVs). Each device must have its own independent schedule for OSS to control them individually.
</Warning>

### Data requirements

For accurate predictions, OSS requires at least 15 to 20 devices with at least 15 days of valid historical data. The `occupied_mode` and `run_status` points must show regular on/off switching patterns during this period.

## Supported HVAC architectures

OSS supports multiple HVAC system configurations:

* **VAV - AHU** -- variable air volume boxes controlled by an air handling unit
* **VAV - AHU - AHU** -- cascaded AHU configurations
* **FCU** -- fan coil units operating independently
* **AHU** -- standalone air handling units

## Configure an OSS adapter

The OSS <Tooltip tip="An adapter binds devices and points to the OSS algorithm for one building configuration.">adapter</Tooltip> specifies which devices to optimize and which points to use for control. Each building requires its own adapter configuration.

### Create a new adapter

<Steps>
  <Step title="Open the adapter page">
    Navigate to `OSS` from the building sidebar. Click `Adapters` in the upper right to view the list of configured adapters.

    <Frame caption="The OSS Adapters page lists all adapters with their description, possible configs, and configs included">
      <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-adapters-list.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=0adc1b2b8973c21eba847b8cf43d1609" alt="OSS Adapters page showing three adapters: VAV - AHU with Setpoint, testf, and test, with columns for Name, Description, Possible Configs, and Configs Included" width="1021" height="879" data-path="images/kode-os/oss/kode-os-oss-adapters-list.png" />
    </Frame>

    Click `Add OSS Adapter` to expand the dropdown with two options:

    <Frame caption="The Add OSS Adapter dropdown provides options to add from an existing template or create a new adapter">
      <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-add-adapter-menu.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=06ae0bcb793c261f6b71315c65bc6775" alt="Add OSS Adapter dropdown showing Add from existing and Add new adapter options" width="1023" height="889" data-path="images/kode-os/oss/kode-os-oss-add-adapter-menu.png" />
    </Frame>

    * **Add from existing** -- use a pre-built adapter template from the KODE library
    * **Add new adapter** -- create a custom adapter from scratch

    Select `Add new adapter` to start the creation wizard.
  </Step>

  <Step title="Select devices">
    Enter a name and description for the adapter. Select the **base device** by choosing its canonical type (for example, `vav` or `fcu`). Click `+ Add Reference` to add a **reference device** if the architecture requires it (for example, an AHU that serves the selected VAVs).

    <Frame caption="Step 1 configures the adapter name, description, base device, and optional reference device">
      <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-adapter-select-devices.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=b71f4dcec771328b2883b644dd87f7a3" alt="Add OSS Adapter step 1 Select Devices showing Name field with VAV - AHU with Setpoint, Description field, Base Device set to vav with Edit and delete options, Add Reference button, and Reference Device set to ahu" width="1000" height="794" data-path="images/kode-os/oss/kode-os-oss-adapter-select-devices.png" />
    </Frame>

    Devices are exclusive to one adapter. Click `Next` to proceed to point mapping.
  </Step>

  <Step title="Add points">
    Map the required points for the base device and reference device. Each point type has an `Edit Points` button to configure the specific point mapping.

    <Frame caption="Step 2 lists the required points for the base device and reference device with Edit Points options">
      <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-adapter-add-points.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=5e4a117331732bd2610f99a04d0b3c2f" alt="Add OSS Adapter step 2 Add Points showing Base Device section with Zone Air Temperature Sensor, Zone Air Temperature Cooling Setpoint, Zone Air Temperature Heating Setpoint, Run Status, and Occupied Mode points, and Reference Device section with Run Status and Occupied Mode points, each with Edit Points buttons" width="1024" height="801" data-path="images/kode-os/oss/kode-os-oss-adapter-add-points.png" />
    </Frame>

    Click `Edit Points` on a point type to expand it and configure the mapping. Select the point from the device, set the aggregation function if multiple points of the same type exist, and map enum values for on/off or occupied/unoccupied states.

    <Frame caption="Expanded point mappings show the selected point, aggregation function, and enum value configuration">
      <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-adapter-points-expanded.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=1a8789f4efe01c359ed065663ea7f1c1" alt="Add Points step with Zone Air Temperature Sensor expanded showing vav zone_air_temperature_sensor point with avg aggregation, and Reference Device Run Status expanded showing ahu occupied_mode point with On mapped to Occupied, Off mapped to Unoccupied, and orFunction aggregation" width="1024" height="805" data-path="images/kode-os/oss/kode-os-oss-adapter-points-expanded.png" />
    </Frame>

    <Note>
      If a device has multiple points of the same type, select an aggregation function (AVG, MIN, MAX, SUM, MED) to combine them. For cooling and heating setpoints, you can configure upper and lower bands that define the acceptable temperature range.
    </Note>
  </Step>

  <Step title="Review and verify">
    The review page has two tabs:

    * **Completed Devices** -- lists devices that meet all OSS requirements (required points mapped, schedules in place, writable occupied mode)
    * **Devices With Issues** -- lists devices that need adjustments before OSS can control them

    <Frame caption="The Completed Devices tab shows devices with all points mapped and ready for OSS control">
      <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-review-completed.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=6fbdc35cb5812b695a8093935fa7d28e" alt="Step 3 Review and Verify showing 5 Completed Devices tab with VAV_301, VAV_308, VAV_302, VAV_309, and VAV_303, each showing zone air temperature sensor values, cooling setpoint, reference device AHU_3, and run status and occupied mode set to true" width="1024" height="517" data-path="images/kode-os/oss/kode-os-oss-review-completed.png" />
    </Frame>

    <Frame caption="The Devices With Issues tab highlights missing points and configurations that need attention">
      <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-review-issues.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=750370af662486bb7c2e892024665ce7" alt="Step 3 Review and Verify showing 35 Devices With Issues tab with VAV devices showing Missing indicators for zone air temperature sensor, reference device, run status, and occupied mode points" width="1024" height="518" data-path="images/kode-os/oss/kode-os-oss-review-issues.png" />
    </Frame>

    Common reasons a device appears under **Devices With Issues**:

    * Required ontology point fields are not assigned
    * Occupied Mode is missing or not writable
    * Required enum values are not mapped for Occupied / Unoccupied interpretation
    * The device has no schedule point reference
    * Parent or child device referencing is missing (for example, a VAV without an `isFedBy` AHU)

    Use this remediation loop until devices move to **Completed Devices**:

    1. Fix missing schedule references on the schedule **Point References** page.
    2. Add missing device references (for example, `isFedBy`) on the device.
    3. Complete ontology field mapping in device modeling.
    4. Map enum values for Run Status and Occupied Mode as needed.
    5. Return to Review and Verify and select `Refresh` to re-check status.

    Select the devices you want to include from the Completed Devices tab and click `Save`.

    <Warning>
      If you save without selecting any Completed devices, the adapter does not create an active device list.
    </Warning>
  </Step>

  <Step title="Activate OSS">
    After saving, the OSS Adapters page shows the updated adapter with its possible configs and configs included counts.

    <Frame caption="The OSS Adapters page shows the saved adapter with possible and included config counts">
      <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-adapters-saved.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=cae36235e086ae4abf57766c3c1b2250" alt="OSS Adapters page showing VAV - AHU with Setpoint adapter with 5 possible configs and 5 configs included, testf with no configs, and test with 4 possible configs and 1 config included" width="1024" height="495" data-path="images/kode-os/oss/kode-os-oss-adapters-saved.png" />
    </Frame>

    Navigate back to the OSS page. The adapter appears in the list with the number of devices and area. Click `Activate` in the bottom right corner to enable OSS.

    <Frame caption="The OSS page shows all configured adapters with their device counts and the Activate button">
      <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-main-saved.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=92118bbe59cf5c6823852803a3cde255" alt="Optimized Start Stop page showing Weekly Schedule adapter with 5/5 devices in Floor 3 and Test - Point References adapter with 1/1 devices in Floor 2, with OSS is inactive status and Activate button" width="1024" height="520" data-path="images/kode-os/oss/kode-os-oss-main-saved.png" />
    </Frame>

    A confirmation dialog appears. Click `Confirm` to activate OSS.

    <Frame caption="Confirm the activation to enable OSS for the configured adapters">
      <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-activate-confirm.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=bbb9f418d3fe7c75aac82b575bb353d0" alt="Confirmation dialog asking Are you sure you want to activate OSS with Cancel and Confirm buttons" width="454" height="201" data-path="images/kode-os/oss/kode-os-oss-activate-confirm.png" />
    </Frame>

    OSS begins preparing and the Activity Log tracks the activation progress. Wait for the process to complete.

    <Frame caption="OSS shows a preparing state while the algorithm initializes">
      <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-activating.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=1d3292358976b706a28590c3670f8e6e" alt="Optimized Start Stop page showing a loading spinner with message It may take some time to get ready and Preparing status, with Activity Log showing OSS In progress" width="1024" height="556" data-path="images/kode-os/oss/kode-os-oss-activating.png" />
    </Frame>
  </Step>
</Steps>

### Use an existing adapter template

KODE Labs provides pre-built adapter templates for common HVAC configurations. Click `Add OSS Adapter` and select `Add from existing` to browse the template library.

<Frame caption="The adapter library lists pre-built templates for common HVAC configurations">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-adapter-library.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=22af8601f983529af9064346c048e87b" alt="Add Adapter from the library dialog showing three templates: FCU with Zone Air Temperature Setpoint, VAV - AHU with Setpoint, and AHU with Return Air Temperature Setpoint, each with name and description columns" width="828" height="688" data-path="images/kode-os/oss/kode-os-oss-adapter-library.png" />
</Frame>

Select a template and click `Add from existing`. Steps one and two of the adapter creation process are prefilled from the template. You can modify any prefilled values before saving.

### Edit or delete an adapter

To edit an adapter, click the pencil icon next to the schedule name on the OSS page. The Add/remove devices dialog opens, where you can select or deselect devices for the adapter.

<Frame caption="The Add/remove devices dialog lets you select which devices to include in the adapter">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-edit-devices.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=428725ff8fce8fc288f0364ac12ff0e9" alt="Weekly Schedule Add/remove devices dialog showing five VAV devices (VAV_301, VAV_308, VAV_302, VAV_309, VAV_303) all selected with checkboxes, a search field, and Cancel and Save buttons" width="839" height="691" data-path="images/kode-os/oss/kode-os-oss-edit-devices.png" />
</Frame>

To fully reconfigure an adapter (device types, point mappings, or review settings), click the adapter name from the OSS Adapters page to open the adapter creation wizard. To delete an adapter, click the three-dot menu and select the delete icon.

## Schedule best practices for OSS

When OSS is active, the schedule start time represents the **target satisfaction time** (when the space should be at the setpoint), not the equipment start time. OSS handles the actual start time calculation.

For example, if an office building has occupancy from 08:30 to 17:30, set the schedule start time to 08:30. OSS calculates the optimal equipment start time so that the building reaches the target temperature by 08:30.

<AccordionGroup>
  <Accordion title="Schedule configuration guidelines">
    **Recommended:**

    * Set the schedule start time to the desired occupancy start
    * Ensure each device has its own independent schedule
    * Turn off any BAS logic that automatically enables downstream devices when a parent device starts

    **Avoid:**

    * Schedules where starting an AHU automatically enables its connected VAVs
    * Cascaded schedules where one schedule triggers another
    * Enum schedules with point mappers or switches that control devices
  </Accordion>
</AccordionGroup>

## Key behaviors and limits

* OSS requires a schedule to be in place. Without a schedule, OSS cannot override equipment.
* If a device is already in occupancy override, OSS does not make additional changes.
* If the predicted start time is less than five minutes before the schedule start, the device follows its original schedule.
* If a device is already at the setpoint, OSS does not override it.
* Devices that are occupied 24/7 cannot be controlled by OSS.
* OSS does not operate with schedules that start between 12:00 AM and 3:00 AM. For best results, schedules should start no earlier than 3:00 AM. If a schedule starts at 2:00 AM and OSS predicts a three-hour duration, it may override the device at 2:00 AM, which can lead to accuracy issues.

## Ongoing operations

### End user guidance

To ensure smooth building operations with OSS:

* **Initial rollout** -- adjust schedules to reflect target occupancy times, set proper temperature and equipment setpoints, and verify lease start and end dates
* **Daily monitoring** -- check your inbox for recommended building startup emails from OSS
* **Dashboard review** -- review the Daily OSS Dashboard regularly to confirm comfort goals are met, and use the Historical OSS Dashboard to identify outliers and address poor-performing devices or systems

### Deployment checklist

Before activating OSS, verify the following:

* Schedules are configured in Cloud BMS with proper AHU references
* VAV devices have Zone Air Temperature Sensor, Zone Air Temperature Setpoints, and `isFedBy` references to their parent AHU
* AHU devices include a writable `Occupied Mode` point
* Adapters are configured based on the correct Zone Temperature Setpoint type
* Users are trained on schedule adjustments, the OSS algorithm behavior, the control strategy, and dashboard interpretation

## Verify OSS overrides

When OSS overrides a point, the point's activity log records the action with `OSS App` as the user and `Oss Start` as the reason. The log entry shows the priority levels and current values at each level, along with the override duration.

<Info>
  ### Command actions and priority levels

  Cloud BMS uses a BACnet-inspired priority model for writable points. The same command dialog appears for BACnet and non-BACnet integrations, such as REST API thermostats. How each action maps on the device depends on the connector.

  BACnet points that accept commands have **16 priority levels** (1 is highest, 16 is lowest). When every level is empty (`null`), the point uses a **fallback / default** value (`Relinquish_Default` in BACnet). That fallback is **not** a 17th BACnet priority. Some interfaces label it as level 17 for display only.

  `Override` and `Set` turn different knobs under the hood, even when the visible value looks the same.

  | Action     | What it writes\*     | Description                                                                                 |
  | ---------- | -------------------- | ------------------------------------------------------------------------------------------- |
  | `Override` | Priority 8\*         | Temporary exception in the priority array. Takes precedence over lower-priority automation. |
  | `Set`      | Fallback / default\* | Changes the fallback or default value.                                                      |
  | `Auto`     | —                    | Clears an `Override`                                                                        |
  | `Release`  | —                    | Clears a `Set`                                                                              |

  \*Typical for most BACnet and Niagara deployments. Connectors and site standards can differ.

  `Override`, `Auto`, and `Set` borrow Niagara-style action names. `Release` is a Cloud BMS action that clears a `Set`.

  In Niagara-style control, `Set` keeps a non-null fallback so sequences and logic keep a reliable baseline. Use the priority array (including `Override`) for programmed automation and temporary exceptions.

  To make `Set` write to priority 16 instead of the fallback or default, enable **`Set in Slot16`** (Niagara) on the point. Configure that option from [device details](/products/kode-os/devices/devices#view-and-edit-points), [device templates](/products/kode-os/devices/device-templates), or [points batch update](/products/kode-os/points/points-batch-update).
</Info>

<Frame caption="The point activity log shows OSS override details including priority levels, values, and duration">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-point-activity.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=b0e8a802811bac0add3f48e3b0efef98" alt="Occupancy Cmd point activity log showing an OSS App entry dated Dec 29 2025 with reason Oss Start, levels 8 Occupied, 9 Unoccupied, and 17 Occupied, with Actions showing Priority Override, Value True, Duration 30min, and Preventoverwrite True" width="861" height="509" data-path="images/kode-os/oss/kode-os-oss-point-activity.png" />
</Frame>

Use the activity log to confirm that OSS is actively controlling a device and to review the override parameters (priority, value, duration). Click `Test Connection` to verify the point connection to the data source.

## OSS dashboard

The OSS dashboard monitors device performance and optimization results through Building BI. Once the OSS adapter is activated, all dashboard calculations are enabled automatically except for the Hours Saved metric, which requires manual data submission. The dashboard shows data only for devices configured with OSS that were running for the specified day or time period.

Two dashboard templates are available in Building BI:

* **OSS Dashboard \[AHU-VAV]** -- for setups with parent-child devices (for example, AHU-VAV). Includes an AHU Startup Details table on the Current Day page.
* **OSS Dashboard \[FCU]** -- for individual devices (for example, FCU, AHU, or VAV alone). Replaces the AHU Startup Details table with a Weather Widget.

Filter the dashboard by date, area, and schedule to focus on specific devices or time periods.

### Key metrics

* **Comfort Index (CI)** -- the difference between the temperature setpoint and the actual zone temperature at occupancy start (when people arrive)
* **Recovery Temperature (RT)** -- the difference between the temperature setpoint and the zone temperature at device OSS start (when OSS starts the device)
* **Hours Saved** -- total runtime hours saved compared to the pre-OSS schedule (requires manual data submission)

### Current Day

The Current Day page is updated every hour and provides an overview of devices configured with OSS for the current day. The top cards display key metrics at a glance. The FCU template replaces the AHU Startup Details table with a Weather Widget showing current conditions and a seven-day forecast.

<Frame caption="The FCU dashboard shows operation mode, total devices, devices eligible for OSS, devices reaching setpoint, time to setpoint, weather conditions, and start time statistics">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-dashboard-fcu-cards.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=5e8335069afdb7caa328ac25ea77136a" alt="OSS Dashboard Current Day FCU template showing Balanced operation mode, 369 Total Fan Coil Units, 273 Devices Eligible and Configured For OSS, 102 Devices Reaching Setpoint Today, 27 min Time to Setpoint, weather widget for Chrysler House Detroit showing 38 degrees F, device breakdown with 34 Reached Setpoint OSS Controlled, 68 Already At Setpoint, 0 Reached After 4 hrs, 0 Unreached, 0 Failed, and start times from 03:10 to 06:31" width="1024" height="471" data-path="images/kode-os/oss/kode-os-oss-dashboard-fcu-cards.png" />
</Frame>

The **Hourly Out-of-Setpoint Deviation** heatmap shows how much devices within each schedule deviate from their setpoint throughout the day. Green indicates minimal deviation, while red and blue indicate significant deviation. Each cell displays the actual deviation value in degrees.

<Frame caption="The heatmap shows hourly setpoint deviation per schedule with degree values, ranging from blue (below setpoint) to green (on target) to red (above setpoint)">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-dashboard-heatmap-values.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=b94a62823000fb3ec4a8e96be596b98b" alt="Hourly Out-of-Setpoint Deviation heatmap showing four schedules with values from negative 1.3 degrees F to positive values across hourly intervals from 12 AM to 7 AM, with a color scale from blue at negative 5 to red at positive 5" width="1024" height="514" data-path="images/kode-os/oss/kode-os-oss-dashboard-heatmap-values.png" />
</Frame>

The **Optimized Devices and Time to Setpoint** chart shows the number of devices optimized per floor and the average time to reach setpoint. The **Devices Satisfied Hourly** chart shows how many optimized devices reached setpoint at each hour. Use the `Scheduler` and `Device Filter` dropdowns to narrow down the view.

<Frame caption="The bar chart shows optimized device counts per floor with a time to setpoint trend line, and the heatmap shows hourly satisfaction rates">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-dashboard-optimized-floor.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=38f553139845b114525abb6d4c01c43a" alt="Optimized Devices and Time to Setpoint bar chart showing device counts per floor with an Average Time to Setpoint trend line decreasing from 25 to 0 minutes, and Devices Satisfied Hourly heatmap showing satisfaction counts from 4 AM to 7 AM across floors" width="977" height="589" data-path="images/kode-os/oss/kode-os-oss-dashboard-optimized-floor.png" />
</Frame>

The **Device Time to Recovery** scatter plot shows individual device performance. Each point represents a device, and colors represent schedules. Devices in the upper-left corner (long recovery time, low recovery temperature) may need attention. Devices in the lower-right corner are recovering efficiently.

<Frame caption="The scatter plot shows each device's recovery temperature versus time to setpoint, helping identify outliers">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-dashboard-scatter-fcu.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=3695d3e31faed908a58df696864d24ea" alt="Device Time to Recovery scatter plot showing device data points for Schedule, with Recovery Temperature on the x-axis from 0 to 10 degrees F and Time to Setpoint on the y-axis from 0 to 70 minutes" width="974" height="440" data-path="images/kode-os/oss/kode-os-oss-dashboard-scatter-fcu.png" />
</Frame>

The **Area, Schedule and Device Info** table provides a hierarchical view of metrics grouped by area, schedule, and device. You can see start times, recovery temperature, time to setpoint, and whether devices satisfied early or late.

<Frame caption="The hierarchical table shows device-level metrics grouped by floor and schedule, with green color-coded satisfaction timing">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-dashboard-area-table-fcu.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=8db64263c9230cced88ce17fde6204d7" alt="Area Schedule and Device Info table grouped by Floor 17, Floor 12, Floor 4, and Floor 8, showing individual devices with Start Time, Recovery Temperature, Time to Setpoint, Satisfied Early, and Satisfied Late columns with green color coding" width="1024" height="457" data-path="images/kode-os/oss/kode-os-oss-dashboard-area-table-fcu.png" />
</Frame>

The **Device Details** table at the bottom shows specific device information including start time, setpoint reached time, target time, zone temperature at OSS start, and heating and cooling setpoints.

<Frame caption="The device details table shows individual device data with start times, setpoint values, and zone temperatures at OSS start">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-dashboard-device-details-fcu.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=5b5553ea0b83db556884356066c12731" alt="Device Details table showing devices with Device, Area, Scheduler Name, Start Time, Setpoint Reached, Target Time, Zone Temp at OSS Start, Heating Setpoint, and Cooling Setpoint columns, listing VAV and FPB devices across Basement and Floor areas" width="1024" height="411" data-path="images/kode-os/oss/kode-os-oss-dashboard-device-details-fcu.png" />
</Frame>

### Historical

The Historical page is updated every hour and provides long-term performance data over a selected time period. Use this page to track OSS performance trends and identify devices that consistently underperform.

<Frame caption="The Historical page shows filters, hours saved, comfort index, and startup details over a configurable date range">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-dashboard-historical.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=a783c168851ad79edbe9bfe4e2b2d916" alt="OSS Dashboard Historical page with Date Time Local, Area, and Schedule filters, cards showing Hours Saved 2161 hours, Comfort Index 0.3 degrees C, Config Devices 375, and Time to Setpoint 0 min, and a Startup Details table showing daily earliest and latest start times" width="1024" height="432" data-path="images/kode-os/oss/kode-os-oss-dashboard-historical.png" />
</Frame>

The Historical page includes the same chart types as Current Day but aggregated over the selected date range.

The **Daily Hours Saved** chart shows hours saved by OSS per day. Below it, the **Number of Optimized Devices** chart shows how many devices OSS optimized per day with the average time to setpoint trend line.

<Frame caption="Daily Hours Saved shows runtime savings per day, while Number of Optimized Devices tracks daily optimization counts">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-dashboard-daily-hours.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=0d8cecdb2d67f90fef93e25c9321f45d" alt="Daily Hours Saved bar chart showing approximately 180 hours saved per day from April 13 to April 28, with dips on weekends, and Number of Optimized Devices bar chart showing device counts with an Average Time to Setpoint trend line" width="1024" height="315" data-path="images/kode-os/oss/kode-os-oss-dashboard-daily-hours.png" />
</Frame>

The **Number of Devices That Did Not Reach Setpoint** chart shows daily failure counts. The **Satisfaction Time** chart tracks when devices reached setpoint relative to occupancy start, with Satisfied Early (yellow) and Satisfied Late (orange/red) indicators and a Recovery Temperature trend line (purple).

<Frame caption="Devices that did not reach setpoint and satisfaction timing trends help identify performance issues over time">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-dashboard-historical-charts.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=e98324cbe7f1bcc6ca6b874959e31130" alt="Number of Devices That Did Not Reach Setpoint bar chart showing counts per day, and Satisfaction Time chart with Recovery Temperature trend line, Satisfied Early bars in yellow, and Satisfied Late bars in orange" width="1024" height="579" data-path="images/kode-os/oss/kode-os-oss-dashboard-historical-charts.png" />
</Frame>

The **Schedule and Device Info** table provides aggregated metrics grouped by schedule and device. Below it, the **Top 10 Devices That Took Longest to Reach Setpoint** table highlights devices that may need attention based on their average recovery time.

<Frame caption="The schedule/device table and top 10 slowest devices table help identify underperforming equipment">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-dashboard-historical-tables.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=5307da84b33c1039823523bc4d6c14ba" alt="Schedule and Device Info table grouped by schedule showing Recovery Temperature, Time to Setpoint, Satisfied Early, and Satisfied Late columns with green color coding, and Top 10 Devices That Took Longest to Reach Setpoint table showing device, area, schedule, time to setpoint, and recovery temperature" width="1024" height="584" data-path="images/kode-os/oss/kode-os-oss-dashboard-historical-tables.png" />
</Frame>

#### Hours Saved metric

The Hours Saved metric is not calculated automatically. Submit a data sheet to KODE support at [support@kodelabs.com](mailto:support@kodelabs.com) with the following fields for each schedule:

* **Building Name** -- the name of the building
* **Schedule Name** -- the scheduler name in Cloud BMS
* **Day of Week** -- the day of the week (Monday through Saturday)
* **Space Entry Time** -- the expected occupant arrival time used to benchmark target comfort time
* **Pre-OSS Start Time** -- the typical scheduled HVAC start time before OSS activation

### Config Changes

The Config Changes page is updated daily. It tracks changes to configured devices that may have made them incompatible with OSS. The top cards show Compatible Devices, Active Configs, Inactive Configs, Expired Configs, and Adapters Affected. The **Detected Change Type** chart and **Expired Configs Per Adapter** chart help identify which changes are causing incompatibility.

<Frame caption="The Config Changes page shows expired configs, change types, and affected adapters with device-level details">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-dashboard-config-changes.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=8431dc57536a046768f3c8eb234a0256" alt="Config Changes page showing 419 Compatible Devices, 419 Active Configs, 0 Inactive Configs, 2 Expired Configs, 1 Adapter Affected, Detected Change Type pie chart showing Point Schedule Refs Change, Expired Configs Per Adapter bar chart, and Expired Config Details table showing FC_4_3 and FC_4_4 devices with Point Schedule Refs Change detected on April 14 2026" width="1024" height="614" data-path="images/kode-os/oss/kode-os-oss-dashboard-config-changes.png" />
</Frame>

A device may appear more than once if multiple changes were detected on the same day. Review the **Expired Config Details** table to identify which devices were made incompatible and take corrective action to restore compatibility.

### Troubleshooting

The Troubleshooting page is updated every hour. It displays overrides made by OSS on configured devices. Filter by `Date Time Local`, `Override Status`, and `Canonical Type` to narrow down specific issues. The top cards show Devices Overridden and Issues counts.

<Frame caption="The Troubleshooting page shows OSS override details with device name, point, requested and current values, duration, and any issues">
  <img src="https://mintcdn.com/kodelabs/wYHWxi9OuQhq1u6c/images/kode-os/oss/kode-os-oss-dashboard-troubleshooting.png?fit=max&auto=format&n=wYHWxi9OuQhq1u6c&q=85&s=b775f02e5a7d8855ae7d8fc246f2df58" alt="Troubleshooting page with Date Time Local set to Current Week, Override Status and Canonical Type filters, 2 Devices Overridden, 0 Issues, and Override Details table showing FC_21_12 and FC_21_11 devices with Occupancy Cmd point overridden to Occupied for 41 minutes on May 11 2026" width="1024" height="385" data-path="images/kode-os/oss/kode-os-oss-dashboard-troubleshooting.png" />
</Frame>

The **Override Details** table shows the timestamp, device name, point name, requested value, current value, duration, and any issues that occurred during the override. Use this page to understand why a device could not be turned on by OSS.

## Next steps

<CardGroup cols={2}>
  <Card title="Schedules" icon="clock" href="/products/kode-os/schedules" arrow={true} cta="Configure">
    Set up the schedules that OSS uses to determine target satisfaction times.
  </Card>

  <Card title="Devices" icon="cpu" href="/products/kode-os/devices/devices" arrow={true} cta="Manage">
    Manage the equipment that OSS optimizes.
  </Card>
</CardGroup>
