Processing math: 100%

Analysis of Electric Power Reliability

US Department of Energy Compliance Reports



September 18, 2017

Marcel Merchat



Overview of Power Disruption Data

This report concerns SAIDA and SAIFI data for more than five hundred electric utility companies that reported to the United States Department of Energy (DOE) according to the IEEE-1366 standard in the three years from 2013-2015. We also discuss the event time data found in Electric Disturbance reports for the years 2011-2016 which were filed on Form OE-417 for larger power disruptions which were discussed by Jordan Wirfs-Brock of Inside Energy in August of 2014. She maintains a website with data over a 15-year period [1]. In this report, we investigate DOE reliability data which was uniformly reported beginning in 2013 along with more comprehensive event time data which became available starting in 2011.

Raw Data

The raw data for this analysis are DOE annual reports which are available as Excel files on their web pages[2]. The Excel files were first re-saved as comma delimited text files without changes. Important facts regarding these sources as well as the processing and transforming of raw data and the reproducibility of this analysis are given starting at Note[2] at the end of this report.

Preliminary Observations

Figure-1



SAIDI: Average Customer Time without Power

SAIDI is an acronym for “System Average Interruption Duration Index” and is the average total time without power for a customer of an electric utility. It usually is calculated for a one-year period. To calculate SAIDI, let Ui be the duration of a disturbance event, Ni is the number of customers impacted by the event, Ny is the total number of events for the year, and NT is the total number of customers.
SAIDI=Nyi=1UiNiNT

Exploring the Power Outage Events

Figure-2

The distribution of the outage durations extends from near zero to over 100-hours. The distribution in the figure below has a log-normal shape; note the logarithmic scale of the x-axis. The average or mean outage is 34.7 hours.
paste(formatC(sum(timedat$Duration)/(dim(timedat)[1])), digits=3, "-hours", sep="")
## [1] "34.653-hours"
The vast majority of outages last no more than one week (168-hours).
Figure-3

The plot above shows that the probability of a disruption roughly doubles between 4:00 PM (16-hours) and 8:00 PM (20-hours). The problems are the least in the late morning after 10:00 AM. This data indicates that most problems are random systematic ones or weather related.



Calculating SAIDI

Let’s assume that there were three disturbances during the year at a utility with durations of 10 hours, 20 hours, and 60 hours that in turn affected 30,000, 20,000, and 8,000 customers out of a total of 1 million customers.
SAIDI=1030000+2020000+6080001,000,000
U1=10 hours; U2=20 hours; U3=60 hours
N1=30,000 customers; N2=20,000 customers; Ni=8,000 customers
Ny=3 events; NT=1,000,000 total customers
SAIDI <- ((10 * 30000) + (20 * 20000) + (60 * 8000))/ 1000000
paste ("SAIDI = ", SAIDI, "-hours",sep="")
## [1] "SAIDI = 1.18-hours"

A different example using minutes instead of hours:

U1=98 minutes, U2=21 minutes, U3=95 minutes
N1=2750 impacted customers, N2=1710 impacted customers, Ni=1516 impacted customers
Ny=3 events
NT=84500 total customers
SAIDI <- ((98 * 2750) + (21 * 1710) + (95 * 1516))/ 84500
paste ("SAIDI = ", formatC(SAIDI, digits=3), "-minutes",sep="")
## [1] "SAIDI = 5.32-minutes"

SAIFI: Frequency of Interruptions

SAIFI is an acronym for System Average Interruption Frequency Index (SAIFI) and indicates the average number of times that customers experience outages, usually over one-year. The SAIFI figure could depend on how it is measured unless you could keep track of how many times every customer loses power. Let λi be the average frequency of interruptions over a one year period in areas that we call “neighborhoods” which are small enough so that most people within one lose power together when disruptions occur. We call λi the failure rate. Let Ni be the number of customers in each neighborhood and N be the number of neighborhoods for the entire area served by the utility.
The failure rate and the number of customers in each neighborhood are multiplied together and summed over all neighborhoods. Finally, the sum is divided by the total number of customers NT.

SAIFI=Ni=1λiNiNT

Calculating SAIFI

