Problems & solutions · Custom Software

Virtual Power Plant Software Problems: The 7 That Cost Real Money, and How to Avoid Them

Virtual Power Plant DER Management Software software overview illustration showing common problems and fixes.
The short answer

The most expensive failure mode in a virtual power plant is bidding your expected physical curtailment instead of your expected measured delivery under the market baseline. Your devices do exactly what the plan said, your telemetry confirms it, and you still settle short because performance is measured against a meter-derived baseline computed under the rules of that specific product. Settle short on a capacity obligation and next season's award is trimmed, which compounds: a smaller award means a smaller revenue base, which means less to invest in enrollment, which means the fleet that would have fixed the problem never gets built. The gap is not in your devices. It is in the fact that nobody in the stack computes the number the market is actually going to pay you for.

Why does the dispatch scope get underestimated so often?

Almost every distributed energy resource project is scoped as though dispatch were an application programming interface call. Send a setpoint, receive a success response, count the device as delivering. Then the first real event arrives with a ten minute notification window and the fleet spans three thermostat brands, a residential battery fleet, grid-interactive water heaters and forty commercial sites behind a building controls vendor that speaks an industrial protocol and nothing else.

What the scope missed is that every vendor cloud has its own private definition of an acknowledgement. One confirms at the interface boundary. One confirms only when the device reports back. One confirms nothing you can act on, and you learn the truth from telemetry twenty minutes after the interval closed. Layer on rate limits, batch sizes and retry behaviour that differ per vendor, and the dispatch path is a scheduling problem with unequal latency, not a broadcast.

This is specific to distributed energy because the performance interval is fixed by somebody else and starts whether you are ready or not. In most software a slow response is an inconvenience. Here it is a missed interval and a reduced award.

The fix is to measure your own acknowledgement distribution per channel from your own event history rather than trusting a vendor's nominal figure, then order commands so the slowest path fires first and the fast paths are pre-positioned. Hold a reserve pool so devices predicted not to respond in time are substituted before the interval opens rather than mourned after it closes. Latency-aware ordering plus a reserve pool is the change that moves measured performance in mixed fleets.

What goes wrong with enrollment, meter and device data?

The data problem in this category is identity. A participant is a customer account at the utility, a service point with a meter identifier, one or more devices each with a vendor-side identifier, and a program enrollment with a start date and a tariff. Nothing joins those automatically, and every one of them can change independently. The customer moves. The meter is replaced. The thermostat is swapped under warranty and the vendor issues a new device identifier without telling anyone.

The consequence is quiet and expensive. Devices that dispatch fine but whose meter data lands under an old service point never appear in your settlement calculation, so you deliver energy you do not get paid for. Devices whose enrollment lapsed keep receiving commands, which produces complaints and, in some programs, a compliance question. Duplicate participants inflate your enrolled capacity, so you bid a fleet that does not exist.

Migration from a previous platform makes it worse, because you inherit whatever mapping the old system had plus whatever was fixed manually in spreadsheets along the way. The honest expectation is that a meaningful share of records will not reconcile on first pass.

The fix is to model the participant, the service point, the meter and the device as separate objects with dated links between them, so history is reconstructable rather than overwritten. Then run a reconciliation report as a standing operational screen: devices with no meter, meters with no device, enrollments with no tariff, and devices that dispatched in the last event but produced no interval data. Somebody works that queue weekly, and your bid stops being fiction.

Why do the device cloud integrations break after launch?

They break because they are not your code and they change on somebody else's release schedule. A vendor deprecates an authentication method, tightens a rate limit before a heat wave, changes a payload field, or reissues credentials during a partner programme migration. None of that appears in your test suite because your test suite talks to your own code.

The specific damage here is that a break can be silent. A command that returns a success response but never reaches the device looks identical to a working dispatch until settlement, at which point the interval is gone. Fleets routinely run for weeks with one brand quietly not applying setpoints because nobody reconciled command intent against telemetry.

The other launch-day surprise is access. Sandbox credentials, rate limit agreements and partner certification queues run on the vendor's calendar, not yours, and they can add weeks per brand. Teams that start integration paperwork at the integration phase rather than in week one lose that time from the schedule with nothing to show for it.

