Skip to content

Discovery ​

Query what the server supports at runtime instead of hard-coding it. These methods return typed models, except manifest and health, which return dicts.

python
hb.filters()    # FiltersResponse: every filter, its options, per-mode defaults
hb.regions()    # RegionsResponse: regions + the modes each supports
hb.manifest()   # dict: dataset metadata (schema version, row counts)
hb.health()     # dict: service status; needs a Cloud Run base_url (see note)

filters() ​

python
for f in hb.filters().modes["geofence"]:
    print(f.id, "→", [o.id for o in f.options], "default:", f.default)

Each filter exposes id, label, description, affects (n/d/both/rate), multiselect, options ({id, label}), and the per-mode default. See the generated catalog below and the Filters concept page.

regions() ​

python
for r in hb.regions().regions:
    print(r.region, r.modes)        # e.g. travis ['geofence', 'route', 'depot']
print(hb.regions().default_region)  # 'travis'

manifest() ​

Returns dataset metadata: schema_version, generated_at, row_counts, files (with sha256), regions, region_modes, depot_available.

health() ​

python
HumanBaselines(api_key="hbk_...",
               base_url="https://human-baseline-api-yz2u5f75wa-uc.a.run.app").health()
# {"status": "ready"}

WARNING

/health is unversioned and is not proxied by humanbaselines.com. Use a Cloud Run base_url for this call. The client raises a clear APIError explaining this if you do not.

Filter catalog ​

This catalog is generated from the API's filter catalog, the same data filters() returns.

Geofence ​

Outcome outcome ​

Type: single-select
Affects: n
Default: police_reported

What kind of crash to count. Each outcome is a subset of police-reported.

OptionMeaning
police_reportedPolice-reported
observed_any_injuryAny reported injury
airbagAny airbag deployment
ego_airbagEgo airbag deployment
kaSerious+ (K or A)
fatalFatal (K)

Minimum damage severity severity ​

Type: int
Affects: n
Default: 1

Minimum CRIS vehicle-damage rating (1–7) a unit must have to be counted. Ignored for SF (SWITRS records no damage rating).

Options: 1, 2, 3, 4, 5, 6, 7

Under-reporting adjustment under_reporting ​

Type: single-select
Affects: n
Default: none

Apply Blincoe et al. 2023 NHTSA under-reporting multipliers (PDO ×2.48, non-fatal injury ×1.47, fatal ×1.0).

OptionMeaning
noneNone (unadjusted)
adjustedAdjusted (Blincoe et al. 2023)

Fatal definition fatal_definition ​

Type: single-select
Affects: n
Default: thirty_day_equivalent

How a death is counted for the fatal outcome. US sources count a death within 30 days of the crash. Tokyo's source counts within 24 hours, so its fatal count is scaled by the Tokyo Metropolitan Police's published 30-day to 24-hour ratio for the crash year (1.26 in 2022, 1.30 in 2023, 1.33 in 2024) to be comparable.

OptionMeaning
thirty_day_equivalent30-day equivalent
as_recordedAs recorded (24-hour)
How it is computed

'as_recorded' shows the raw 24-hour count. No effect on any other outcome or on a region already on the 30-day definition.

In-transport in_transport ​

Type: single-select
Affects: n
Default: in_transport

Whether to exclude parked vehicles (Vehicle Parked Flag).

OptionMeaning
in_transportIn-transport only
include_allInclude parked

Desk reports desk_reports ​

Type: single-select
Affects: n
Default: exclude

Whether to count crashes the driver reported at a police station instead of an officer attending the scene. Excluded by default, because a source that marks the channel is the exception: most states route the driver's own report to a motor-vehicle agency or drop it, so counting them makes a region read high against every other one.

OptionMeaning
excludeExclude desk reports
include_allInclude desk reports
How it is computed

A region whose source does not mark the channel has none to exclude and the filter is a no-op there.

Posted speed posted_speed ​

Type: multi-select
Affects: both
Default: le15, s20, s25, s30, s35, s40, s45, s50, s55, s60, s65, ge70

Posted speed limit of the road, applied to both sides of the rate. A crash counts when its road segment is posted within the selected range, and the exposure is the miles driven on segments in that range.

