Industry guide · Field Service Management

Solar Farm O&M Software: What Breaks at 300 MW and What to Build Instead

The short answer

Build if you are running more than one monitoring portal and your O&M or PPA agreements carry availability guarantees with liquidated damages. In Digital Heroes delivery experience across 2,000+ projects, a focused first release for a solar operator (alarm normalization, a dollar-ranked event queue, work orders, and an offline field app) runs $60,000 to $130,000 and ships in 12 to 16 weeks. A full platform with the contract availability engine, warranty and spares register, dispatch optimization, and counterparty reporting runs $150,000 to $400,000 phased over 6 to 12 months. Below roughly 50 MW on a single inverter OEM with one contract structure, keep AlsoEnergy and a cheap CMMS and spend the money on technicians instead.

Why solar farm O&M software makes or breaks a fleet operator

Picture the stack at a typical 300 MWac independent operator: 26 sites across ERCOT, PJM and MISO. The 2018 and 2019 assets report into AlsoEnergy PowerTrack. Two 2023 builds sit in Huawei FusionSolar because the EPC bought Huawei inverters and the OEM warranty requires their portal. One acquired asset still phones home to a Sungrow portal nobody has the admin password for. Work orders live in UpKeep. Availability lives in a workbook a performance engineer named Dana maintains, and the quarterly lender report is a PowerPoint with screenshots pasted into it.

Here is what that costs on a specific Sunday. At 06:40 the DAS reconnects after the overnight comms drop and PowerTrack fires 312 alarms in four minutes, because every inverter at every site logs "communication restored" and every site logs "irradiance below threshold" at dawn. Buried in that flood is inverter 7 of 12 at a 22 MW site in Ward County, tripped on a DC ground fault at 02:10. Nobody sees it until Thursday, when a tech happens to be onsite for vegetation and notices the block is dark. Eleven days at roughly 15 MWh a day is about 165 MWh, or $7,400 at a $45 PPA. That number alone does not scare anyone. Then you find eleven more of them across the year, and then the asset manager sends a Q3 report claiming 96.8% energy availability against a 98% guarantee, and the liquidated damages line is $210,000, and Dana's workbook says 98.4% and cannot prove it.

That gap between "we know the plant is fine" and "we can prove it in the language of the contract" is where solar O&M money is actually made or lost. Nothing in the OEM portals was built to close it.

Problem 1: The alarm flood buries the fault that costs real money

Your morning triage is a person scrolling an inbox. Every device state change is an alarm with equal weight. An SMA fault 3501 and a Sungrow fault 043 and a Power Electronics stack alarm all mean roughly "check the DC side," but they are three different strings in three different portals and no human holds the mapping in their head at 7am.

PowerTrack and FusionSolar cannot fix this because they alarm on device state, not on money. They do not know your PPA rate. They do not know that a tracker controller fault at Site 11 costs $180 a day and an inverter block at Site 4 costs $700 a day. And they are per-portal, so there is no single ranked queue.

What a build does: poll everything into one time series store (Timescale hypertables, or a tag map onto an existing PI historian if you already run one), normalize every OEM fault code into a fault taxonomy you own, and score every open event in dollars. Expected energy comes from POA irradiance and cell temperature against your PVsyst P50 model and the block's PR baseline; actual comes from the revenue meter or the inverter AC output; the delta gets priced at the contract rate. The queue sorts by dollars per day, not by timestamp. The AI piece that matters: an event classifier trained on your own three years of closed tickets that predicts self-clear, remote reset, or truck required. It works because it learns your fleet's resolution history, not a generic model. In our builds this is consistently the highest-return model in the system, and it is the one that stops you sending a technician for a fault that was going to clear itself.

Problem 2: You cannot prove availability the day the LD invoice lands

The dispute is never about the data. It is about definitions. Is availability time-based per inverter or energy-based weather-adjusted at the plant meter? Are ISO curtailment hours excluded, and capped at how many? Does a grid outage upstream of the POI count against you? Does a 40% inverter derate count as available? Is the measurement interval 1-minute or 15-minute, because that alone can move the number by half a point.

PowerTrack computes availability its way. Your O&M agreement defines it its way. If you have 14 assets you probably have nine different definitions, and no off-the-shelf portal will let you encode nine of them.

What a build does: treat the contract as configuration. Each agreement gets an availability profile: numerator and denominator definition, measurement interval, exclusion rules bound to actual data sources (the grid outage flag from the RTU, the curtailment setpoint from the site controller or the ISO feed, declared force majeure windows), the derate threshold, and the makeup energy formula. Every excluded minute becomes an auditable row with evidence attached: the SCADA tag, the timestamp, the operator note, the switching order, the photo. When the independent engineer challenges Q3, you export a ledger with 4,100 evidenced exclusion rows, not a workbook. We have watched one of those exports end a six figure argument in a single call.

