3,024,807
Total rows
~92%
Fleet availability
R139M
Annual revenue
9
ML models
581
Forced outages (5yr)
Operational analytics

Forced outage seasonality — by month (5-year count)

December peaks at 63 events vs February's low of 38 — a 1.7× ratio driven by summer heat stress and year-end maintenance deferral.

Key finding: December + October account for 21% of all forced outages. A pre-December inspection programme targeting gas turbine hot sections could recover ~R580K in annual foregone generation.

Availability by technology — operating fleet only (%)

All operating technologies converge at ~92–93% availability. Gas plants (excl. CTT under construction) match solar and wind.

Capacity factor by plant (%)

Gas plants (Azito 76%, Kribi 74%, Songas 72%) dominate on CF. Solar plants cluster at 21–24%, wind at 36–37%.

Energy lost to forced outages — by year (MWh)

2020 spike (160,543 MWh) reflects new synthetic dataset baseline noise. 2021–2024 stabilise at 57–67 GWh lost annually.

Revenue & generation

Annual portfolio revenue — 2020–2024 (R million)

Revenue is highly stable, ranging R137–142M, reflecting long-term contracted PPAs. No meaningful demand-side variance.

Concentration risk: Azito (Côte d'Ivoire, 713 MW) generates ~41% of revenue. A single-plant or single-country shock could remove $22M+ USD from annual cashflow.

Net generation by technology — 2020–2024 (GWh)

Natural gas (Azito + Kribi + Songas) accounts for ~76% of total generation. Solar and wind contribute ~14%.

Availability heatmap — plant × month (5-year average %)

All operating plants · Hover cell for exact value

Low availability months appear in amber/red. Each cell = average availability % for that plant-month pair over 2020–2024.

Pattern: Low-availability cells are distributed across all plants without a dominant month, confirming the forced outage driver is idiosyncratic (equipment failure) rather than systemic. The December cluster is visible but moderate — validating the seasonality finding above without overwhelming the heatmap.
Correlation & cost

Pearson correlation matrix — operational KPIs

Strong inverse: AvailabilityPct ↔ PlannedDowntimeHours (r = −0.94). CapacityFactor ↔ NetGeneration (r = +0.70) confirms output is capacity-bound.

Annual maintenance cost by plant — avg R'000/year

Azito's maintenance spend (R5.4M/yr) is 3.3× the next-highest plant, reflecting its 713 MW combined-cycle complexity.

Model 9 — Solar Irradiance Yield Forecaster
LightGBM regressor predicting next-day solar generation (MWh) across 11 solar PV plants (Egypt, South Africa, Kenya, Mozambique). Trained on 16,016 plant-day observations with a temporal 80/20 split. Features: cyclical day-of-year encoding, 4 lag windows, 7-day + 30-day rolling averages, plant capacity, and availability.  · R²=0.988  · MAE=8.5 MWh  · MAPE=4.2%

Feature importance — top 10 drivers

Cyclical day-of-year encoding (cos_doy) is the dominant predictor — confirming seasonality drives African solar yield more than any single lag or rolling window.

Per-plant MAPE — out-of-sample test set

All 11 solar plants sit within a 3.9–4.6% error band, confirming the model generalises consistently across geography and capacity scale.

Actual vs Predicted — De Aar Solar Power (50 MWp) · Monthly average MWh/day · 2024

Southern hemisphere seasonality is clearly captured: summer peaks (Jan–Mar, Oct–Dec) at ~250 MWh/day, winter trough (Jun–Jul) at ~150 MWh/day. Predicted tracks actual within the 8.5 MWh MAE envelope throughout the year.