The fix: one adapter per device cloud with its own contract tests, so a breaking change fails in a single place while the rest of the fleet keeps dispatching. Then build the operational half, which matters more. Reconcile every command against telemetry, flag vendors whose commands are acknowledged but not applied, and let the dispatcher substitute from the reserve pool the moment a channel starts under-performing rather than after the settlement statement arrives.

What happens when market baseline and settlement are not covered?

This is the gap that produces the failure in the opening paragraph. Aggregation platforms show telemetry-based performance dashboards. Those are useful for operations and close to useless for revenue, because the market settles you against a baseline computed from interval meter data under the rules of the product, which might be an averaging method with a day-of adjustment, a regression, or a control group.

If you cannot reproduce that calculation yourself, three things become impossible. You cannot challenge a settlement statement, because you have no independent number. You cannot forecast revenue with confidence, because your forecast is built on the wrong measure. And you cannot answer a commercial participant who asks why this event paid less than the last one when they did the same thing, which is the conversation that loses accounts.

The participant payment half has the same shape. A residential customer enrolled mid month, opted out of one event, has two devices on different tariff terms and churned before quarter end. A commercial participant has a demand charge interaction and a contract paying on nominated capacity rather than measured delivery. Nothing in the aggregation layer is built to be a subledger, so the payment run happens in spreadsheets and eventually stops reconciling to the market revenue that funded it.

The fix is to implement the baseline method of the products you actually bid into, run it forward as a forecast before you submit an offer, and store every input so the calculation is reproducible a year later. Then make settlement a ledger: immutable device-level records, participant statements under the tariff terms in force on that date, and corrections posted as new entries rather than edits.

Should you build custom or configure what you already own?

If you run a single thermostat brand under a straightforward utility demand response tariff with a couple of thousand participants, stay on Virtual Peaker or EnergyHub and put the money into enrollment. At that size dispatch is not your constraint, the platform will control your devices competently, and a build is an expensive route to the same result. Virtual Peaker in particular is good at utility-branded enrollment and customer-facing control, which is where the value sits at that scale.

If your devices sit inside AutoGrid Flex or EnergyHub Mercury and your market participation is simple, configure rather than build. Both maintain broad device integration catalogs and both will dispatch your fleet.

Build when two or more of these are true. Your fleet spans three or more device brands and you are measurably losing performance to acknowledgement latency. You bid into a wholesale product and cannot reproduce the settlement baseline. Participant payments are calculated outside the platform and no longer reconcile to market revenue. Your batteries need cycling limits enforced during dispatch because a warranty depends on it. Or the platform running your program owns the customer relationship and your strategy requires that you own it.

How do hidden costs get into the quote?

The count of distinct device clouds is the dominant driver and the one most often understated, because a proposal says device integration as a single line when each vendor is a separate project with its own sandbox access problem and its own certification queue.

Batteries are the second. State of charge management, reserve floors and warranty-aware cycling are modelling work, not an on-off command, and a dispatch engine that ignores them will offer capacity the asset is not allowed to deliver. Participation in a second market product is the third, since each product carries a different baseline method, different telemetry obligations and a different offer format, so it is close to a second settlement implementation rather than a configuration change.

Commercial and industrial sites are the fourth and they are the easiest to underestimate, because every building controls estate is bespoke and the site survey is unavoidable. And interval meter data access is the fifth, because arranging it at the right granularity and lag takes calendar time nobody puts in the plan.

What separates a build that works from one that fails here?

Ask the developer how they would handle a device cloud that acknowledges a command and never applies it. Somebody who has shipped this talks immediately about reconciling command intent against telemetry and flagging silent failures per vendor. Somebody who has not describes an API call and a success response, which is exactly the assumption that produces a fleet quietly under-delivering for a month.

Ask them to draw the path from a market instruction to a customer payment. You want interval meter data and telemetry as separate inputs arriving at different latencies, the baseline method as a versioned calculation with stored inputs, and the participant ledger as immutable postings with tariff terms dated by effect. If the drawing has one table called events, they are going to learn energy settlement on your budget and your regulator's timeline.

Ask which device integrations they have actually built, by vendor name. Thermostat clouds, battery inverter interfaces and commercial building controls are unrelated engineering problems, and a firm that has done one of the three says so plainly rather than claiming a category.

