Problems & solutions · Field Service Management

Solar Farm O&M Software Problems: The 7 That Cost Real Money, and How to Avoid Them

Solar Farm OM Software workflow illustration showing common problems and fixes.
The short answer

The most expensive failure on a solar fleet is not a dark inverter, it is being unable to prove availability in the language of the contract. An asset manager reports 96.8 percent energy availability against a 98 percent guarantee, the liquidated damages line comes back at $210,000, and your performance engineer's workbook says 98.4 percent and cannot evidence a single excluded minute. The plant was fine. The data existed. What did not exist was a ledger of exclusions bound to real SCADA tags with timestamps, operator notes and switching orders attached, so the argument is settled by whoever has the better spreadsheet rather than by the facts.

Why does replacing the data acquisition system get scoped so often?

It is the most expensive mistake we watch solar operators make, and the logic behind it is understandable. You are running AlsoEnergy PowerTrack for the older assets, Huawei FusionSolar for two 2023 builds because the engineering contractor bought Huawei inverters and the warranty requires their portal, and an acquired asset still phones home somewhere nobody has the admin password for. Three portals, no fleet view. The obvious conclusion is to replace all of it with one system.

That conclusion means taking ownership of protocol drivers, device commissioning and an argument with an inverter manufacturer about warranty compliance, for zero commercial gain. None of those things is where you are losing money. The portals do device-level monitoring competently and they satisfy warranty obligations that are not optional.

What is missing sits above them. One normalized time series store, one fault taxonomy you own, one event queue ranked in dollars, one availability engine that speaks your contracts. The scope that works keeps the portals for what they are good at and builds the layer that no vendor will ever build.

The practical test at scoping time: if a proposal includes writing drivers for inverter communication, ask what commercial problem that solves that a data pull from the existing portal does not. If the answer is architectural elegance, remove it from scope and put the money into the availability engine.

What goes wrong when you migrate five years of SCADA history?

Historical data is what makes the new system credible on day one, and it is also its own workstream rather than a copy operation. For a fleet of twenty to thirty sites at one minute intervals, plan on two to four weeks of dedicated work.

The specific failures are these. Backfills arrive out of order, because a cellular modem drops for six hours and the remote terminal unit pushes the gap later, so a naive loader either rejects the rows or writes them in a sequence that breaks aggregates. There is almost always at least one register map change buried in the history, from a firmware update somebody applied during a maintenance window. Meter data and inverter data disagree, sometimes by a lot.

The fix is to backfill through the same ingest pipeline the live data uses, so historical and live rows share one schema and one fault taxonomy rather than living in a separate historical table that later has to be joined. Include a reconciliation pass against the revenue meter as part of the migration acceptance because the revenue meter is the only number your counterparties recognise. And design the retention policy and continuous aggregates on day one. Twenty six sites at a few thousand tags each on one minute intervals runs into tens of billions of rows a year, and retrofitting downsampling in month eight is considerably more expensive than specifying it in week one.

Why do OEM portal and protocol integrations break after launch?

Every data source in this stack is owned by someone else and changes on their schedule. An AlsoEnergy API pull, a FusionSolar API pull and a raw Modbus TCP poll over a cellular modem are three unrelated engineering problems, and each one is real weeks rather than a connector you configure.

After launch they break in ways that do not throw errors. An inverter manufacturer changes a register map in a firmware update rolled out during a service visit, and your poller keeps reading the same register addresses and recording plausible values that mean something different. Six weeks of data are silently corrupted before anyone questions a performance ratio that drifted slightly.

The fix is validation on shape and plausibility rather than on connectivity alone. Alarm when a tag's value distribution moves outside a band you set, not just when it stops arriving. Version the register map per device with the firmware level recorded, so a change is a known event rather than a mystery. Keep the raw payload alongside the normalized reading so a corrected mapping can reprocess the affected period rather than losing it.

What happens when the contract availability definition is not covered?

This is the gap that costs the most and gets deferred the most, usually because it looks like reporting. It is not reporting, it is the commercial core of the system.

