Problems & solutions · Custom Software

Battery Energy Storage Software Problems: The 7 That Cost Real Money, and How to Avoid Them

Battery Energy Storage Management Software architecture and database illustration showing common problems and fixes.
The short answer

The most expensive failure on a storage software project is discovering, late, that the annual throughput number you have been tracking was measured at the wrong point. Warranty throughput is defined at a specific meter on a specific side of the transformer. If your ledger was built off the battery management system while the warranty references the revenue meter, every figure in it is wrong in a consistent direction, and you find out during a capacity fade claim on a nine figure asset rather than during a Tuesday review. Rebuilding the ledger afterwards means re-deriving years of history from telemetry that has already been resampled and gap filled.

Why does telemetry scope get underestimated on every storage build?

Because the site looks like one asset and behaves like five. The battery management system reports state of charge in its own convention. The power conversion system reports power at a different point with a different sign convention and a different sampling rate. The revenue meter reports what the market will settle. A site controller and a historian sit between them, each with their own tag naming. None of these disagree because anyone made a mistake. They disagree because they were designed by different vendors to answer different questions.

What gets underestimated is not the reading of the data, it is the reconciliation. Getting a documented tag list out of the integrator, agreeing a read path that does not disturb the control system, and confirming which meter each contract actually references routinely takes longer than the software work it enables. On portfolios with two integrators, the whole exercise happens twice, because a second integrator means a second telemetry schema and a second set of control interfaces.

The fix is sequencing. Establish one canonical energy accounting model per site before anything else is built, define every contractual metric at the point of measurement its own contract specifies, then reconcile the sources continuously with divergence surfaced as an alarm rather than smoothed away. Owners who do this find instrument and configuration faults that had been quietly distorting performance numbers for months. Owners who skip it build an optimiser on top of numbers nobody has ever checked.

What goes wrong when you rebuild the throughput ledger from historian data?

Gaps, resampling and retention policy, in that order of pain. A historian configured at commissioning is usually tuned for operations, which means high resolution recent data and aggressive downsampling of anything older than a few months. That is a sensible default for a control room and a poor one for evidence. When you go to rebuild an annual throughput figure for the last three years, the hours you most need are the ones that were compressed.

The second problem is that gaps get filled. Historians and reporting layers routinely interpolate across communications outages so charts look continuous. For a warranty claim, an interpolated hour is not data, it is an assumption you will be asked to defend by somebody whose job is to find exactly that.

The practical approach is to treat the operating record as evidence from the start. Make raw telemetry retention a deliberate policy decision driven by what a claim would require, not by storage cost or historian defaults. Build the throughput and cycle ledger append only, so any number presented in a claim can be walked back to source. Where you are rebuilding history that is already degraded, be explicit in the ledger about which periods are reconstructed and on what basis, because a documented reconstruction is defensible and an undocumented one is not.

Why do market and control system integrations break after go live?

Market interfaces break because the obligations change and the failure modes are asymmetric. Moving from a decision support tool that a trader reads to automated offer submission is not an incremental feature, it brings certification requirements, submission deadlines that do not move, and a failure handling problem where a missed submission has a direct financial consequence. Teams that scope automated bidding as an output format discover the difference in their first outage.

Control system integrations break for a quieter reason. A firmware update on the power conversion system changes a tag name or a scaling factor. Nothing errors. The numbers simply become wrong by a factor, and because the dashboard still renders, nobody notices for weeks. This is the single most common post launch failure in storage software and it is almost never caught by conventional monitoring, which checks that data arrived rather than that it is plausible.

Two defences. Run continuous cross checks between independent sources, so a battery management system total that stops agreeing with the revenue meter within tolerance raises an alarm rather than being reconciled silently. And build submission paths with explicit failure handling: a queued offer that fails to submit must escalate to a human before the gate closes, not appear in a log afterwards.

What happens when the warranty and offtake terms are not modelled as constraints?

