Skip to content

Experiment 40: how far can the capacity fitted to embedded solar be trusted?

We asked how far the solar capacity fitted to the demand at a Primary substation (a substation that steps power down to the local distribution network) can be trusted. We built a test that compares the capacity found by six fits of the same series. The six fits differ in how much cloud-driven demand each allows. We checked the test on solar-farm output added to demand and on extra demand shaped like a response to cloud. The test raised a false alarm in 5.5% of the simulated trials in which the added load was pure solar-farm output. It detected four of five cloud-shaped loads at 25% of the true capacity. It detected a day-long cloud-shaped load in only 35% of simulated trials, so it failed our rule that the test must detect such loads in at least 80% of trials.

Verdict underpowered: the misfit test is calibrated and detects four of five cloud-driven loads at 25% of the true capacity, but it detects a day-long cloud load in only 0.35 of simulated trials, so the pre-registered rule that the test must detect such loads in at least 80% of trials fails. The test compares the capacity that six least-squares fits assign to the same series. Pure injected solar-farm output gives a median capacity over truth of 0.992 (95% interval 0.951 to 1.032) with a false-positive rate of 0.055. Kirton is the one directional Primary substation flagged in 2025/26, and the other seven are unflagged. The capacity at those seven carries a bound B of 0.18 to 0.71, and the test has almost no power at Wrangle T1, so the bound is wider than the 0.10 predicted. The aim is explanation and capacity estimation, not forecast skill. CAMS irradiance is the only weather input at the lag times and it arrives too late to drive a live forecast, so the fits describe past data. CAMS is the Copernicus Atmosphere Monitoring Service's satellite estimate of sunlight.

Figure 1: capacity per Primary in 2025/26 with its interval and bound

Results against the plan

Quantity Prediction Result
Median capacity over truth on pure injected PV (V1) 1.00 (0.97 to 1.03) 0.992 (0.951 to 1.032)
False-positive rate 0.05 to 0.10 0.055 (0.024 to 0.108)
Power at amplitude 0.25, lowsun at least 0.8 at 7 of 8 Primaries 1.00 (median), at 7 of 8
Power at amplitude 0.25, evening same 1.00, at 7 of 8
Power at amplitude 0.25, mixture same 1.00, at 7 of 8
Power at amplitude 0.25, threshold same 1.00, at 6 of 8
Power at amplitude 0.25, dayL same 0.35, at 0 of 8
Kirton flagged 2022/23 to 2025/26 2019/20 and 2021/22 to 2025/26
Other seven unflagged in 2025/26 at most 3 flagged Primary-years elsewhere 0 flagged Primary-years elsewhere
Bound B at an unflagged Primary at most 0.10 0.18 to 0.23 at five, 0.47 at Trusthorpe, 0.71 at Wrangle T1

The test is calibrated. The false-positive interval (0.024 to 0.108) comes from resampling Primaries and farms independently, and the 218 units are the (Primary, farm, season-year) triples of experiment 39. The ratios of one solar farm do not transfer to the others, which is a finding about the ratio vector and not about the test. Solar farm E's ratios leave the capacity at 0.825 of truth and its false-positive rate at 0.230, and the other five farms give a median between 0.955 and 1.046 with a false-positive rate of at most 0.087.

Figure 8: capacity over truth by solar farm, leave-one-farm-out

The test finds a load with a within-day shape and misses a load that is the same all day. Four shapes are flagged at 25% of capacity in at least 0.997 of draws at the median Primary: low sun, evening, a cloud threshold, and a half-and-half mixture. The shape dayL, the day's mean cloud on every daylight half-hour, reaches median power 0.904 only at amplitude 0.5. The post hoc detection limit, the smallest grid amplitude with median power at least 0.8, is 0.1 for low sun and evening, 0.25 for the threshold and the mixture, and 0.5 for dayL.

Figure 9: power against confound amplitude, one line per shape

Figure 10: power at amplitude 0.25 per Primary

A load that rises with sunshine escapes the test by construction. Its shape is the solar shape, so every fit assigns it the same negative capacity. Its median power over units is 0.055 at amplitude 0.1, 0.175 at 0.25, and 0.74 at 0.5, and the capacity it leaves undetected is 14%, 33%, and 64% too low.

Figure 15: detection power and bias for a load that rises with sunshine

The real series

Kirton is flagged in 6 of 7 season-years, and no other Primary is flagged in any. Kirton's misfit is 0.075 and 0.098 in the two early flagged years and 0.20 to 0.31 from 2022/23, against thresholds of 0.07 to 0.12. The capacity of 2025/26 ranges from 1.2 to 4.4 MW across the library of confound shapes. The test cannot flag Wrangle T1, whose threshold is 1.23 against a misfit of 0.25, so "unflagged" at Wrangle T1 means that the test has no power, and not that no load is present.

Figure 11: misfit against threshold per Primary-year