Let’s assume that there were three neighborhoods which respectively experienced 5, 4, and 2 interruptions (failures) during the year in regions of 1000, 2000. and 7000 customers. This corresponds to failure rates of 5, 4, and 2 for the year.

SAIFI=51000+42000+2700010,000

λ1=5 failures; λ2=4 failures; λ3=2 failures
N1=1000 impacted customers; N2=2000 impacted customers; N3=7000 impacted customers
Ny=3 regions; N_T = 10,000$ total customers
SAIFI <- ((5 * 1000) + (4 * 2000) + (2 * 7000))/ 10000
paste ("SAIFI = ", SAIFI, " Events per year",sep="")
## [1] "SAIFI = 2.7 Events per year"



Weather - The most Significant Problem

The significant factor for power disruptions is the weather. The other reasons are small by comparison by more than an order of magnitude.
Figure-4



Figure-5

The all_other category includes vandalism, sabotage, cyber-attacks and the like. But these issues were not important for the years investigated.



Relationship between SAIDA and SAIFI.

The graph below shows that SAIDA is correlated with SAIFI. Furthermore, the SAIFI figure imposes a lower bound for SAIDI. Major events cause the SAIDA figure to increase in a somewhat unpredictable way. Our machine-learning algorithm attempts to determine if lowering SAIFI might also lower SAIDA and why this may or may not be the case.
Figure-6



Zooming in on Data

The outlier points in the plot above can no longer be seen after zooming.
Figure-7



Under-Reporting without Automatic Detection

The plot below indicates companies report higher SAIDI figures when disruptions are reported automatically. But it is likely that this reflects under-reporting for companies without automatic detection.
Figure-8

It’s conceivable a separate study of companies without automatic detection might be attempted. There might well be some human factors involved. An automatic report may be harder to miss; manual detection might require separate verification and even organization to come to the attention of managers. Clearly SAIDA estimates and predictions need to be adjusted for the case of manual detection.

SAIDA and Utility Company Size

The Figure below indicates the relationship between SAIDA and the number of customers of a utility. SAIDA is more predictable for utilities with around 200,000 customers or more but size does not affect the average SAIDA figure very much. However, it affects SAIDA variability among different utilities.
Figure-9

For this preliminary study, we only investigate utilities with more than 80,000 customers. More study would be required to evaluated the higher variability for smaller companies. We also limit the scope to companies with automatic outage detection.

Cleaned, Restricted, and Transformed Dataset

In this report summary, the data columns appear as rows or lines. The twelve columns of variables from the DOE Reliability files and two new ones are listed on the left below. The new ones are Size_Class as large or small utility and the State_Code and Region. The data type for Region is factor. The State_Code column is identical to Region except the date type is numerical that correspond to region factor values such as “East_Coast.” The first few data items of each variable can be seen on the right but nearly all of the 818 observations or records are not visible here. There is one record for each utility.
## 'data.frame':    307 obs. of  14 variables:
##  $ Year                    : chr  "2013" "2013" "2013" "2013" ...
##  $ Utility_ID              : int  15474 5078 590 5070 14715 689 16609 25177 10421 11171 ...
##  $ Utility_Name            : chr  "Public Service Co of Oklahoma" "Denton County Elec Coop, Inc" "City of Anaheim - (CA)" "Delaware Electric Cooperative" ...
##  $ Size_Class              : num  1 1 1 1 1 1 1 1 1 1 ...
##  $ State                   : chr  "OK" "TX" "CA" "DE" ...
##  $ State_Code              : num  6 6 8 1 1 3 8 3 3 1 ...
##  $ Region                  : Factor w/ 8 levels "East_Coast","High_Plains",..: 6 6 8 1 1 3 8 3 3 1 ...
##  $ Number_of_Customers     : num  535673 176278 115577 85546 1395325 ...
##  $ SAIDI_Without_MED       : num  99 36.2 53 94 91 ...
##  $ SAIFI_Without_MED       : num  1.07 0.6 0.68 1.29 0.84 ...
##  $ SAIFI_With_MED          : num  1.58 0.6 0.68 1.73 0.86 ...
##  $ SAIFI_With_MED_Minus_LOS: num  501 36.2 53 139 170 ...
##  $ SAIDI_With_MED_Minus_LOS: num  1.27 0.6 0.68 1.68 0.86 ...
##  $ SAIDI_With_MED          : num  471 36 53 137 170 ...
##  - attr(*, "na.action")=Class 'omit'  Named int [1:11] 7 26 32 33 59 74 93 98 113 138 ...
##   .. ..- attr(*, "names")= chr [1:11] "241" "748" "286" "770" ...



