Back to blog
O&M best practice 2 March 2026 · 5 min read

Your monthly client report should not take a whole Friday

If you're losing a working day each month exporting CSVs, pasting them into a deck and reconciling numbers between three portals, the report is doing less for the client than you think.

Josh Powell
Founder, InspireGreen

The first Friday of every month was our worst day. One engineer would spend the morning exporting CSVs from three different inverter portals, the afternoon pasting figures into a templated PowerPoint, and the evening sending out PDFs that nobody read carefully enough to spot the off-by-one error in the year-to-date totals.

That was for twelve sites. Once you’re past twenty it becomes someone’s full week.

The monthly client report is a real thing, and it does real work — it’s the artefact that keeps the operator-owner relationship visible. But the way most of us are producing it bears no relationship to the value the client is getting from it. Here’s the version that has worked for us.

What the client actually wants to know

Strip everything else away and a monthly report needs to answer four questions:

  1. Is my site healthy? Generated kWh this month, versus expected. Performance ratio. Number of open faults.
  2. Is anyone looking after it? Cases opened, cases closed, time-to-resolution. Inspections done. Site visits.
  3. Am I getting what I’m paying for? SLA conformance. Uptime. Availability.
  4. What’s coming next? Planned maintenance. Known issues. Recommendations.

That’s it. Most owners don’t want a 40-page deck. They want a one-page summary they can read on the train, with a longer appendix they’ll ignore unless something goes wrong.

The temptation to add more — fleet-wide league tables, year-over-year graphs, sustainability dashboards — usually comes from the operator, not the owner. Resist it.

The seven numbers we put on every report

After a lot of iteration, we landed on seven figures that go on page one of every monthly report:

  1. Generated kWh for the month
  2. Expected kWh for the month (irradiance-normalised against the local Open-Meteo dataset)
  3. Performance ratio — generated divided by expected, as a percentage
  4. Carbon offset — kWh × the relevant DESNZ grid intensity factor for the month
  5. Revenue — if the client wants it; export rate × kWh exported, plus self-consumption × import-displaced rate
  6. Open faults — count, with severity breakdown
  7. SLA conformance — for the cases that closed this month, what percentage hit the response and resolution targets

If the report has to be one page, those are the seven. Everything else is appendix.

The expected kWh is the one most operators don’t include. It’s the difference between “the site generated 18 MWh this month” (which means nothing on its own) and “the site generated 18 MWh against an expected 17.5 MWh — slightly ahead of irradiance” (which is a meaningful statement). We use the same Open-Meteo irradiance pull we use for string-level fault detection — same data source, two different uses.

What goes in the appendix

The appendix is for the technical reader, and for the audit trail. Things that go there:

  • Generation profile by day for the month (one chart)
  • Cases opened and closed, with a one-line description each
  • Inspections completed against the schedule
  • Open recommendations from previous reports, with status
  • Year-to-date totals and a multi-year comparison if the site is more than a year old

That’s about ten pages, total. If the client cares, they read it. If they don’t, the one-pager has already told them what they need to know.

What we stopped including

Three things we used to include and stopped:

  • Per-string performance tables. A 200 kWp site has a couple of dozen strings. Listing each one’s monthly kWh tells the client nothing. If a string is misbehaving, that’s a case in the open-faults list. Either it’s notable or it isn’t.
  • Inverter event logs. The raw events from the inverter portal — “AC underfrequency at 14:32, cleared at 14:32” — are useful to a fault investigation and useless on a client report. They go in the case audit trail, not in the monthly pack.
  • Generic industry context. “UK solar generation was up 7% year-on-year” is not relevant to whether their specific roof generated what it should have. Drop it.

What we automated, what we left manual

We were tempted to automate the whole report end-to-end. We didn’t, on purpose.

Automated:

  • Pulling kWh, expected kWh, PR and cases from the platform
  • Generating the standard charts
  • Composing the one-pager template and appendix
  • Producing the PDF
  • Emailing it to the client distribution list

Still manual:

  • The two-paragraph cover note at the top. “This was a quieter month, with one optimiser replacement on the Bridgend roof and no SLA breaches. The expected dry-weather generation in February typically lifts in March; we’d expect to be back above 95% PR by month-end.”
  • The “recommendations” section. Anything that needs operator judgement: this site is approaching its insulation re-test date, that site has had three weather-related cases this winter and might warrant a structural review, the export meter on a third site has been throwing intermittent flags.

The cover note is what makes the report feel like it was written by someone, not generated by a machine. It’s also the part the client reads first. Spending five minutes per report on a thoughtful cover note does more for the relationship than spending five hours on a perfect template.

The time it should take

For a fleet of about twenty sites — which is where most operators we talk to are at — a monthly reporting day should look like this:

  • First half-hour: review the auto-generated drafts, scanning for any sites where the PR has dropped sharply or where a case is overdue
  • Next two hours: write cover notes for each site, customising the recommendations section
  • Final half-hour: queue the PDFs for client distribution; field any quick questions that come back

Three hours, not a day. The Friday tax goes away.

The real win isn’t the time saved. It’s that the report becomes a thing you actually want to send rather than something you batch through on autopilot. A report you wrote thoughtfully is a report the client reads. A report you generated under pressure is a report they archive unopened.

A small note on tone

One operator we know writes cover notes that read like a friendly letter. Another writes them like a maintenance log. Both work. What doesn’t work is the corporate template tone — “We are pleased to provide your monthly performance summary” — that nobody talks like in real life.

Write the way you’d speak if you ran into the owner at a site visit. They’re paying you to look after their roof. They’d rather read a sentence that sounds like you than a paragraph that sounds like a brochure.


SolarFleet generates branded monthly reports for every site, with the seven numbers above on page one and an editable cover-note field that gets baked into the PDF. Start free with 2 sites or see how the platform handles reporting.

#reporting #client-management #workflow #automation
Josh Powell
Founder, InspireGreen

Josh runs InspireGreen, a solar installer based in Cardiff, and builds SolarFleet — the O&M platform we use to monitor our own sites. Most posts here come straight out of the work: a case we dealt with, a feature we shipped, or a thing we wish we'd known earlier.