Then settle ownership before kickoff: the repository, the cloud accounts and the device integration credentials. The integration layer is the asset in this category, and a supplier holding those credentials holds your fleet. At Digital Heroes the client owns everything from the first commit. Start by pulling your last three events and asking whether anyone can reconstruct, device by device, why measured delivery differed from the plan. If nobody can, that is your first scope.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. OECD research finds that digitalisation offers SMEs opportunities to improve performance, spur innovation, enhance productivity and compete more evenly with larger firms; it reports that increased use of online platforms produced significant multi-factor productivity gains in SME-heavy sectors such as hospitality and retail, while smaller firms lag in adoption due to skills, resource and financing gaps. Source: OECD (2021) →
  2. Standish's 2015 CHAOS research found roughly a third of software projects (about 36% by the Modern definition) fully succeed on time, on budget, and on scope, with top success drivers including executive support, user involvement, and clear requirements/business objectives. Source: Standish Group (CHAOS Report) (2015) →
  3. In an RCT, text-message reminders (11.7% missed) were non-inferior to telephone reminders (10.2% missed; difference not significant, within the 2% non-inferiority margin) but far cheaper - total cost EUR 230 for SMS versus EUR 8,910 for telephone over 6 months - making SMS more cost-effective. Source: BMC Health Services Research / PubMed Central (Junod Perron et al.) (2013) →
  4. 73% of surveyed businesses now use a headless architecture (up nearly 40% since 2019), and 98% of those not yet using it are evaluating or planning to evaluate headless within 12 months, with 82% saying it makes delivering consistent content easier. Source: WP Engine (2024) →
Arjun S. · Chief Technology Officer · Delhi

Arjun sets the technical direction for Digital Heroes, choosing the stacks and architectures the delivery teams build on across custom software, ERP and commerce work. His posts explain why one approach gets picked over another, which is usually the part buyers never see.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Why does our fleet under-deliver when telemetry says every device responded?

Because performance is settled against a meter-derived baseline defined by the market product, not against your telemetry. Devices can curtail exactly as planned and still measure short if the baseline credits you less than the physical reduction. Implement the baseline calculation yourself, run it as a forecast before you bid, and offer the expected measured number rather than the expected physical one. That single change is usually worth more than any device-level tuning.

How do commands get acknowledged but never applied?

Every device cloud defines acknowledgement differently. Some confirm at the interface boundary, some only when the device reports back, and some return a success response that says nothing about the device at all. A fleet can run for weeks with one brand not applying setpoints because nobody reconciles command intent against telemetry. Build that reconciliation as a standing check with a per-vendor flag, and let the dispatcher substitute from a reserve pool when a channel degrades.

What data problems appear when we migrate from another DER platform?

Identity. A participant, a service point, a meter and a device are four objects that change independently, and migrated records carry whatever mapping the old system had plus whatever was patched in spreadsheets. Expect a meaningful share not to reconcile on first pass. Model each object separately with dated links, then run a standing report for devices with no meter, meters with no device, and devices that dispatched last event but produced no interval data.

Why does device integration take longer than the developer estimated?

Because the critical path is vendor access rather than code. Sandbox credentials, rate limit agreements and partner certification queues run on each vendor's calendar and can add weeks per brand. A proposal that lists device integration as one line item is understating it, since each cloud is a separate project. Start the integration paperwork in week one, in parallel with design, rather than when engineering reaches that phase.

Can dispatch software respect battery warranty limits?

It should, and as an explicit constraint in the dispatch engine rather than an operator habit. The build needs a state of charge model, a reserve floor and a throughput budget per asset, and the dispatcher must refuse or reduce an instruction that would push cycling past contracted limits. The constraint also has to be visible in the bid stack, otherwise you will offer capacity the asset is not permitted to deliver and discover it during the event.

Why do participant payments stop reconciling to market revenue?

Because the payment run lives in spreadsheets while the aggregation platform reports what devices did. Mid-month enrollments, opt-outs, devices on different tariff terms, churn and post-settlement true-ups all need to be postings rather than recalculated numbers. Treat it as a subledger: immutable device-level records, statements under the tariff terms in force on that date, and corrections posted as new entries with an audit trail rather than edits to the original.

Is a single thermostat brand program a good candidate for custom software?

