
QuantRisk Publication Series
Technical R&D Paper
Behind-The-Meter Photovoltaic Estimation
Solar-Resource Physics, Classical & Machine-Learning Estimation and Sensitivity
CFI, ML Installed Capacity, PV Scenario, CAISO Example
- Dr. Al Lari Lavassani, PhD in Mathematics
- Founder and CEO, QuantRisk Corp.
- Former Applied Mathematics Professor
Publication and Proprietary-Methodology Notice
This paper describes the analytical principles, mathematical relationships, and operational purpose of the QuantRisk QR ALPS (AI Load Prediction System) behind-the-meter (BTM) PV methodology while withholding implementation details that constitute proprietary know-how.
The goal is to explain the concept and method sufficiently for a technically informed reader to understand its purpose and analytical structure without providing a reproducible implementation blueprint. The paper does not discuss proprietary software production details such as the calibration algorithms, observation-selection and filtering logic, proprietary historical profile construction, or complete forward-calculation procedure.
Executive Summary
Behind-the-meter (BTM) photovoltaic generation is a material component of electricity net load. Because BTM generation occurs behind the utility meter, conventional utility and SCADA measurements capture its effect indirectly: greater PV production reduces measured net load, while lower PV production increases it.
QR ALPS estimates the PV component embedded in observed net load by combining historical load, solar-resource information, weather-sensitive demand modeling, and data-driven profiles. Its objective is to distinguish the scale of the PV fleet from its time-varying production profile.
This is an inverse problem because gross demand and PV generation are not observed independently. Physical relationships and classical least squares provide a starting point, but the estimate depends on assumptions about unobserved non-PV demand. We discuss the textbook least square parametric model and why it fails in practical applications. We then discuss in detail a machine-learning method examines how predicted net load responds to controlled changes in a normalized solar input and interprets that response through the physical PV-generation relationship.
Notation and Units
The table summarizes the principal physical-model and least-squares notation. Additional symbols used in Section 6 are defined where they first appear.
| Symbol | Definition | Unit / note |
|---|---|---|
| LNet (t) | Observed utility or SCADA net load at time t | MW |
| B(t) | Non-PV demand that would occur without BTM PV; not directly observed | MW |
| PV(t) | Estimated BTM PV power contribution | MW |
| Cinstalled | Estimated capacity-equivalent scale of the BTM PV fleet; not necessarily verified nameplate capacity | MW |
| Ceff (t) | Temperature-adjusted effective capacity in the simplified physical model | MW |
| S(t) | Selected solar-resource input: GHI or POA; use consistently within a model run | W/m² |
| SREF | Fixed reference irradiance used in the CFI and PV equations; 1,000 W/m² | W/m² |
| ηtemp (t) | Temperature adjustment factor | Dimensionless |
| CFI(t) | Temperature-adjusted Capacity Factor Index; not a period-based capacity factor | Dimensionless |
| Tcell (t) | PV cell or module temperature | °C |
| Tref | Reference temperature for the power-temperature coefficient; commonly 25 °C | °C |
| γ | Relative maximum-power temperature coefficient | 1/°C |
| α | Effective south-facing share in the illustrative south/west mixture | Dimensionless |
| wj | Baseline load-share weight for spatial node j; weights sum to 1 | Dimensionless |
| Zk (t) | Coefficient associated with predictor Zk (t) in the baseline regression | Varies |
| βk | Coefficient associated with predictor Zk (t) in the baseline regression | Depends on Zk |
| ε(t) | Residual error in the net-load model | MW |
| M(r-h) | Illustrative fallback multiplier for region r and local-hour window h | Dimensionless |
1. BTM PV as a Net-Load Component
For a load-serving footprint with material behind-the-meter solar, observed net load can be represented as non-PV demand minus PV generation, plus an error term:
LNet(t) = B(t) − PV(t) + ε(t)(1.1)
Here
B(t) represents the demand that would have occurred without BTM PV. It includes ordinary demand drivers such as time of day, weekday, season, baseload, temperature-sensitive heating and cooling, industrial activity, and demand response.
The residual ε(t) captures model error and unrepresented effects.
LNet (t), B(t), and PV(t) are power quantities in MW. Energy over an interval is obtained by integrating power over time or, for hourly data, summing the hourly power values multiplied by one hour to obtain MWh.
The identity is simple, but estimating PV(t) from aggregate load data is not. Gross demand, temperature, calendar effects, industrial activity, demand response, and solar irradiance can change simultaneously. The task is therefore an inverse problem: infer an unmetered generation component from its effect on an observed aggregate net load signal.
A useful BTM PV methodology must separate the solar-driven component from competing load variation, estimate the scale and production profile of the distributed fleet, and translate the estimate into forward load and weather scenarios.
2. Solar Resource and Rooftop PV Geometry
2.1 GHI, DHI, DNI, and POA
Solar-resource datasets describe irradiance on different reference surfaces. These definitions matter because irradiance on a horizontal surface is not the same as irradiance incident on a tilted PV array.
GHI (Global Horizontal Irradiance) is the total shortwave solar irradiance received by a horizontal surface. It includes direct and diffuse components.
DHI (Diffuse Horizontal Irradiance) is the diffuse component received by a horizontal surface after scattering in the atmosphere.
DNI (Direct Normal Irradiance) is direct-beam irradiance measured on a surface perpendicular to the sun’s rays. It should not be used by itself as a direct proxy for generation from fixed rooftop panels.
POA (Plane-of-Array Irradiance) is irradiance incident on the tilted surface of a PV array. It reflects the array’s tilt and azimuth and is the more direct physical input when a suitable POA series is available.
The horizontal irradiance components are related by the solar zenith angle:
GHI(t) = DNI(t) × cos[θz (t)] + DHI(t)(2.1)
GHI and POA are not interchangeable. Panel tilt, azimuth, solar elevation, direct and diffuse irradiance, and ground-reflected irradiance affect the resource received by the panels. Where POA is unavailable at the required spatial and temporal resolution, GHI can serve as a practical proxy, but the approximation should be recognized.
2.2 Why Rooftop Orientation Matters
Residential and commercial rooftop arrays are heterogeneous. Arrays are installed on roofs with different pitches and facing directions, and some buildings distribute panels across multiple roof planes. Utility or ISO data may record total interconnected capacity without reliable, current information about each array’s tilt, azimuth, shading, or inverter configuration.
Orientation changes the timing of PV output. East-facing arrays tend to produce relatively more power earlier in the day, while west-facing arrays tend to sustain relatively more production later in the afternoon. A single south-facing reference profile may therefore misrepresent an aggregate fleet, especially during afternoon net-load ramps.
The selected irradiance input S(t) should reflect the available solar data and the intended representation of the PV fleet. Orientation-aware POA data represent panel-plane conditions more directly when available. The production procedure for combining spatial or orientation-specific weather feeds is proprietary.
2.3 A Simplified Physical POA Relationship
A simplified isotropic-sky transposition relationship illustrates how direct, diffuse, and ground-reflected irradiance contribute to the irradiance on a tilted plane:
POA(t) ≈ DNI(t) × max[0, cos(θi (t))] + DHI(t) × Fsky (β) + ρ × GHI(t) × Fground (β)(2.2)
Here, θi (t) is the angle of incidence of the direct beam on the panel plane, β is panel tilt, ρ is ground reflectance (albedo), and Fsky and Fground are the sky and ground view factors.
Equation (2.2) is an illustrative, simplified transposition relationship; it does not capture every atmospheric or surface effect. Operational systems may use vendor-provided POA series or more detailed transposition methods.
2.4 Utility-Footprint Irradiance Representation
A utility footprint usually spans many feeders and neighborhoods. A single weather point may not represent irradiance across the service territory. A practical approach therefore represents the footprint with spatial nodes and aggregates their irradiance drivers using weights that reflect the relative load represented by each node.
Where orientation-specific plane-of-array (POA) data are available, south-facing and west-facing profiles can serve as two representative orientations. An illustrative node-level mixture is:
Sj (t; α) = α × SSouth-j (t) + (1 − α) × SWest-j (t)(2.3)
Here, α is an effective fleet-level south-facing share and (1 − α) is the corresponding west-facing share. This is a reduced representation of a heterogeneous fleet, not a claim that every rooftop array faces exactly south or west.
Assign each spatial node a non-negative baseline load-share weight:
wj = Baseline Loadj / NΣk = 1 Baseline Loadk , NΣj = 1 wj = 1(2.4)
The resulting footprint irradiance driver is:
S(t) = NΣj = 1 wj × Sj (t; α)(2.5)
Under this formulation, S(t) is an orientation-aware, load-weighted POA series. If GHI is used directly, it becomes the selected S(t), and the orientation-specific POA mixture is not applied. In either case, use one irradiance definition consistently in the CFI and PV model.
2.4.1 Regional Orientation Considerations
The regional descriptions in Table 2 are qualitative hypotheses about rooftop orientation and its possible effect on the effective south-facing share α. They may help frame initial expectations, but orientation patterns vary by utility, customer mix, tariff design, installation vintage, and local market conditions. The descriptions are not measured regional α estimates.
| Region / ISO footprint | Qualitative orientation context | Interpretation for α |
|---|---|---|
| CAISO (California) | A material west-facing share is a possibility; time-of-use and NEM 3.0 export economics may influence orientation choices. | Potentially lower α; quantify only through local calibration. |
| ERCOT (Texas) | A mixed south/west orientation is a working hypothesis; late-day demand and heat may increase the value of afternoon production. | Mixed orientation; do not assign a numerical α from this qualitative description. |
| PJM (Mid-Atlantic / Midwest) | A stronger south-facing tendency is a hypothesis in some areas, but it may vary with market design and installation vintage. | Potentially higher α; validate for the specific service territory. |
| NYISO / ISO-NE | South-facing installations may be common in some areas; roof pitch, azimuth, and snow conditions vary by location. | Assess locally; roof tilt and azimuth should not be conflated. |
| MISO / SPP | A moderate south-facing tendency is a possible starting hypothesis across diverse footprints. | A hypothesis, not a numerical estimate. |
| FPL / Southeast (SERC) | A mixed orientation is possible across the region; the actual mix depends on local roofs and customer installations. | Do not assign a directional numerical prior without local evidence. |
No calibrated latitude ranges, typical-tilt values, or numerical α estimates are provided for these regions. The rough heuristic β ≈ 0.85 × latitude should not be treated as site metadata or as a validated regional rule.
2.4.2 Fallback Adjustment Factors for a Single South-Facing POA Driver
When orientation-specific POA feeds are unavailable or impractical to obtain, a region- and hour-specific multiplier can be used as a fallback to adjust the shape of a single south-facing PV profile. This is a heuristic profile correction, not a physical POA transposition model, and it requires region-specific validation.
PVadj (t) = Mr,h(t) × PVSouth (t)
Here, PVSouth (t) is the modeled PV power from the south-facing reference profile, and PVadj (t) is the adjusted profile. Mr,h(t) is the configurable multiplier for region r and local-hour window h(t). The multiplier adjusts the shape of the modeled generation profile; it is not a measured irradiance series.
| Local-hour window | CAISO (high-West) | ERCOT (mixed) | PJM / NYISO / ISO-NE | MISO / SPP | AESO / IESO (high latitude) |
|---|---|---|---|---|---|
| 06:00–08:00 (Dawn) | 0.80 | 0.85 | 0.90 | 0.90 | 0.75 |
| 08:00–10:00 (Morning) | 0.85 | 0.90 | 0.95 | 0.95 | 0.85 |
| 10:00–12:00 (Late morning) | 0.95 | 0.98 | 1.00 | 1.00 | 0.95 |
| 12:00–14:00 (Solar midday) | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 |
| 14:00–15:00 (Early afternoon) | 1.08 | 1.05 | 1.02 | 1.02 | 1.05 |
| 15:00–16:00 (Mid-afternoon) | 1.20 | 1.12 | 1.05 | 1.05 | 1.12 |
| 16:00–17:00 (Late afternoon) | 1.40 | 1.25 | 1.12 | 1.10 | 1.25 |
| 17:00–18:00 (Evening ramp) | 1.65 | 1.40 | 1.20 | 1.18 | 1.45 |
| 18:00–sunset (Twilight tail) | 1.25 | 1.15 | 1.08 | 1.05 | 1.20 |
The values in Table 3 are illustrative heuristic settings. No validation dataset or empirical study is provided to support them, so they should not be treated as calibrated QR ALPS production parameters. Use them only as configurable starting points and validate them against local PV or net-load evidence. They are applicable only to the listed local-hour windows, with an explicit policy for missing hours and daylight-saving transitions.
2.5 Practical Considerations for Utility Applications
Spatial resolution: the weather grid and load footprint should be aligned closely enough that the weighted irradiance driver represents the utility territory rather than a single site.
Temporal alignment: load and irradiance observations should use consistent timestamps, time zones, daylight-saving treatment, and interval definitions.
Orientation representation: orientation-aware POA can better represent timing differences across rooftops, especially during morning and afternoon ramps. A GHI-only input is a useful proxy when representative POA data are unavailable, but it cannot explicitly encode the fleet orientation mix.
These engineering choices determine the quality of the solar-resource input supplied to the estimator. Even a well-constructed irradiance driver does not, by itself, reveal the PV contribution hidden in observed net load.
3. Simplified Physical PV Model
3.1 Temperature Adjustment and CFI
A first-order model represents PV output as proportional to the selected irradiance, normalized by a fixed reference irradiance, with an adjustment for cell temperature. The temperature factor is:
ηtemp (t) = 1 + γ × [Tcell (t) − Tref ](3.1)
ηtemp (t) Tcell (t) where Tref
Tcell (t) is PV cell or module temperature, not ambient air temperature. When a manufacturer’s maximum-power temperature coefficient is referenced to standard test conditions, Tref is typically 25 °C.
The coefficient γ is negative for typical silicon modules; −0.0037/°C is an illustrative fleet-level approximation, not a universal constant.
The temperature-adjusted Capacity Factor Index (CFI) is defined as:
CFI(t) = [S(t) / SREF ] × ηtemp (t), SREF = 1,000 W/m²(3.2)
where S(t) represents irradiance, GHI(t) or POA(t).
CFI(t) is dimensionless. It is an irradiance-based index, not the conventional capacity factor calculated over a day, month, or year. It should not automatically be clipped to [0, 1]; any clipping rule should be explicit and validated. CFI will be the basis for BTM PV generation evaluation.
3.2 PV Power and Capacity-Equivalent Scale
Under the simplified physical model, the PV power contribution, PV(t), is proportional to the estimated fleet scale and the CFI:
PV(t) ≈ Cinstalled × CFI(t)(3.3)
Equivalently, we can define the temperature-adjusted effective PV capacity as:
Ceff (t) = Cinstalled × ηtemp (t)(3.4)
Then the same physical relationship can be written as:
PV(t) ≈ Ceff (t) × [S(t) / SREF ], SREF = 1,000 W/m²(3.5)
These equations express a first-order relationship. They do not represent every loss or operating constraint, including inverter clipping, curtailment, shading, degradation, or variations in technology and orientation across the fleet. Unless independently benchmarked against nameplate data, Cinstalled should therefore be interpreted as a capacity-equivalent fleet-scale parameter.
3.3 Separating Fleet Scale from Production Shape
A useful distinction is between fleet scale and time-varying production behavior. Cinstalled is the structural scale parameter, while CFI(t) represents irradiance and temperature conditions under the simplified model. Keeping these concepts separate allows capacity assumptions and weather scenarios to be varied independently.
Aggregate BTM PV output may depart from a fixed linear relationship because of orientation heterogeneity, shading, temperature effects, inverter limits, curtailment, and other operating conditions. These effects motivate careful estimation, but the inferred PV contribution must still be distinguished from ordinary demand variation.
4. Capacity Factor and Energy Aggregation
The CFI defined in Section 3 is an irradiance-based, dimensionless index. It should not be confused with the conventional capacity factor calculated over a day, month, or year. The conventional measure compares PV energy produced over a period with the energy that the rated capacity would produce if it operated at full output throughout the same period.
4.1 Hourly Output Ratio
Under the simplified model, the hourly PV power contribution divided by the estimated capacity-equivalent scale is approximately the CFI:
PV(t) / Cinstalled ≈ CFI(t)(4.1)
PV(t) is power in MW. For hourly data, energy is obtained by summing each hourly power value multiplied by one hour; the result is in MWh.
4.2 Period Energy and Capacity Factor
For a period T containing hourly observations, total PV energy is:
EPV-T = Σt ∈ T PV(t) × 1 h(4.2)
Let HT denote the number of hours in period T. The period capacity factor is:
CFT = EPV-T / (Cinstalled × HT )(4.3)
The result is dimensionless. Because Cinstalled is an estimated capacity-equivalent scale, the resulting value is an estimated capacity factor relative to that scale. It corresponds to a conventional plant capacity factor only when the denominator is a compatible.
4.3 Daily Capacity Factor
For a complete 24-hour day:
EPV-day = PV(t) × 24 h(4.4a)
CFday = EPV-day / (Cinstalled × 24 h)(4.4b)
4.4 Monthly Capacity Factor
For a calendar month, use the actual number of hours in that month:
EPV-month = Σt ∈ month PV(t) × 1 h(4.5a)
CFmonth = EPV-month / (Cinstalled × Hmonth )(4.5b)
For example, for a 30-day period, Hmonth = 720 h.
4.5 Yearly Capacity Factor
EPV-year = Σt ∈ year PV(t) × 1 h(4.6a)
CFyear = EPV-year / (Cinstalled × Hyear )(4.6b)
A complete 365-day year contains 8,760 h; a leap year contains 8,784 h.
5. Classical Least-Squares Estimation of PV Capacity
Classical least squares method is a natural starting point for estimating the capacity-equivalent scale of BTM PV. In this benchmark, the selected irradiance series S(t), and therefore CFI(t), is treated as known. The regression does not jointly estimate an orientation parameter; orientation is represented through the upstream choice of irradiance input.
5.1 Net-Load Regression Model
The observed net load is modeled as non-PV demand minus the PV contribution, plus a residual:
LNet (t) = B(t) − Cinstalled × CFI(t) + ε(t)(5.1)
Because B(t) is not directly observed, the classical approach must model it using non-solar explanatory variables. A simple linear specification is:
B(t) = β0 + β1 Z1 (t) + β2 Z2 (t) + … + βp Zp (t)(5.2)
The predictors Zk (t) might include hour of day, weekday, month, temperature, heating effects, and cooling effects. The exact predictor set is a modeling choice. Substituting Equation (5.2) into Equation (5.1) gives the predicted net-load model:
L̂Net(t) = β0 + pΣk=1 βk Zk (t) − Cinstalled × CFI(t)(5.3)
In Equation (5.3), LhatNet (t) is the reconstructed net load. Capacity is constrained to be non-negative. For this illustration, all timestamps used in the fit belong to a single calibration set T.
5.2 Least-Squares Objective
The classical estimator chooses the baseline coefficients and PV capacity that minimize the sum of squared differences between observed and reconstructed net load:
Minimize over β0 , …, βp and Cinstalled ≥ 0:
Σt ∈ T {LNet (t) − L̂Net (t)}²(5.4)
With CFI(t) fixed, this is a standard constrained least-squares regression. The coefficient on the known CFI profile estimates capacity, while the β coefficients fit the non-PV demand baseline. A low residual sum of squares indicates that the model reconstructs net load well in the calibration sample; it does not, by itself, establish that the estimated capacity is physically correct.
5.3 Fundamental Identifiability Limitation
The principal difficulty is that B(t) is unknown. If the baseline is unrestricted, net load alone cannot uniquely identify Cinstalled . For any candidate capacity, a corresponding baseline can be defined as:
B(t) = LNet (t) + Cinstalled × CFI(t)(5.5)
Substituting this baseline into Equation (5.1), while setting the residual to zero, reproduces the observed net load exactly. Different candidate capacity values can therefore explain the same observations when each is paired with a different baseline series.
Classical regression becomes estimable only after imposing structure on B(t), such as the linear model in Equation (5.2), and making assumptions about its relationship to the observed predictors. Least squares cannot resolve the underlying ambiguity without such assumptions or additional information.
5.4 Why Classical Least Squares Can Fail in Practice
Even when the baseline is represented by a conventional regression, as in (5.3), the resulting capacity estimate with actual data will be unstable or systematically biased for several reasons:
Sensitivity to the calibration sample and demand type. Estimated PV capacity can vary with the selected days and hours, the range of irradiance conditions, data quality, and unusual load events. A good in-sample fit does not guarantee stable estimates in other periods. Even for a fixed demand type, estimates may vary across calibration periods. Models may also behave differently across demand types, requiring adjustments to maintain reliable estimates. This variability makes ongoing model monitoring, careful calibration, and periodic recalibration necessary as load patterns and data conditions change.
Baseline misspecification. Actual demand may contain nonlinear weather responses, changing behavior, industrial events, or demand-response effects that the selected baseline predictors do not capture. The capacity coefficient can absorb these errors. This overlaps with the above point.
Confounding between solar conditions and demand. Irradiance is related to time of day, season, and temperature, all of which also influence load. The baseline and PV terms may compete to explain the same patterns.
Mismatch between the irradiance input and the fleet. A single GHI or POA series may not represent the mix of rooftop orientations and operating conditions across a service territory. The estimated scale can compensate for a mismatch in the production shape.
Simplified physical response. The proportional model may not capture clipping, shading, curtailment, equipment losses, or other nonlinear operating effects. These omissions can be reflected incorrectly in the capacity estimate.
Capacity accuracy is not the objective itself. Least squares minimizes reconstruction error, not the difference between estimated capacity and independently verified nameplate capacity. A model may fit net load well while assigning part of ordinary demand variation to PV or vice versa.
5.5 Conclusion: The Role and Limits of the Classical Model
Classical least squares demand modeling is a well-established method widely used in academic research and published literature. Its main limitation in BTM PV estimation is that capacity estimates depend on how well the model separates PV generation from unobserved non-PV demand. A misspecified demand baseline, confounding with other demand drivers, or an unrepresentative irradiance profile can produce unstable or misleading capacity estimates, even when net load is fitted accurately. Section 6 introduces a more flexible machine-learning approach based on solar-response sensitivity, while keeping the model and calibration procedure proprietary.
6. Machine-Learning-Based Estimation of the Latent BTM PV Component
Classical least squares provides a transparent benchmark, but estimating BTM PV from aggregate load requires separating the solar-related reduction in net load from competing changes in underlying demand. QR ALPS uses a machine-learning (ML) model to learn the relationship between observed net load, solar-resource information, and relevant operating conditions. The trained model is then evaluated under controlled changes to its solar input. The resulting changes in predicted net load are interpreted through the physical PV-generation relationship to estimate the capacity-equivalent scale of the fleet.
6.1 Physical Relationship and Capacity-Equivalent Scaling
Observed net load combines non-PV demand, the reduction associated with BTM PV generation, and other unexplained effects. In this section, load and PV are power quantities measured in MW; energy in MWh is obtained by aggregating power over time.
LNet (t) = B(t) − PV(t) + ε(t)(6.1)
For the machine learning (ML) capacity-estimation relationship, PV output is approximated using installed capacity and the selected irradiance series, without adding a separate temperature-adjustment factor to this estimator:
PV(t) ≈ Cinstalled × [S(t) / SREF ](6.2)
here, S(t) is the selected irradiance series, either GHI or POA, used consistently within a model run; SREF is the fixed reference irradiance of 1,000 W/m².
Holding non-solar demand and other operating conditions constant, the physical relationship implies the following approximate sensitivity of net load to irradiance:
∂LNet (t) / ∂S(t) ≈ − Cinstalled / SREF(6.3)
The negative sign expresses the expected physical direction: greater PV production generally reduces net load. This relationship provides a physical benchmark for interpreting the solar response. By itself, however, it cannot isolate latent PV generation from aggregate load because non-PV demand is not independently observed.
6.2 Normalized Solar Input
For use as an ML feature, the selected irradiance series is normalized by a positive scale, Sscale , expressed in the same units as S(t). The production method used to select this scale is part of the proprietary calibration design.
x(t) = S(t) / Sscale(6.4)
Substituting the normalized feature into the simplified physical relationship gives:
PV(t) ≈ Cinstalled × x(t) × [Sscale / SREF ](6.5)
The corresponding physical sensitivity to the normalized solar feature is:
∂LNet (t) / ∂x ≈ − Cinstalled × [Sscale / SREF ](6.6)
Sscale normalizes the ML input, whereas SREF is the fixed physical reference in the capacity relationship. Keeping these quantities distinct is necessary for the dimensional interpretation of the derivative and the resulting capacity-equivalent estimate.
6.3 Machine-Learning Response and Controlled Perturbations
The trained ML model predicts net load from the normalized solar feature and the remaining explanatory context:
L̂Net (t) = FML [Z(t), x(t)](6.7)
FML denotes the trained machine-learning function,
Z(t) represents all non-solar predictors and relevant operating context,
X(t) is the normalized irradiance defined in (6.4).
The ML model is trained on historical observations, using observed net load LNet (t) as the prediction target; it does not require a separately observed BTM PV series as its target. The choice of the ML model and the non-irradiance features Z(t) are part of the actual implementation options.
During perturbation analysis, the timestamp and Z(t) are held fixed so that the model response to the solar feature can be examined separately from changes in other inputs.
Consider two values of the normalized solar feature, xa and xb . Evaluating the trained model at each value produces two predicted net-load values under the same non-solar context:
L̂a (t) = FML [Z(t), xa ](6.8)
L̂b (t) = FML [Z(t), xb ](6.9)
The change in predicted net load attributable to this controlled solar perturbation is:
ΔL̂Net (t) = FML [Z(t), xb ] − FML [Z(t), xa ](6.10)
The prediction change is generated by the trained ML model. It shows how the model responds to a change in its solar input while the other model inputs are held constant. The solar-response sensitivity is defined by the partial derivative:
Dx (t) = ∂L̂Net (t) / ∂x(t)(6.11)
QR ALPS estimates this sensitivity by examining model predictions under controlled perturbations of the solar input. The derivative measures the change in predicted net load relative to a change in the normalized solar feature. The perturbation design and numerical sensitivity calculation are proprietary. Because the ML response may be nonlinear, its local sensitivity can vary with operating conditions and with the solar-input range at which it is evaluated.
6.4 Connection to Installed PV Capacity
Equation (6.6) links sensitivity to the normalized solar input with the capacity-equivalent scale of the PV fleet. It interprets the sensitivity obtained from the trained ML model through this physical relationship:
Dx (t) ≈ − Cinstalled × [Sscale / SREF ](6.12)
Rearranging gives the corresponding conceptual capacity relationship:
Cinstalled (t) ≈ − [SREF / Sscale ] × Dx (t)(6.13)
The negative sign reflects the expected inverse relationship between PV generation and net load. The irradiance scaling factor converts sensitivity to the normalized ML feature into a capacity-equivalent quantity in MW.
Equations (6.12) and (6.13) establish the physical interpretation of the ML-derived response, but they are not a complete description of the production estimator. Cinstalled (t) is a time-specific capacity-equivalent estimate, not an independently verified nameplate value. The procedure for selecting observations and consolidating estimates across conditions remains proprietary.
For two grid points, xa and xb , evaluated at the same timestamp t with all other model inputs held fixed, the finite-difference approximation to Equation (6.11) is:
Dx (t) ≈ [L̂b (t) − L̂a (t)] / (xb − xa )(6.14)
Substituting Equation (6.14) into Equation (6.13) gives the time-specific capacity-equivalent estimate:
Cinstalled (t) ≈ − [SREF / Sscale ] × [L̂b (t) − L̂a (t)] / (xb − xa )(6.15)
Time Selection and Capacity Aggregation
The estimate in Equation (6.15) initially depends on timestamp t because the ML model’s solar-response sensitivity can vary with demand context and with the location on its learned response function. Not every timestamp provides an equally reliable capacity estimate.
A selection procedure identifies historical observations for which the solar response can be interpreted reliably. Within each perturbation comparison, the non-solar model inputs are held constant so that the change in predicted net load reflects the controlled change in the solar feature. Observation selection also limits the influence of periods in which the estimated response may be dominated by noise, competing demand effects, or insufficiently informative solar conditions.
For each retained timestamp and suitable interval of the solar-input grid, the procedure produces a capacity-equivalent estimate. These estimates can differ because of variation in the learned response, model uncertainty, and the information available in each observation. A further calibration and aggregation step combines estimates across suitable timestamps and perturbation intervals to obtain a single fleet-level capacity estimate.
The final estimate represents the effective capacity scale that best reconciles the model-derived solar response with the physical PV-generation relationship across the retained observations. The observation-selection criteria, grid design, and aggregation procedure remain proprietary.
The values xa and xb are controlled inputs evaluated by the model at the same timestamp. They need not be observed solar values at two different times; the method compares model predictions under controlled inputs rather than differences between loads observed at different timestamps.
6.5 Calibration Quality and Robustness
Accurate net-load prediction alone does not establish that the inferred PV capacity is reliable. Calibration should also assess whether the ML-derived solar response is physically plausible, supported by the data, and stable across relevant historical conditions.
Physical consistency: increased solar input should generally reduce predicted net load when the other inputs are held fixed.
Response stability: sensitivity estimates should be interpretable across nearby solar conditions. Abrupt changes may indicate nonlinear behavior, weak information, confounding, or model instability.
Data support: perturbations should remain within a range reasonably supported by historical observations. Extrapolation to unsupported solar conditions can produce unreliable responses.
Cross-period robustness: assess the inferred response and capacity-equivalent estimate across historical periods, seasons, and operating conditions.
Independent validation: where suitable external information is available, compare the estimate on a consistent geographic, temporal, and capacity basis.
The detailed observation-selection rules, perturbation design, numerical sensitivity procedure, aggregation method, and internal acceptance thresholds are proprietary QR ALPS methodology and are not disclosed in this public paper.
7. PV Modeling in Forward Periods and Scenarios
Using the methodology described in Section 6, QR ALPS estimates the capacity-equivalent scale
Cinstalled . The estimated capacity can then be used to model PV production in historical and future
Conditions the ML model has not seen. From Equation (3.2):
PV(t) ≈ Cinstalled × CFI(t)(7.1)
PV(t) is the PV power contribution in MW at time t. For an hourly interval, multiplying the average power by one hour gives energy in MWh.
7.1 Diurnal CFI Pattern and Expected Effective Capacity
For each calendar month, two diurnal profiles are constructed, each containing up to 24 hourly values. For
each month and hour, the profiles use averages of selected high observations for that hour:
CFI(t)max-month = average of selected high CFI(t) observations for the same calendar month and hour(7.2)
S(t)max-month = average of selected high S(t) observations for the same calendar month and hour(7.3)
here, S(t) can be POA or GHI.
The resulting profiles (7.2) and (7.3) contain up to 24 values for each calendar month. Each value is the
average of the selected high observations for that month and hour, not the absolute maximum.
The expected effective PV reference profile is calculated as follows:
PVREF (t) ≈ Cinstalled × CFI(t)max-month
This provides a high-CFI reference PV profile for the month. Because it is built from selected high-CFI observations, it should not be interpreted as average PV generation under ordinary weather conditions.
For an individual historical observation, the PV estimate remains:
PV(t) ≈ Cinstalled × CFI(t)
7.2 PV projections for future periods
For future periods, the estimated capacity-equivalent scale Cinstalled is assumed to remain constant
unless a capacity-variation scenario is applied. The following projection methods use GHI as the solar-
resource input.
Method A: Using the GHI Forecast Directly
Given forecasts of temperature and GHI, the physical model gives:
PVForecast (t) ≈ Cinstalled × ηtemp-Forecast (t) × [GHIForecast (t) / 1000](7.4)
here, ηtemp-Forecast (t) is the temperature adjustment factor calculated from the forecast PV cell or module temperature.
Method B: Using the Historical Monthly Reference Profile
Alternatively, PV generation for a future timestamp can be estimated using its calendar month and hour, together with Equations (7.2) and (7.3):
PVForecast (t) ≈ Cinstalled × CFImax-month (t) × [ GHIForecast (t) / GHImax-month (t) ](7.5)
The ratio is:
GHIForecast (t) / GHImax-month (t)
It adjusts the historical reference profile according to the forecast GHI relative to the reference GHI for the same month and hour.
7.3 PV projections under GHI variation scenarios
This scenario analysis quantifies the effect of changing GHI while holding installed capacity fixed.
The baseline is the original GHI forecast, with no scenario adjustment.
Define the scenario GHI as a proportional adjustment to the forecast:
GHIScenario (t) = GHIForecast (t) × (1 + ΔGHI)
The baseline PV estimate is:
PVBaseline (t) ≈ Cinstalled × CFImax-month (t) × [GHIForecast (t) / GHImax-month (t)]
The scenario PV estimate is:
PVScenario (t) ≈ Cinstalled × CFImax-month (t) × [GHIScenario (t) / GHImax-month (t) ]
PVScenario (t) ≈ (1 + ΔGHI) × PVBaseline (t)
The incremental PV change is:
ΔPV = PVBaseline (t) × ΔGHI
7.4 PV projections under installed capacity variation scenarios
This scenario analysis quantifies the effect of changing installed capacity Cinstalled while holding GHI
fixed. The baseline is the estimated capacity with no adjustment.
Define the scenario capacity as:
Cinstalled-Scenario = Cinstalled × (1 + ΔC)
The baseline PV estimate is:
PVBaseline (t) ≈ Cinstalled × CFImax-month (t) × [GHIForecast (t) / GHImax-month (t)]
The scenario PV estimate is:
PVScenario (t) ≈ Cinstalled × (1 + ΔC) × CFImax-month (t)× [GHIForecast (t) / GHImax-month (t)]
PVScenario (t) ≈ (1 + ΔC) × PVBaseline (t)
The incremental PV change is:
ΔPV = PVBaseline (t) × ΔC
8. Numerical Example
The following example uses the QR ALPS portal to estimate BTM PV for the CAISO Transmission Access Charge (TAC) territories served by Pacific Gas and Electric (PG&E), Southern California Edison (SCE), San Diego Gas & Electric (SDG&E), and Valley Electric Association (VEA). Publicly available system-demand data make these zones useful for illustration. Each zone is paired with its own temperature and irradiance data. QR ALPS is location and load-system-agnostic: it accepts aligned time series of demand, temperature, and irradiance for each location at the required temporal granularity. QR ALPS decomposes regional demand into a base-load component, weather-sensitive components, and BTM PV. This example focuses on the BTM PV estimates.
8.1. BTM PV Capacity
QR ALPS Report 1. Monthly decomposition of gross load into net load, PV, and weather-related components across demand zones.
The report estimates effective BTM PV capacity and displays the associated PV power profile at the selected aggregation level:
QR ALPS Report 2. Monthly BTM PV generation and Capacity Factor Index.
CAISO regional BTM installed PV capacities are summarized in this table
| SCE | SDGE | PGE | VEA | Total | |
|---|---|---|---|---|---|
| MW | 4,405 | 3,816 | 4,768 | 46 | 13,035 |
| % | 34 | 29 | 37 | 0 | 100 |
Using Equation (4.5b), monthly PV generation and capacity factor are calculated as follows:
PV(t) ≈ Cinstalled × CFI(t)
PVMonth = Σ PV(t) × 1 h over the month
CFMonth = PVMonth / (Cinstalled × Hmonth )
| Date | BTM PV Generation (MWh) | Monthly Capacity Factor |
|---|---|---|
| Jan 2025 | 1,483,015 | 0.15291904 |
| Feb 2025 | 1,528,615 | 0.17450899 |
| Mar 2025 | 1,972,364 | 0.20337759 |
| Apr 2025 | 2,164,412 | 0.23061970 |
| May 2025 | 2,139,437 | 0.22060509 |
| Jun 2025 | 2,185,080 | 0.23282189 |
| Jul 2025 | 2,239,752 | 0.23094893 |
| Aug 2025 | 2,216,907 | 0.22859330 |
| Sep 2025 | 2,006,698 | 0.21381516 |
| Oct 2025 | 1,842,474 | 0.18998416 |
| Nov 2025 | 1,529,400 | 0.16295870 |
| Dec 2025 | 1,364,199 | 0.14066750 |
For August 2025, the reported monthly capacity factor is 0.22859330. Monthly PV generation is the product of the estimated capacity, the monthly capacity factor, and the number of hours in the month:
Monthly Capacity Factor = 0.22859330
BTM PV generation = 2,216,907 MWh
13,035 MW × 0.22859330 × 31 days × 24 h/day ≈ 2,216,907 MWh
The monthly BTM PV generation estimates are broken out by TAC territory below:
| Month | SCE | SDG&E | PG&E | VEA | Total |
|---|---|---|---|---|---|
| Jan 2025 | 529,207 | 484,116 | 463,942 | 5,751 | 1,483,015 |
| Feb 2025 | 516,833 | 461,969 | 543,819 | 5,994 | 1,528,615 |
| Mar 2025 | 653,098 | 603,280 | 708,565 | 7,422 | 1,972,364 |
| Apr 2025 | 706,999 | 633,267 | 816,018 | 8,128 | 2,164,412 |
| May 2025 | 689,751 | 597,954 | 843,342 | 8,390 | 2,139,437 |
| Jun 2025 | 723,987 | 640,101 | 812,924 | 8,067 | 2,185,080 |
| Jul 2025 | 763,853 | 654,402 | 814,031 | 7,465 | 2,239,752 |
| Aug 2025 | 781,858 | 671,258 | 756,179 | 7,612 | 2,216,907 |
| Sep 2025 | 696,854 | 577,413 | 724,866 | 7,565 | 2,006,698 |
| Oct 2025 | 628,145 | 560,422 | 646,855 | 7,052 | 1,842,474 |
| Nov 2025 | 550,994 | 485,109 | 487,391 | 5,906 | 1,529,400 |
| Dec 2025 | 476,443 | 444,614 | 437,679 | 5,463 | 1,364,199 |
| Total | 7,718,022 | 6,813,905 | 8,055,612 | 84,813 | 22,672,351 |
| Month | SCE | SDG&E | PG&E | VEA | Total |
|---|---|---|---|---|---|
| Jan 2025 | 711 | 651 | 624 | 8 | 1993 |
| Feb 2025 | 769 | 687 | 809 | 9 | 2275 |
| Mar 2025 | 878 | 811 | 952 | 10 | 2651 |
| Apr 2025 | 982 | 880 | 1133 | 11 | 3006 |
| May 2025 | 927 | 804 | 1134 | 11 | 2876 |
| Jun 2025 | 1006 | 889 | 1129 | 11 | 3035 |
| Jul 2025 | 1027 | 880 | 1094 | 10 | 3010 |
| Aug 2025 | 1051 | 902 | 1016 | 10 | 2980 |
| Sep 2025 | 968 | 802 | 1007 | 11 | 2787 |
| Oct 2025 | 844 | 753 | 869 | 9 | 2476 |
| Nov 2025 | 765 | 674 | 677 | 8 | 2124 |
| Dec 2025 | 640 | 598 | 588 | 7 | 1834 |
| Annual average | 881 | 778 | 920 | 10 | 2588 |
8.2. Specific Daily Analysis
To view data flow and calculation process we consider the 11:00 a.m. interval on August 18, 2025.
QR ALPS provides the indices needed to interpret the calculation.
QR ALPS Report 3. A 24-hour diurnal capacity-factor profile is calculated for each month; this example shows August.
Expected effective PV at hour 11 = (Estimated CAISO Cinstalled ) × diurnal CFI at hour 11
13,035 MW × 0.73 ≈ 9,516 MW
QR ALPS Report 4. Detailed hourly BTM PV generation analysis.
The orange expected-effective-PV profile follows the regular diurnal reference shape, while the green CFI profile reflects the more variable irradiance observed over time.
9. Conclusion
This paper has described a physics-informed approach to estimating the BTM PV contribution embedded in observed net load. Solar-resource representation and a simplified physical model establish the relationship between irradiance, PV production, and capacity. Classical least squares provides a transparent benchmark, while the machine-learning method uses controlled perturbations of a normalized solar input to measure the model’s solar-response sensitivity and relate it to a capacity-equivalent scale.
In the 2025 CAISO TAC example, QR ALPS estimates an aggregate BTM installed capacity of 13,035 MW and annual BTM PV generation of approximately 22.67 TWh. These are model outputs, not independent measurements of PV generation or a verified inventory of nameplate capacity. Their interpretation depends on data quality, the representativeness of the solar-resource input, separation of solar effects from non-PV demand, and robustness across time periods.
The forecast data and system screenshots are proprietary to QuantRisk.
They may be reproduced or used only with clear attribution to QuantRisk.