State capacity D3
Can the grid and the freight system carry an investment boom? Direction matters more than level.
Can the grid carry an investment boom? D3a
Your words: “electricity availability — public and private”. One chart cannot hold both. Eskom’s EAF is a percentage of Eskom’s own fleet, defined to exclude everyone else’s plant; ownership is only ever published as megawatts generated. So availability sits above the ownership split on a shared axis, each with its own unit, and reading downward is reading the question as you asked it.
The lower panel starts almost empty, and will fill. Eskom’s hourly build-up holds a rolling seven days, of which the newest four were published blank on 1 September — so this series accrues a few days at a time as we capture it, with no backfill anywhere, exactly as the EAF above does. “Private” here means contracted: every IPP and renewable column in that file has a contract with Eskom. Behind-the-meter rooftop solar has none, is invisible to the system operator, and is counted separately below — by mid-2025 it was the larger of the two. Two small overstatements are left uncorrected because they are not separable from the source: Eskom’s own Sere wind farm (~100MW) falls in the private column, and hydro is all counted as Eskom’s. Imports, pumping load and load-shedding are in neither leg. And the EAF above remains Eskom’s plant only, by Eskom’s definition — which is why the composite below cannot yet be normalised against five years.
Table view — Eskom fleet availability (EAF)
| Date | EAF |
|---|---|
| 26 Oct 2026 | 70.19% |
| 19 Oct 2026 | 65.43% |
| 12 Oct 2026 | 68.91% |
| 5 Oct 2026 | 69.53% |
| 28 Sept 2026 | 70.78% |
| 21 Sept 2026 | 68.92% |
| 14 Sept 2026 | 71.47% |
| 7 Sept 2026 | 69.60% |
| 31 Aug 2026 | 66.72% |
| 24 Aug 2026 | 68.73% |
| 17 Aug 2026 | 70.38% |
| 10 Aug 2026 | 72.04% |
| 3 Aug 2026 | 71.87% |
| 31 Jul 2026 | 75.50% |
| 27 Jul 2026 | 77.43% |
| 20 Jul 2026 | 79.02% |
| 13 Jul 2026 | 75.78% |
| 6 Jul 2026 | 73.85% |
| 30 Jun 2026 | 66.80% |
| 29 Jun 2026 | 70.17% |
| 22 Jun 2026 | 67.07% |
| 15 Jun 2026 | 68.61% |
| 8 Jun 2026 | 64.61% |
| 1 Jun 2026 | 65.84% |
| 31 May 2026 | 65.50% |
| 25 May 2026 | 66.69% |
| 18 May 2026 | 68.10% |
| 11 May 2026 | 66.93% |
| 4 May 2026 | 61.65% |
| 30 Apr 2026 | 59.90% |
| 27 Apr 2026 | 61.48% |
| 20 Apr 2026 | 56.49% |
| 13 Apr 2026 | 58.15% |
| 6 Apr 2026 | 62.26% |
| 31 Mar 2026 | 66.60% |
| 30 Mar 2026 | 63.61% |
| 28 Feb 2026 | 68.30% |
| 31 Jan 2026 | 71.0% |
| 31 Dec 2025 | 68.90% |
| 30 Nov 2025 | 68.20% |
| 31 Oct 2025 | 65.70% |
| 30 Sept 2025 | 70.20% |
| 31 Aug 2025 | 66.20% |
| 31 Jul 2025 | 63.80% |
| 30 Jun 2025 | 60.20% |
| 31 May 2025 | 59.0% |
| 30 Apr 2025 | 56.10% |
| 31 Mar 2025 | 56.90% |
Table view — Who is generating
| Date | Total | Eskom | Private (contracted) |
|---|---|---|---|
| 27 Oct 2026 | 21,872.1 | 19,653.6 | 2,218.5 |
| 26 Oct 2026 | 21,734.2 | 18,952.4 | 2,781.8 |
| 25 Oct 2026 | 20,343.4 | 18,092.3 | 2,251.1 |
| 24 Oct 2026 | 20,647.3 | 18,845.3 | 1,802 |
| 23 Oct 2026 | 21,939.4 | 19,654.9 | 2,284.5 |
| 22 Oct 2026 | 21,686.6 | 19,010.9 | 2,675.7 |
| 21 Oct 2026 | 21,201.5 | 18,310.2 | 2,891.3 |
| 20 Oct 2026 | 22,159 | 19,485.9 | 2,673.1 |
| 19 Oct 2026 | 21,856.7 | 19,118.1 | 2,738.6 |
| 18 Oct 2026 | 20,352.6 | 18,129.5 | 2,223.1 |
| 17 Oct 2026 | 20,803.5 | 17,961 | 2,842.5 |
| 16 Oct 2026 | 21,613.3 | 18,847.9 | 2,765.4 |
| 15 Oct 2026 | 21,867.3 | 19,715.8 | 2,151.5 |
| 14 Oct 2026 | 21,520.8 | 19,446.9 | 2,073.9 |
| 13 Oct 2026 | 21,732.9 | 20,027.3 | 1,705.6 |
| 12 Oct 2026 | 21,104.2 | 18,376.3 | 2,727.9 |
| 11 Oct 2026 | 19,818.7 | 17,877.5 | 1,941.2 |
| 10 Oct 2026 | 20,839.6 | 18,950 | 1,889.6 |
| 9 Oct 2026 | 21,560.2 | 19,616 | 1,944.2 |
| 8 Oct 2026 | 21,851.8 | 20,007 | 1,844.8 |
| 7 Oct 2026 | 21,555.6 | 20,353.7 | 1,201.9 |
| 6 Oct 2026 | 21,748 | 19,821.5 | 1,926.5 |
| 5 Oct 2026 | 21,498.1 | 19,845.6 | 1,652.5 |
| 4 Oct 2026 | 20,347.3 | 18,972.5 | 1,374.8 |
| 3 Oct 2026 | 20,304.3 | 18,906.5 | 1,397.8 |
| 2 Oct 2026 | 21,379.6 | 19,809.6 | 1,570 |
| 1 Oct 2026 | 21,827.7 | 19,606.1 | 2,221.6 |
| 30 Sept 2026 | 23,231.8 | 20,458.1 | 2,773.7 |
| 29 Sept 2026 | 22,833.3 | 20,204 | 2,629.3 |
| 28 Sept 2026 | 21,402.4 | 19,404 | 1,998.4 |
| 27 Sept 2026 | 19,939.1 | 17,539.1 | 2,400 |
| 26 Sept 2026 | 20,490.5 | 18,829.9 | 1,660.6 |
| 25 Sept 2026 | 20,876.5 | 18,969 | 1,907.5 |
| 24 Sept 2026 | 20,778.8 | 19,121.6 | 1,657.2 |
| 23 Sept 2026 | 21,667.4 | 19,826.9 | 1,840.5 |
| 22 Sept 2026 | 21,771.7 | 19,974.2 | 1,797.5 |
| 21 Sept 2026 | 21,918.3 | 20,294.3 | 1,624 |
| 20 Sept 2026 | 21,592.4 | 20,418.9 | 1,173.5 |
| 19 Sept 2026 | 21,406.9 | 19,472.6 | 1,934.3 |
| 18 Sept 2026 | 22,926.2 | 19,287.7 | 3,638.5 |
| 17 Sept 2026 | 22,383.6 | 18,396.2 | 3,987.4 |
| 16 Sept 2026 | 21,573.4 | 19,148.1 | 2,425.3 |
| 15 Sept 2026 | 21,738.6 | 19,713.2 | 2,025.4 |
| 14 Sept 2026 | 21,712.8 | 19,433.4 | 2,279.4 |
| 13 Sept 2026 | 19,937.6 | 17,863.2 | 2,074.4 |
| 12 Sept 2026 | 20,667.2 | 18,350.5 | 2,316.7 |
| 11 Sept 2026 | 21,551.1 | 19,777.1 | 1,774 |
| 10 Sept 2026 | 22,101.4 | 20,317.9 | 1,783.5 |
| 9 Sept 2026 | 22,623.2 | 20,760.5 | 1,862.7 |
| 8 Sept 2026 | 23,113.7 | 21,329.7 | 1,784 |
| 7 Sept 2026 | 23,486.2 | 21,300.3 | 2,185.9 |
| 6 Sept 2026 | 22,459.8 | 19,107.3 | 3,352.5 |
| 5 Sept 2026 | 21,963.4 | 19,139.5 | 2,823.9 |
| 4 Sept 2026 | 22,576.7 | 18,991.6 | 3,585.1 |
| 3 Sept 2026 | 21,800.2 | 19,134.6 | 2,665.6 |
| 2 Sept 2026 | 21,570.6 | 20,133.7 | 1,436.9 |
| 1 Sept 2026 | 22,025 | 20,232.2 | 1,792.8 |
| 31 Aug 2026 | 21,828.5 | 20,543.7 | 1,284.8 |
| 30 Aug 2026 | 20,398.6 | 18,589.1 | 1,809.5 |
| 29 Aug 2026 | 20,196.6 | 17,950 | 2,246.6 |
Showing the most recent 60 of 65 observations in this window.
▼Bearish 70.19% is Eskom's first figure for the week beginning 26 October, which runs to Sunday 1 November and is not complete. The same file restated the three October weeks before it by a few hundredths: 5 October 69.45 → 69.53%, 12 October 68.83 → 68.91%, and 19 October 65.45 → 65.43%, so the completed sequence now runs 69.60 → 71.47 → 68.92 → 70.78 → 69.53 → 68.91 → 65.43. The 19 October week is 17.20% below the 20 July record of 79.02% and the weakest completed week since the one beginning 8 June, at 64.61%. Bearish holds. The 69% line we set you applies to a completed week, and the two most recent completed weeks are both under it: the 12 October week by nine hundredths of a point after its restatement, and the 19 October week by more than three and a half points. The new week has started above the line, and that is worth watching: the 19 October week's first figure was 60.91% and rose as the week filled in, so first figures have tended to be low, not high. If the 26 October week completes above 69% it will be the first to do so since the week beginning 28 September, and we will re-judge the call then, not before.
The private capacity nobody meters D3a
This is the largest private generator in South Africa and no feed carries it. Behind-the-meter solar has no contract with Eskom, never reaches the system operator, and registers only as demand that stops arriving — so it is absent from every column of the panel above. It is also a different quantity: installed capacity, estimated, not megawatts metered as they were sent out, which is why it cannot share that axis. CSIR reckon the two are related by roughly an 18–19% capacity factor, so the ~6 800MW standing here generated about 5.3TWh across the first half of 2025 — more than the whole REIPPPP fleet, which was 6 594MW at the same date. The figures are Eskom system-operator estimates read out of CSIR’s semi-annual PDF, they arrive about a year late, and successive vintages restate them. Press reporting of the operator’s week-29 2026 print puts the June 2026 figure near 9 100MW; it is not recorded here until a primary document can be read for it.
Table view — Rooftop solar, installed capacity (estimate)
| Date | Rooftop PV |
|---|---|
| 30 Jun 2025 | 6,800 |
| 30 Jun 2024 | 5,600 |
Not called in this cycle — the chart and the rail carry the numbers; only the judgment is absent.
Can the freight system carry it? D3b
Rail is a step with dots and never a smooth line: it prints twice a year, and interpolating between those prints would draw six months of data we do not have. Turnaround times: you accepted the annual figure (2026-08-30) — the Ports Regulator publishes one number a year, months late, and that is the honest best. The series is sourced and the next cycle captures the published years; until then the board lists it as awaiting capture.
Table view — Transnet rail volumes
| Date | Rail volumes |
|---|---|
| 30 Sept 2025 | 81.4mt |
| 31 Mar 2025 | 82.1mt |
| 30 Sept 2024 | 78.0mt |
| 31 Mar 2024 | 76.1mt |
| 30 Sept 2023 | 75.6mt |
Table view — Container throughput
| Date | Container throughput |
|---|---|
| 30 Sept 2026 | 460k TEU |
| 31 Aug 2026 | 383k TEU |
| 31 Jul 2026 | 411k TEU |
| 30 Jun 2026 | 454k TEU |
| 31 May 2026 | 342k TEU |
| 30 Apr 2026 | 305k TEU |
| 31 Mar 2026 | 452k TEU |
| 28 Feb 2026 | 387k TEU |
| 31 Jan 2026 | 354k TEU |
| 31 Dec 2025 | 350k TEU |
| 30 Nov 2025 | 366k TEU |
| 31 Oct 2025 | 329k TEU |
| 30 Sept 2025 | 484k TEU |
| 31 Aug 2025 | 410k TEU |
| 31 Jul 2025 | 436k TEU |
| 30 Jun 2025 | 374k TEU |
| 31 May 2025 | 346k TEU |
| 30 Apr 2025 | 291k TEU |
| 31 Mar 2025 | 397k TEU |
| 28 Feb 2025 | 357k TEU |
| 31 Jan 2025 | 333k TEU |
| 31 Dec 2024 | 321k TEU |
| 30 Nov 2024 | 348k TEU |
| 31 Oct 2024 | 310k TEU |
| 30 Sept 2024 | 439k TEU |
▲Bullish 81.4 mt in the half-year to 30 September 2025, +4.36% on the comparable half of 78.0 mt, and 394 days old. The results index was read again and holds no FY2026 results. The last half-year you hold grew, so bullish stands on the data, as a statement about a period that ended almost a year ago. On the last five years' pattern the annual results are due about now, and when they arrive the rail leg of your state-capacity composite moves for the first time since March.
The composite D3
Reads 30 Sept 2025 — the composite carries the staleness of its worst input, not its own cadence.
Each component is normalised to 0–100 against its own full available history, and that window is printed above it. The registry asks for five years; the histories are shorter than that and will be for years, so the index says provisional rather than implying a settled scale. Weights are your call, made 30 August 2026 — "electricity must dominate" — so electricity carries half the index, equal to ports and rail combined, which split the rest.
Table view — The composite
| Date | Value |
|---|---|
| 30 Sept 2026 | 64.9 |
| 31 Aug 2026 | 54.3 |
| 31 Jul 2026 | 73.7 |
| 30 Jun 2026 | 56.7 |
| 31 May 2026 | 38.7 |
| 30 Apr 2026 | 18.8 |
| 31 Mar 2026 | 51.2 |
| 28 Feb 2026 | 50.7 |
| 31 Jan 2026 | 53.1 |
| 31 Dec 2025 | 47.4 |
| 30 Nov 2025 | 47.7 |
| 31 Oct 2025 | 36.8 |
| 30 Sept 2025 | 68 |
| 31 Aug 2025 | 49 |
| 31 Jul 2025 | 46.4 |
| 30 Jun 2025 | 29.4 |
| 31 May 2025 | 22.9 |
| 30 Apr 2025 | 8.5 |
| 31 Mar 2025 | 24.2 |
–Neutral 64.9 at 2026-09-30, quoted from scripts/derived.mjs and unchanged: provisional. Legs at the weights you set of 0.50 / 0.25 / 0.25: electricity 69.7/100 (September's weekly mean 70.19% against August's 69.95%), ports 87.6/100 (460,203 TEUs in September), rail 32.4/100 (81.4 mt, unchanged since the 2025 interim results). Tonight's Eskom restatements touched only October weeks, so September's leg did not move. Neutral holds, unchanged since the 14 October move from bearish. Direction is your rule for this composite, and September is up by more than ten points on August. But nearly all of the rise comes from ports, and most of that is the September peak in container traffic; containers are still five per cent down on a year ago. Electricity, which you told us must dominate, barely moved in September. October's three completed weeks average 67.96%, more than two points below September's 70.19%; the first figure for the fourth week is 70.19%, the same number as September's mean, but that week is not complete. October's leg will not enter the composite until October's ports figure arrives, in mid-November. A seasonal rise in ports with a flat grid is not the improvement your question asks about, so we call it neutral, not bullish.
Where these numbers come from
| Series | Source | Cadence | Latest |
|---|---|---|---|
| Eskom Fleet Availability (EAF) | Eskom Data Portal — Weekly generation capacity breakdown CSV | weekly · quantitative | 2026-10-26 · current |
| Eskom Generation (sent out) | Eskom Data Portal — hourly station build-up CSV | daily · quantitative | 2026-10-27 · current |
| Private Generation (contracted, sent out) | Eskom Data Portal — hourly station build-up CSV | daily · quantitative | 2026-10-27 · current |
| Total Generation (sent out) | Computed at build time | daily · derived | 2026-10-27 · current |
| Rooftop Solar (behind the meter, installed) | CSIR utility-scale power generation statistics + NTCSA/Eskom System Operator estimates | annual · quantitative | 2025-06-30 · current |
| Transnet Rail Freight Volumes | Transnet annual & interim results PDFs — semi-annual | semiannual · quantitative | 2025-09-30 · lagging |
| Port Volumes | TNPA Port Statistics (transnet.net) | monthly · quantitative | 2026-09-30 · current |
| Port Turnaround Times | Ports Regulator of South Africa — annual Port Performance PDFs (research cycle) | annual · quantitative | awaiting first capture |
| State Capacity Index | Computed at build time (src/utils/) | monthly · derived | 2025-09-30 · lagging |