No. With one device brand, a straightforward utility tariff and a couple of thousand participants, Virtual Peaker or EnergyHub will dispatch competently and a build is an expensive path to the same outcome. Spend the money on enrollment instead. The build case appears when you span multiple brands, bid into a wholesale product, need to reproduce settlement baselines, or want to own the participant relationship rather than renting it.

What should we check before signing off a VPP build as complete?

Reconstruct a real event end to end. Take a past dispatch and confirm the system can show, device by device, what was commanded, what was acknowledged, what telemetry reported, what the interval meter data said, what the baseline calculation produced and what each participant was paid. If any of those six cannot be replayed from stored inputs, the system will not survive a settlement dispute or a regulatory question.

How much should a small business budget for its first custom app or website?
For a focused first build, most small businesses land between $8,000 and $60,000: roughly $8,000 to $45,000 for a custom website and $25,000 to $60,000 for an internal tool or simple web app, based on Digital Heroes delivery across 2,000+ projects. Customer-facing products with payments, logins, or a mobile app start around $40,000. Quotes far below these bands usually mean a template with your logo on it, not software shaped around your workflow.
How many people should be working on my software project?
A typical $40,000 to $150,000 build runs on three to five people: a technical lead, one or two developers, a designer, and someone owning QA and project communication, often as overlapping part-time roles. More bodies do not make software arrive faster; past a point they slow it down with coordination overhead. The question that matters more than headcount is whether one named senior engineer is accountable for the outcome.
Should I ask for a fixed price or pay the agency hourly?
Fixed price for the first version, hourly or retainer for what comes after launch. A fixed-scope, fixed-price V1 puts the estimation risk on the agency, which is exactly where you want it while trust is unproven; hourly billing on an unscoped greenfield build is a blank check. After launch, flip it, because maintenance and small features arrive unpredictably and fixed-pricing every ticket wastes everyone's time.
What happens to my software if the agency shuts down or we stop working together?
Nothing dramatic, if the engagement was set up correctly: the code sits in your repository, hosting runs on your cloud account, and a handover document explains how to deploy and operate the system. Any competent replacement team can then take over in days rather than months. If the agency controls the repo, the servers, or the domain, fix that now, because renegotiating access during a dispute is the most expensive place to discover the problem.
Can I build my product on a no-code tool like Bubble instead of hiring developers?
For testing whether anyone wants the product, yes, and Bubble's paid plans start at $29 a month, which is the cheapest validation you will ever buy. The ceiling arrives with complex data relationships, heavy integrations, performance at a few thousand users, and the fact that you cannot export a Bubble app to servers you control. A path many Digital Heroes clients take: prove demand on no-code, then rebuild custom once revenue justifies it, treating the no-code version as a paid prototype rather than a foundation.
Can custom software connect to the tools we already use, like QuickBooks, Stripe, and Google Workspace?
Yes, and connecting your existing tools is one of the main reasons to build custom: mainstream platforms like QuickBooks, Stripe, Shopify, and Google Workspace all publish documented APIs. Budget 1 to 3 weeks of work per integration depending on API quality and how much data flows in both directions. Ask any vendor whether they have integrated with your specific tools before, because quirks like QuickBooks' OAuth token handling and API rate limits get learned on someone's project, and it should not be yours.
What are the biggest mistakes first-time software buyers make?
Choosing the lowest bid, paying more than 30-40% upfront instead of on milestones, skipping a written specification, and having no maintenance plan for after launch. The most expensive of the four in Digital Heroes rescue projects is the missing spec: without written acceptance criteria, done becomes an argument instead of a checklist, and every disagreement resolves in the vendor's favor. Fix those four and you have avoided most of the ways these projects fail.
How do we get years of data out of our old system and into the new one?
Treat migration as a planned sub-project: a field-mapping document, at least one dry run on a copy of your data, then a cutover with the old system kept read-only for 30 days as a safety net. On Digital Heroes projects it consumes 10 to 15% of the budget when the old system has an export, and more when data must be pulled out screen by screen. Ask any vendor to walk you through their last migration before you sign.
Who can build a custom software system?

Digital Heroes builds custom software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.

Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.

What makes Digital Heroes different from other software companies?

Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.

Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.

How can I check Digital Heroes is legitimate before getting in touch?

Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.

Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?