What Does an AI Agent Actually Do Overnight at a Solar Plant?

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

Solar plant Strings and SCBs string currents Weather station POA, module temp Inverters power, cabinet temp Trackers angles Grid meter export, curtailment Alarm log alarms, breakdowns SCADA OPC UA Modbus every 5 min SanchAI Agentic AI database cloud, on-premise or hybrid
Strings, the weather stations, inverters, trackers, the grid meter, and the alarm log report into the plant SCADA over OPC UA and Modbus. SanchAI reads from SCADA every 5 minutes and stores the day for all inverters and string-combiner boxes.

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

06:00 18:00 Expected Metered THE SHORTFALL, SPLIT Curtailment 1.5% Clipping 2.0% Breakdown 1.5% Tracker 1.5% Soiling 2.5% Unexplained 0.5%
Expected output from irradiance and temperature, metered output below it, and the shortfall between them, split by the hours each mechanism acts in. Curtailment and clipping cut midday output, a breakdown cuts the afternoon, a tracker fault cuts the morning, and soiling cuts output all day. Illustrative values.

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

Plane-of-array potential 100%
Module temperature −3.5%
Soiling −2.5%
Inverter clipping −2.0%
Breakdown losses −1.5%
Grid curtailment −1.5%
DC to AC conversion loss −1.5%
Tracker misalignment −1.5%
Shading −1.0%
Inverter derating −1.0%
Transmission loss −1.0%
Auxiliary consumption −0.5%
Unexplained −0.5%
Net export 82.0%
75% 80% 85% 90% 95% 100%

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.

Yesterday's waterfall from plane-of-array potential to net export. Amber rows are the losses the site team can act on this morning. Illustrative values.

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

06:30 Report on the site-in-charge's phone 07:00 Three actions reviewed ✓ Reviewed and approved 10:00 Repairs and cleaning under way Next run Recovery checked against neighbours kWh ↑
The report at 06:30, the site-in-charge's decision at 07:00, the work by 10:00, and the agent's check in the next night's run.

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

BEFORE WITH THE AGENT Time to root cause Hours per issue Minutes 20 to 40% time Cleaning order Fixed calendar Dirtiest block first 1 to 2 pp PR Work queue First in, first out Biggest loss first 15 to 30% labour
Three habits the agent replaces, and the gain from each. Results vary by plant and baseline.

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