Predicting SAIDA with Machine Learning

We tried merging data from the OE-417 reports with the Reliability reports in an attempt to improve our SAIDA estimates by adding “regional” data including lost customer hours, number of customers, event duration, starting time, NERC region, outage cause, and power demand loss. But these additional columns had little correlation with the reported SAIDA figures even for utilities in the same region. We added a column identifying the region such as southeast and west coast that roughly matches the impacted areas on DOE reports across more than one state.

Building the Model

Correlation with SAIDI on Major Event Days

Table-1 lists the correlations with respect to SAIDA on major event days.
Table-1
Variable Correlation
Size_Class
State_Code 0.03
Number_of_Customers 0.03
SAIDI_Without_MED 0.57
SAIFI_Without_MED 0.41
SAIFI_With_MED 0.57
SAIFI_With_MED_Minus_LOS 0.99
SAIDI_With_MED_Minus_LOS 0.62
SAIDI_With_MED 1.00
% latex table generated in R 3.4.1 by xtable 1.8-2 package % Sun Sep 17 07:52:57 2017

The magnitude of the correlation between two random variables is always between 0 and 1. We exclude the last four rows for SAIDI_With_MED, SAIDI_With_MED_Minus_LOS, SAIFI_With_MED_Minus_LOS, and SAIFI_With_MED from the model because they are all based on the major event days that we are trying to predict. Perhaps they could help predict future years but that lies outside of our immediate work. Machine learning attempts to build an algorithm with a training set in order to predict performance in a testing set from the same population.
Having excluded the last four rows, the SAIDI data on ordinary days without major events in Row-4 has the greatest correlation at 0.57 with the estimated variable SAIDI_With_MED in the last row followed by SAIFI_Without_MED at 0.41 in Row-5. The State_Code or region in Row-2 and the number of Customers in Row-3 are next with correlation at 0.03. SAIDI_With_MED is correlated with itself as indicated by a 1 in the bottom row. The correlation value is also indicated by the blue shaded squares along the right edge below the center point in Figure-10 below.



Heat Map of Correlations

The map shows the correlations between all of the variables. The data in the table above appears in the right-most column in reverse order. The Size_Class is blank because only larger companies were evaluated.

The squares along the diagonal from the top right to the lower left corner have a deep blue color by default because variables are always correlated with themselves.
The large square in the upper-right along the diagonal shows a certain degree of mutual correlation among variables as well as with the variable being predicted.

Algorithm

The train function in the caret package is used to build fitted machine-learning models.
## set.seed(32323)
## rffit1 <- train(SAIDI_With_MED ~ SAIDI_Without_MED, method="rf",  data=training) )

## rffit2 <- train(SAIDI_With_MED ~ SAIDI_Without_MED + State_Code, method="rf",  data=training))

## rffit3 <- train(SAIDI_With_MED ~ SAIDI_Without_MED + SAIFI_Without_MED + State_Code, method="rf",  data=training)

Information Gain from Machine Learning

The table shows that the uncertainty of the estimated SAIDA is reduced by the machine-learning process from 221.1 to 81.9 minutes per year by adjusting it for the SAIDA and SAIFI figures on ordinary days without major events. This is the benefit of the machine-learning model.
[1] 221.0657
Table-3: SAIDA Prediction Accuracy (minutes)
Prediction_Model Prediction Actual Median_Error RMSE
SAIDA 190 219 36.8 95
SAIDA + SAIFI 205 219 40.6 85.7
SAIDA + SAIFI + Region 205 219 37.8 81.9

Prediction Accuracy

Although we have a better estimate, we might be disappointed the predictions are not accurate enough. The error in the far right column is the root mean square (RMS) of the percentage error (RMSE). The Median_Error in Column-4 is the root median square of the percentage error.
We could have perhaps reached similar accuracy using a linear regression model although we would miss any benefit from the random forest algorithm within the machine learning method. Here we are trying to illustrate how to use machine-learning.