The dispute is never about the raw data. It is about definitions. Is availability time-based per inverter or energy-based and weather-adjusted at the plant meter. Are curtailment hours excluded, and capped at how many. Does a grid outage upstream of the point of interconnection count against you. Does a forty percent inverter derate count as available. Is the measurement interval one minute or fifteen, because that alone can move the number by half a point. If you hold fourteen assets you probably hold nine different answers, and a monitoring portal computes availability its own way for all of them.

The fix is to treat each agreement as configuration. An availability profile per contract: numerator and denominator definition, measurement interval, exclusion rules bound to actual data sources such as the grid outage flag from the remote terminal unit and the curtailment setpoint from the site controller, the derate threshold, declared force majeure windows and the makeup energy formula. Then every excluded minute becomes an auditable row with evidence attached: the tag, the timestamp, the operator note, the switching order, the photograph. When an independent engineer challenges a quarter, you export a ledger of evidenced exclusion rows rather than defending a workbook. We have watched one of those exports end a six figure argument in a single call.

Should you build custom or configure what you already own?

If you are under roughly 50 MW on a single inverter manufacturer, with one contract structure and no availability guarantee that has teeth, do not build. AlsoEnergy PowerTrack plus a low cost maintenance system such as UpKeep or Fiix will do the job for less than one performance engineer costs per year, and building at that scale is vanity. Configure the alarm thresholds properly, set up the preventive maintenance schedules, and spend the difference on technicians.

The signals that it is time to build the layer above: you run three or more monitoring portals and nobody can produce one fleet view. You carry availability or performance ratio guarantees where a single definitional dispute is worth more than the entire build. You employ someone whose real job title is the availability spreadsheet. Every acquisition adds a portal. Or you sell operations and maintenance to third party owners and your pitch is cost per megawatt, in which case the software is part of the product rather than overhead.

How do hidden costs get into the quote?

A focused first release covering alarm normalization across your portals, a dollar-ranked event queue, work orders and an offline capable field app runs $60,000 to $130,000 across 12 to 16 weeks in our delivery experience. A full platform adding the contract availability engine, the serial-level asset and warranty register, dispatch optimization and counterparty reporting runs $150,000 to $400,000 phased over 6 to 12 months. Five things drive it past an estimate.

Data source count is the largest and the least appreciated, because each portal API and each raw protocol poll is its own effort and they do not collapse into one connector. Ingest volume is the second, since tens of billions of rows a year needs continuous aggregates and a retention policy designed rather than added later. Contract variety is the third: three templates is a week of configuration work and fourteen bespoke agreements is a quarter. Offline-first mobile is the fourth and roughly doubles the field application effort, and it is not optional when a technician is standing in a field with one bar. The fifth is NERC registration on any asset in the fleet, which changes hosting region, access control, audit logging and change management for the whole system.

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

Ranking by money rather than by timestamp. At 06:40 the data acquisition system reconnects after an overnight comms drop and fires hundreds of alarms in four minutes, because every inverter at every site logs a communication restored event and every site logs irradiance below threshold at dawn. Buried in that flood is one inverter that tripped on a DC ground fault at 02:10 and will stay dark until somebody happens to visit. Eleven days of a block down is a number small enough to ignore once and large enough to matter twelve times a year.

The builds that work normalize every manufacturer fault code into a taxonomy you own, then score every open event in dollars: expected energy from plane of array irradiance and cell temperature against your model and the block's performance ratio baseline, actual from the revenue meter or inverter output, delta priced at the contract rate. The queue sorts by dollars per day. The builds that fail reproduce the alarm inbox with better styling.

The second separator is the asset register: a list down to the serial number, with install date, warranty term, manufacturer contact and repair history, so a qualifying fault automatically attaches the recent fault log and drafts the claim inside the manufacturer's window. Without it, a power stack failure in year six against a ten year warranty becomes a five figure write-off because the serial number is in a photograph in a message thread from commissioning. Document extraction from commissioning reports and warranty documents is what makes building that register affordable rather than a six week typing exercise.

