This is a nerdly article probably only of interest to me.
I wanted to validate the numbers posted on the main FARS page against my own copy of the FARS data to ensure I understood what counted for what.
For example at this time , the main page is quoting 1,105 bicyclists, 7,522 pedestrians, and an over total of 42,514 persons killed in 2022 (page as of 4/20/2025; this reflects the “prelim” FARS data file for 2022 which was first released 4/1/2024; the “final” file was first released 4/8/2025 but neither my data, nor their page have yet updated). And the “prelim” file for year 2023 was first released on same 4/8/2025 [these timings are typical compared to other years]
SELECT i.YEAR , count(*)
FROM ( 2022_incident as i
JOIN 2022_person AS p_bike ON (i.ST_CASE = p_bike.ST_CASE AND p_bike.eINJ_SEV LIKE ('Fatal%') AND p_bike.ePER_TYP IN ('Bicyclist', 'Other Cyclist') ))
WHERE 1 ;
SELECT i.YEAR , count(*)
FROM ( 2022_incident as i
JOIN 2022_person AS p_bike ON (i.ST_CASE = p_bike.ST_CASE AND p_bike.eINJ_SEV LIKE ('Fatal%') AND p_bike.PER_TYP IN (5) ))
WHERE 1 ;
SELECT i.YEAR , count(*)
FROM ( 2022_incident as i
JOIN 2022_person AS p ON (i.ST_CASE = p.ST_CASE AND p.eINJ_SEV LIKE ('Fatal%') ) )
WHERE 1 ;
SELECT count(*) FROM 2022_person AS p
WHERE p.eINJ_SEV LIKE ('Fatal%') ;
..The query above is for bicyclists, pedestrians, and overall (counted two ways). To count by person type, it’s necessary to JOIN the incident (they call it the ‘accident’) table with the person table.
I quickly checked other years on the FARS webpage against my copy of their data; everything back to 2010 (my oldest data) matches exactly or within one or two (not sure what’s up with that?) EXCEPT 2018 is off significantly (806 vs. 857!?), so I need to look into that.
PER_TYP
There are a strangely large number of categories of PER_TYP. And the value has varied a lot over the history of FARS; below is 2021 where they had the extra values of 11, 12, and 13 that have since been collapsed back to just value #8, personal conveyance. This would cover e.g. wheelchair, skateboard, and so forth regardless of powered or not.
For bicyclists, it’s consistent and straightforward: bicyclists are 6 or 7’s (with ‘other’ referring to e.g. trikes), and as noted in the next section below, now formally includes e-bikes and motorized bicycles. Below are counts for 2022 prelim file:
| PER_ TYP | PER_TYPNAME | count |
|---|---|---|
| 1 | Driver of a Motor Vehicle In-Transport | 26842 |
| 2 | Passenger of a Motor Vehicle In-Transport | 6673 |
| 3 | Occupant of a Motor Vehicle Not In- Transport | 48 |
| 4 | Occupant of a Non-Motor Vehicle Transport Device | 15 |
| 5 | Pedestrian | 7522 |
| 6 | Bicyclist | 1084 |
| 7 | Other Cyclist | 21 |
| 8 | Personal Conveyance (for years 2020 & 21, see 11,12,13) | 246 |
| 9 | Unknown Occupant Type in a Motor Vehicle In- Transport | 47 |
| 10 | Persons In/On Buildings | 15 |
| 11 | Person on Motorized Personal Conveyance | – |
| 12 | Person on Non-Motorized Personal Conveyance | – |
| 13 | Person on Personal Conveyance, Unknown if Motorized or Non-Motorized | – |
| 19 | Unknown Type of Non-Motorist | 1 |
Query below for 2022 (will work for any year 2019 or later), the last query works for years before 2019 — uses eINJ_SEV and ePER_TYP instead of the ‘NAME’ suffix.
SELECT p.YEAR, PER_TYP, PER_TYPNAME, count(*) FROM fars.2022_person AS p
WHERE p.INJ_SEVNAME LIKE ('Fatal%')
GROUP BY 1,2,3 ORDER BY PER_TYP ;
SELECT p.YEAR, count(*) FROM fars.2022_person AS p
WHERE p.INJ_SEVNAME LIKE ('Fatal%') GROUP BY 1;
SELECT p.YEAR, PER_TYP, ePER_TYP, count(*) FROM fars.2018_person AS p
WHERE p.eINJ_SEV LIKE ('Fatal%')
GROUP BY 1,2,3 ORDER BY PER_TYP ;
I note that in my database, I don't have PER_TYPENAME for years before 2019. Not sure why; I mean I'm not sure if that's because it's not in FARS or if it's in there now and I just haven't rebuilt from .zip files.
What about ebikes?
In 2022, FARS formally changed the PER_TYP designation of people riding any sort of powered bicycle (so, e-bikes or motorized bicycle; that is a bicycle with a helper motor) to bicyclist. Formerly they were classified as a driver. They would usually or always be found by looking for a BODY_TYP of 81, moped.
SELECT YEAR, count(*) FROM fars.2020_vehicle WHERE BODY_TYP=81 ;
I won’t list the data here but 2012 thru 2017 the numbers were about 150 / yr. Then it suddenly dropped to about 80/yr, and finally in 2022 (the year of the offiical change for powered bicycles) it dropped to only 45. Presumably the 100 or so thru the mid-teens were perhaps mostly actually powered bicycles (not true mopeds). In any event, the change probably means the current (2022) bicyclist gross figure includes those killed while riding powered bicycles (but only if it results from a collision with a motor vehicle).
It’s still questionable where so-called out-of-class ebikes (e.g. “Sur Ron”) fit in, these are electric powered devices that are too powerful/fast to be legally a class 1, 2, or 3 ebike.
I read the data too. We use it to help prioritize projects.
I’ve also been looking at heat-related deaths. I checked with the County Department of Public Health last year to see if any cyclists had died from the heat. They didn’t have any data to indicate that heat was impacting cyclists. I only know of one, a older mountain biker who’s bike broke and he didn’t make it back to town. Here is a taste of what is in the report. Paste the link below into a browser to read the document.
2024 – 602
2023 – 645
2022 – 425
https://www.maricopa.gov/ArchiveCenter/ViewFile/Item/5934
Reed Kempton: Maricopa County Department of Transportation Reed.Kempton@Maricopa.gov