You get a bidding process that spends throughput it does not have and an availability obligation nobody is computing. The pattern is consistent. Nobody notices a throughput overrun in March. They notice in November, when the annual figure is close to the allowance and the remaining months have to be bid conservatively, which means giving up the highest value hours of the winter to pay for an aggressive August.

The offtake side fails in parallel. Availability under most agreements is defined against tested capacity under specified conditions, which is a different basis again from anything in the control system, and in practice almost nobody computes it continuously. The counterparty statement arrives and gets accepted because there is no independent number to compare it against.

The fix is to make the contract terms live values inside the workflow rather than a report beside it. Remaining annual throughput, remaining cycle budget, depth of discharge distribution and temperature exposure should be current numbers that the offer curve is generated against. Once they are, you can do the calculation that matters: pricing the opportunity cost of throughput consumed in a summer event against the expected value of the winter hours it forfeits. That is the trade a spreadsheet cannot make, and it is where the money is.

Should you build custom or use the energy management system you already own?

If you own one site under a tolling agreement where the offtaker directs dispatch, do not build. Your obligation is availability, the integrator's energy management system already does the control, and a monthly report is a proportionate answer. Wartsila GEMS and Powin StackOS are capable controls layers and they arrived with your hardware. Use them.

If you are merchant on a single asset and genuinely content to run it as a managed service, Stem Athena or a similar arrangement removes a real staffing problem for a fee you can know in advance. Tesla Autobidder and Fluence Mosaic are serious optimisation products and will produce better offer curves than a spreadsheet on the assets they sit closest to.

The build case starts when the constraint set that matters most to you is not an input you control. That is the specific throughput and depth of discharge language in your warranty and the specific availability definition in your offtake. It also starts when you own three or more sites across two or more integrators, because no vendor tool spans a portfolio it did not ship with. If you cannot state today's remaining annual throughput budget on every site within a minute, that is your first scope, and it is cheaper than any optimiser.

How do hidden costs get into the quote?

Four ways in this category. The number of distinct hardware combinations across the portfolio, because a second integrator is close to a second integration project rather than a configuration item. Direct market participation, since automated submission carries certification and failure handling obligations that a read only tool does not. Co located solar or wind, because a shared point of interconnection turns a battery optimisation problem into a hybrid plant problem with different arithmetic. And the state of your historian, because a project where telemetry was never properly architected begins with a data archaeology phase nobody budgeted.

Guard against all four before signing. Name every hardware combination in the scope and price them separately. Decide explicitly whether release one submits offers or prepares them for a human to submit. Ask what happens if the historian turns out to be missing the resolution the ledger requires, and agree who carries that. The cheapest protection is to build the constraint engine and the ledger first and add the optimiser second, which is also the order that delivers value soonest.

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

The ones that work start from the contracts rather than from the algorithm. A developer who asks which meter your warranty references, on which side, before quoting has read a warranty. One who answers immediately has not, and is about to build you a number you cannot use in a claim.

They also treat disagreement as information. Divergence between the battery management system and the revenue meter is surfaced and alarmed, never reconciled quietly, because silent reconciliation is how an instrument fault survives a year. Capacity test results are stored as structured records linked to the conditions under which they were run, so a degradation curve can be walked back to the operating decisions that produced it. That is what an augmentation business case needs to survive lender and investment committee review.

Finally, settle ownership in writing before kickoff. You should hold the repository, the cloud accounts and the historian. At Digital Heroes the client owns everything from the first commit. In storage this is not a procurement preference, it is a practical matter: the operating record is evidence in a future claim, and evidence you cannot reach on your own terms is not evidence at all.

Research & sources

