Accessibility settings

Text size

100%

Energy 5 min read

BESS

Battery energy storage system Also known as: battery energy storage system, battery storage system

Definition

A battery energy storage system (BESS) stores electricity in rechargeable batteries and releases it to a site or the grid on command. It combines battery racks, a battery management system, power conversion equipment and control software.

Cite this entry

Text

"BESS". Order Group, Software glossary, 10 October 2026. https://ordergroup.co/glossary/bess/

HTML

<a href="https://ordergroup.co/glossary/bess/">BESS</a> - Order Group

How a BESS works

A battery energy storage system is the whole installation around the cells. In an AC-coupled setup it takes AC power from the grid or a solar plant, converts it to DC to charge the cells, holds the energy, and converts it back to AC when it discharges.

The main parts of a BESS:

  • Cells, modules and racks. Cells are assembled into modules and modules into racks. Most new stationary systems use lithium iron phosphate (LFP) cells, which tolerate daily cycling well.
  • Enclosure. Larger systems ship in containers with fire protection and HVAC that keeps the cells inside their temperature window.
  • Power conversion system (PCS). The bidirectional inverter that converts AC to DC and back and executes the power setpoint.
  • Battery management system (BMS). It measures cell voltages and temperatures, estimates state of charge, balances cells and disconnects the battery when a limit is crossed.
  • Energy management system (EMS). It decides when to charge and discharge and at what power, using prices, site load, grid operator requests and the limits the BMS reports.
  • Meters, plus a SCADA and communication layer that collects data, shows it to operators and passes commands between the site, the cloud and the grid operator.

A BESS has two ratings. Power, in MW, says how fast it can charge or discharge. Capacity, in MWh, says how much energy it holds. Capacity divided by power gives the duration: a 2 MW system with 4 MWh can discharge at full power for about two hours. The duration decides which jobs the battery can do. Short, fast services such as frequency reserves need power, while shifting solar energy into the evening needs capacity.

A BESS earns money or saves it in a few ways: shifting energy from cheap to expensive hours, peak shaving against network tariffs, balancing services such as aFRR, demand response, and storing solar production that would otherwise be curtailed. One battery often does several of these, which is where most of the software complexity comes from.

Control layers of a BESS
LayerJobTime scaleUsually supplied by
BMSProtects cells: voltage, temperature, SoC, balancing, disconnectionMilliseconds to secondsBattery manufacturer
PCSConverts AC and DC, executes power setpointsMillisecondsInverter manufacturer
EMSDecides when to charge and discharge within site, market and grid limitsSeconds to hoursIntegrator, software house or battery vendor
SCADA and monitoringCollects data, shows it to people, logs alarms, passes commandsSeconds to daysAsset owner's platform or integrator

What a BESS means for your software

The layers usually come from different suppliers, so the risk of a BESS project sits in the interfaces between them and in what happens when one of them fails. Requirements worth writing into the specification:

  • The BMS limits are hard constraints. The EMS reads the allowed charge and discharge power and the SoC from the BMS every cycle and never asks for more. A separate deep discharge guard stops discharging even when a trading or peak shaving rule wants more.
  • Control follows the usual EMS rules: the control loop and safety limits run on an edge device at the site, every cycle is logged, and new logic runs on a simulator before it reaches a production battery. The EMS entry lists them.
  • Every use of the battery has a priority. Grid operator commands, safety limits, peak shaving, trading and balancing compete for the same kilowatt-hours. The order between them, and the fallback when no rule is active, must be written down and tested every time a controller is added.
  • Commitments are measured at the grid connection. Conversion losses mean that the power at the battery terminals is not the power at the connection point, and an idle battery still loses energy, so the software has to add both to what it asks the battery for.
  • Real batteries do not hit their setpoint exactly. The control loop should compare delivered power with the setpoint and correct the difference.
  • Engineers need manual control of the battery during commissioning and faults, in the simulator as well as on site, and monitoring that shows the battery and the meters as separate items.