Predicted vs Actual SAIDA On Major Days

The predicted SAIDA performance levels for the test group of companies with at least 80,000 customers are plotted below. These predictions are based on data from 2013 and 2014. The prediction for each company is based on its own SAIDI and SAIFI data on ordinary days without major events (SAIDA_Without_MED) and by its location or region. The region is also color-coded in plot.

Figure-11

The data is rather mixed, but there might be a few weak trends. For example, there are no yellow dots (Southeast) or bright green dots (New England) among the best SAIFI figures in the 200-400 range along the x-axis. On the other hand the highest dot below SAIFI of 200 and the highest dot of all are New England. With one exception, the orange dots for the West Coast are located near the middle.

Regression Line for Predictions

Conclusion

There are obvious ways to improve customer service include:
(a) Procedures and training for likely failures, response teams
(b) Buried and protected, waterproof power lines
(c) Regulations regarding trees and structures near power lines
(d) Higher poles
(e) Environmental testing for new equipment
(f) Wind and ice load ratings for power lines and equipment
(g) Tested waterproof equipment enclosures
(h) Local backup generators at the neighborhood level
The cost of equipment improvements should be weighed against the economic losses associated with power losses that include not only revenue and repair costs for the utility, but perhaps even greater costs in lost wages, businesses, schools, hospitals, and patients at home without power. How would we charge our phones? Electricity improves the quality of life. The right private and government solution must be found, but this seems to be the kind of thing where the federal govenment has a role to play.

Further Work

Can we predict the SAIDI figure from the other data? Is it within the expected range for the area and type of utility? Is the data for year 2016 within the expected range?



Notes

[1] Jordan Wirfs-Brock of Inside Energy investigated the disturbance reports in August, 2014 and she maintains a website with data over a 15-year period.

http://insideenergy.org/2014/08/18/data-explore-15-years-of-power-outages/

[2] Raw Data: There are two groups of raw data Excel files.
The first group are reliability files with SAIDA and SAIFI data. The files named Reliability_2013, Reliability_2014, and Reliability_2015 were taken from zip files named f8612013.zip, f8612014.zip, and f8612015.zip downloaded at this website.

https://www.eia.gov/electricity/data/eia861/index.html

The event time data is mined from files for Form OE-417 starting with the year 2011. Even though the reliability files are more general, the time data files begin with one named “2009_Annual_Summary.csv.” These were summary files for government officials concerned with major outages called “Electric Disturbance Events” and have a special column where description such as vandalism and attack might be found. These Excel files were obtained from this website:
[3] The raw data is not available as a dataset which means this report can only be considered preliminary as a single program should ideally accomplish everything for reproducible analysis. DOE does not have an API or other method whereby these files can be downloaded automatically. A recognized or approved data source is needed for a formal report.
Thus the process began by manually downloading raw DOE files. After downloading them, the files were placed in the project folder before opening with Excel and re-saving them as comma-separated-value (csv) text files without changes.
[4] We can read Excel files directly by R programs using packages such as RExcel. I did not do this for this preliminary report. Although somewhat involved to setup, Excel files could be automatically read but this is perhaps unreasonable for a preliminary study such as this. From the viewpoint of an R program, Excel files are equivalent to compressed binary files and are handled in a similar manner. Rather specialized package tools read and write to them directly.
[5] The raw Excel files and the corresponding csv files are included in my Github repository for this project. Independent investigators would generally work to verify these files as reliable.

Raw Reliability Data:

## 'data.frame':    966 obs. of  22 variables:
##  $ Data.Year                       : chr  "2013" "2013" "2013" "2013" ...
##  $ Utility.Number                  : int  97 108 155 162 195 207 213 232 240 276 ...
##  $ Utility.Name                    : chr  "Adams Electric Coop" "Adams-Columbia Electric Coop" "Agralite Electric Coop" "Aiken Electric Coop Inc" ...
##  $ State                           : chr  "IL" "WI" "MN" "SC" ...
##  $ SAIDI.With.MED                  : chr  "223.000" "143.000" "1,142.000" "." ...
##  $ SAIDI.Without.MED               : chr  "158.000" "58.000" "141.000" "." ...
##  $ SAIDI.With.MED.Minus.LOS        : chr  "191.000" "139.000" "1,134.000" "." ...
##  $ SAIFI.With.MED                  : chr  "1.810" "1.093" "3.000" "." ...
##  $ SAIFI.Without.MED               : chr  "1.350" "0.691" "1.000" "." ...
##  $ SAIFI.With.MED.Minus.LOS        : chr  "1.390" "1.028" "2.000" "." ...
##  $ Number.of.Customers             : chr  "8,715" "36,014" "5,122" "." ...
##  $ Highest.Dist..Voltage           : chr  "34.5" "12.0" "12.0" "." ...
##  $ Outages.Recorded.Automatically  : chr  "N" "Y" "N" "" ...
##  $ SAIDI.With.MED.1                : chr  "." "." "." "140.000" ...
##  $ SAIDI.Without.MED.1             : chr  "." "." "." "140.000" ...
##  $ SAIFI.With.MED.1                : chr  "." "." "." "." ...
##  $ SAIFI.Without.MED.1             : chr  "." "." "." "." ...
##  $ Number.of.Customers.1           : chr  "." "." "." "45,948" ...
##  $ Inactive.Accounts.Included      : chr  "" "" "" "N" ...
##  $ Momentary.Interruptions         : chr  "" "" "" "L" ...
##  $ Highest.Dist..Voltage.1         : chr  "." "." "." "25.0" ...
##  $ Outages.Recorded.Automatically.1: chr  "" "" "" "N" ...

Raw Event Data:

## 'data.frame':    228 obs. of  9 variables:
##  $ Date.Event.Began            : chr  "January  " "1/6/2014" "1/6/2014" "1/6/2014" ...
##  $ Time.Event.Began            : chr  "" "7:50 PM" "7:50 PM" "7:52 PM" ...
##  $ Date.of.Restoration         : chr  "" "1/6/2014" "1/6/2014" "1/6/2014" ...
##  $ Time.of.Restoration         : chr  "" "8:44 PM" "8:44 PM" "8:45 PM" ...
##  $ Area.Affected               : chr  "" "District of Columbia" "Unknown" "Delaware" ...
##  $ NERC.Region                 : chr  "" "RFC" "RFC" "RFC" ...
##  $ Event.Type                  : chr  "" "Voltage Reduction due to Severe Weather - Cold" "Voltage Reduction due to Severe Weather - Cold" "Voltage Reduction due to Severe Weather - Cold" ...
##  $ Demand.Loss..MW.            : chr  "" "Unknown" "Unknown" "Unknown" ...
##  $ Number.of.Customers.Affected: chr  "" "Unknown" "Unknown" "Unknown" ...
[6] Processing and Transforming the Raw Data
The reliability reports can be converted directly by R into data frame with twenty-two columns. There are 966 utility company records. Column-13 indicates whether or not power outages are recorded automatically. As we discuss in the report, we included only records for automatic recording which reduced the size of the study from 966 to 306 utilities. Figure-8 shows how automatic detection affects reported data.
There are 1113 time records of power disturbances for the six years from 2011 to 2016 in the OE-417 event reports. Of these, 509 records report the numbers of affected customers. Date and time information were converted to a time-series data type in order to compute the duration of power outages and lost customer hours. There are many records for vandalism or attacks for which there is little or no effects on customers. The organized DOE reports made it possible to combine the data over multiple years in the same tables.
Figure-8 shows how automatic detection in Column-13 affected reported data. As discussed in the report, only records for automatic recording were used which reduced the size of the study to about 300.

Prediction Table for Testing Group