The evidence behind this guide

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

  1. Across more than 5,400 IT projects studied by McKinsey and the University of Oxford BT Centre, large IT projects ran on average 45% over budget and 7% over schedule while delivering 56% less value than predicted. Source: McKinsey & Company / University of Oxford (BT Centre for Major Programme Management) (2012) →
  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. WordPress powers 41.5% of all websites and holds 59.2% of the market among sites running a known content management system, making it by far the most-used CMS on the web. Source: W3Techs (2026) →
  4. Per Sensor Tower's State of Mobile 2026, worldwide consumers spent about $85 billion on apps in 2025 (up 21% YoY), and for the first time non-game apps surpassed games in consumer spending; generative-AI in-app purchase revenue more than tripled to top $5 billion. Source: Sensor Tower (via TechCrunch) (2026) →
Liam O. · Senior iOS Engineer · APAC · Sydney

Liam builds iOS apps at Digital Heroes, from architecture decisions through to App Store submission and the maintenance that follows. He deals with the details buyers rarely ask about: offline handling, background sync, OS upgrades. Read him if you are trying to budget for an app beyond version one.

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

FAQ

Frequently asked questions

Why do our energy numbers disagree between the BMS, the PCS and the meter?
Because each measures at a different point with different sign conventions and sampling rates, which is expected and not a fault. The problem is that warranty throughput and offtake availability are each defined at one specific measurement point, so tracking the wrong source produces a figure that is consistently wrong. Define every contractual metric at its own contractual point, reconcile continuously, and alarm on divergence beyond tolerance rather than smoothing it into agreement.
Can we rebuild years of throughput history from our existing historian?
Partly, and you should establish how much before committing to it. Historians are usually tuned for operations, which means recent data at high resolution and older data downsampled, with communications gaps interpolated so charts look continuous. Interpolated hours are assumptions, not evidence. Where you must reconstruct, record explicitly which periods are reconstructed and on what basis, because a documented reconstruction holds up in a claim and an undocumented one invites the argument you were trying to avoid.
What breaks first after a battery storage platform goes live?
A firmware update that changes a tag name or a scaling factor on the power conversion system. Nothing errors, the dashboard still renders, and the numbers are simply wrong by a factor until someone notices weeks later. Conventional monitoring misses it because data is still arriving. The defence is plausibility checking against an independent source, so a total that stops agreeing with the revenue meter within tolerance raises an alarm rather than being quietly reconciled.
Is automated offer submission worth building in the first release?
Usually not. Preparing offers against live constraints and having a person submit them delivers most of the value and avoids the certification and failure handling obligations that automated submission brings. A missed submission has a direct financial consequence and no undo, so the failure path needs to be engineered rather than logged. Build the constraint engine and the throughput ledger first, submit manually, and automate once the numbers underneath are trusted.
How does a warranty overrun actually cost us money?
By forcing conservative bidding at the worst possible time. The overrun is invisible in spring and becomes binding in late autumn, when the annual allowance is nearly spent and the remaining months contain the highest value hours of the year. In effect an aggressive summer was paid for with winter revenue that nobody priced. Carrying remaining annual throughput as a live value inside the bidding workflow lets that trade be made deliberately.
Do we need custom software if we already run GEMS, StackOS or Autobidder?
Not if you own one tolled site where the offtaker directs dispatch, because your obligation is availability and the integrator's system covers it. The build case appears when the constraints that matter most, your specific warranty language and your offtake availability definition, are not first class inputs you control, or when you own several sites across more than one integrator so no vendor tool spans the portfolio.
What is the biggest schedule risk on a storage software project?
Telemetry access rather than engineering. Getting a documented tag list from the integrator, agreeing a read path that will not disturb the control system, and confirming which meter each contract references can take longer than building what sits on top. Sites where telemetry was properly architected at commissioning move noticeably faster. Ask for the tag list during procurement, not after the contract is signed.
What do we need in place before an augmentation decision?
A degradation record that connects measured capacity tests to the operating history that produced them. That means capacity test results held as structured records with the conditions they were run under, an append only throughput ledger, and raw telemetry retained deliberately rather than at historian defaults. A vendor dashboard will show you a degradation curve. What a lender or an investment committee asks for is the reasoning behind it, and that is a different artifact.
What does a $50,000 custom software budget actually buy?
One core workflow done properly: 10 to 15 screens, two or three user roles, a couple of integrations, an admin panel, and automated tests, delivered in roughly 12 to 14 weeks. What it does not buy is that workflow plus a mobile app plus AI features plus five more integrations. The discipline of picking the one workflow that matters is what separates $50,000 projects that ship from $50,000 projects that stall at 70% complete.
Will custom software work with the tools we already use, like QuickBooks and Stripe?
Yes, and this is one of custom software's genuine advantages: QuickBooks, Stripe, Shopify, and most mainstream business tools publish documented APIs built for exactly this. Expect each standard integration to add one to two weeks of build time, and be suspicious of any quote that lists five integrations without asking what data flows in which direction. The hard cases are legacy systems with no API, which is a question to raise in discovery, not in week nine.
If an agency builds my software, who actually owns the code?
You should own everything, assigned in writing: the contract transfers full IP to you on final payment, the code lives in your GitHub organization, and hosting runs in cloud accounts you control. The red flag is a proposal that mentions the agency's proprietary platform or framework, which usually means you are renting, not buying. Digital Heroes structures every build this way precisely so a client can fire us and lose nothing but the relationship.
Our developer disappeared mid-project. Can another team pick up the code?
Yes, this is a routine engagement, provided the code exists somewhere you can access, so your first move is securing the repository, hosting, and domain credentials today. A takeover starts with a one to two week paid code audit that ends in one of three verdicts: continue the build, keep the design but rebuild the weak parts, or start over. Digital Heroes has inherited enough projects to say plainly that sometimes the rebuild is cheaper than the rescue, and an honest agency will tell you which one you have before taking your money.
We run everything on spreadsheets and Airtable. How do we know it's time for custom software?
The reliable signals are re-typing the same data into multiple tools, one employee acting as human middleware between systems, and errors appearing in handoffs between teams. Hard limits force the issue too: Airtable's Team plan caps at 50,000 records per base, and Business costs $45 per seat per month, so a 20-person team pays about $10,800 a year for a tool it has already outgrown. When workarounds consume more hours than the tools save, the spreadsheet era is over.
How much should a small business expect to pay for custom software?
Across 2,000+ Digital Heroes projects, a small business system that replaces spreadsheets or one core workflow typically lands between $40,000 and $80,000, with more complex first versions running up to $150,000. The two levers that move the number most are integrations and user roles, not the team's hourly rate. Any quote under $15,000 for a full production system means the vendor has not understood your scope yet.
We run everything on Airtable and spreadsheets. When is it time to go custom?
The switch usually makes sense when you hit one of two walls: Airtable's record caps (125,000 records per base on the Business plan) or logic the tool cannot express, like multi-step approvals with conditional pricing. There is also a simple cost signal: 25 people on Business at roughly $45 per seat per month is about $13,500 a year, forever, for a tool you are already fighting. Custom is worth it when the workflow is core to how you make money; for peripheral processes, staying on Airtable is the right call.
Does the tech stack matter, and which one should I ask for?
It matters less than agencies imply, provided it is boring. A mainstream stack, something like React or Next.js on the front end, Node.js or Python behind it, and PostgreSQL for data, means thousands of developers can maintain your system if you ever change vendors. Apply one test: ask how hard it would be to hire a replacement developer for the proposed stack, and walk away from anything built on an agency's in-house framework.
What does it cost to keep custom software running after launch?
Budget 15-20% of the original build cost per year, which on a $100,000 system means $15,000 to $20,000 for security patches, dependency updates, bug fixes, and small improvements as real usage reveals what the spec missed. Cloud hosting for a typical business application adds $50 to $300 a month on top. Skipping maintenance does not save the money; in Digital Heroes rescue work, unmaintained systems typically need a far more expensive rebuild within about three years.
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?