## Appendix C Generation Model Features  
This section details the features used in our generation model (Section 3.6). The equations below use the variables defined as follows:  
* A sounding prediction p from the set of soundings \(P\) within a lookback window; \(|P|\) represents the number of sounding predictions in the lookback window;
* A sounding model \(m_{s}\) from the set of sounding models \(M_{s}\) associated with a satellite \(s\); \(|M_{s}|\) represents the number of sounding models for satellite \(s\);
* A classification sounding from sounding model \(m_{s}\): \(y_{pm_{s}}\);
* A regression sounding from sounding model \(m_{s}\): \(z_{pm_{s}}\).  
If a feature value was missing, i.e., when there were no soundings for a plant during the lookback window, we imputed the value by calculating the average of the feature across all plants within the generation training fold. The generation models had access to the following feature sets calculated within each lookback window:  
1. Model-averaged regression and classification soundings: We averaged each sounding model's capacity factor predictions, and separately, the ON-scores during the lookback window: \[\overline{y}_{m_{s}}=\frac{1}{|P|}\sum_{p\in P}y_{pm_{s}}\] \[\overline{z}_{m_{s}}=\frac{1}{|P|}\sum_{p\in P}z_{pm_{s}}\] This produced a feature for each sounding model for each satellite.
2. Satellite-averaged regression and classification soundings: We averaged the capacity factor predictions and, separately, the ON scores from all sounding models associated with a satellite. This resulted in one ensembled capacity factor estimate and ON-score per image in the lookback window. These values were then averaged over the images to obtain a single value per lookback window: \[\overline{y}_{s}=\frac{1}{|P||M_{s}|}\sum_{p\in P}\sum_{m_{s}\in M_{s}}y_{pm_{s}}\] \[\overline{z}_{s}=\frac{1}{|P||M_{s}|}\sum_{p\in P}\sum_{m_{s}\in M_{s}}z_{pm_{s}}\] This produced a feature for each satellite.  
Weighted-average regression soundings: We weighed the capacity-factor-related predictions based on the corresponding classification soundings. First, we averaged the classification soundings from all sounding models associated with a satellite: \[\overline{y}_{ps}=\frac{1}{|M_{s}|}\sum_{m_{s}\in M_{s}}y_{pm_{s}}\] This produced one ensembled ON-score per image in the lookback window. These values were then used to weigh the capacity-factor-related predictions. The further away from 0.5 the ensembled ON-score, the higher the weight, with a maximum weight of 1 and a minimum weight of 0. The resulting weighted regression scores were then averaged within the lookback window to obtain a single value. This was achieved for each model and for each satellite: \[w_{m_{s}}=\frac{1}{\sum\limits_{p\in P}\overline{y}_{ps}}\sum_{p\in P}2| \overline{y}_{ps}-0.5|z_{pm_{s}}\] \[w_{s}=\frac{1}{\sum\limits_{p\in P}\overline{y}_{ps}}\sum_{p\in P}2| \overline{y}_{ps}-0.5|\frac{1}{|M_{s}|}\sum_{m_{s}\in M_{s}}z_{pm_{s}}\] This produced a feature for each model and one for each satellite. 4. Mean thresholded classification soundings: These features indicate the percentage of ON-scores in the lookback window that were above 0.5: \[b_{m_{s}}=\frac{1}{|P|}\sum_{p\in P}I(y_{pm_{s}}>0.5)\] \[b_{s}=\frac{1}{|P|}\sum_{p\in P}I(\frac{1}{|M_{s}|}\sum_{m_{s}\in M_{s}}y_{pm _{s}}>0.5)\] where \(I\) is an indicator function mapping to 1 if the condition is true and 0 otherwise. This resulted in a feature for each model and one for each satellite. 5. Missing feature indicator (FGD only): This value indicates whether a feature was imputed, 1 if imputed, and 0 otherwise. Imputation was used more often for the FGD model due to the stricter temperature and humidity filter.