This report summarizes youth bicycle and pedestrian crashes near schools in Oregon. The crash data come from Oregon Department of Transportation crash records for 2007 through 2024. The school location data represent 2024 school locations from the National Center for Education Statistics (NCES) Education Demographic and Geographic Estimates school location file: https://nces.ed.gov/programs/edge/geographic/schoollocations.
The analysis focuses on crashes involving people ages 1–17 and identifies whether those crash locations fall within a one-half mile buffer of school locations. The one-half mile buffer is intended to represent a nearby school access area, but it should not be interpreted as proof that a trip was school-related. Crashes may occur near a school for many reasons unrelated to school travel.
The map below shows school locations, one-half mile school buffers, and youth bicycle and pedestrian crash points. Crash points are organized into separate toggle layers for crashes within one-half mile of a school and crashes outside one-half mile of a school. The map also includes school buffer popups showing the number of youth bicycle and pedestrian crashes located within each school buffer.
Useful interpretation notes:
The chart below shows the hourly distribution of youth bicycle and pedestrian crashes by participant type. Each line represents the proportion of that participant type’s crashes occurring during each hour of the day. The shaded periods identify common school commute periods: 7–9 AM and 2–4 PM.
Use this section for an additional chart, such as crashes by injury severity, school buffer status, or participant type.
# Example placeholder:
# ggplot(summary_df, aes(x = category, y = crash_count, fill = category)) +
# geom_col() +
# labs(
# x = NULL,
# y = "Crash count",
# title = "Placeholder Chart Title"
# ) +
# theme_minimal()
Use this section for another chart, such as crash severity by age group, crashes by year, or crashes within versus outside school buffers.
# Example placeholder:
# ggplot(summary_df, aes(x = year, y = crash_count, color = partic_type)) +
# geom_line(linewidth = 1) +
# labs(
# x = "Year",
# y = "Crash count",
# title = "Placeholder Chart Title"
# ) +
# theme_minimal()
Use this section for a map-derived summary table or chart, such as the schools with the highest number of youth bicycle and pedestrian crashes within one-half mile.
# Example placeholder:
# school_crash_summary %>%
# arrange(desc(kid_crashes_half_mile)) %>%
# slice_head(n = 20)
School buffers were created using a projected coordinate reference system and a buffer distance of 804.672 meters, equivalent to one-half mile. Crash points were spatially evaluated against those buffers to identify whether each crash occurred within at least one school buffer. Results should be interpreted as a proximity-based screening analysis, not as a causal or trip-purpose analysis.