Virtual power plant software for aggregators and energy cooperatives

Virtual power plant software for aggregators, built in layers. Our DSR module for Zeronest runs in production and reports each call hour 15 minutes after it ends; cooperative settlement followed in 2026, and battery orchestration for Global Green is in development.

Book a free consultation

Tell us what your portfolio needs.

Send us your asset list and the markets you bid into, and we will bring the right engineers to the first call.

Virtual power plant software, built layer by layer

Virtual power plant software is the portfolio and market layer that turns many metering points, batteries and solar sites into one resource an aggregator can sell. We build it layer by layer, as part of our energy software development work.

Aggregation and demand response calls run in production in the module we built for Zeronest. Orchestration of setpoints on a battery site is the layer we are building for Global Green. Control of a single site or battery belongs to the energy management system, and buying and selling energy to an energy trading platform.

VPP architecture: what each software layer does

Layers of VPP software and where we have built each one, as of October 2026.
LayerWhat it doesWhere we built it
Site control (EMS)Sends setpoints to batteries and inverters within device and grid connection limitsSkyfri EMS, in production; Global Green EMS, in development
AggregationGroups metering points into aggregation units and splits a call into power per pointZeronest DSR module, in production
Settlement and reportingBaseline, hourly call reports and cooperative settlementZeronest DSR and energy cooperative modules
Market orchestrationCombines trading, aFRR and direct control setpoints for one batteryGlobal Green, in development
Grid operator commandsBattery limits, direct battery commands and export limitsGlobal Green, in development; Skyfri export limiting, tested with the DSO
Zeronest installation details on a phone and a laptop

Demand response software: from a call to a settled hour

Demand response software takes an aggregator's call, splits it across metering points, tells participants and settles the hour against a baseline. We have been building the demand-side response (DSR) module of the Zeronest platform since May 2025, and on March 23, 2026 it handled a real call in production.

A DSR operator sees all installations, a DSR client only its own, and a consultant role acts on behalf of either. The module groups metering points into aggregation units and stores unavailability notices for each point and unit. Since 2026 each point gets its own declared power with a buffer above the ordered value, so a 5 MW call can require 5.25 MW from clients; the API rejects a call whose total does not match the limit and the buffer, and splits power into whole kW. A call lasts at most an hour, starts on the full hour and falls between 7:00 and 22:00.

The baseline is corrected by the average difference between consumption and the profile in the third, fourth and fifth hour before the call, capped between -20% and +20%, and the factor also covers the following hours of the call. After an outage the platform restores missing meter data, including gaps longer than 10 days. Participants get an SMS and an e-mail with a confirmation link, and ten minutes after a call is created the operator gets a list of SMS messages that did not go out. The report for a call hour is ready a quarter of an hour after it ends; its limit is the sum of the points' limits, and a client sharing a call sees only the combined power of its own points.

Declared power per metering point, with a buffer
Baseline correction from -20% to +20%
SMS and e-mail with a confirmation link
Hourly report 15 minutes after the call ends
Real call handled on March 23, 2026
Zeronest mobile app screens: weather, work schedule and statistics

Energy cooperatives: hourly settlement for members

Energy cooperative software calculates, hour by hour, what each member and the cooperative as a whole owe and are owed. We built the energy cooperative module for Zeronest in 2026. It settles the group and each metering point and splits the energy of every hour into three streams: used by members on site, put into the deposit (unused energy carried over to later months) and exchanged with the grid. Settlements are available through an API and recalculated every 5 minutes between the 23rd and 58th minute of the hour, with a check of who was a member in that hour. In July 2026 the operator got control over many installations at once, and in September 2026 a new deposit settlement mode.

Polish law sets the rules: up to 10 MW of capacity, at least 70% of the cooperative's own needs covered, energy fed into the grid set against energy taken at a 1:0.6 ratio on hourly data, and a deposit valid for up to 12 months. From October 19, 2026 the hourly data comes from CSIRE, Poland's central energy market information system.

Settlement for the group and each metering point
Three energy streams every hour
Recalculation every 5 minutes, available via API
Control of many installations at once
New deposit settlement mode (September 2026)

VPP vs DERMS: who controls distributed energy resources

A virtual power plant and a DERMS (distributed energy resource management system) control the same kinds of assets for different operators and different goals. A VPP pools batteries, solar and flexible loads for an aggregator or asset owner and sells their flexibility on energy and balancing markets. A DERMS is software of the distribution system operator (DSO), the grid operator that runs the local network, and it uses the same resources to keep that network within its limits. A VPP sends a DSR call or an aFRR setpoint; a DERMS sends a site an export or power limit.

The two meet at the site EMS, which has to follow commands from both, and a DSO limit applies whatever the site has committed on the market. We build the VPP layers and the site software that carries out DSO commands, described in the next section.

Zeronest energy price statistics screen

Balancing markets and grid operator commands

A battery on a balancing market has to deliver declared power within the market's activation time and stay within the limits set by the DSO. PSE, the Polish transmission system operator, gives full activation times of 30 seconds for FCR, 5 minutes for aFRR, 12.5 minutes for mFRR and 30 minutes for RR.

