Mobility Demand Exchange Specification

Open specification · Draft 0.3

One shared format for how people move.

A mode-neutral, aggregation-neutral model for publishing mobility demand — counts, origin/destination flows, routed movements, and standalone mode-share statistics — so it can be validated, compared, and converted without a bespoke format per source.

Sensor count observed Household survey estimated MATSim run modelled Scraped listing reported Demand Observation GTFS MDS OMX GeoJSON

Why this exists

Demand data doesn't have a home format

Adjacent standards each solve a different, narrower problem — none of them model mobility demand itself, at every level of detail it's actually published at.

GTFS

Describes scheduled supply — routes, stops, timetables. It has no way to carry an observed or modelled demand figure at all.

MDS

Captures individual shared-mobility trip records for regulatory reporting — not aggregate counts, survey-expanded totals, or standalone mode-share statistics.

OMX

A matrix container for OD data — efficient storage, but no shared metadata model for provenance, uncertainty, privacy status, or mode.

Scope

Six ways to describe demand

Every record is a DemandObservation — the same core model, at whatever level of detail a source actually publishes.

count

Count

A quantity observed at a point, link, stop, or station — e.g. cyclists passing a counter.

origin_total

Origin total

Trips or movements beginning at a spatial object — e.g. person-trips originating in a zone.

destination_total

Destination total

Trips or movements ending at a spatial object over a stated period.

od_flow

Origin–destination flow

A quantity moving between an origin and a destination — a zone-to-zone matrix cell.

routed_flow

Routed flow

An OD flow associated with a route — a geometry, link sequence, or timestamped trajectory.

modal_share

Modal share

A standalone aggregated mode share, published on its own without requiring the underlying per-mode records.

Design principles

What the model has to hold true

Mode-neutral

Walking, cycling, private vehicles, public transport, shared mobility, freight, and modes not yet defined.

Aggregation-neutral

One observed trip, an expanded survey, a modelled estimate, and a standalone aggregate share — one model.

Source-transparent

Every record states whether it's observed, reported, estimated, imputed, modelled, simulated, or synthetic.

Privacy-aware

Built for aggregation, suppression, and generalization. Never requires personal data.

Compatible, not competing

Maps to GTFS-ride, DATEX II, MDS, OMX, GMNS, MATSim, SUMO — doesn't replace what already works.

Extensible

Publishers add domain-specific fields through namespaced extensions, without changing core meaning.

Schema

What a record looks like

A standalone modal-share record — five rows like this, one per mode, is a complete, valid dataset on its own.

{
  "demand_type": "modal_share",
  "measure": {
    "value": 0.42,
    "unit": "percentage",
    "statistic": "share",
    "denominator": {
      "population": "residents",
      "included_modes": ["car", "public_transport", "cycling", "walking", "other"]
    }
  },
  "dimensions": { "mode": "car" },
  "methodology": { "data_status": "modelled", "collection_method": "simulation" },
  "privacy": { "privacy_level": "open_aggregate" }
}

Where this stands

Working draft, in public review

Version 0.3 · core model and vocabulary stable, open items tracked publicly, not yet a ratified 1.0.

Spec & JSON Schema

Normative conceptual model, JSON Schema, and worked examples for all six demand types.

Reference validator & CSV profile

A permissively licensed validator, plus a tabular profile with defined flattening rules.

Mapping guides

Documented conversions to and from GTFS-ride, DATEX II, MDS, OMX, and MATSim outputs.

Implementer registry

A directory of organizations publishing or consuming MDES-formatted data — once there are enough to list.

Governance

Open by design, not by slogan

  • Openly governed — no single vendor controls direction
  • Publicly documented decisions and changelog
  • Implementation-driven — changes reviewed against real datasets
  • Versioned, with backward compatibility as a stated goal
  • Licensed for unrestricted public implementation
  • Proposals and issues handled in the open

Publishing or consuming mobility demand data?

We're looking for early implementers to pressure-test the spec against real datasets before 1.0.

Get in touch