This data is published under an Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license
The Washington Post analyzed safety and reliability figures for the nine largest U.S. heavy rail systems. All data is from the Federal Transit Administration’s National Transit Database (NTD). The American Public Transportation Association (APTA) assisted in obtaining some data from the NTD, but The Post conducted the analysis and interpretation of it.
Read the Washington Post story: “In safety and reliability, Metro ranks in middle of the pack of nation’s big systems”
The figures used are the most recent available. 2015 safety event rates were computed using service volume figures from 2014.
The NTD’s thresholds and reporting guidelines for safety and security events differ from many of those used internally by WMATA and other transit agencies.
The NTD’s thresholds and guidelines have changed over the years. In 2008, for instance, the NTD reduced thresholds for reporting events that resulted in an injury from two injuries to one. For a full discussion of the NTD’s reporting guidelines see https://www.transit.dot.gov/ntd/transit-agency-profiles/safety-security-major-only-time-series-data.
For the above reason, we are calculating average rates for safety and security events using data from 2008 to 2015. However, we are using four-year averages (2011 to 2014) for maintenance data on mechanical failures due to a 2011 change in reporting methodology by Miami-Dade Transit (MDT) that reclassified many of their major mechanical failures as other mechanical failures. 2015 maintenance data was not available at publication time.
To take account of the systems’ widely varying sizes, The Post calculated annual rates for each type of incident, according to criteria recommended by government, industry and academic experts. For instance, passenger fatalities and injuries were measured per billion passenger miles traveled. Collisions, derailments and fires were calculated per million train miles traveled, when trains were in service.
While safety incidents are reported according to calendar years, service volumes and mechanical failures are reported according to each system’s fiscal year. Government, industry and academic experts said it was typical practice to calculate rates as we have, despite the fact that the years don’t coincide precisely.
People waiting or leaving refers to people who are injured or killed while waiting for a train or leaving a station, including crime and falling onto the tracks. None of the fatality rates includes suicide.
Major security events comprise different kinds of incidents including: one or more fatalities; one or more injuries requiring immediate medical transport away from the scene (with exceptions); total property damage exceeding $25,000; collisions; evacuations; derailments. For details, see https://www.transit.dot.gov/sites/fta.dot.gov/files/docs/2016%20S%26S%20Reporting%20Manual.pdf
A “major” vehicle mechanical failure is one in which a train is incapable of moving. “Other” mechanical failures include incidents in which a train is able to move but is taken out of service because of problems such as a jammed door or broken air conditioning.
ntd <- read.csv('data/ntd_heavy_rail_corrected_2005.csv') %>%
filter(mode == "HR")
safety <- read.csv('data/ntd_safety_9_8.csv') %>%
filter(Mode == "HR")
NTDID <- c("20008", "90003", "30030", "50066", "10003", "40022", "30019", "90154", "40034")
system.name <- c("New York City Transit", "San Francisco Bay Area Rapid Transit", "Washington Metropolitan Area Transit Authority", "Chicago Transit Authority", "Southeastern Pennsylvania Transportation Authority", "Massachusetts Bay Transportation Authority", "Metropolitan Atlanta Rapid Transit Authority", "Los Angeles County Metropolitan Transportation Authority", "Miami-Dade Transit")
acronym <- c("NYCT", "BART", "WMATA", "CTA", "MBTA", "MARTA", "SEPTA", "LACMTA", "MDT")
years <- c(2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015)
ntdid.lookup <- data.frame(NTDID, acronym)
ntdid.lookup$acronym <- factor(ntdid.lookup$acronym, levels=acronym)
ntd.safety <-
ntd %>%
merge(safety, by=c('Year', 'NTDID'), all.y = TRUE, suffixes=c("", ".safety")) %>%
merge(ntdid.lookup, by='NTDID') %>%
mutate(acronym = reorder(acronym, desc(Passenger.Miles.Traveled.safety)))
# Calculate average system size metrics for 2008-2014
ntd.safety.avg <-
ntd.safety %>%
filter(Year < 2015, Year > 2007) %>%
group_by(acronym) %>%
summarise(
Vehicle...Pass..Car.Revenue.Miles = mean(Vehicle...Pass..Car.Revenue.Miles),
Passenger.Miles.Traveled.safety = mean(Passenger.Miles.Traveled.safety),
Unlinked.Passenger.Trips = mean(Unlinked.Passenger.Trips),
Train.Revenue.Miles = mean(Train.Revenue.Miles)
) %>%
mutate(
acronym.vrm = reorder(acronym, Vehicle...Pass..Car.Revenue.Miles),
acronym.pmt = reorder(acronym, as.numeric(Passenger.Miles.Traveled.safety)),
acronym.upt = reorder(acronym, Unlinked.Passenger.Trips),
acronym.trm = reorder(acronym, Train.Revenue.Miles)
)
ratemap <- function(data) {
data$acronym <- factor(data$acronym, levels=rev(levels(data$acronym)))
ggplot(select(data, acronym, Year, rate), aes(Year, acronym, fill=rate, label=signif(rate, digits=2))) +
scale_fill_gradient2(low='white', high='red') +
geom_tile() +
geom_text(size=2) +
theme_minimal() +
theme(axis.text=element_text(size=9)) +
scale_x_continuous(breaks=years) +
coord_fixed(ratio = 0.7) +
scale_y_discrete(limits = levels(acronym))
}
ntd.total.table <- function(variable) {
ntd.safety %>%
select_("acronym", "Year", variable) %>%
spread_("Year", variable) %>%
kable(align = "r", format.args = list(big.mark=","), digits = 0)
}
ntd.average <- function(variable, adjustment, startYear, endYear, multiplier) {
ntd.safety %>%
filter(Year > startYear - 1, Year < endYear + 1) %>%
group_by(acronym) %>%
summarise_(
average = interp(~signif(sum(var1) / sum(as.numeric(var2)) * multiplier, 3),
var1 = as.name(variable), var2 = as.name(adjustment)))
}
avg.table <- . %>%
arrange(desc(average)) %>%
select(acronym, average) %>%
mutate(ranking=rank(-average)) %>%
kable(align = "r", format.args = list(big.mark=","), digits = 3)
kable(data.frame(system.name, acronym))
New York City Transit |
NYCT |
San Francisco Bay Area Rapid Transit |
BART |
Washington Metropolitan Area Transit Authority |
WMATA |
Chicago Transit Authority |
CTA |
Southeastern Pennsylvania Transportation Authority |
MBTA |
Massachusetts Bay Transportation Authority |
MARTA |
Metropolitan Atlanta Rapid Transit Authority |
SEPTA |
Los Angeles County Metropolitan Transportation Authority |
LACMTA |
Miami-Dade Transit |
MDT |
Sizing up U.S. heavy rail systems
ggplot(ntd.safety.avg, aes(acronym.upt, Unlinked.Passenger.Trips)) +
geom_point() +
coord_flip() +
theme_minimal() +
labs(title="Heavy rail by Unlinked Passenger Trips", y="Mean Unlinked Passenger Trips (2008-2014)", x="Agency")
ggplot(ntd.safety.avg, aes(acronym.trm, Train.Revenue.Miles)) +
geom_point() +
coord_flip() +
theme_minimal() +
labs(title="Heavy rail by Train Revenue Miles", y="Mean Train Revenue Miles (2008-2014)", x="Agency")
ggplot(ntd.safety.avg, aes(acronym.pmt, Passenger.Miles.Traveled.safety)) +
geom_point() +
coord_flip() +
theme_minimal() +
labs(title="Heavy rail by Passenger Miles Traveled", y="Mean Passenger Miles Traveled (2008-2014)", x="Agency")
ggplot(ntd.safety.avg, aes(acronym.vrm, Vehicle...Pass..Car.Revenue.Miles)) +
geom_point() +
coord_flip() +
theme_minimal() +
labs(title="Heavy rail by Vehicle Revenue Miles", y="Mean Vehicle Revenue Miles (2008-2014)", x="Agency")
Safety Data
Collision total
ntd.total.table("Collision.Total")
NYCT |
66 |
64 |
31 |
64 |
71 |
89 |
98 |
80 |
71 |
94 |
WMATA |
5 |
7 |
2 |
6 |
2 |
9 |
1 |
2 |
5 |
6 |
BART |
0 |
2 |
5 |
4 |
3 |
3 |
3 |
4 |
2 |
1 |
CTA |
10 |
17 |
10 |
9 |
11 |
7 |
12 |
10 |
10 |
10 |
MBTA |
3 |
2 |
2 |
4 |
2 |
2 |
6 |
3 |
3 |
4 |
MARTA |
0 |
0 |
0 |
2 |
3 |
1 |
1 |
0 |
0 |
0 |
SEPTA |
12 |
8 |
0 |
5 |
4 |
4 |
4 |
6 |
3 |
5 |
LACMTA |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
MDT |
1 |
0 |
0 |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
Collision rate (per million train revenue miles)
ntd.safety %>%
mutate(rate = Collision.Total / as.numeric(Train.Revenue.Miles) * 10**6) %>%
ratemap()
8-year average rate, 2008-2015
collision.8avg <- ntd.average("Collision.Total", "Train.Revenue.Miles", 2008, 2015, 10**6)
avg.table(collision.8avg)
NYCT |
1.960 |
1 |
SEPTA |
1.190 |
2 |
CTA |
0.851 |
3 |
MBTA |
0.836 |
4 |
WMATA |
0.359 |
5 |
BART |
0.350 |
6 |
MARTA |
0.245 |
7 |
MDT |
0.167 |
8 |
LACMTA |
0.000 |
9 |
Derailment total
NYCT |
7 |
9 |
2 |
2 |
0 |
3 |
2 |
1 |
1 |
2 |
WMATA |
1 |
1 |
1 |
1 |
1 |
1 |
3 |
2 |
0 |
3 |
BART |
1 |
0 |
0 |
1 |
1 |
2 |
3 |
0 |
2 |
0 |
CTA |
4 |
10 |
4 |
2 |
2 |
1 |
3 |
5 |
5 |
2 |
MBTA |
12 |
3 |
3 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
MARTA |
0 |
0 |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
0 |
SEPTA |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
2 |
0 |
1 |
LACMTA |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
MDT |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
Derailment rate (per million train revenue miles)
8-year average rate, 2008-2015
CTA |
0.258 |
1 |
MBTA |
0.193 |
2 |
SEPTA |
0.154 |
3 |
WMATA |
0.130 |
4 |
BART |
0.126 |
5 |
MDT |
0.084 |
6 |
MARTA |
0.070 |
7 |
NYCT |
0.043 |
8 |
LACMTA |
0.000 |
9 |
Fire total
NYCT |
1,322 |
1,464 |
1,270 |
1,079 |
1,101 |
1,037 |
952 |
898 |
953 |
1,052 |
WMATA |
109 |
82 |
26 |
2 |
14 |
28 |
22 |
18 |
33 |
49 |
BART |
3 |
4 |
6 |
4 |
3 |
1 |
3 |
4 |
1 |
2 |
CTA |
72 |
129 |
107 |
58 |
99 |
90 |
108 |
79 |
67 |
78 |
MBTA |
86 |
183 |
170 |
115 |
74 |
96 |
76 |
45 |
26 |
60 |
MARTA |
0 |
1 |
12 |
3 |
6 |
2 |
18 |
6 |
5 |
1 |
SEPTA |
0 |
0 |
0 |
0 |
2 |
2 |
0 |
3 |
7 |
3 |
LACMTA |
7 |
1 |
5 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
MDT |
2 |
10 |
2 |
13 |
6 |
4 |
1 |
0 |
0 |
0 |
Fire rate (per million train revenue miles)
8-year average rate, 2008-2015
NYCT |
27.300 |
1 |
MBTA |
21.300 |
2 |
CTA |
7.390 |
3 |
MDT |
2.170 |
4 |
WMATA |
2.090 |
5 |
MARTA |
1.850 |
6 |
SEPTA |
0.655 |
7 |
LACMTA |
0.448 |
8 |
BART |
0.336 |
9 |
Major security events
NYCT |
0 |
0 |
51 |
66 |
172 |
213 |
250 |
195 |
172 |
237 |
WMATA |
8 |
1 |
5 |
23 |
54 |
82 |
66 |
45 |
32 |
37 |
BART |
0 |
0 |
4 |
3 |
1 |
7 |
39 |
15 |
31 |
31 |
CTA |
1 |
0 |
16 |
43 |
39 |
58 |
99 |
72 |
86 |
72 |
MBTA |
0 |
0 |
3 |
4 |
7 |
5 |
11 |
20 |
28 |
35 |
MARTA |
2 |
3 |
17 |
20 |
22 |
19 |
16 |
17 |
34 |
28 |
SEPTA |
0 |
0 |
7 |
8 |
18 |
60 |
53 |
47 |
67 |
47 |
LACMTA |
3 |
2 |
3 |
4 |
4 |
14 |
8 |
22 |
26 |
13 |
MDT |
1 |
2 |
5 |
4 |
2 |
2 |
2 |
1 |
0 |
1 |
Major security event rate (per million train revenue miles)
8-year average rate, 2008-2015
SEPTA |
11.80 |
1 |
LACMTA |
8.43 |
2 |
MARTA |
6.05 |
3 |
CTA |
5.22 |
4 |
NYCT |
4.44 |
5 |
WMATA |
3.74 |
6 |
MBTA |
3.63 |
7 |
BART |
1.83 |
8 |
MDT |
1.42 |
9 |
Passenger fatality total
NYCT |
1 |
2 |
0 |
2 |
3 |
1 |
2 |
6 |
4 |
3 |
WMATA |
0 |
0 |
0 |
8 |
0 |
0 |
0 |
0 |
0 |
2 |
BART |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
CTA |
0 |
3 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
MBTA |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
MARTA |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
SEPTA |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
LACMTA |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
MDT |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Passenger fatality rate (per billion passenger miles)
8-year average rate, 2008-2015
LACMTA |
1.060 |
1.0 |
WMATA |
0.785 |
2.0 |
NYCT |
0.252 |
3.0 |
CTA |
0.182 |
4.0 |
BART |
0.082 |
5.0 |
MBTA |
0.000 |
7.5 |
MARTA |
0.000 |
7.5 |
SEPTA |
0.000 |
7.5 |
MDT |
0.000 |
7.5 |
Passenger injury total
NYCT |
210 |
820 |
28 |
20 |
1,740 |
83 |
56 |
30 |
75 |
72 |
WMATA |
36 |
114 |
7 |
64 |
32 |
14 |
29 |
28 |
27 |
102 |
BART |
74 |
56 |
0 |
8 |
45 |
97 |
103 |
88 |
60 |
23 |
CTA |
362 |
314 |
45 |
58 |
41 |
45 |
90 |
101 |
107 |
65 |
MBTA |
183 |
153 |
5 |
5 |
17 |
6 |
7 |
6 |
9 |
11 |
MARTA |
30 |
25 |
20 |
20 |
21 |
19 |
15 |
5 |
4 |
3 |
SEPTA |
39 |
100 |
15 |
13 |
6 |
50 |
20 |
45 |
28 |
23 |
LACMTA |
6 |
5 |
3 |
5 |
0 |
7 |
2 |
5 |
6 |
4 |
MDT |
8 |
43 |
1 |
13 |
10 |
7 |
4 |
10 |
11 |
5 |
Passenger injury rate (per billion passenger miles)
8-year average rate, 2008-2015
SEPTA |
57.3 |
1 |
MDT |
52.8 |
2 |
CTA |
50.3 |
3 |
BART |
34.7 |
4 |
MARTA |
27.4 |
5 |
NYCT |
25.2 |
6 |
WMATA |
23.8 |
7 |
LACMTA |
17.0 |
8 |
MBTA |
14.5 |
9 |
Employee fatality total
NYCT |
0 |
2 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
2 |
WMATA |
3 |
0 |
0 |
3 |
2 |
0 |
0 |
1 |
0 |
0 |
BART |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
2 |
0 |
0 |
CTA |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
MBTA |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
MARTA |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
SEPTA |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
LACMTA |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
MDT |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
Employee fatality rate (per billion train revenue miles)
8-year average rate, 2008-2015
MDT |
167.0 |
1 |
WMATA |
65.2 |
2 |
BART |
42.0 |
3 |
NYCT |
13.1 |
4 |
CTA |
0.0 |
7 |
MBTA |
0.0 |
7 |
MARTA |
0.0 |
7 |
SEPTA |
0.0 |
7 |
LACMTA |
0.0 |
7 |
Employee injury total
NYCT |
2 |
29 |
31 |
21 |
18 |
24 |
33 |
30 |
26 |
22 |
WMATA |
0 |
3 |
18 |
17 |
20 |
30 |
30 |
10 |
7 |
11 |
BART |
0 |
0 |
0 |
1 |
0 |
0 |
2 |
2 |
0 |
1 |
CTA |
3 |
6 |
4 |
10 |
14 |
21 |
22 |
61 |
37 |
43 |
MBTA |
0 |
0 |
1 |
0 |
7 |
2 |
2 |
4 |
2 |
12 |
MARTA |
0 |
2 |
13 |
8 |
12 |
7 |
4 |
3 |
3 |
2 |
SEPTA |
1 |
0 |
13 |
8 |
5 |
4 |
9 |
14 |
17 |
12 |
LACMTA |
0 |
0 |
0 |
0 |
1 |
2 |
4 |
5 |
7 |
0 |
MDT |
0 |
0 |
0 |
3 |
1 |
0 |
0 |
0 |
0 |
1 |
Employee injury rate (per billion train revenue miles)
8-year average rate, 2008-2015
SEPTA |
3,160.0 |
1 |
CTA |
2,280.0 |
2 |
MARTA |
1,820.0 |
3 |
LACMTA |
1,700.0 |
4 |
WMATA |
1,550.0 |
5 |
MBTA |
965.0 |
6 |
NYCT |
672.0 |
7 |
MDT |
418.0 |
8 |
BART |
83.9 |
9 |
People waiting or leaving fatality total
NYCT |
0 |
4 |
6 |
5 |
6 |
5 |
15 |
3 |
12 |
9 |
WMATA |
0 |
0 |
0 |
1 |
2 |
1 |
1 |
1 |
0 |
1 |
BART |
0 |
0 |
0 |
1 |
2 |
1 |
2 |
3 |
0 |
0 |
CTA |
1 |
0 |
1 |
1 |
3 |
2 |
5 |
5 |
1 |
3 |
MBTA |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
MARTA |
1 |
0 |
0 |
0 |
2 |
3 |
0 |
0 |
0 |
0 |
SEPTA |
0 |
0 |
1 |
1 |
3 |
0 |
0 |
0 |
2 |
1 |
LACMTA |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
MDT |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
People waiting or leaving fatality rate (per billion unlinked passenger trips)
8-year average rate, 2008-2015
MDT |
12.80 |
1 |
CTA |
11.90 |
2 |
SEPTA |
10.20 |
3 |
BART |
9.51 |
4 |
MARTA |
8.33 |
5 |
LACMTA |
5.22 |
6 |
MBTA |
3.12 |
7 |
WMATA |
3.10 |
8 |
NYCT |
2.99 |
9 |
People waiting or leaving injury total
NYCT |
2,325 |
1,934 |
4,920 |
5,138 |
3,291 |
4,758 |
3,268 |
5,070 |
3,933 |
3,841 |
WMATA |
225 |
131 |
254 |
163 |
265 |
320 |
283 |
292 |
264 |
277 |
BART |
431 |
393 |
523 |
511 |
408 |
444 |
484 |
660 |
488 |
396 |
CTA |
69 |
38 |
268 |
268 |
242 |
319 |
366 |
353 |
316 |
293 |
MBTA |
62 |
61 |
180 |
185 |
198 |
194 |
208 |
140 |
232 |
186 |
MARTA |
190 |
173 |
223 |
202 |
201 |
160 |
150 |
140 |
151 |
90 |
SEPTA |
0 |
0 |
50 |
64 |
113 |
54 |
40 |
45 |
90 |
88 |
LACMTA |
62 |
59 |
58 |
45 |
52 |
62 |
63 |
75 |
63 |
51 |
MDT |
22 |
6 |
42 |
74 |
93 |
38 |
79 |
89 |
66 |
58 |
People waiting or leaving injury rate (per billion unlinked passenger trips)
8-year average rate, 2008-2015
BART |
4,140 |
1 |
MDT |
3,460 |
2 |
MARTA |
2,190 |
3 |
NYCT |
1,670 |
4 |
CTA |
1,370 |
5 |
LACMTA |
1,230 |
6 |
MBTA |
1,190 |
7 |
WMATA |
938 |
8 |
SEPTA |
692 |
9 |
Revenue vehicle maintenance performance data
We are using four year averages for maintenance data due to a 2011 change in reporting methodology by Miami-Dade Transit (MDT) that reclassified many of their major mechanical failures as other mechanical failures. 2015 data was not available at publication time, hence the averages for maintenance data are calculated from 2011 to 2014.
Major mechanical failure
NYCT |
2,173 |
2,260 |
2,547 |
2,250 |
2,038 |
1,997 |
2,112 |
2,260 |
2,443 |
NA |
WMATA |
726 |
706 |
1,076 |
1,334 |
1,552 |
1,525 |
1,483 |
1,223 |
1,406 |
NA |
BART |
288 |
218 |
214 |
229 |
201 |
182 |
185 |
176 |
182 |
NA |
CTA |
311 |
294 |
298 |
230 |
245 |
296 |
290 |
306 |
334 |
NA |
MBTA |
669 |
511 |
590 |
701 |
579 |
681 |
536 |
443 |
472 |
NA |
MARTA |
13,425 |
1,964 |
1,966 |
1,222 |
919 |
422 |
736 |
768 |
822 |
NA |
SEPTA |
157 |
158 |
157 |
166 |
41 |
90 |
95 |
208 |
112 |
NA |
LACMTA |
314 |
362 |
109 |
112 |
114 |
108 |
133 |
94 |
75 |
NA |
MDT |
1,430 |
1,355 |
1,407 |
2,507 |
2,017 |
167 |
192 |
213 |
224 |
NA |
Major mechanical failure rate (per million vehicle revenue miles)
4-year average rate, 2011-2014
MARTA |
38.00 |
1 |
MDT |
27.40 |
2 |
MBTA |
22.80 |
3 |
WMATA |
19.60 |
4 |
LACMTA |
15.80 |
5 |
SEPTA |
7.42 |
6 |
NYCT |
6.41 |
7 |
CTA |
4.55 |
8 |
BART |
2.82 |
9 |
Other mechanical failure
NYCT |
7,486 |
7,971 |
8,208 |
7,536 |
7,443 |
7,329 |
7,614 |
8,346 |
10,132 |
NA |
WMATA |
542 |
155 |
362 |
152 |
117 |
137 |
111 |
139 |
102 |
NA |
BART |
83 |
63 |
78 |
196 |
110 |
85 |
56 |
56 |
73 |
NA |
CTA |
19,148 |
25,007 |
20,947 |
17,727 |
18,206 |
17,973 |
18,124 |
16,693 |
13,719 |
NA |
MBTA |
64 |
60 |
27 |
35 |
38 |
40 |
35 |
33 |
44 |
NA |
MARTA |
1,150 |
98 |
97 |
60 |
74 |
160 |
182 |
146 |
160 |
NA |
SEPTA |
1,108 |
1,701 |
1,297 |
1,478 |
2,526 |
2,688 |
2,350 |
3,387 |
3,678 |
NA |
LACMTA |
1,304 |
1,672 |
38 |
50 |
52 |
37 |
38 |
21 |
44 |
NA |
MDT |
410 |
394 |
298 |
398 |
182 |
2,072 |
2,521 |
2,362 |
1,945 |
NA |
Other mechanical failure rate (per million vehicle revenue miles)
4-year average rate, 2011-2014
MDT |
306.00 |
1 |
CTA |
247.00 |
2 |
SEPTA |
178.00 |
3 |
NYCT |
24.30 |
4 |
MARTA |
8.97 |
5 |
LACMTA |
5.39 |
6 |
WMATA |
1.70 |
7 |
MBTA |
1.62 |
8 |
BART |
1.05 |
9 |
Total mechanical failure
NYCT |
9,659 |
10,231 |
10,755 |
9,786 |
9,481 |
9,326 |
9,726 |
10,606 |
12,575 |
NA |
WMATA |
1,268 |
861 |
1,438 |
1,486 |
1,669 |
1,662 |
1,594 |
1,362 |
1,508 |
NA |
BART |
371 |
281 |
292 |
425 |
311 |
267 |
241 |
232 |
255 |
NA |
CTA |
19,459 |
25,301 |
21,245 |
17,957 |
18,451 |
18,269 |
18,414 |
16,999 |
14,053 |
NA |
MBTA |
733 |
571 |
617 |
736 |
617 |
721 |
571 |
476 |
516 |
NA |
MARTA |
14,575 |
2,062 |
2,063 |
1,282 |
993 |
582 |
918 |
914 |
982 |
NA |
SEPTA |
1,265 |
1,859 |
1,454 |
1,644 |
2,567 |
2,778 |
2,445 |
3,595 |
3,790 |
NA |
LACMTA |
1,618 |
2,034 |
147 |
162 |
166 |
145 |
171 |
115 |
119 |
NA |
MDT |
1,840 |
1,749 |
1,705 |
2,905 |
2,199 |
2,239 |
2,713 |
2,575 |
2,169 |
NA |
Total mechanical failure rate (per million vehicle revenue miles)
4-year average rate, 2011-2014
MDT |
334.00 |
1 |
CTA |
252.00 |
2 |
SEPTA |
185.00 |
3 |
MARTA |
47.00 |
4 |
NYCT |
30.70 |
5 |
MBTA |
24.40 |
6 |
WMATA |
21.30 |
7 |
LACMTA |
21.20 |
8 |
BART |
3.87 |
9 |
ggplot(filter(ntd.safety, acronym == "WMATA")) +
geom_line(aes(Year, Major.Mechanical.Failure)) +
geom_line(aes(Year, Other.Mechanical.Failure)) +
geom_text(x=2014, y=1410, label="Major", hjust=-0.1) +
geom_text(x=2014, y=100, label="Other", hjust=-0.1) +
scale_x_continuous(breaks=years) +
theme_minimal() +
labs(y="Mechanical failure", title="WMATA mechanical failure, 2006-2014")
Summary table of rate averages
Collisions per million train revenue miles |
1.96e+00 |
0.359 |
3.50e-01 |
0.851 |
0.836 |
2.45e-01 |
1.190 |
0.000 |
1.67e-01 |
Derailments per million train revenue miles |
4.26e-02 |
0.130 |
1.26e-01 |
0.258 |
0.193 |
6.99e-02 |
0.154 |
0.000 |
8.36e-02 |
Employee fatalities per billion train revenue miles |
1.31e+01 |
65.200 |
4.20e+01 |
0.000 |
0.000 |
0.00e+00 |
0.000 |
0.000 |
1.67e+02 |
Employee injuries per billion train revenue miles |
6.72e+02 |
1,550.000 |
8.39e+01 |
2,280.000 |
965.000 |
1.82e+03 |
3,160.000 |
1,700.000 |
4.18e+02 |
Fires per million train revenue miles |
2.73e+01 |
2.090 |
3.36e-01 |
7.390 |
21.300 |
1.85e+00 |
0.655 |
0.448 |
2.17e+00 |
Major mechanical failure per million vehicle revenue miles |
6.41e+00 |
19.600 |
2.82e+00 |
4.550 |
22.800 |
3.80e+01 |
7.420 |
15.800 |
2.74e+01 |
Other mechanical failures per million vehicle revenue miles |
2.43e+01 |
1.700 |
1.05e+00 |
247.000 |
1.620 |
8.97e+00 |
178.000 |
5.390 |
3.06e+02 |
Passenger fatalities per billion passenger miles |
2.52e-01 |
0.785 |
8.18e-02 |
0.182 |
0.000 |
0.00e+00 |
0.000 |
1.060 |
0.00e+00 |
Passenger injuries per billion passenger miles |
2.52e+01 |
23.800 |
3.47e+01 |
50.300 |
14.500 |
2.74e+01 |
57.300 |
17.000 |
5.28e+01 |
People waiting or leaving fatalities per billion unlinked passenger trips |
2.99e+00 |
3.100 |
9.51e+00 |
11.900 |
3.120 |
8.33e+00 |
10.200 |
5.220 |
1.28e+01 |
People waiting or leaving injuries per billion unlinked passenger trips |
1.67e+03 |
938.000 |
4.14e+03 |
1,370.000 |
1,190.000 |
2.19e+03 |
692.000 |
1,230.000 |
3.46e+03 |
Security events per million train revenue miles |
4.44e+00 |
3.740 |
1.83e+00 |
5.220 |
3.630 |
6.05e+00 |
11.800 |
8.430 |
1.42e+00 |