Rules and standards

EU electricity law treats storage as its own activity. Article 2(59) of Directive (EU) 2019/944 defines energy storage as deferring the final use of electricity to a moment later than when it was generated, or converting it into a form of energy that can be stored and later reconverted. Article 36 of the same directive says that distribution system operators shall not own, develop, manage or operate energy storage facilities, with narrow exceptions, so most batteries on the grid belong to market participants.

The Battery Regulation (EU) 2023/1542 sets product rules for the battery itself. Article 12 requires technical documentation showing that a stationary battery energy storage system is safe in operation. Article 14 requires, from August 18, 2024, that the BMS of a stationary BESS holds data on the parameters that determine state of health and expected lifetime, with read-only access for the owner and third parties acting on the owner's behalf. Article 77 introduces a digital battery passport for industrial batteries above 2 kWh, electric vehicle batteries and light means of transport batteries from February 18, 2027. For software this means that battery data has an owner with a legal right to read it, and the EMS or the asset platform is the natural place to collect it.

From our projects

We designed the architecture and built the EMS for Skyfri's solar and battery platform. It has been in production since June 2024 and runs on 7 plants with more than 4 MW of battery power and more than 5 MWh of battery capacity; the largest single battery is over 2 MW. It handles several batteries and inverters on one site, runs fully offline and covers a maximum site load limiter, peak shaving, energy trading and requests from the distribution system operator. It was validated at the Socomec battery laboratory in Strasbourg.

For Global Green, a solar and battery operator with sites in Germany and Canada (15 MWh of BESS and 5 MW of PV), we are building the EMS for its battery storage sites in 2026. It runs on an industrial computer at the site and sends data to the cloud. By July 2026 we had finished separate controllers for the distribution operator's battery limit and its direct battery commands, loss coverage so that committed power arrives at the grid connection, and manual battery control in the simulator. As of October 2026 we are separating battery and meter views in the web monitoring, and a PID correction of delivered battery power is planned.

For Zeronest we have built the home and installer EMS since January 2024. It controls about 30 MWh of prosumer storage across 16 inverter brands, with three storage modes: off, manual and automatic.

Read more on the blog

Sources

  1. Regulation (EU) 2023/1542 concerning batteries and waste batteries, Articles 12, 14 and 77 - EUR-Lex
  2. Directive (EU) 2019/944 on common rules for the internal market for electricity, Article 2(59) and Article 36 - EUR-Lex

FAQ

Michał Dżaman
Michał Dżaman
Co-founder & Head of Backend
Talk to an engineer
  • MW is power: how fast the battery can charge or discharge. MWh is capacity: how much energy it holds. Capacity divided by power gives the duration, so a 2 MW battery with 4 MWh of capacity can run at full power for about two hours.

  • Yes, if its EMS and safety limits run locally at the site. The EMS we built for Skyfri runs fully offline and keeps controlling batteries and inverters without a connection. The cloud is needed for history, forecasts and remote configuration, not for the control loop.

  • Yes, but not with the same kilowatt-hours. The EMS has to reserve state of charge and power for each commitment, apply a written priority when they conflict, and correct for losses so that each commitment is met at the grid connection.

  • The vendor's EMS is usually enough for one battery brand, standard operating modes and a stable connection. A custom or extended EMS pays off when you mix battery or inverter brands, need offline operation, trade on energy markets, follow grid operator commands or run your own platform for customers.

Building a system that depends on BESS?

See how we build software for this domain, with case studies and the stack we use.

See Energy Hub

Requirements checklist

For each term we send the definition and what it requires from your software. Free, no sales call needed.

Your checklist is empty. Use the plus next to a term to add it.

    Order Group sp. z o.o. (Warsaw) uses your e-mail to send the checklist (Art. 6(1)(b) GDPR) and keeps a record of the request (Art. 6(1)(f) GDPR). Marketing consent is optional and can be withdrawn at any time. Read the Privacy Policy