OvertureMaps / OvertureMaps/schema
[FEATURE] Add travel_time property to water segments
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 213
- Forks
- 22
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 31
Description
Type
Task
Scope
Transportation
Skillset
engineering
Description
What / Why
Parent issue: OvertureMaps/tf-data-platform#5067
OSM ferry ways (route=ferry) may carry a duration=* tag (e.g. duration=00:15 for a 15-minute crossing), which routing engines use to compute ferry travel time. Overture currently drops this information: subtype=water segments have no property that can hold crossing time (or any speed/time information), so routers consuming Overture fall back to a default ferry speed (~5 km/h). Car ferries end up either avoided by routing or with wildly inflated ETAs.
The schema working group has agreed the correct fix is a new travel_time property on the water subtype, rather than overloading speed_limits (a crossing duration includes docking/loading and is not a speed limit).
Requested schema alteration
In schema/transportation/segment.yaml, the water branch of the oneOf is currently a placeholder:
- title: "Water-Specific Properties" # Placeholder for future water properties
properties:
subtype: { const: water }
Add a travel_time property to this branch, e.g.:
- title: "Water-Specific Properties"
properties:
subtype: { const: water }
travel_time: { "$ref": "#/$defs/propertyDefinitions/travelTime" }
Design points for the working group to settle:
- Type/units: suggest an integer number of seconds (or an ISO 8601 duration string mirroring OSM
durationsemantics). Seconds is simplest for consumers. - Semantics: scheduled end-to-end crossing time for the full segment, including docking/loading — matching the OSM
durationtag it is sourced from. - Scoping: flat value vs. a rules container (geometric/temporal scoping). A flat value likely suffices for ferry crossings; full linear referencing seems unnecessary.
- Applicability: water-only for now, or defined as a reusable property container in
defs.yamlin case rail/road use cases emerge later.
Data context
- Latest release (2026-08-19.0) has 29,138
subtype=watersegments, none with speed/time info. - Switzerland example from community feedback: 65 of 562 OSM ferry ways carry
duration.
Acceptance criteria
travel_timeproperty added to the water subtype insegment.yamlwith agreed type, units, and semantics- Property documented (description +
$commentwhere appropriate) and covered by schema examples/counterexamples per repo conventions - Downstream pipeline work to populate it is tracked in OvertureMaps/tf-data-platform#5067
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in schema/transportation/segment.yaml at the water branch and review the reusable travel-time definitions in defs.yaml, along with nearby schema examples and counterexamples. Resolve the type, units, semantics, and scoping choices, then add the documented property and examples required by the acceptance criteria; downstream population is tracked in OvertureMaps/tf-data-platform#5067.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- yaml
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100