OvertureMaps / OvertureMaps/schema

[FEATURE] Add travel_time property to water segments

Open
#711 1 comment 0 reactions 0 assignees View on GitHub

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 duration semantics). Seconds is simplest for consumers.
  • Semantics: scheduled end-to-end crossing time for the full segment, including docking/loading — matching the OSM duration tag 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.yaml in case rail/road use cases emerge later.

Data context

  • Latest release (2026-08-19.0) has 29,138 subtype=water segments, none with speed/time info.
  • Switzerland example from community feedback: 65 of 562 OSM ferry ways carry duration.

Acceptance criteria

  • travel_time property added to the water subtype in segment.yaml with agreed type, units, and semantics
  • Property documented (description + $comment where 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.