Table-4
Utility Region Number_of_Customers Prediction Actual Percent_Error Squared_Error
AEP Texas North Company South 188368.00 137.62 104.90 -23.77 565.24
Appalachian Power Co Midwest 463269.00 726.56 582.17 -19.87 394.97
Atlantic City Electric Co East_Coast 537316.00 172.40 747.50 333.59 111281.11
Baltimore Gas & Electric Co East_Coast 1247793.00 126.07 162.50 28.89 834.85
Berkeley Electric Coop Inc Southeast 87933.00 472.19 173.60 -63.23 3998.65
City of Anaheim - (CA) West_Coast 115577.00 87.70 53.00 -39.57 1565.72
City of Chattanooga - (TN) Midwest 173464.00 113.47 83.83 -26.12 682.33
City of Colorado Springs - (CO) High_Plains 223677.00 54.40 40.65 -25.28 639.25
City of Memphis - (TN) Midwest 407292.00 366.69 255.90 -30.21 912.85
City of Seattle - (WA) West_Coast 409619.00 91.92 127.00 38.17 1456.84
Cobb Electric Membership Corp Southeast 194910.00 42.48 31.24 -26.46 700.18
Connecticut Light & Power Co New_England 1248364.00 198.38 93.57 -52.83 2791.31
Connexus Energy Midwest 128362.00 38.37 36.63 -4.55 20.73
Consumers Energy Co Midwest 1791831.00 275.11 769.20 179.59 32254.02
Delaware Electric Cooperative East_Coast 86497.00 423.02 154.99 -63.36 4014.58
Delmarva Power East_Coast 308123.00 208.09 201.00 -3.40 11.59
DTE Electric Company Midwest 2171880.00 208.56 551.00 164.20 26960.76
Duke Energy Carolinas, LLC East_Coast 1445079.00 182.50 193.67 6.12 37.44
Duke Energy Florida, Inc Southeast 1710740.00 207.18 98.41 -52.50 2756.53
Duke Energy Progress - (NC) East_Coast 739470.00 221.13 348.50 57.60 3317.77
El Paso Electric Co South 199796.00 82.42 76.90 -6.70 44.85
Emera Maine New_England 144702.00 453.54 781.33 72.27 5223.42
EnergyUnited Elec Member Corp East_Coast 123413.00 378.43 120.50 -68.16 4645.48
Entergy Arkansas Inc South 715380.00 723.59 394.00 -45.55 2074.77
Entergy Mississippi Inc South 449798.00 469.93 345.00 -26.59 706.77
Entergy New Orleans Inc South 199066.00 167.10 222.30 33.04 1091.42
First Electric Coop Corp South 90243.00 279.07 223.19 -20.02 400.89
Flint Electric Membership Corp Southeast 82038.00 134.48 80.00 -40.51 1641.04
Florida Power & Light Co Southeast 4796829.00 93.33 65.08 -30.27 916.35
GreyStone Power Corporation Southeast 122768.00 23.71 1.30 -94.52 8933.67
Idaho Power Co Mountain 493755.00 243.96 163.35 -33.04 1091.81
Indiana Michigan Power Co Midwest 127230.00 729.16 968.70 32.85 1079.18
Indianapolis Power & Light Co Midwest 476585.00 96.97 163.97 69.09 4772.92
Jackson Electric Member Corp - (GA) Southeast 211650.00 96.45 517.25 436.28 190339.78
Jersey Central Power & Lt Co East_Coast 1102537.00 131.61 127.60 -3.05 9.29
Kansas City Power & Light Co Midwest 266460.00 134.28 227.20 69.19 4787.57
KCP&L Greater Missouri Operations Co. Midwest 309195.00 189.42 199.44 5.29 27.96
Kentucky Power Co Midwest 168943.00 619.03 903.65 45.98 2114.05
Kentucky Utilities Co Midwest 513931.00 156.89 117.56 -25.07 628.49
Knoxville Utilities Board Midwest 196871.00 23.71 3.38 -85.75 7352.57
Long Island Power Authority East_Coast 1116191.00 110.55 73.80 -33.24 1105.09
Louisville Gas & Electric Co Midwest 399706.00 100.17 138.86 38.62 1491.42
Madison Gas & Electric Co Midwest 143284.00 37.47 39.00 4.08 16.63
Massachusetts Electric Co New_England 1273294.00 171.93 225.26 31.01 961.92
Metropolitan Edison Co East_Coast 551502.00 205.66 468.69 127.90 16357.94
MidAmerican Energy Co Midwest 467265.00 169.97 141.00 -17.04 290.53
Monongahela Power Co Midwest 383887.00 605.14 767.20 26.78 717.17
Nebraska Public Power District High_Plains 89381.00 99.74 172.78 73.23 5362.98
Nevada Power Co Mountain 889465.00 43.68 0.00 -100.00 10000.00
Niagara Mohawk Power Corp. East_Coast 1605329.00 112.80 165.21 46.46 2158.28
North Georgia Elec Member Corp Southeast 96934.00 243.98 187.04 -23.34 544.77
Northern States Power Co Midwest 250438.00 138.96 178.00 28.10 789.50
Northern States Power Co - Minnesota Midwest 655619.00 107.75 202.43 87.87 7720.33
Northern Virginia Elec Coop East_Coast 153010.00 66.55 42.10 -36.74 1349.46
Ohio Edison Co Midwest 1028167.00 127.36 97.40 -23.52 553.29
Ohio Power Co Midwest 1455994.00 297.72 203.40 -31.68 1003.63
Oncor Electric Delivery Company LLC South 3296879.00 398.70 278.10 -30.25 914.99
Pacific Gas & Electric Co West_Coast 5446629.00 133.51 147.20 10.26 105.20
PacifiCorp Mountain 553946.00 200.78 271.03 34.99 1224.10
PECO Energy Co East_Coast 1705704.00 105.84 472.75 346.65 120163.19
Pennsylvania Power Co East_Coast 159612.00 139.93 105.40 -24.68 608.91
Portland General Electric Co West_Coast 853578.00 96.28 127.00 31.90 1017.89
Potomac Electric Power Co East_Coast 478740.00 212.74 128.11 -39.78 1582.51
PPL Electric Utilities Corp East_Coast 1395325.00 137.81 170.00 23.35 545.40
Public Service Co of Colorado High_Plains 1323861.00 198.38 108.00 -45.56 2075.62
Public Service Co of NM Mountain 514831.00 106.74 0.00 -100.00 10000.00
Public Service Co of Oklahoma South 540140.00 157.41 280.30 78.07 6094.34
PUD No 1 of Clark County - (WA) West_Coast 187337.00 62.66 111.05 77.22 5962.58
Puget Sound Energy Inc West_Coast 1114074.00 366.69 604.00 64.72 4188.30
Rappahannock Electric Coop East_Coast 155397.00 239.12 132.85 -44.44 1975.08
Sawnee Electric Membership Corporation Southeast 155906.00 87.70 50.00 -42.99 1848.12
Shenandoah Valley Elec Coop East_Coast 89984.00 289.71 158.00 -45.46 2066.94
Snapping Shoals El Member Corp Southeast 95113.00 169.81 64.84 -61.82 3821.48
Southern California Edison Co West_Coast 4977729.00 139.14 82.00 -41.07 1686.45
Southwestern Electric Power Co South 189275.00 406.30 512.10 26.04 678.01
Southwestern Public Service Co South 197014.00 144.99 120.22 -17.09 291.93
Tampa Electric Co Southeast 724911.00 198.38 79.12 -60.12 3614.04
The Narragansett Electric Co New_England 485428.00 171.26 782.90 357.15 127558.21
The Potomac Edison Company East_Coast 196672.00 305.53 332.81 8.93 79.72
The Toledo Edison Co Midwest 301986.00 237.54 104.55 -55.99 3134.43
Tri-County Electric Coop, Inc South 98139.00 69.53 46.28 -33.44 1118.12
Tucson Electric Power Co Mountain 421315.00 55.47 59.44 7.16 51.22
UNS Electric, Inc Mountain 93447.00 90.67 57.25 -36.86 1358.52
West Penn Power Company East_Coast 711915.00 241.86 130.25 -46.15 2129.42
Western Massachusetts Electric Company New_England 213677.00 129.75 166.11 28.02 785.40
Wisconsin Electric Power Co Midwest 1112181.00 66.56 89.00 33.72 1137.05
Wisconsin Public Service Corp Midwest 442227.00 306.17 179.00 -41.54 1725.24
Withlacoochee River Elec Coop Southeast 208761.00 139.93 103.13 -26.30 691.60
[7] The code for this reproducible report is available at https://github.com/marcelMerchat/.

THE END