Train: REM

Documentation on this page is aligned to REM methodology v2.4 (integration and Calculation API payloads). Use "methodology": "REM" in all new integrations. The legacy value "SQUAKE" is still accepted as an alias and is normalized to REM by the API.

If you omit methodology on a train item, the API defaults to REM for that item.


Overview

REM is an operator- and country-aware rail methodology. It selects an emission factor (grams COβ‚‚e per passenger-kilometre) using a deterministic tiered resolver, then multiplies by distance and passenger count.

Supplying operator_name, ISO country codes, departure_date, and energy_scope when you have them improves tier matching and makes results easier to audit.


Factor resolution (tiers)

REM applies this order:

  1. Tier 1 β€” Operator-reported Used when operator_name matches operator-specific factors for the requested energy_scope, train_type, and (when needed) fuel_type / year.

  2. Tier 2 β€” Not used Tier 2 (operator traction-mix proxy) is not implemented in production and is intentionally skipped. If Tier 1 does not match, resolution continues with Tier 3. Do not expect a Tier 2 step in the fallback chain.

  3. Tier 3 β€” Country-published Uses country-level methodology data when Tier 1 does not apply and a country context is available (see Country context below).

  4. Tier 4 β€” Activity-based Uses fuel, traction mix, and electricity carbon intensity data for the country / region when Tier 3 does not yield a factor.

  5. Tier 5 β€” Global constant Well-to-wheel global rail averages (IEA-based constants), with a pre/post cut-off driven by departure_date when present.

Country context for Tiers 3–4: The resolver uses origin_country if set, otherwise destination_country (both optional). Values should be ISO 3166-1 alpha-2 (e.g. DE, SE). The API accepts other resolvable country inputs and normalizes to alpha-2 where possible (e.g. UK β†’ GB). If neither country field is available, Tier 1 may still apply; otherwise resolution falls through toward Tier 5.

Factor tables are maintained as CSV bundles backing REM; methodology and data lineage are described in your internal REM v2.4 source document and operator-factor exports.


Distance handling

You must provide one of the following (after validation):

  • origin and destination (resolved to a route distance), or

  • distance_in_km (positive number), or

  • route_coords: an array of at least two [longitude, latitude] pairs (WGS84). Longitude must be in [-180, 180], latitude in [-90, 90].

Precedence: If distance_in_km is set together with origin / destination, distance_in_km is used for the calculation distance.

Corrections:

  • If you send route_coords, the API computes a border-aware path distance (per-country segments, train-type detour factor from REM data). That total becomes the distance used for emissions; no additional β€œair distance” correction is applied on top.

  • If you send distance_in_km without route_coords, REM still applies the air-distance correction used for straight-line or user-supplied distances (so driven distance is consistent with the methodology).

  • For audit / debugging, expanded item metadata may include a border_distance_breakdown when route_coords were used (sequential segments and totals per ISO alpha-3 country). If some segments cannot be attributed to a country, a warning may be present.


Sample API Requests

A. Without audit mode (for pre-booking/quotes)

B. With audit mode (for finalized/post-booking calculations)

Note: audit_for is optional. Provide it when calculating on behalf of a specific Auditable entity; otherwise omit.

C. Route path (route_coords) without origin/destination

When route_coords is valid, origin and destination are not required for distance validation.


API request fields

  • type: "train" (required).

  • methodology: "REM" recommended. "SQUAKE" is accepted as a legacy alias. If omitted, the API defaults train items to REM.

  • external_reference: Unique id for the item in the request (helps map results to inputs). Max length 128 characters.

  • number_of_travelers: Integer β‰₯ 1. Default 1.

  • origin, destination: Location strings as in other train methodologies (addresses, IATA/ICAO, UN/LOCODE, coordinates, UIC/provider codes β€” see Origin/destination formats below). Required unless you supply distance_in_km or valid route_coords.

  • distance_in_km: Optional. If provided together with origin / destination, this value wins. Subject to REM air-distance correction unless route_coords are used.

  • route_coords: Optional. Array of [lon, lat] pairs; minimum 2 points. Each pair must have exactly two numbers. Used for border-aware distance and detour factor.

  • train_type: One of: average, high_speed, intercity, regional, long_distance, tram, metro, light_rail. API default when omitted: high_speed.

  • fuel_type: diesel, electricity, hydrogen, hybrid. Default diesel. Used for Tier 1 disambiguation when an operator has multiple fuel rows, and for Tier 4 modelling where applicable.

  • seat_type: first_class or second_class. Default first_class.

  • operator_name: Optional; enables Tier 1 when the operator exists in the REM operator database. See the supported operators databasearrow-up-right.

  • departure_date: Optional. ISO 8601 calendar date only: YYYY-MM-DD (date-only, not a full timestamp). Used to select year-matched factors. If invalid, the API returns: Departure date '<value>' is not a valid ISO-8601 date.

  • origin_country, destination_country: Optional. ISO 3166-1 alpha-2 recommended (e.g. DE, FR). Other resolvable country strings may be accepted and normalized to alpha-2. Invalid codes return a parameter error. For country-based tiers, origin_country is preferred over destination_country when both are set.

  • energy_scope: wtw (well-to-wheel, default) or ttw (tank-to-wheel). Invalid values return an error listing allowed scopes.

  • audit: Optional boolean for immutable audit records (feature must be enabled for your account).