Problem 3: Crew dispatch across 26 sites is a whiteboard and a memory

Three crews, 700 miles of driving, and a Monday plan built from what the O&M manager remembers. Annual PM windows, IR thermography season, tracker greasing intervals, vegetation cycles, module washing after the soiling rate crosses your threshold, plus the reactive queue. Twice a quarter two techs drive past the same site on the same day.

UpKeep, Fiix and Salesforce Field Service can schedule, and they schedule blind. They do not know the 72-hour POA irradiance forecast, so they will happily book an outage at 13:00 in July. They do not know that this site is medium voltage and that tech is not qualified to switch it. They do not know that a preventive maintenance visit is already due at the site the reactive ticket is at.

What a build does: a dispatch engine that prices every job two ways, cost to send now versus lost energy if deferred, and slots outage work into forecast low-irradiance windows. It bundles reactive tickets with PM due at the same site inside the same window. It enforces qualification: NFPA 70E training currency, medium voltage switching authorization, site-specific orientation, all checked before a job can be assigned. It generates the switching order and the energized electrical work permit populated with real equipment IDs, and it caches everything offline, because the tech is standing in a field in Pecos County with one bar. AI here is forecasting and proposal: the system drafts next week's plan, the manager approves or drags things around, and the model learns from the overrides.

Problem 4: Warranty and spares money walks out the gate

Year six, a Power Electronics power stack fails. The extended warranty is 10 years, so this should be free. The serial number is on a photo in a WhatsApp thread from commissioning. The OEM requires the fault log pulled within a defined window and it was not. You eat $28,000 and a four-week lead time.

No monitoring portal holds your asset register at serial level with warranty terms, because that is your commercial data, not the OEM's. So it lives in a spreadsheet that was last accurate at COD.

What a build does: an asset register down to the serial, module strings by pallet, combiners, inverters, power stacks, tracker motors and controllers, each with install date, warranty term, OEM contact, and RMA history. When a qualifying fault fires, the system auto-attaches the last 30 days of fault log, the IV curve trace if one exists, and the thermography image, then drafts the RMA packet inside the OEM's window. Document extraction is what makes the register affordable: commissioning reports, as-builts, the IE report and the OEM warranty PDFs get parsed into structured records, so the register gets built from documents you already have instead of an intern typing serials for six weeks. On acquisitions this is the difference between a two-day onboarding and a two-month one.

Problem 5: The quarterly report eats a week of your best analyst

The asset manager wants one format, the lender wants another, the tax equity partner wants a third. Multiply by 26 sites and four quarters. Dana spends the first week of every quarter screenshotting charts, and the two FusionSolar sites get done by hand because the export schema is different.

What a build does: a report engine sitting on the same normalized data. Per-counterparty templates: weather-adjusted PR against the PVsyst P50 using actual POA and cell temp, the availability ledger with exclusions, the event list with root cause codes, open work orders by age. Generated on schedule, reviewed by a human, exported to PDF and XLSX. The AI writes the first draft of the narrative ("PR of 0.79 against 0.82 expected, driven by soiling at Site 4 and the 17-day transformer outage at Site 11, grid-excluded per Section 8.3") and the analyst edits it. A week becomes a morning.

What this costs and how long it takes

Framed only as Digital Heroes delivery experience across 2,000+ projects. A focused first release, meaning alarm normalization across your portals, the dollar-ranked event queue, work orders, and an offline-capable field app, typically runs $60,000 to $130,000 and ships in 12 to 16 weeks. 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.

What pushes price up in this category specifically: the number of distinct data sources, because the AlsoEnergy API, the FusionSolar API, and a raw Modbus TCP poll over a cellular modem are three unrelated engineering problems and each one is real weeks. Ingest volume, because 26 sites at a few thousand tags each on 1-minute intervals runs into tens of billions of rows a year and needs continuous aggregates and a retention policy designed on day one, not bolted on in month eight. Contract variety, because three templates is a week and fourteen bespoke agreements is a quarter. Offline-first mobile, which roughly doubles the field app effort and is not optional. And NERC registration on any asset, which changes hosting, access control, and audit logging for the whole system.

Build vs buy: take the portals seriously, then build above them

Buy is genuinely right if you are under about 50 MW, on a single inverter OEM, with one contract structure and no availability guarantee that has teeth. PowerTrack plus UpKeep costs less per year than one performance engineer and it will do the job. Building in that situation is vanity.

