Adot has released Crash Facts 2014 in early June (of 2015), as usual/expected; and I received the database from them very promptly. I have updated the graphical crash map so it now has data from 2009-2014 for ped-MV and bike-MV crashes.
The overall number of crashes ticked up (unless otherwise stated, all figures are year-over-year; 2013 vs. 2014; and are as was published in Crash Facts 2014 when it was published June 2015):
- number of MV crashes: 107,477 vs. 109,554 up modestly 1.93% [1]
- all Fatalities: 844 vs. 774 sharp drop of 8.83% [2]
- Total Injuries: 50,389 vs. 50,890 almost flat at up 0.99% [3]
The two most closely-watched traffic safety metrics, the number of fatalities per 100M Vehicle Miles Traveled (VMT), and per 100K population are not yet available but even after the sharp drop will remain worse for Arizonans than for the US overall.
The results for cyclists showed improvement compared to 2013 but are rather unexplainable —
- the number of bike-MV crashes: 2,039 vs. 1742 . down sharply, 15% [4]
- number of cyclists injured: 1,679 vs. 1459 down sharply 13% [5]
- The number of fatalities at 28 was one fewer than the last year’s 29 — but there’s still something unresolved about 2013 fatalities that I’m guessing won’t get straightened out until the FARS final 2013 gets released, normally in December of 2015. In any event the average yearly toll has been about 24. Fatalities, being relatively rare, have quite wide variation, making it hard to discern trends. For example in the most recent 10 year period there have been as many as 36 (in 2005) and as few as 18 (last year). More details on each AZ fatality here.
Longer Trends for cyclist/ped
I have a spreadsheet that tracks # of cyclist injuries and fatalities for 2001-2014. The number of cyclists injured this past year, 1,459, is well below the 14-year average of 1,616; This drop is a notable mystery.
More broadly, we have no good exposure data; though we can say in that time (which reflects 2001 thru 2013), the population of AZ has grown 24% and driving has increased 19%. AzStats.xls (current as of 2014 data) or web-viewable on google drive (the google drive version only current thru 2013). Also see the section on long-term trends section of last year’s 2013-data roundup.
There are a series of results at azbikelaw.org/contrib/asdm including classification of each table, and bsap-like results compared over the six most recent years bsap-data-2014.txt
The Drop in reported Cyclist Crashes?
IncidentYear | count(*) |
---|---|
2009 | 2022 |
2010 | 1942 |
2011 | 1944 |
2012 | 2164 |
2013 | 2071 |
2014 | 1761 |
(these numbers vary slightly, and will be a tiny bit higher, from those published, but you get the idea) Why the drop? Here is a 6 year history… I wanted to check city-by-city, below presented inelegantly is the year-over-year list.
The drop was very broad-based, virtually all larger agencies reports significant declines — Chandler, Gilbert, Glendale, Mesa, Phoenix, Scottsdale, Tempe, Tucson. Only Flagstaff saw any increase (it was a small change), among the larger agencies. Why?
IncidentYear | name | count(*) |
---|---|---|
2013 | APACHE JUNCTION | 17 |
2014 | APACHE JUNCTION | 16 |
2013 | AVONDALE | 21 |
2014 | AVONDALE | 17 |
2014 | BENSON | 1 |
2013 | BUCKEYE | 6 |
2014 | BUCKEYE | 4 |
2013 | BULLHEAD CITY | 7 |
2014 | BULLHEAD CITY | 4 |
2013 | CAMP VERDE | 1 |
2014 | CAMP VERDE | 2 |
2013 | CAREFREE | 1 |
2014 | CAREFREE | 2 |
2013 | CASA GRANDE | 19 |
2014 | CASA GRANDE | 16 |
2013 | CAVECREEK | 1 |
2014 | CAVECREEK | 2 |
2013 | CHANDLER | 104 |
2014 | CHANDLER | 65 |
2013 | CHINO VALLEY | 1 |
2013 | CLIFTON | 1 |
2013 | COLORADO CITY | 1 |
2013 | COOLIDGE | 3 |
2014 | COOLIDGE | 4 |
2013 | COTTONWOOD | 3 |
2014 | COTTONWOOD | 4 |
2013 | DOUGLAS | 3 |
2013 | EL MIRAGE | 10 |
2014 | EL MIRAGE | 6 |
2013 | ELOY | 1 |
2014 | ELOY | 1 |
2013 | FLAGSTAFF | 64 |
2014 | FLAGSTAFF | 68 |
2013 | FLORENCE | 1 |
2013 | FOUNTAIN HILLS | 1 |
2013 | GILBERT | 73 |
2014 | GILBERT | 58 |
2013 | GLENDALE | 85 |
2014 | GLENDALE | 74 |
2013 | GLOBE | 1 |
2014 | GLOBE | 1 |
2013 | GOODYEAR | 12 |
2014 | GOODYEAR | 12 |
2013 | GUADALUPE | 2 |
2014 | GUADALUPE | 5 |
2013 | HOLBROOK | 1 |
2014 | HOLBROOK | 3 |
2013 | KINGMAN | 10 |
2014 | KINGMAN | 11 |
2013 | LAKE HAVASU CITY | 9 |
2014 | LAKE HAVASU CITY | 1 |
2014 | LITCHFIELD PARK | 2 |
2013 | MARANA | 6 |
2014 | MARANA | 4 |
2013 | MARICOPA | 4 |
2014 | MARICOPA | 5 |
2013 | MESA | 193 |
2014 | MESA | 163 |
2013 | NOGALES | 2 |
2014 | NOGALES | 2 |
2013 | ORO VALLEY | 19 |
2014 | ORO VALLEY | 11 |
2013 | PAGE | 1 |
2013 | PARADISE VALLEY | 3 |
2014 | PARADISE VALLEY | 5 |
2013 | PARKER | 1 |
2013 | PAYSON | 5 |
2014 | PAYSON | 5 |
2013 | PEORIA | 38 |
2014 | PEORIA | 41 |
2013 | PHOENIX | 521 |
2014 | PHOENIX | 453 |
2013 | PINETOP | 1 |
2014 | PINETOP | 1 |
2013 | PRESCOTT | 13 |
2014 | PRESCOTT | 12 |
2013 | PRESCOTT VALLEY | 7 |
2014 | PRESCOTT VALLEY | 5 |
2013 | QUARTZSITE | 1 |
2013 | QUEEN CREEK | 1 |
2014 | QUEEN CREEK | 2 |
2014 | RED ROCK | 1 |
2013 | SAHUARITA | 2 |
2014 | SAHUARITA | 4 |
2013 | SAN LUIS | 4 |
2014 | SAN LUIS | 3 |
2013 | SCOTTSDALE | 96 |
2014 | SCOTTSDALE | 74 |
2013 | SEDONA | 11 |
2014 | SEDONA | 3 |
2013 | SHOW LOW | 1 |
2014 | SHOW LOW | 3 |
2013 | SIERRA VISTA | 19 |
2014 | SIERRA VISTA | 7 |
2013 | SNOWFLAKE | 3 |
2013 | SOUTH TUCSON | 2 |
2014 | SOUTH TUCSON | 4 |
2014 | SPRINGERVILLE | 1 |
2013 | SURPRISE | 7 |
2014 | SURPRISE | 8 |
2013 | TEMPE | 240 |
2014 | TEMPE | 214 |
2013 | TOLLESON | 3 |
2014 | TOLLESON | 3 |
2013 | TUCSON | 224 |
2014 | TUCSON | 161 |
2013 | UNSPECIFIED_999 | 160 |
2014 | UNSPECIFIED_999 | 148 |
2014 | WICKENBURG | 1 |
2013 | WILLCOX | 2 |
2014 | WILLIAMS | 1 |
2014 | YOUNGTOWN | 2 |
2013 | YUMA | 22 |
2014 | YUMA | 35 |
SELECT IncidentYear,count(*) FROM ( 2012_incident AS i JOIN 2012_person AS p_bike ON i.IncidentID = p_bike.IncidentID) LEFT OUTER JOIN LOVCity ON i.CityId = LOVCity.id WHERE p_bike.ePersonType = 'PEDALCYCLIST' GROUP BY 1;
SELECT IncidentYear, LOVCity.name ,count(*) FROM ( incident AS i JOIN person AS p_bike ON i.IncidentID = p_bike.IncidentID) LEFT OUTER JOIN LOVCity ON i.CityId = LOVCity.id WHERE p_bike.ePersonType = 'PEDALCYCLIST' AND (IncidentYear=2013 OR IncidentYear=2014) GROUP BY 2,1; by the way, to get incident counts (instead of person counts) for all years, for all cities do: SELECT LOVCity.name, IncidentYear ,count(*) FROM incident i LEFT OUTER JOIN LOVCity ON i.CityId = LOVCity.id WHERE EXISTS (SELECT 1 FROM unit u WHERE u.IncidentID=i.IncidentID AND u.eUnitType IN ('PEDALCYCLIST')) GROUP BY 1, 2;
Footnotes
Note about published vs. database: the database I have isn’t updated (it’s frozen as of June of the year following) and incidents continue to trick in over the next year…
[1] per database vs. published; 2013 figure is 103 greater than database; this is typically due to a small number of incidents that trickle in after the database is frozen. The 2014 number, happily matches.
select count(1) from 2014_incident; => 107374, 109554
[2] totals match, which is slightly misleading, e.g. pedalcyclists for 2013 were revised, meaning some other category had to change.
SELECT count(1) FROM 2014_person WHERE eInjuryStatus LIKE "FATAL%"; => 844 , 774
[3] per database vs. published; 2013 figure is 92 greater than database. The 2014 number matches exactly. Point of order: they don’t count fatalities as injuries.
select count(1) from 2014_person WHERE InjuryStatus BETWEEN 2 AND 4; => 50297, 50890
[4] the 2013 figure matches exactly, which seems odd/wrong/unlikely because of stragglers. The 2014 figure matches exactly as expected
SELECT count(*) FROM 2014_incident i WHERE EXISTS (SELECT 1 FROM 2014_unit u WHERE u.IncidentID=i.IncidentID AND u.eUnitType IN ('PEDALCYCLIST')); => 2039, 1742 note: now can use the synthetic flags in incident table, so this is equivalent query: SELECT count(*) FROM 2014_incident i WHERE sF_Bicycle;
[5] the 2013 figure matches exactly, which seems odd/wrong/unlikely. While the 2014 figure is 7 higher than the database, which is also odd because 2014 numbers should agree.
select count(1) from 2014_person WHERE InjuryStatus BETWEEN 2 AND 4 AND ePersonType = 'PEDALCYCLIST'; => 1679, 1466
.