Darus Ishak
Case study · Renewable energy

Solar
Operations

One hundred and thirty-eight commercial solar sites, each with a different inverter vendor. Every site is judged each day against modelled expected energy and an independent satellite twin, and every fault ends in a work order.

138
solar sites
38.22 MW
installed
981
days fitted, satellite twin
8
analytic views

Did each site produce what the sun delivered?

Expected energy is modelled from measured sunlight, checked per inverter, and cross-checked against an independent satellite twin.

Live output against expected

Problem
Each inverter brand has its own portal, so a dead inverter could go unnoticed for days.
What I built
Every site on one board with today's power against its expected curve, and one tile per inverter coloured by health.
Method
Live power against a modelled expected curve, inverter health bands

Performance ratio over time

Problem
A monthly PR figure hid the week a site started to slip.
What I built
Daily PR with alarms and inverter outages on the same axis, plus a plain-language readout of what the data says.
Method
Temperature-corrected PR, satellite fallback on sensor failure, glitch-day exclusion, 7-day outlook

Yield against expected

Problem
Owners only saw kWh produced. A cloudy day and a broken plant looked the same.
What I built
Each day's yield against its expected value, with the shortfall in percent on every bar.
Method
Expected energy modelled from measured irradiance and plant capacity, daily variance

Expected, per inverter

Problem
A site-level total hides one weak inverter among nine healthy ones.
What I built
Actual against expected for every inverter over today, 7 days or the month.
Method
Per-inverter model using each unit's own kWac and kWp, with clipping

Sunlight against power

Problem
Soiling, shading and inverter clipping all hide inside a daily total.
What I built
Every sample plotted as sunlight against power. A healthy plant hugs the curve; faults fall below it.
Method
Irradiance-power scatter on 15-minute samples, normalised PR

Satellite twin

Problem
If a site's own sunlight sensor is dirty or dead, its expected value is wrong as well.
What I built
A second opinion built from satellite data alone: satellite-expected against actual energy, with a flag when the gap widens.
Method
Independent model from satellite irradiance, fitted over 981 days, 7-day rolling gap

Fleet health at a glance

Problem
With 138 sites, nobody knew which ones needed attention today.
What I built
Fleet KPIs, a ranked queue of sites that need action, and one tile per site coloured by yesterday's A/E.
Method
Actual over expected (A/E) per site, ranked attention queue

Energy lost to downtime

Problem
Energy lost to outages was never measured, so it was never priced.
What I built
Every shutdown logged with its estimated kWh lost, ranked by site for the month.
Method
Lost energy estimated per event, ranked by site

Where the data comes from

The analytics work because every reading, outage and job is captured in one place.

Solar alarms Every vendor alarm in one list, one click to a work order.
Work orders Board, list and calendar views with priorities and SLA flags.