The signals that it is time to build: you are running three or more monitoring portals and nobody can produce one fleet view. You carry availability or PR guarantees where a single definitional dispute is worth more than the entire build. You employ someone whose actual job title should be "the availability spreadsheet." You are acquiring assets and every acquisition adds a portal. Or you sell O&M to third-party owners and your pitch is cost per MW, in which case the software is the product.

The position worth stating plainly: do not rebuild the DAS. The most expensive mistake we have watched solar operators make is deciding to replace AlsoEnergy or FusionSolar outright, which means owning protocol drivers, device commissioning, and an OEM warranty compliance fight, for zero commercial gain. Keep the portals for device-level monitoring and warranty obligations. Build the layer above them: normalization, contract logic, dispatch, warranty, reporting. That layer is where every dollar you are losing actually lives.

How to choose a developer for solar O&M software

Hand them your availability clause before you hand them a budget. Give a shortlisted firm the actual availability section of one O&M agreement and ask how they would represent it in the data model. If the answer contains the phrase "an availability percentage field," end the conversation. The right answer talks about exclusion rules as first-class evidenced records and contracts as configuration.

Make them show time series work at your volume. Tens of billions of rows a year is not a Postgres table with an index on timestamp. Ask what they use for continuous aggregates, how they downsample 1-minute to 15-minute for reporting, and what their retention policy looks like at year three. Ask what happens when a cell modem drops for six hours and the RTU backfills out of order, because it will.

Interrogate the protocol layer. Modbus TCP register maps, DNP3, OPC-UA, SunSpec, and vendor API rate limits are the actual work. Ask which of those they have shipped against, and ask specifically about how they handle an OEM changing a register map in a firmware update, which happens and which will silently corrupt six weeks of data if nobody planned for it.

Settle ownership and hosting in the contract, not the kickoff. You should own the repository, the infrastructure accounts, and the data outright, with no runtime dependency on the developer's platform. If any asset in the fleet is NERC registered, hosting region, access control and audit logging are contract terms, not implementation details, and a firm that treats them as details will find out the hard way during your first audit.

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. Grand View Research valued the global field service management market at USD 4.43 billion in 2022 and projects it to reach USD 11.78 billion by 2030, a 13.3% CAGR, driven by growing field operations in telecom, utilities, construction and energy. Source: Grand View Research (2023) →
  3. PMI's Pulse of the Profession research found organizations waste an average of roughly 9.9% of every dollar invested in projects due to poor performance - equivalent to about $1 million wasted every 20 seconds collectively worldwide. Source: Project Management Institute (PMI) (2018) →
  4. In Gartner's 2025 AI in Finance Survey of 183 CFOs and senior finance leaders (fielded May-June 2025), 59% reported using AI in their finance function, with accounts payable process automation adopted by 37% of respondents (the second-highest single use case, behind knowledge management at 49%). Source: Gartner (2025) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

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

FAQ

Frequently asked questions