Origin/destination formats (enriched)

We will try to resolve origin / destination regardless of format. Ideally:

  • Addresses: Post/standard postal format.

  • Airports: IATA/ICAO (^[A-Z]{3,4}$, e.g. MUC).

  • Ports / trade: UN/LOCODE (^[A-Z]{2}\W?[A-Z2-9]{3}$, e.g. DEHAM).

  • Coordinates: ^[-+]?\d{1,3}\.\d{1,10}\s?,\s?[-+]?\d{1,3}\.\d{1,10}$ (e.g. "+40.712,-74.006").

UIC and provider codes

  • Invalid or unsupported codes may trigger fallback to more generic factors (non-journey-specific).

  • Format: <provider>:<uic_code> (e.g. sncf:FRAAA).

  • Possible provider prefixes: uic, uic8_sncf, sncf, sncf_tvs, entur, db, busbud, distribusion, flixbus, cff, leoexpress, obb, trenitalia, trenitalia_rtvt, trenord, ntv_rtiv, ntv, hkx, renfe, atoc, benerail, westbahn.

Examples

Notes

  • If both origin/destination and distance_in_km are provided, distance_in_km is used.

  • Unresolvable locations produce validation errors or methodology fallbacks as described for train generally.


Sample API response

When you expand items, each train item may include algorithm_specifics describing the resolved REM tier and matched metadata (for example tier, energy_scope, gco2e_per_pax_km, year_matched, country_matched, operator_matched, source_links, and resolver details). Exact shape follows the live API.

The numeric / string formatting of algorithm_specifics fields matches the production API; treat gco2e_per_pax_km as a decimal string or number per response schema.


Bibliography

  • "Which Form of Transport Has the Smallest Carbon Footprint?" Our World in Data, ourworldindata.org/travel-carbon-footprint.

  • CO2- Berechnung GeschΓ€ftsreise VDR-Standard Teil I (2016, March). VDR. Retrieved from https://www.atmosfair.de/wp-content/uploads/vdr_reportingstandard_teil1_30032016-1.pdf

  • CO2- Berechnung GeschΓ€ftsreise VDR-Standard Teil II (2016, March). VDR. Retrieved from https://www.atmosfair.de/wp-content/uploads/vdr_reportingstandard_teil2_30032016.pdf

  • VDR standard CO2 calculation for business trips (n.d.). VDR. Retrieved from https://www.vdr-service.de/arbeitsvorlagen/vdr-standard-co2-berechnung-geschaeftsreise

  • Thistlethwaite, G., et al. (2022, June). 2022 Government Greenhouse Gas Conversion Factors for Company Reporting. Department for Business, Energy, & Industrial Strategy. Retrieved from https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/1083857/2022-ghg-cf-methodology-paper.pdf

  • Environmental Mobility Check. nachhaltigkeit.deutschebahn.com/en/measures/environmental-mobility-check.

  • Polkinghorne, John. "Public Transport Emissions in NZ." Greater Auckland, 13 Dec. 2013, www.greaterauckland.org.nz/2013/07/19/public-transport-emissions-in-nz.

  • Ngila, Faustine. "Tanzania's New Electric Rail Will Help It Cut Carbon Emissions." Quartz, 20 July 2022, qz.com/africa/2185031/tanzanias-new-electric-rail-will-help-it-cut-carbon-emissions.

  • Miller, C. Andrew. "Savings in Per-passenger CO2 Emissions Using Rail Rather Than Air Travel in the Northeastern U.S." Journal of the Air &Amp; Waste Management Association, vol. 71, no. 12, Informa UK Limited, Sept. 2021, pp. 1458–71. https://doi.org/10.1080/10962247.2020.1837996.

Last updated