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


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 \(U_i\) be the duration of a disturbance event, \(N_i\) is the number of customers impacted by the event, \(N_y\) is the total number of events for the year, and \(N_T\) is the total number of customers.
\[SAIDI = \frac {\sum_{i=1}^{N_y} {U_i \cdot N_i}}{N_T}\]

Exploring the Power Outage Events


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).

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 = \frac {10 \cdot 30000 + 20 \cdot 20000 + 60 \cdot 8000}{1,000,000}\]
\(U_1 = 10\) hours; \(U_2 = 20\) hours; \(U_3 = 60\) hours
\(N_1 = 30,000\) customers; \(N_2 = 20,000\) customers; \(N_i = 8,000\) customers
\(N_y = 3\) events; \(N_T = 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:

\(U_1 = 98\) minutes, \(U_2 = 21\) minutes, \(U_3 = 95\) minutes
\(N_1 = 2750\) impacted customers, \(N_2 = 1710\) impacted customers, \(N_i = 1516\) impacted customers
\(N_y = 3\) events
\(N_T = 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 \(\lambda_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 \(\lambda_i\) the failure rate. Let \(N_i\) 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 \(N_T\).

\[SAIFI = \frac {\sum_{i=1}^{N} {\lambda_i \cdot N_i}}{N_T}\]

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 = \frac {5 \cdot 1000 + 4 \cdot 2000 + 2 \cdot 7000}{10,000}\]

\(\lambda_1 = 5\) failures; \(\lambda_2 = 4\) failures; \(\lambda_3 = 2\) failures
\(N_1 = 1000\) impacted customers; \(N_2 = 2000\) impacted customers; \(N_3 = 7000\) impacted customers
\(N_y = 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.


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.