Primary, 2025/26 Capacity (MW) 95% interval Bound B Status
Kirton 3.35 3.02 to 4.01 0.41 flagged, library range 1.2 to 4.4 MW
Trusthorpe 2.48 2.23 to 2.88 0.47 unflagged
Spilsby 2.57 2.16 to 3.01 0.21 unflagged
Horncastle 3.43 3.04 to 3.98 0.21 unflagged
Mount Bridge Boston 3.86 3.37 to 4.55 0.19 unflagged
Wrangle T1 1.41 0.62 to 2.07 0.71 unflagged, no power
Donington 3.69 3.20 to 4.22 0.18 unflagged
Wrangle T2 2.29 2.10 to 2.61 0.23 unflagged

The capacity is the daily fit divided by its recovery ratio. The bound is the median error of the no-confound capacity at the largest grid amplitude whose power is under 0.8, taken as the largest over the five shapes no fit contains. At every Primary the day-long load sets the bound. At Wrangle T1 the other four shapes are also undetected at amplitude 0.25. The bound moves in steps of the amplitude grid and is an approximation of the error, not an interval.

Figure 12: capacity per Primary and season-year

Figure 13: the six fits at each Primary in 2025/26 against solar output alone

On the continuity checks of experiment 39 the count does not move. With the checks defined as in experiment 39, K1 to K4 pass at 7, 7, 6, and 7 of 8 Primaries in 2025/26 and all four pass at 6. With K1's second clause replaced by a capacity over standard error above 4, K1 passes at 8 of 8 and all four checks still pass at 6.

Raw data and the method

The raw data show a cloud response that solar generation cannot explain. Overcast days raise Kirton's power more than Donington's in every half-hour, in winter too (figure 2). Kirton's midday power falls with irradiance in winter as well as summer (figure 4). Evening demand, after dark, rises with the day's cloud at some Primaries (figure 3).

Figure 2: overcast minus clear-sky power by half-hour, Kirton against Donington

Figure 3: evening power against the day's cloud

Figure 4: Kirton midday power against irradiance, 2019/20 and 2025/26

The six fits differ in how much cloud-driven demand each allows, so a cloud load leaks into them unequally. The arms are M1 (calendar cells and temperature), M1L (plus a flat cloud term), M2 (cloud term by season half), M2h (cloud term by season half and three local-hour bands), and M1 and M2h on April to September rows only. Every arm is linear, so the capacity fitted to a series plus a load is the sum of the two fitted alone. A unit's injected solar output and each of eight loads are therefore fitted once and added as vectors. The heat map shows each load's leakage per MW into each fit. The daily fit cannot carry a cloud term, because after the cell means are removed the daily sums of the solar shape and of the cloud response correlate at -0.986 to -0.977.

Figure 5: the eight loads and the solar shape through two days

Figure 6: leakage of each load into each fit

Figure 7: daily solar shape against daily cloud response

The detector is a misfit of the six capacities to a multiple of the recovery ratios. For a unit of injected solar output of true capacity 1 MW, fit a returns R_a, the median over the Primary's units of the other farms (leave-one-farm-out). For an arm vector c, the capacity under no confound is C = (R . c) / (R . R) and the misfit is T = sqrt(mean((c - R * C)^2)) / C. The noise is 200 resamples of whole 7-day blocks of each real Primary-year, minus their mean. The threshold of a Primary-year is the 95th percentile of T over the units of the other farms scaled to the real capacity, each with its own farm also left out of R. The real Primary-years use the ratios of all six farms. The injected loads are flat, lowsun, winter, dayL, evening, threshold, mixture, and sunload. The first and third are contained in some fits and are reported, not scored. The self-tests of linearity, exact recovery, a contained shape, the sign of sunload, and the false-positive rate of the threshold all passed, and the farm-point timestamp scan of experiment 39 peaks at a shift of zero.

The orientation menu is not identified. The east, south, and west capacities swap from one season-year to the next at the same Primary (figure 14), so the menu decides nothing.

Figure 14: east, south, and west capacities per Primary-year

Caveats

  • The real Primary-years use the ratios of all six farms. Every injected unit leaves its own farm out of the ratios, the threshold, and the real capacity it is scaled to.
  • Solar farms are not rooftop fleets. The ratio vector comes from six metered farms with one orientation each, and a fleet of mixed orientations may have a different ratio vector. Only the comparison with an external capacity register can test that.
  • The write-up quotes a bound with a step of the grid. The grid is 0.1, 0.25, 0.5, 1.0.
  • The unflagged Primary-years include Wrangle T1. The clean count of 7 includes a Primary where the power is under 0.3 for every shape.

What the next experiment should answer

The next experiment should ask whether the evening cloud response measures the daylight load that the six fits cannot detect. The two loads that set the bound, a day-long cloud load and a load that rises with sunshine, are the loads the misfit test cannot see. Evening demand after dark responds to cloud at some Primaries (figure 3), and solar generation cannot cause that response. An experiment could inject a known day-long load into the real series, estimate its amplitude from the evening rows alone, and test whether that amplitude predicts the bias of the capacity. The test is whether such a covariate narrows the bound at Spilsby, Horncastle, Mount Bridge Boston, Donington, and Wrangle T2 below 0.1. The fitting code lives in this experiment's folder and a later experiment, or the deliverable, could move it to packages/studies, which needs the maintainer's review.