OptionMeaning
le1515 mph or less
s2020 mph
s2525 mph
s3030 mph
s3535 mph
s4040 mph
s4545 mph
s5050 mph
s5555 mph
s6060 mph
s6565 mph
ge7070 mph or more
How it is computed

Each segment's speed comes from a city speed-limit layer where one exists, then OpenStreetMap maxspeed, then HPMS, then an assumed value by road class. Selecting every step is the unfiltered rate. Built for San Francisco and Las Vegas so far and a no-op elsewhere.

Ego vehicle type ego_vehicle ​

Type: multi-select
Affects: both
Default: cars, light_trucks, heavy_trucks, motorcycles, buses

Vehicle classes to count and to size the exposure denominator against. Also selects the hourly traffic curve used by time_of_day, since fleets do not share a day.

OptionMeaning
carsCars
light_trucksLight trucks
heavy_trucksHeavy trucks
motorcyclesMotorcycles
busesBuses
otherOther

Unresolved vehicle class unresolved_nfs ​

Type: single-select
Affects: both
Default: marginal

How to treat units whose vehicle class could not be resolved (NFS tier 3).

OptionMeaning
marginalUse observed class share
noneExclude
allInclude at full weight

Automated-driving traffic automation_traffic ​

Type: single-select
Affects: both
Default: include_all

Include all traffic, exclude only ADS-controlled vehicle units, or exclude every vehicle unit in an ADS-involved crash. Either exclusion also subtracts period-, class-, road- and cell-matched ADS mileage; the request is rejected when matching exposure is unavailable.

OptionMeaning
include_allInclude all traffic
exclude_ads_unitsExclude ADS units
exclude_ads_involved_crashesExclude ADS-involved crashes

Road type road_type ​

Type: multi-select
Affects: both
Default: collector_local, arterial, other_freeway, interstate

Functional road classes to include. The dynamic operator multiplier only applies when every selected class is a surface street (arterial / collector_local).

OptionMeaning
interstateInterstate
other_freewayOther freeway / expressway
arterialArterial
collector_localCollector / local

Operator weighting operator_weighting ​

Type: single-select
Affects: rate
Default: region_wide

