An AI agent is software that is given a goal in plain language and works out its own steps to reach it, choosing what data to read and which analysis to run based on what it finds. At a solar plant, the loss analysis agent runs every night. It pulls yesterday's plant data, works out how much energy the plant should have produced, and splits the shortfall into named losses. By 06:30 the report, with the ranked losses and three recommended actions, is on the site-in-charge's phone. A person approves each action.
The instruction behind this agent is three sentences long: "Every night, take yesterday's data for every block and work out what each block should have produced. Split the shortfall into named losses and rank them by the energy the site team can recover. Send the site-in-charge the top three with one action each by 06:30."
How plants find losses today
Every solar plant already produces a daily generation report, the DGR. It goes out each morning with yesterday's generation, irradiation, performance ratio, and availability, usually against budget and often block by block. The DGR shows that PR was 5 percentage points under budget. It does not show how much of those 5 points came from soiling, a tracker, an inverter, or grid curtailment. Nor does it show the day each loss started. To find out, an engineer exports the SCADA data and spends an afternoon analysing it. An engineer rarely has that afternoon free until the shortfall has lasted for weeks.
Meanwhile, cleaning follows a fixed calendar whether or not the blocks are dirty. The team repairs inverter breakdowns in the order the alarm log records them, not by the energy each one is costing.
The loss analysis agent does that export and analysis every night, for every block, and delivers the report before the shift starts. Here is one run, stage by stage.
Stage one: the agent gathers yesterday's data
SanchAI collects the plant's data from SCADA every 5 minutes through the day. The run starts a few minutes after midnight with yesterday's data, 00:00 to 24:00. At 5-minute resolution that is 288 samples of each signal:
- Plane-of-array irradiance and module temperature from the weather stations
- String currents from every string-combiner box
- DC and AC power, voltage, and status from every inverter
- Inverter cabinet temperature, the input for derating
- Tracker angles against their target angles
- Grid curtailment instructions and the alarm and breakdown log
- Meter readings at the export point
The report lists every missing reading with its sensor and time window, and marks each loss figure that rests on an estimate. The output of this stage is one dataset for the day, with every signal on the same 5-minute grid for every block.
Stage one: the agent gathers yesterday's data
Stage two: the agent splits the shortfall into losses
With the data in, the agent works out what the plant should have produced. The plant's model turns yesterday's irradiance and module temperature into an expected output for every inverter at every 5-minute step. The meter gives the actual output. The difference is the day's shortfall.
The agent then checks each mechanism in a fixed order and assigns it the part of the shortfall that its own evidence explains.
- Curtailment comes from the grid instruction log.
- Breakdown losses come from inverter status and the alarm log. An inverter that was off between 13:10 and 15:40 lost what its peers produced in that window.
- Derating shows up as an inverter whose output falls while its cabinet temperature is above the OEM threshold.
- Clipping shows up as an inverter that sits flat at its AC limit through midday.
- Tracker misalignment shows up as trackers that lose energy in the morning or the afternoon but not both.
- Shading shows up as strings that lose energy at the same hour every day.
- Soiling shows up as a block's output that drifts down over weeks against its cleaner neighbours and recovers on the day the crew cleans the block.
Whatever one mechanism cannot explain passes to the next. The agent reports what is left at the end as unexplained and does not force it into another loss. On a normal day the unexplained share is under 1%. A growing unexplained share is itself a finding.
Stage two: the agent splits the shortfall into losses
Stage three: the agent ranks the losses
With every loss sized, the agent builds the day's energy loss waterfall. It starts at what the plane-of-array irradiance could have produced and steps down through every loss to the net export at the meter. The losses fall into three kinds.
- Physics and weather. Module temperature and DC to AC conversion loss come from the weather and the physics of the modules and inverters. No work order changes them.
- Grid and design. Curtailment, inverter clipping, transmission loss to the export point, and auxiliary consumption are worth tracking. A clipping or transmission trend can justify a design review, but none of these losses calls for a work order this morning.
- Actionable today. Soiling, tracker misalignment, shading, breakdown losses, and inverter derating are losses the site team can recover. The report ranks these losses first.
The agent prices every loss in kWh and revenue, and flags any loss that has lasted more than seven days as chronic.
Stage three: the agent ranks the losses
Of the 18.0% lost, 7.5% is recoverable by the site team: cleaning, one breakdown repair, four tracker re-indexes, a shading fix, and cooling on two inverters. Weather, design, or grid instruction sets the rest.
Stage four: the site-in-charge gets three actions
At 06:30, ahead of the morning shift, the report reaches the site-in-charge's phone. It holds the waterfall, the top three actionable losses, and one recommended action for each. Yesterday's three actions were:
- Move the cleaning crew to blocks 6 and 9 first. Their soiling loss is the highest in the plant, and the scheduled round would not reach them until next week.
- Raise a work order for inverter 12, which tripped at 13:10 and stayed off until 15:40. It was the inverter's third trip in ten days.
- Re-index the four trackers in block 3 that the agent flagged for morning loss.
Each action has a person attached. The site-in-charge reviews the three actions by 07:00 and approves or rejects each one. By 10:00 the inverter technician is repairing inverter 12 and the cleaning crew has started on block 6. The four trackers in block 3 are already re-indexed. The next night's run compares each block and inverter with its peers. It reports the energy recovered, or reports that the recovery has not happened.
Stage four: the site-in-charge gets three actions
What the team gains
Productivity
Engineers stop doing the export. The agent writes the report before they arrive, so root cause analysis takes minutes to read instead of an afternoon to build. Across a portfolio, the shorter analysis frees 20 to 40% of engineer time. The team also orders maintenance by the energy each job recovers per hour of work, not by the order the faults were logged. Ordering work this way saves 15 to 30% of maintenance labour.
Generation and revenue
The agent catches losses the day after they start, at block and inverter level, instead of weeks later at plant level. Catching losses this early recovers 3 to 5 percentage points of annual PR. Cleaning the dirtiest blocks first, based on measured soiling loss rather than a fixed round, accounts for 1 to 2 points of that gain.
The report prices every loss in kWh and revenue, so the site-in-charge sees what each action is worth before approving it. The asset manager sees the same figures across the portfolio. The next night's run shows whether the value came back.
Impact on the team
Frequently asked questions
Does the agent change anything on the plant?
No. It reads from SCADA and the plant's alarm and breakdown log and writes nothing back. Its output is a report with recommended actions. The site team approves and carries out the cleaning, tracker work, and repairs.
What happens when yesterday's data has gaps?
The agent reports the missing data instead of filling it in silently. It names the sensor, the time window, and the estimate it used in place of the missing readings. It also marks every loss figure that depends on that estimate.
Can you run similar agents for wind or BESS?
Yes. The four stages are the same. For wind, the expected output comes from the power curve and the measured wind, and the losses are yaw, pitch, curtailment, breakdowns, and wake. For batteries, the agent compares dispatch against schedule and round-trip efficiency against cycle count. The post How AI Agents Optimize the Energy Output of a Wind Farm covers the wind agents. A walkthrough for batteries is coming soon.
See the loss waterfall on your plant's data
SanchAI runs agents like this every morning across a 2 GW portfolio of wind, solar, and BESS plants.
Start a Pilot