Since December 2025 we have been building an EMS for Global Green, an operator of solar and battery storage sites in Germany and Canada, covering 15 MWh of storage. It runs on an industrial computer on site and sends data to the cloud. Its orchestrator combines setpoints from trading, aFRR and direct control, resolves conflicts and only then splits the result across batteries; we closed its initial implementation on June 29, 2026, and the MVP is in progress. In July 2026 we added loss compensation, which raises discharge power and lowers charge power by a configured percentage so the commitment is met at the grid connection point, within the battery's operating range and with every clipped value logged. The same month brought three controllers for DSO commands: a battery limit, a direct battery command and an export limit, with the DSO modelled in a simulator. In September 2026 a new version of the EMS went onto the controller at one site.

As of October 2026, migration of the existing aFRR pipeline to the new platform is in testing, and the controller that combines trading and aFRR on one battery has a finished design and is being implemented. The EMS we built for Skyfri does peak shaving and limits export at the DSO's request; by October 2024, DSO-requested export limiting, zero-export algorithms and a maximum load limiter had been tested on site together with the DSO.

Global Green, in development: one orchestrator for trading, aFRR and direct control
Loss compensation at the grid connection point
Separate controllers for DSO commands
aFRR pipeline migration in testing
Call report
15 min

After the end of each call hour in the Zeronest DSR module

Baseline correction
20%

Maximum correction of the DSR baseline, up or down

Cooperative recalculation
5 min

Interval for recalculating hourly cooperative settlements

Data recovery
10+ days

Gaps in meter data the DSR platform can restore after an outage

Battery storage
15 MWh

At Global Green's sites, under the EMS we are building

Building for the Polish market

VPP software for Poland has to handle 15-minute balancing settlement and units from 0.2 MW, both introduced by the second reform of the Polish balancing market on June 14, 2024 (the minimum had been 1 MW). DSR calls work on a different clock: in our Zeronest module they last up to an hour and are reported by the hour. PSE joined the European PICASSO platform for aFRR on July 11, 2025.

An aggregated scheduling unit (JGA) can range from 0.2 to 50 MW. According to URE, the Polish energy regulator, no aggregator unit had been registered by June 30, 2025. In the capacity market's DSR, PSE announces call periods at least 8 hours in advance, and a failed test costs the capacity payment and a penalty.

Market rules already in production code

Why aggregators build with us

Our DSR module for Zeronest runs in production with declared power per metering point, a corrected baseline and an hourly report.

We add the missing layers next to the systems you already run, such as an EMS or a settlement system.

Why aggregators build with us

How a project runs

Contact

We reply to a message from the contact form within 48 hours on working days.

Free discovery workshop

Every project starts with a discovery workshop, and it is always free. Together we map your portfolio, the markets you serve and the systems you already run.

Build

We build the layers you are missing next to what you already have. Code, designs and documentation belong to you by default.

Support

Maintenance runs under an SLA, 24/7: 15 minutes to first response on a critical incident and 30 minutes until an engineer is actively working on it.

The energy systems behind these layers

Case studies

Questions about VPP and demand response software

Platform scope, DERMS, DSR calls, cooperatives, balancing and the Polish market.

Paweł Zieliński
Paweł Zieliński
Co-founder & Business Owner
Book a free consultation
  • We build VPP software layer by layer: aggregation and DSR calls with baselines and hourly reports (Zeronest, in production), energy cooperative settlement (Zeronest, 2026), and market orchestration with controllers for DSO commands on a battery site (Global Green, in development). Site control comes from the EMS under each site.

  • Buy one when your assets, markets and settlement rules match what the vendor supports. Build or extend your own in three cases. The rules you work under are local, such as PSE's DSR programmes or Polish energy cooperative settlement. You already run an EMS or a settlement system you want to keep. Or the platform is the product you sell, as with Zeronest, whose energy management platform includes the DSR module we built.

  • A VPP pools batteries, solar and flexible loads for an aggregator to sell on energy and balancing markets. A DERMS is the DSO's software for keeping its grid within limits, and it sends sites export and power limits. A site EMS has to follow commands from both.

  • It is corrected from the third, fourth and fifth hour before the call, within -20% to +20%. After an outage the platform restores missing data, including gaps longer than 10 days.

  • That is what the orchestrator we are building for Global Green is for. It resolves conflicts between trading, aFRR and direct control setpoints, and loss compensation makes sure the commitment is met at the grid connection point. The controller that combines trading and aFRR on one battery is being implemented.

  • It needs hourly settlement for the cooperative and each metering point, with energy split into three streams and a deposit. Our module recalculates every 5 minutes, and from October 19, 2026 hourly data in Poland comes from CSIRE.

  • Since the reform of June 14, 2024, units from 0.2 MW, down from 1 MW. An aggregated scheduling unit (JGA) can range from 0.2 to 50 MW.

Wind turbines on snowy hills under a cloudy sky

Book a free consultation with an engineer

Your message goes to

Filip Szamborski

Filip Szamborski

Co-founder & CEO

SO FAR WE HAVE WORKED WITH BRANDS LIKE:

Thank you for your message.

We read every message ourselves and get back to you within 48 hrs on business days.

Something urgent? hello@ordergroup.co

Let's work together!

To build trust, work with our engineers in person at your office when needed.

Fields marked with an asterisk (*) are required.

Order Group sp. z o.o. uses the information you provide only to reply to your enquiry and to keep a record of it (Art. 6(1)(b) and (f) GDPR). Details, including your rights, are in our Privacy Policy (opens in a new tab).

We reply within 48 hrs on business days - a person, not an autoresponder.

Using an AI assistant? It can send this inquiry for you or prepare a pre-filled form - instructions for it are in llms.txt.

Accessibility settings

Text size

100%