Plain region-wide Σ/Σ rate, or the Chen 2025 operator-weighted spatial multiplier (needs an operator's rider-only mileage layer). The applied multiplier can be overridden with the operator_weight field. The old value county_wide is still accepted.

OptionMeaning
region_wideRegion-wide
robotaxiRobotaxi

Multiplier VMT source multiplier_vmt ​

Type: single-select
Affects: rate
Default: calibrated

Exposure source used inside the operator-weighted multiplier. Only relevant when operator_weighting=robotaxi (and ignored when operator_weight is set explicitly).

OptionMeaning
calibratedCalibrated (TxDOT × VM-4)
hpmsHPMS (Chen 2025)

Denominator VMT source denominator_vmt ​

Type: single-select
Affects: d
Default: calibrated

Road-mileage dataset for the rate denominator. Offered where the pipeline built a second denominator to compare against: California (Caltrans CPRD vs HPMS) and Massachusetts (MassDOT per-segment VMT vs HPMS). Texas, Arizona and Nevada have a single state-DOT calibrated denominator and reject 'hpms' with a 400.

OptionMeaning
calibratedCPRD (Caltrans)
hpmsHPMS (functional class)

Cell tiling tiling ​

Type: single-select
Affects: both
Default: s2

Spatial cell scheme for the per-cell map and geofence aggregation. 'S2 level 13' (~1.27 sq km) is the default and matches the cells of the published robotaxi benchmark.

OptionMeaning
s2S2 level 13
h3H3 resolution 8
How it is computed

'H3 resolution 8' (~0.74 sq km) is an alternative for an H3-native framing; it is preliminary, static-rate only (operator weighting is unavailable), and served only for regions with H3 artifacts built (see /v1/regions tilings).

Weather weather ​

Type: multi-select
Affects: both
Default: any

Weather buckets (NOAA-derived). 'any' applies no conditioning, so the denominator is the full VMT with no exposure approximation, and it is the default. The per-bucket options scale VMT by the share of station-hours in that bucket.

OptionMeaning
anyAll weather
dryClear/cloudy
rainRain
fogFog
winter_stormSnow & ice
How it is computed

An hour takes the condition of the station's SCHEDULED report rather than the worst report filed inside it, because the quantity wanted is the share of TIME in a condition and one instant sampled at a fixed offset estimates that without bias. Taking the worst of N reports estimates something larger, and larger the more often a station reports: it inflated rain hours by 1.06x at one report an hour and 1.80x at three. Where a measured traffic factor exists, the hour share is then converted to a share of MILES, since drivers travel less in bad weather: California rain hours carry 0.807 of their proportional traffic, so a rain denominator built from hour shares alone is about 24% too large and its rate correspondingly too low. Factors are measured for California and Pennsylvania; elsewhere the hour share is served unchanged and an adverse-condition rate should be read as a floor. They do not travel: Pennsylvania rain carries 0.956 of its proportional traffic against California's 0.808, because rain is routine there and drivers barely reduce travel for it. The compute response reports which basis was used in weather_exposure_basis. Thunderstorm (WMO 90-96) counts as RAIN, not as snow and ice. No crash source in the tool has a thunderstorm code, so an officer records one as rain, and leaving it on the snow side put hours in that denominator its numerator could never match: it was 22.9% of Philadelphia's snow hours, 99.6% of Houston's, and 100% of San Diego's and Sacramento's, which now report no snow exposure at all and so no rate. The buckets partition: a crash names one condition, so the four rates decompose the unconditioned one. Where a source files two weather fields, both are read and the result is resolved to a single bucket by the same severity rank the station-hours use (snow and ice over rain over fog), because an hour carrying several codes is counted once and the numerator has to match. 'fog' is offered here but the UI does not show it, and its rate should not be used: the officer's fog code and the station's fog report rarely describe the same hour. Joining California crashes to the nearest station's report, an officer coded fog in 4-23% of station-reported fog hours, against 47-59% for rain under the same join, and no visibility threshold closes the gap. The cause is that fog is not a county-scale condition there: two Bay Area stations 16 km apart agree on which hours are foggy only 2-7% of the time, so no officer could agree with the nearest one. Pennsylvania is different and still off: its stations agree on fog 19-36% of the time, but the county files 25 fog crashes a year, too few to check at all. 'winter_storm' is served for Philadelphia and offered but not shown elsewhere. California has too few hours to estimate exposure from, 125 station-hours against a 1,000-hour floor, so its factor is held at a neutral 1.0. Pennsylvania measures 0.753 on 22,420 hours, and its snow code tracks the station's report at 2.44x against a null of 0.99x, so the condition is served there. Because PennDOT publishes no day of month, that check joins a crash to every date in its (month, weekday) and scores the candidate mean, with a California city measured the same way for the reference (see scripts/analyze_weather_code_agreement.py). A list is accepted and its fractions are summed.

Light condition light_condition ​

Type: multi-select
Affects: both
Default: any

Ambient-light buckets. 'any' disables the filter. Superseded for reviewed regions by time_of_day, which conditions on the same thing with a calibrated denominator; the two cannot be combined.

OptionMeaning
anyAny
daylightDaylight
dawn_duskDawn / dusk
darkDark
How it is computed

Not offered in the UI, and a light-conditioned rate is uncalibrated: the buckets are shares of station-HOURS, and unlike the weather buckets no mile-share correction has been applied. Dark hours carry substantially less traffic than their share of the clock, so a dark denominator is too large and its rate too low, and daylight errs the other way. The crash-side classification itself is sound: solar geometry reproduces the officer's own light coding on 87.5% of California crashes, with bucket shares matching to 1.6pp. Selecting a light bucket together with a weather bucket multiplies the two shares as though they were independent, which they are not: fog and dark co-occur about 1.36x more often than the product implies.

Time of day time_of_day ​

Type: multi-select
Affects: both
Default: any

Local clock hours, e.g. ["h22","h23","h00"] for a window across midnight. A span is the set of hours in it, so it need not be contiguous. Selecting all 24 collapses to "any", since picking every hour conditions on nothing.

Options: any Any, h00 00:00, h01 01:00, h02 02:00, h03 03:00, h04 04:00, h05 05:00, h06 06:00, h07 07:00, h08 08:00, h09 09:00, h10 10:00, h11 11:00, h12 12:00, h13 13:00, h14 14:00, h15 15:00, h16 16:00, h17 17:00, h18 18:00, h19 19:00, h20 20:00, h21 21:00, h22 22:00, h23 23:00

How it is computed

The denominator comes from a weather-by-hour joint rather than two marginals multiplied: how often each condition occupies an hour, times how much traffic that hour carries (FHWA TMAS). Weather and hour are dependent by an amount that varies by city, so a product would be wrong by a knowable amount: an overnight hour is 1.23x as likely to be raining as independence implies in the Bay Area, and 0.98x in San Diego. Measured on clock hours rather than on solar darkness, which is entangled with season. Each weather bucket's 24 hours sum back to that bucket's own share, so turning this filter on cannot move a weather-only rate. The traffic curve follows ego_vehicle, blended by the miles the denominator counts for each class: in California heavy trucks drive 18.9% of their miles in 22:00-06:00 against cars' 12.3%, so serving one fleet's curve to another is worth about 1.5x on an overnight rate. The curves are per state: Pennsylvania reads 19.2% and 9.3% for the same two fleets. Two limits: the hour profile is measured statewide, so it carries no local or road-type shape, and it is served only where it has been reviewed. Cannot be combined with light_condition, which partitions the same day differently.

Day of week day_type ​

Type: single-select
Affects: both
Default: any

Weekday or weekend, where the weekend runs Friday 18:00 through Monday 05:59. Not the calendar weekend: Friday evening behaves like the weekend and Monday's small hours behave like Sunday night, and this is also the boundary Scanlon et al.

OptionMeaning
anyAny
weekdayWeekday
weekendWeekend
How it is computed

(2026) use, which is the only external benchmark for this axis. Selecting both collapses to "any". This shares one denominator with time_of_day rather than multiplying a separate share into it, because the two day types do not have the same shape across the day: a weekend 05:00 hour carries 0.56x what a weekday one does, while midnight carries 1.40x. Their 22:00-06:00 totals agree to 9%, so multiplying marginals would be a no-op across a wide window and about 2x wrong across a narrow one. Because the two arms recombine to the pooled hourly curve exactly, selecting both cannot move a time-of-day answer and selecting neither cannot move anything. Cannot be combined with light_condition, which conditions on the same clock. Served only where hourly exposure has been reviewed.

Crash year crash_year ​

Type: int (multi)
Affects: n
Default: 2022

Which year(s) of police-reported crash data feed the numerator. Geofence cities only (their units carry a crash_year column). Selecting multiple years pools their crashes and scales the denominator by the number of years, so the rate stays an annual mean.

Options: 2022, 2023, 2024, 2025

How it is computed

The listed years are advertised, not region-validated: years absent from a region are silently ignored, so asking for one returns N=0. Coverage is not uniform. Most regions carry 2022-2024, and Miami-Dade carries 2023-2025. Omit the field to get each region's own default, which is what /v1/regions and the UI use.

Route ​

Outcome outcome ​

Type: single-select
Affects: n
Default: police_reported

What kind of crash to count. Each outcome is a subset of police-reported.

OptionMeaning
police_reportedPolice-reported
observed_any_injuryAny reported injury
airbagAny airbag deployment
ego_airbagEgo airbag deployment
kaSerious+ (K or A)
fatalFatal (K)

Minimum damage severity severity ​

Type: int
Affects: n
Default: 1

Minimum CRIS vehicle-damage rating (1–7) a unit must have to be counted. Ignored for SF (SWITRS records no damage rating).

Options: 1, 2, 3, 4, 5, 6, 7

Under-reporting adjustment under_reporting ​

Type: single-select
Affects: n
Default: none

Apply Blincoe et al. 2023 NHTSA under-reporting multipliers (PDO ×2.48, non-fatal injury ×1.47, fatal ×1.0).

OptionMeaning
noneNone (unadjusted)
adjustedAdjusted (Blincoe et al. 2023)

In-transport in_transport ​

Type: single-select
Affects: n
Default: in_transport

Whether to exclude parked vehicles (Vehicle Parked Flag).

OptionMeaning
in_transportIn-transport only
include_allInclude parked

Ego vehicle type ego_vehicle ​

Type: multi-select
Affects: both
Default: combination

Vehicle classes to count and to size the exposure denominator against.

OptionMeaning
carsCars
light_trucksLight trucks
combinationCombination trucks (Class 8 / tractor-trailer)
motorcyclesMotorcycles
busesBuses
otherOther

Unresolved vehicle class unresolved_nfs ​

Type: single-select
Affects: both
Default: marginal

How to treat units whose vehicle class could not be resolved (NFS tier 3).

OptionMeaning
marginalUse observed class share
noneExclude
allInclude at full weight

Weather weather ​

Type: multi-select
Affects: both
Default: any

Weather buckets (NOAA-derived). 'any' applies no conditioning, so the denominator is the full VMT with no exposure approximation, and it is the default. The per-bucket options scale VMT by the share of station-hours in that bucket.

OptionMeaning
anyAll weather
dryClear/cloudy
rainRain
fogFog
winter_stormSnow & ice
How it is computed

An hour takes the condition of the station's SCHEDULED report rather than the worst report filed inside it, because the quantity wanted is the share of TIME in a condition and one instant sampled at a fixed offset estimates that without bias. Taking the worst of N reports estimates something larger, and larger the more often a station reports: it inflated rain hours by 1.06x at one report an hour and 1.80x at three. Where a measured traffic factor exists, the hour share is then converted to a share of MILES, since drivers travel less in bad weather: California rain hours carry 0.807 of their proportional traffic, so a rain denominator built from hour shares alone is about 24% too large and its rate correspondingly too low. Factors are measured for California and Pennsylvania; elsewhere the hour share is served unchanged and an adverse-condition rate should be read as a floor. They do not travel: Pennsylvania rain carries 0.956 of its proportional traffic against California's 0.808, because rain is routine there and drivers barely reduce travel for it. The compute response reports which basis was used in weather_exposure_basis. Thunderstorm (WMO 90-96) counts as RAIN, not as snow and ice. No crash source in the tool has a thunderstorm code, so an officer records one as rain, and leaving it on the snow side put hours in that denominator its numerator could never match: it was 22.9% of Philadelphia's snow hours, 99.6% of Houston's, and 100% of San Diego's and Sacramento's, which now report no snow exposure at all and so no rate. The buckets partition: a crash names one condition, so the four rates decompose the unconditioned one. Where a source files two weather fields, both are read and the result is resolved to a single bucket by the same severity rank the station-hours use (snow and ice over rain over fog), because an hour carrying several codes is counted once and the numerator has to match. 'fog' is offered here but the UI does not show it, and its rate should not be used: the officer's fog code and the station's fog report rarely describe the same hour. Joining California crashes to the nearest station's report, an officer coded fog in 4-23% of station-reported fog hours, against 47-59% for rain under the same join, and no visibility threshold closes the gap. The cause is that fog is not a county-scale condition there: two Bay Area stations 16 km apart agree on which hours are foggy only 2-7% of the time, so no officer could agree with the nearest one. Pennsylvania is different and still off: its stations agree on fog 19-36% of the time, but the county files 25 fog crashes a year, too few to check at all. 'winter_storm' is served for Philadelphia and offered but not shown elsewhere. California has too few hours to estimate exposure from, 125 station-hours against a 1,000-hour floor, so its factor is held at a neutral 1.0. Pennsylvania measures 0.753 on 22,420 hours, and its snow code tracks the station's report at 2.44x against a null of 0.99x, so the condition is served there. Because PennDOT publishes no day of month, that check joins a crash to every date in its (month, weekday) and scores the candidate mean, with a California city measured the same way for the reference (see scripts/analyze_weather_code_agreement.py). A list is accepted and its fractions are summed.

Light condition light_condition ​

Type: multi-select
Affects: both
Default: any

Ambient-light buckets. 'any' disables the filter. Superseded for reviewed regions by time_of_day, which conditions on the same thing with a calibrated denominator; the two cannot be combined.

OptionMeaning
anyAny
daylightDaylight
dawn_duskDawn / dusk
darkDark
How it is computed

Not offered in the UI, and a light-conditioned rate is uncalibrated: the buckets are shares of station-HOURS, and unlike the weather buckets no mile-share correction has been applied. Dark hours carry substantially less traffic than their share of the clock, so a dark denominator is too large and its rate too low, and daylight errs the other way. The crash-side classification itself is sound: solar geometry reproduces the officer's own light coding on 87.5% of California crashes, with bucket shares matching to 1.6pp. Selecting a light bucket together with a weather bucket multiplies the two shares as though they were independent, which they are not: fog and dark co-occur about 1.36x more often than the product implies.

Driver impairment driver_impairment ​

Type: single-select
Affects: n
Default: any

Filter by driver-impairment coding. Route and depot modes only.

OptionMeaning
anyAny
exclude_impairedExclude impaired
impaired_onlyImpaired only

Confidence-interval method ci_method ​

Type: single-select
Affects: rate
Default: fay_feuer

Method for the 95% CI in route / depot modes.

OptionMeaning
fay_feuerFay-Feuer (weighted Poisson)
empirical_bayesEmpirical Bayes (Gamma-Poisson)

Depot ​

Outcome outcome ​

Type: single-select
Affects: n
Default: police_reported

What kind of crash to count. Each outcome is a subset of police-reported.

OptionMeaning
police_reportedPolice-reported
observed_any_injuryAny reported injury
airbagAny airbag deployment
ego_airbagEgo airbag deployment
kaSerious+ (K or A)
fatalFatal (K)

Minimum damage severity severity ​

Type: int
Affects: n
Default: 1

Minimum CRIS vehicle-damage rating (1–7) a unit must have to be counted. Ignored for SF (SWITRS records no damage rating).

Options: 1, 2, 3, 4, 5, 6, 7

Under-reporting adjustment under_reporting ​

Type: single-select
Affects: n
Default: none

Apply Blincoe et al. 2023 NHTSA under-reporting multipliers (PDO ×2.48, non-fatal injury ×1.47, fatal ×1.0).

OptionMeaning
noneNone (unadjusted)
adjustedAdjusted (Blincoe et al. 2023)

In-transport in_transport ​

Type: single-select
Affects: n
Default: in_transport

Whether to exclude parked vehicles (Vehicle Parked Flag).

OptionMeaning
in_transportIn-transport only
include_allInclude parked

Ego vehicle type ego_vehicle ​

Type: multi-select
Affects: both
Default: combination

Vehicle classes to count and to size the exposure denominator against.

OptionMeaning
carsCars
light_trucksLight trucks
combinationCombination trucks (Class 8 / tractor-trailer)
motorcyclesMotorcycles
busesBuses
otherOther

Unresolved vehicle class unresolved_nfs ​

Type: single-select
Affects: both
Default: marginal

How to treat units whose vehicle class could not be resolved (NFS tier 3).

OptionMeaning
marginalUse observed class share
noneExclude
allInclude at full weight

Weather weather ​

Type: multi-select
Affects: both
Default: any

Weather buckets (NOAA-derived). 'any' applies no conditioning, so the denominator is the full VMT with no exposure approximation, and it is the default. The per-bucket options scale VMT by the share of station-hours in that bucket.

OptionMeaning
anyAll weather
dryClear/cloudy
rainRain
fogFog
winter_stormSnow & ice
How it is computed

An hour takes the condition of the station's SCHEDULED report rather than the worst report filed inside it, because the quantity wanted is the share of TIME in a condition and one instant sampled at a fixed offset estimates that without bias. Taking the worst of N reports estimates something larger, and larger the more often a station reports: it inflated rain hours by 1.06x at one report an hour and 1.80x at three. Where a measured traffic factor exists, the hour share is then converted to a share of MILES, since drivers travel less in bad weather: California rain hours carry 0.807 of their proportional traffic, so a rain denominator built from hour shares alone is about 24% too large and its rate correspondingly too low. Factors are measured for California and Pennsylvania; elsewhere the hour share is served unchanged and an adverse-condition rate should be read as a floor. They do not travel: Pennsylvania rain carries 0.956 of its proportional traffic against California's 0.808, because rain is routine there and drivers barely reduce travel for it. The compute response reports which basis was used in weather_exposure_basis. Thunderstorm (WMO 90-96) counts as RAIN, not as snow and ice. No crash source in the tool has a thunderstorm code, so an officer records one as rain, and leaving it on the snow side put hours in that denominator its numerator could never match: it was 22.9% of Philadelphia's snow hours, 99.6% of Houston's, and 100% of San Diego's and Sacramento's, which now report no snow exposure at all and so no rate. The buckets partition: a crash names one condition, so the four rates decompose the unconditioned one. Where a source files two weather fields, both are read and the result is resolved to a single bucket by the same severity rank the station-hours use (snow and ice over rain over fog), because an hour carrying several codes is counted once and the numerator has to match. 'fog' is offered here but the UI does not show it, and its rate should not be used: the officer's fog code and the station's fog report rarely describe the same hour. Joining California crashes to the nearest station's report, an officer coded fog in 4-23% of station-reported fog hours, against 47-59% for rain under the same join, and no visibility threshold closes the gap. The cause is that fog is not a county-scale condition there: two Bay Area stations 16 km apart agree on which hours are foggy only 2-7% of the time, so no officer could agree with the nearest one. Pennsylvania is different and still off: its stations agree on fog 19-36% of the time, but the county files 25 fog crashes a year, too few to check at all. 'winter_storm' is served for Philadelphia and offered but not shown elsewhere. California has too few hours to estimate exposure from, 125 station-hours against a 1,000-hour floor, so its factor is held at a neutral 1.0. Pennsylvania measures 0.753 on 22,420 hours, and its snow code tracks the station's report at 2.44x against a null of 0.99x, so the condition is served there. Because PennDOT publishes no day of month, that check joins a crash to every date in its (month, weekday) and scores the candidate mean, with a California city measured the same way for the reference (see scripts/analyze_weather_code_agreement.py). A list is accepted and its fractions are summed.

Light condition light_condition ​

Type: multi-select
Affects: both
Default: any

Ambient-light buckets. 'any' disables the filter. Superseded for reviewed regions by time_of_day, which conditions on the same thing with a calibrated denominator; the two cannot be combined.

OptionMeaning
anyAny
daylightDaylight
dawn_duskDawn / dusk
darkDark
How it is computed

Not offered in the UI, and a light-conditioned rate is uncalibrated: the buckets are shares of station-HOURS, and unlike the weather buckets no mile-share correction has been applied. Dark hours carry substantially less traffic than their share of the clock, so a dark denominator is too large and its rate too low, and daylight errs the other way. The crash-side classification itself is sound: solar geometry reproduces the officer's own light coding on 87.5% of California crashes, with bucket shares matching to 1.6pp. Selecting a light bucket together with a weather bucket multiplies the two shares as though they were independent, which they are not: fog and dark co-occur about 1.36x more often than the product implies.

Driver impairment driver_impairment ​

Type: single-select
Affects: n
Default: any

Filter by driver-impairment coding. Route and depot modes only.

OptionMeaning
anyAny
exclude_impairedExclude impaired
impaired_onlyImpaired only

Confidence-interval method ci_method ​

Type: single-select
Affects: rate
Default: empirical_bayes

Method for the 95% CI in route / depot modes.

OptionMeaning
fay_feuerFay-Feuer (weighted Poisson)
empirical_bayesEmpirical Bayes (Gamma-Poisson)

Region / mode matrix ​

RegionGeofenceRouteDepot
travis✅--
houston✅--
sanantonio✅--
dallas✅--
sf✅--
la✅--
phoenix✅--
vegas✅--
sandiego✅--
sacramento✅--
philadelphia✅--
boston✅--
cambridge✅--
worcester✅--
dc✅--
polk✅--
johnson✅--
chicago✅--
miami✅--
orlando✅--
tampa✅--
nashville✅--
tokyo✅--
denver✅--
interstates-✅✅

Derived statistics only. Attribute every published figure. Maintained by Valgo.