When you interview a developer, hand them the actual availability clause from one agreement before you hand them a budget. If the answer contains the phrase an availability percentage field, end the conversation. Ask how they downsample one minute data for reporting and what the retention policy looks like at year three. Then settle ownership and hosting in the contract rather than at kickoff: you should own the repository, the infrastructure accounts and the data outright, with no runtime dependency on the developer's platform. At Digital Heroes the client owns all of it from the first commit.

Research & sources

The evidence behind this guide

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

  1. IBM frames first-time fix rate as a core field service KPI, noting the industry average sits around 80% (roughly one in five jobs needs a return visit). Correction: IBM cites best-in-class providers at 89-98%, not '85%+'. Source: IBM (2024) →
  2. Timefold reports field service operations moving to automated route optimization typically see 10-25% fuel savings and 15-30% drive-time reductions, and documents a case where a global services firm cut drive time 33% and distance 43% while eliminating overtime. Source: Timefold (2025) →
  3. Gartner estimates RPA can eliminate up to 25,000 hours of avoidable rework caused by human errors in the finance function each year, equating to savings of roughly $878,000 for an organization with 40 full-time accounting staff (based on interviews with more than 150 corporate controllers and chief accounting officers). Source: Gartner (2019) →
  4. An EY survey found one in five U.S. payrolls contains errors, each costing an average of $291 to remediate, with a typical 1,000-employee organization spending roughly 29 workweeks per year fixing common payroll errors. Source: EY (Ernst & Young) (2022) →
Sampada G. · Project Manager · Lucknow