How much does custom solar O&M software cost for a 300 MW portfolio?
A focused first release covering alarm normalization across your portals, a dollar-ranked event queue, work orders, and an offline field app typically runs $60,000 to $130,000 in Digital Heroes delivery experience. A full platform adding contract availability calculation, the serial-level warranty register, dispatch optimization, and counterparty reporting runs $150,000 to $400,000. At 300 MW across 20 to 30 sites the main cost drivers are how many distinct monitoring portals and protocols you have to integrate, and how many different contract availability definitions you carry.
Is AlsoEnergy PowerTrack enough, or do we need to build something?
PowerTrack is enough if you are on a single inverter OEM, under roughly 50 MW, with one contract structure and no availability guarantee carrying liquidated damages. It stops being enough the moment you run a second or third portal, because it computes availability its own way rather than the way your O&M agreement defines it. The build case is not about replacing PowerTrack, it is about the normalization and contract layer sitting above it.
Can we keep PowerTrack and FusionSolar and still build our own O&M platform?
Yes, and that is the approach we recommend. Keep the OEM portals for device-level monitoring and any warranty obligations that require them, and build above them: one normalized time series store, one fault taxonomy, one dollar-ranked event queue, one availability engine. Replacing the data acquisition system outright means owning protocol drivers and OEM warranty fights for no commercial return, and it is the most expensive mistake we see solar operators make.
How long does it take to build solar farm O&M software?
A focused first release ships in 12 to 16 weeks, and a full platform is phased over 6 to 12 months. The single biggest schedule variable is data source integration: an AlsoEnergy API pull, a FusionSolar API pull, and a raw Modbus TCP poll over a cellular modem are three separate engineering efforts. Budget real weeks per source rather than assuming they collapse into one connector.
How do we migrate five years of historical SCADA data into a new system?
Backfill through the same ingest pipeline the live data uses, so historical and live rows share one schema and one fault taxonomy. Expect gaps, out-of-order backfills, and at least one OEM register map change buried in the history, which is why the migration includes a reconciliation pass against the revenue meter rather than a straight copy. For a 20 to 30 site fleet at 1-minute intervals, plan on the historical load being its own workstream of two to four weeks.
Who owns the code if we hire an agency to build our solar O&M platform?
You should own the repository, the cloud accounts, the data, and the deployment pipeline outright, with no runtime dependency on the developer's platform or license. Settle this in the contract before kickoff, not at handover. Any firm that hosts your production system in their own tenant or gates your source access behind an ongoing retainer is creating a commercial hostage situation.
Can custom software calculate availability exactly the way our O&M agreement defines it?
Yes, and that is usually the strongest reason to build. The system treats each agreement as configuration: numerator and denominator definition, measurement interval, derate threshold, curtailment caps, grid outage and force majeure exclusions bound to real SCADA tags. Every excluded minute becomes an auditable row with evidence attached, so when the independent engineer or asset manager disputes a quarter you export a ledger rather than argue over a spreadsheet.
Does NERC registration change how we host solar O&M software?
Yes. If any asset in the fleet is a NERC registered generator, hosting region, access control, audit logging, and change management become contract requirements for the whole system rather than implementation details. Decide this before architecture, because retrofitting audit logging and role separation into a system that was built without them typically costs more than building it in from the start.
Can AI actually reduce truck rolls at a solar farm?
Yes, when it is trained on your own closed ticket history rather than a generic model. A classifier that predicts whether a fault will self-clear, needs a remote reset, or needs a technician is the highest-return model we build for solar operators, because it learns your fleet's specific resolution patterns across your inverter OEMs. Document extraction is the second: parsing commissioning reports and OEM warranty PDFs into a serial-level asset register recovers warranty claims that would otherwise be written off.
At what point does it make sense to switch from ServiceTitan to custom software?
The switch usually pencils out once your ServiceTitan bill passes roughly $75,000 a year and your team still maintains workaround spreadsheets beside it. ServiceTitan keeps pricing quote-only, and the quotes owners share in Digital Heroes scoping calls run several hundred dollars per technician per month on annual contracts, so a 30-technician shop can spend a full custom build's budget every 12 to 18 months in fees. If ServiceTitan fits your workflow cleanly, stay; the case for custom is a workflow the product forces you to bend.
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.
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.
Is Housecall Pro enough for a growing HVAC or plumbing company, or do we need custom software?
Housecall Pro holds up well to roughly 10 to 20 technicians on standard residential jobs, with its Essentials plan listing around $129 per month for up to five users. The ceiling appears with commercial work: multi-visit projects, progress billing, equipment service history, and inventory are thin, which is when owners start managing the business in exported spreadsheets. Use the spreadsheet count as your signal: three or more recurring workarounds mean the tool no longer fits.
Should we start with an MVP or build the full field service platform in one go?
Start with an MVP that can run one real crew for one real week: scheduling, dispatch, job completion with photos and signatures, and invoicing. That slice typically costs $40,000 to $70,000 and ships in about 12 weeks, and technician feedback then decides phase two. Teams that built the full platform up front reworked 30 to 40 percent of it after field use in Digital Heroes experience, which is the most expensive way to discover what dispatchers actually need.
We're outgrowing Jobber. Should we move up to ServiceTitan or build our own?
Move to ServiceTitan if the problem is missing features on a standard residential trades workflow, because migrating between products is far cheaper than building. Build custom when the problem is fit: multi-day commercial jobs, subcontractor crews, or pricing rules that neither Jobber's Grow plan (about $199 per month billed annually, up to 15 users) nor ServiceTitan models cleanly. In Digital Heroes scoping calls, about half the teams asking this question turn out to need an integration or add-on rather than a new platform, so name the exact workflow gap before committing either way.
What should I have ready before I contact a development agency about field service software?
Bring your current workflow, not a feature list: how a job moves from first call to paid invoice today, where it breaks, what tool you use now with its monthly bill, and the workaround spreadsheets your team maintains. Add your integration list (accounting system, payment processor, phone system) and an honest budget range. A good agency can scope accurately from that in one or two calls, while a vague request for an app like ServiceTitan costs you weeks of discovery.
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.
How many people should be working on my software project?
Three to five for a typical focused build: a project lead, one or two engineers, a designer, and part-time QA, which is the standard shape across 2,000+ Digital Heroes projects. Larger platforms justify 6 to 10, but a ten-person team on a small first version usually signals bill padding rather than horsepower. What predicts success is whether a senior engineer is writing your code daily, not the headcount on the proposal.
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?