Models & types
All request and response types are Pydantic models exported from the package top level:
from humanbaselines import (
GeofenceSelections, RouteSelections, DepotSelections, DepotPin,
ComputeResult, PerCellResult, BatchComputeResult, BatchItemResult,
RouteComputeResult, PerSegmentResult,
DepotComputeResult, FiltersResponse, FilterDef, FilterOption,
RegionsResponse, RegionInfo,
)Generated from the API
These types are generated from the server's OpenAPI schema. The server's Pydantic models are the single source of truth, so the client cannot drift from the API. filters() is the authoritative runtime source for valid values and defaults.
Request models (selections)
One per mode. Pass an instance via selections=, or use keyword args. All use extra="forbid", so an unknown field raises locally before any request.
| Model | Used by | Notable fields |
|---|---|---|
GeofenceSelections | compute | outcome, severity, ego_vehicle, road_type, weather, light_condition, crash_year, desk_reports, denominator_vmt, operator_weighting, operator_weight, … |
RouteSelections | compute_route | outcome, ego_vehicle (defaults ["combination"]), weather, driver_impairment, ci_method, … |
DepotSelections | compute_depot_route | same shape as RouteSelections |
DepotPin | compute_depot_route | lat, lon |
from humanbaselines import GeofenceSelections, Outcome
sel = GeofenceSelections(outcome=Outcome.fatal, road_type=["interstate"])
hb.compute(selections=sel)Response models
| Model | Returned by | Key fields |
|---|---|---|
ComputeResult | compute | N, D_miles, D_billions, rate, rate_low/high, rate_non_dyn, rate_dyn, multiplier, cells (empty when summary_only) |
PerCellResult | ComputeResult.cells | s2_cell, count, vmt, mult_contrib |
BatchComputeResult | compute_batch | results: list[BatchItemResult] (same order as requested regions) |
BatchItemResult | BatchComputeResult.results | region, result (ComputeResult | None), error (str | None) |
RouteComputeResult | compute_route | N, trip_miles, rate, rate_low/high, variance, segments |
PerSegmentResult | RouteComputeResult.segments | route, milepost, count, vmt, length_mi |
DepotComputeResult | compute_depot_route | access_a, interstate, access_b, total, depot_a/b, vertices (permissive) |
FiltersResponse | filters | modes: dict[str, list[FilterDef]] |
RegionsResponse | regions | regions: list[RegionInfo], default_region |
Enums
String enums for filter values. They accept the enum member or its string value interchangeably:
Outcome, VehicleClass, RoadGroup, Tier3Mode, InTransport, OperatorWeighting, MultiplierVmt, UnderReporting, WeatherFilter, LightFilter, DriverImpairment, CiMethod.
from humanbaselines import Outcome
hb.compute(outcome=Outcome.fatal) # same as outcome="fatal"The newest filters (desk_reports, day_type, time_of_day) have no exported enum yet, so pass their values as strings.
The live option lists and per-mode defaults are on the Discovery page.