Uptime calculation#
This page explains how uptime is calculated for each Battery Energy Storage System (BESS) and how these values are aggregated at the Site level.
The uptime metrics for the site are shown on the Monitoring page of the Portal, under the "Battery" tab.
Uptime metrics displayed in the Portal
Key Principles#
- Uptime always ranges from 0% to 100%.
- Uptime is always calculated over a time window. For more stable and representative values, a minimum 1-month window is recommended.
- Nominal power and nominal capacity are fixed values for each BESS, e.g. for Octave One: nominal power = 100kW, nominal capacity = 215kWh.
- The available nominal power and available nominal capacity are binary values:
- Equal to nominal when the component is operational
- Equal to 0 when the component is not operational
- Temporary reductions in usable power or capacity due to operational conditions (e.g., BMS temperature limits) do not reduce uptime.
Uptime != performance
Uptime only reflects whether a component is available or unavailable, not its instantaneous performance.
Time Windows and Aggregation#
- Resolution: Uptime is computed at a 1-minute interval for each BESS and at the site level.
- Per-minute calculation: In each 1-minute window, the formulas defined in BESS Uptime Calculation are applied to produce BESS power and capacity uptime.
- Longer periods (e.g., 1 month): We take the simple arithmetic mean of the per-minute uptime values over the full period. This is equivalent to a time-weighted average with 1-minute granularity.
- Site-level aggregation over long periods: First compute the site uptime each minute using the weighted aggregation defined in Site-Level BESS Uptime (What is being reported in the Octave Portal) . Then average those per-minute site uptimes over the chosen period.
Components of a BESS#
Each BESS is characterized by
- Battery capacity (kWh) managed by the Battery Management System (BMS)
- Inverter power (kW) controlled by the Power Conversion System (PCS)
- Energy Management System (EMS) which sends charging and discharging setpoints to the PCS
Additionally, one BESS per site is the site leader, whose EMS coordinates all other EMS units.
Conditions Forcing BESS Uptime to 0%#
A BESS is considered fully unavailable if any of the following components is not available:
- BMS
- Inverter (PCS)
- EMS of the BESS or the EMS of the site leader
When this occurs:
→ Both BESS capacity uptime and BESS power uptime are set to 0% for the entire duration of the outage. This reflects the principle that the BESS must be fully functional across all core components to be considered operational.
Determining Component Availability#
Uptime is determined by whether each component is available during a given time interval.
A component is considered unavailable whenever it does not meet the criteria defined below.
Battery (BMS) Availability
- The battery is considered available when the BMS state allows charging and/or discharging.
- If the BMS reports a state in which neither charging nor discharging is allowed, the battery is considered unavailable, and both capacity and power uptime are set to 0% for that interval.
See Alert Guide | BESS - BMS Alert for more details on the BMS states.
Inverter (PCS) Availability
- The inverter is considered available when the PCS is not in a fault state.
- If the PCS reports a fault state, the inverter is considered unavailable, and both power and capacity uptime are set to 0% for that interval.
See Alert Guide | BESS - PCS Alert for more details on the PCS states.
EMS Availability
- The EMS is considered available when the EMS software is operational and able to perform its core coordination and communication functions.
- If the EMS is considered unavailable, both power and capacity uptime are set to 0% for that interval.
EMS availability includes, but is not limited to, the following capabilities:
- Availability of site meter data
- Reliable communication between leader and follower BESS
- Active Internet connectivity
- Active connection to the Octave Intelligence Cloud
- Reception of external setpoints via our Partner API or our Modbus Server
If any of these required capabilities are missing, the EMS is considered unavailable for the affected interval.
BESS Uptime Calculation#
When all components are available, uptime is calculated as:
Capacity Uptime
Power Uptime
where available nominal capacity/power is either equal to nominal (component available) or 0 (component unavailable), and we take the average of these values over the 1-min period. The same applies for the EMS uptime, which is also averaged over the 1-minute period.
Info
Because EMS uptime is part of both formulas, the computed uptime reflects both hardware and software uptimes.
Site-Level BESS Uptime (What is being reported in the Octave Portal)#
Site-level uptime is computed each minute as a weighted aggregation.
Let \(L\) be the site leader and let \(e_L\) be the leader EMS uptime during that minute. Let \(u_{power,i}\) and \(u_{capacity,i}\) be the per-BESS uptimes computed above for BESS \(i\) (these already include each BESS’s own EMS uptime).
Rules for aggregation each minute:
- Leader BESS (\(i = L\)): use \(u_{power,L}\) and \(u_{capacity,L}\) as is.
- Follower BESS (\(i ≠ L\)): multiply each follower’s uptime by the leader EMS uptime \(e_L\), because if the leader EMS is down the whole site is effectively down for followers.
Site Capacity Uptime
Site Power Uptime
Example calculation#
This section provides a step-by-step example of how we calculate both per-BESS and site-level uptimes based on the concepts and formulas described above.
Given a site with three BESS and nominal specs:
- BESS 1 (leader of the site): 100 kWh, 50 kW
- BESS 2: 200 kWh, 100 kW
- BESS 3: 300 kWh, 200 kW
Operational values in the considered 1-minute time window for calculating the uptimes:
- BESS 1: EMS Uptime = 90%, inverter is in fault state ⇒ \(\text{available nominal power} = 0 kW\)
- BESS 2: BMS is in fault state ⇒ \(\text{available nominal power} = 0 kWh\)
- BESS 3: all components healthy
Per-BESS uptimes#
- BESS 1
- Power: available nominal power = 0 kW ⇒ power uptime = 0%
- Capacity: inverter is in fault state ⇒ capacity uptime = 0%
- BESS 2
- Power: BMS is in fault state ⇒ power uptime = 0%
- Capacity: available nominal power = 0 kWh ⇒ capacity uptime = 0%
- BESS 3
- All good ⇒ power uptime = capacity uptime = 100%
Site-level uptimes#
Site-level nominal totals:
- Power: 50 + 100 + 200 = 350kW
- Capacity: 100 + 200 + 300 = 600kWh
Taking their weights into account, the per-BESS uptimes above and the 90% EMS uptime of the site leader EMS leads to:
- Site power uptime
- Site capacity uptime