Timelines, standups and the small decisions that keep a build moving are Sampada's day. She coordinates developers, designers and QA on web and software projects, chasing the detail that would otherwise stall a release. Readers get an inside view of how agency projects are actually sequenced and staffed.

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 morning alarm review miss the faults that cost the most?
Because portals alarm on device state rather than on money, and at dawn every site logs communication restored and irradiance below threshold at once. A single inverter that tripped overnight sits inside a flood of hundreds of equal-weight events. Normalize every manufacturer fault code into one taxonomy, price each open event using expected energy against actual at the contract rate, and sort the queue by dollars per day rather than by timestamp.
Should we replace AlsoEnergy or FusionSolar with our own system?
No, and this is the most expensive mistake we see solar operators make. Replacing the data acquisition layer means owning protocol drivers, device commissioning and a warranty compliance argument with an inverter manufacturer for no commercial gain. Keep the portals for device monitoring and warranty obligations, and build the layer above them: one normalized store, one fault taxonomy, one dollar-ranked queue and one contract availability engine.
Why can we not prove availability when the plant was clearly running?
Because the dispute is about definitions rather than data. Time-based per inverter versus energy-based and weather-adjusted at the meter, curtailment exclusions and their caps, grid outages upstream of the interconnection, derate thresholds and whether the interval is one minute or fifteen all change the number. Encode each agreement as an availability profile with exclusion rules bound to real tags, and record every excluded minute as an auditable row with evidence attached.
What goes wrong when we backfill years of historical SCADA data?
Out-of-order backfills after comms drops, at least one register map change buried in the history from a firmware update, and meter data that has never been reconciled against inverter data. Backfill through the same ingest pipeline the live data uses so both share one schema, and include a reconciliation pass against the revenue meter in the migration acceptance rather than afterwards. For twenty to thirty sites at one minute intervals, plan two to four weeks.
How do firmware updates corrupt our data without anyone noticing?
A manufacturer changes a register map during a service visit, your poller keeps reading the same addresses, and the values remain plausible while meaning something different. Nothing errors, so six weeks can pass before a drifting performance ratio prompts a question. Version the register map per device with the firmware level recorded, alarm when a tag's value distribution moves outside an expected band, and keep the raw payload so a corrected mapping can reprocess the period.
Why do we lose warranty claims on equipment that is still covered?
Because the serial number, install date and warranty term are not held anywhere structured, and the manufacturer requires the fault log pulled within a defined window. A power stack failure in year six against a ten year warranty becomes a write-off when the serial exists only in a commissioning photograph. Build an asset register to serial level, extracting it from commissioning reports and warranty documents rather than typing it, and auto-attach the fault log when a qualifying fault fires.
Does NERC registration change how we host solar O&M software?
Yes, and it needs deciding before architecture rather than after. If any asset in the fleet is a registered generator, hosting region, access control, audit logging and change management become requirements for the whole system rather than implementation details. Retrofitting audit logging and role separation into a system built without them typically costs more than including them from the start, and you will find out during your first audit.
Is a low cost maintenance system enough for scheduling crews?
It is enough to schedule, and it schedules blind. It does not know the irradiance forecast, so it will book outage work at midday in July, and it does not know whether a technician holds medium voltage switching authorization for that site or that a preventive visit is already due where the reactive ticket sits. A dispatch engine that prices cost to send now against energy lost by deferring, and enforces qualifications, is where the saving comes from.
How much does it cost to build custom field service management software for a small business?
For a company running 5 to 25 technicians, a focused first version with scheduling, dispatch, a technician mobile app, and invoicing typically runs $40,000 to $80,000 in Digital Heroes delivery experience. A full platform with offline mode, a customer portal, GPS tracking, and accounting sync lands between $90,000 and $180,000. The two biggest cost drivers are offline sync depth and integration count, so pin both down in scoping and the quote holds.
What are the biggest mistakes companies make when building custom field service software?
Four mistakes cause most failures: scoping only the happy path so offline work and job reassignment surface later as change orders, leaving QuickBooks sync until the end instead of designing for it, skipping technician input until launch, and having no post-launch support plan. Across 2,000+ Digital Heroes projects, failed field service builds almost always failed on process, not programming. Every one of these is prevented in the scoping phase, which is why discovery matters more than the framework.
Who owns the code when an agency builds my software?
You should, completely, through a written intellectual property assignment that transfers everything on final payment; without that clause, copyright stays with whoever wrote the code by default. Insist that the repository lives in your own GitHub organization from day one and that hosting, domains, and third-party accounts are registered to you. Also check for licenses to the agency's proprietary frameworks buried in the contract, because those can make switching vendors practically impossible even when you own your own code.
How many SaaS seats do we need before building custom becomes cheaper?
The crossover usually shows up between 20 and 50 seats on premium tiers. Salesforce Enterprise lists at $165 per user per month, so 40 users cost about $79,000 a year in subscriptions, which is real money against a custom system you would own outright. Run the comparison over three years: if subscription spend beats the build cost plus 15-20% annual maintenance, custom wins on price before you even count workflow fit.
Can a custom field service app sync with QuickBooks and the payment processor we already use?
Yes, and it should be scoped as a named workstream rather than a finishing task. QuickBooks Online, Xero, Stripe, and Square all offer mature APIs, and a two-way invoice and payment sync typically adds $8,000 to $20,000 to a build depending on how items, taxes, and customers map. The decision that matters most is source of truth: agree which system owns customer records and pricing before development starts, or you will reconcile duplicates forever.
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 do I vet a software development agency before signing a contract?
Ask to speak with two past clients whose projects resemble yours in size and industry, and ask exactly who will write your code, since some agencies sell senior faces and deliver junior or subcontracted hands. Demand a written specification with acceptance criteria before any fixed price, and check that their portfolio links to products that are actually live. An instant quote given without questions about your workflows is the clearest warning sign there is.
Do my field technicians need a native mobile app, or will a web app work?
If your technicians ever work in weak signal, you need a native or offline-capable app, because a plain web app fails exactly where field work happens: basements, mechanical rooms, and rural routes. Cross-platform frameworks like React Native or Flutter give one codebase for iPhone and Android with full offline storage, which is how Digital Heroes builds most technician apps. A web app is the right call for the office dispatch console, where connectivity is guaranteed.
Who can build a custom field service management software system?

Digital Heroes builds custom field service management 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 field service management 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?