Package google.travel.sustainability.travelimpactmodel.v1

  • The Travel Impact Model API provides carbon emission estimates for flights.

  • The API's primary function is ComputeFlightEmissions, which takes flight details and returns estimated emissions per passenger, per class.

  • Emission estimates consider factors like origin, destination, carrier, flight number, and departure date.

  • The API utilizes a specific Travel Impact Model with versioning for methodology, parameters, implementation, and datasets.

  • Requests can include up to 1000 flight legs and may return empty emission fields if data is unavailable for a specific leg.

Index

TravelImpactModelService

API to provide carbon emission estimates.

ComputeFlightEmissions

rpc ComputeFlightEmissions(ComputeFlightEmissionsRequest) returns (ComputeFlightEmissionsResponse)

Stateless method to retrieve emission estimates. Details on how emission estimates are computed are in GitHub

The response will contain all entries that match the input flight legs, in the same order. If there are no estimates available for a certain flight leg, the response will return the flight leg object with empty emission fields. The request will still be considered successful. Reasons for missing emission estimates include:

  • The flight is unknown to the server.
  • The input flight leg is missing one or more identifiers.
  • The flight date is in the past.
  • The aircraft type is not supported by the model.
  • Missing seat configuration.

The request can contain up to 1000 flight legs. If the request has more than 1000 direct flights, if will fail with an INVALID_ARGUMENT error.

ComputeScope3FlightEmissions

rpc ComputeScope3FlightEmissions(ComputeScope3FlightEmissionsRequest) returns (ComputeScope3FlightEmissionsResponse)

Stateless method to retrieve GHG emissions estimates for a set of flight segments for Scope 3 reporting.

The response will contain all entries that match the input Scope3FlightSegment flight segments, in the same order provided. The estimates will be computed using the following cascading logic (using the first one that is available):

  1. TIM-based emissions given origin, destination, carrier, flightNumber, departureDate, and cabinClass.
  2. Typical flight emissions given origin, destination, year in departureDate, and cabinClass.
  3. Distance-based emissions calculated using distanceKm, year in departureDate, and cabinClass.

If there is a future flight requested in this calendar year, we do not support Tier 1 emissions and will fallback to Tier 2 or 3 emissions. If the requested future flight is in not in this calendar year, we will return an empty response. We recommend that for future flights, computeFlightEmissions API is used instead.

If there are no estimates available for a certain flight with any of the three methods, the response will return a Scope3FlightEmissions object with empty emission fields. The request will still be considered successful. Generally, missing emissions estimates occur when the flight is unknown to the server (e.g. no specific flight exists, or typical flight emissions are not available for the requested pair).

The request will fail with an INVALID_ARGUMENT error if:

  • The request contains more than 1,000 flight legs.
  • The input flight leg is missing one or more identifiers. For example, missing origin/destination without a valid distance for TIM_EMISSIONS or TYPICAL_FLIGHT_EMISSIONS type matching, or missing distance for a DISTANCE_BASED_EMISSIONS type matching (if you want to fallback to distance-based emissions or want a distance-based emissions estimate, you need to specify a distance).
  • The flight date is before 2019 (Scope 3 data is only available for 2019 and after).
  • The flight distance is 0 or lower.
  • Missing cabin class.

Because the request is processed with fallback logic, it is possible that misconfigured requests return valid emissions estimates using fallback methods. For example, if a request has the wrong flight number but specifies the origin and destination, the request will still succeed, but the returned emissions will be based solely on the typical flight emissions. Similarly, if a request is missing the origin for a typical flight emissions request, but specifies a valid distance, the request could succeed based solely on the distance-based emissions. Consequently, one should check the source of the returned emissions (source) to confirm the results are as expected.

ComputeTypicalFlightEmissions

rpc ComputeTypicalFlightEmissions(ComputeTypicalFlightEmissionsRequest) returns (ComputeTypicalFlightEmissionsResponse)

Retrieves typical flight emissions estimates between two airports, also known as a market. If there are no estimates available for a certain market, the response will return the market object with empty emission fields. The request will still be considered successful.

Details on how the typical emissions estimates are computed are on GitHub.

The request can contain up to 1000 markets. If the request has more than 1000 markets, it will fail with an INVALID_ARGUMENT error.

ComputeFlightEmissionsRequest

Input definition for the ComputeFlightEmissions request.

Fields
flights[]

Flight

Required. Direct flights to return emission estimates for.

ComputeFlightEmissionsResponse

Output definition for the ComputeFlightEmissions response.

Fields
flight_emissions[]

FlightWithEmissions

List of flight legs with emission estimates.

model_version

ModelVersion

The model version under which emission estimates for all flights in this response were computed.

ComputeScope3FlightEmissionsRequest

A list of flight segments to request the Scope 3 emissions for.

Fields
flights[]

Scope3FlightSegment

Required. Flights to return emission estimates for.

model_version

ModelVersion

Optional. The model version under which emission estimates for all flights in this request were computed.

ComputeScope3FlightEmissionsResponse

A list of flights with Scope 3 emission estimates.

Fields
flight_emissions[]

Scope3FlightEmissions

List of flight segments with emission estimates.

model_version

ModelVersion

The model version under which emission estimates for all flights in this response were computed.

ComputeTypicalFlightEmissionsRequest

A list of pair of airports (markets) to request the typical emissions for.

Fields
markets[]

Market

Required. Request the typical flight emissions estimates for this market pair. A maximum of 1000 markets can be requested.

ComputeTypicalFlightEmissionsResponse

The response includes the emissions but also the model version.

Fields
typical_flight_emissions[]

TypicalFlightEmissions

Market's Typical Flight Emissions requested.

model_version

ModelVersion

The model version under which typical flight emission estimates for all flights in this response were computed.

ContrailsImpactBucket

The significance of contrails warming impact compared to the total CO2e emissions impact.

Enums
CONTRAILS_IMPACT_UNSPECIFIED The contrails impact is unspecified.
CONTRAILS_IMPACT_NEGLIGIBLE The contrails impact is negligible compared to the total CO2e emissions.
CONTRAILS_IMPACT_MODERATE The contrails impact is comparable to the total CO2e emissions.
CONTRAILS_IMPACT_SEVERE The contrails impact is higher than the total CO2e emissions impact.

EasaLabelMetadata

Metadata about the EASA Flight Emissions Label.

Fields
label_issue_date

Date

The date when the label was issued.

label_expiry_date

Date

The date when the label expires. The label can be displayed until the end of this date.

label_version

string

Version of the label.

saf_discount_percentage

double

Sustainable Aviation Fuel (SAF) emissions discount percentage applied to the label. It is a percentage as a decimal. The values are in the interval [0,1]. For example, 0.0021 means 0.21%.

This discount and reduction in emissions are reported by the EASA label but they are not included in the CO2e estimates distributed by this API.

EmissionsGramsPerPax

Grouped emissions per seating class results.

Fields
first

int32

Emissions for one passenger in first class in grams. This field is always computed and populated, regardless of whether the aircraft has first class seats or not.

business

int32

Emissions for one passenger in business class in grams. This field is always computed and populated, regardless of whether the aircraft has business class seats or not.

premium_economy

int32

Emissions for one passenger in premium economy class in grams. This field is always computed and populated, regardless of whether the aircraft has premium economy class seats or not.

economy

int32

Emissions for one passenger in economy class in grams. This field is always computed and populated, regardless of whether the aircraft has economy class seats or not.

Flight

All details related to a single request item for a direct flight emission estimates.

Fields
origin

string

Required. IATA airport code for flight origin, e.g. "LHR".

destination

string

Required. IATA airport code for flight destination, e.g. "JFK".

operating_carrier_code

string

Required. IATA carrier code, e.g. "AA".

flight_number

int32

Required. Flight number, e.g. 324.

departure_date

Date

Required. Date of the flight in the time zone of the origin airport. Must be a date in the present or future.

FlightWithEmissions

Direct flight with emission estimates.

Fields
flight

Flight

Required. Matches the flight identifiers in the request. Note: all IATA codes are capitalized.

source

Source

Optional. The source of the emissions data.

emissions_grams_per_pax

EmissionsGramsPerPax

Optional. Per-passenger emission estimate numbers. Will not be present if emissions could not be computed. For the list of reasons why emissions could not be computed, see ComputeFlightEmissions.

easa_label_metadata

EasaLabelMetadata

Optional. Metadata about the EASA Flight Emissions Label. Only set when the emissions data source is EASA.

contrails_impact_bucket

ContrailsImpactBucket

Optional. The significance of contrails warming impact compared to the total CO2e emissions impact.

Market

A pair of airports.

Fields
origin

string

Required. IATA airport code for flight origin, e.g. "LHR".

destination

string

Required. IATA airport code for flight destination, e.g. "JFK".

ModelVersion

Travel Impact Model version. For more information about the model versioning see GitHub.

Fields
major

int32

Major versions: Major changes to methodology (e.g. adding new data sources to the model that lead to major output changes). Such changes will be infrequent and announced well in advance. Might involve API version changes, which will respect Google Cloud API guidelines

minor

int32

Minor versions: Changes to the model that, while being consistent across schema versions, change the model parameters or implementation.

patch

int32

Patch versions: Implementation changes meant to address bugs or inaccuracies in the model implementation.

dated

string

Dated versions: Model datasets are recreated with refreshed input data but no change to the algorithms regularly.

Scope3FlightEmissions

Scope 3 flight with emission estimates.

Fields
flight

Scope3FlightSegment

Required. Matches the flight identifiers in the request.

wtw_emissions_grams_per_pax

int64

Optional. Total flight emissions (sum of well-to-tank and tank-to-wake) per passenger based on the requested info. This is the total emissions and unless you have specific reasons for using TTW or WTT emissions, you should use this number.

ttw_emissions_grams_per_pax

int64

Optional. Tank-to-wake flight emissions per passenger based on the requested info.

wtt_emissions_grams_per_pax

int64

Optional. Well-to-tank flight emissions per passenger based on the requested info.

source

Scope3DataType

Optional. The source of the emissions data.

Scope3DataType

The type of matching used to compute Scope 3 emissions. This is used for the Scope 3 response, marking which of the methods was used to compute the emissions.

Enums
SCOPE3_DATA_TYPE_UNSPECIFIED Unspecified data type.
TIM_EMISSIONS TIM-based emissions given origin, destination, carrier, flight number, departure date, and year.
TYPICAL_FLIGHT_EMISSIONS Typical flight emissions given origin, destination, and year.
DISTANCE_BASED_EMISSIONS Distance-based emissions based on the distance traveled and year.

Scope3FlightSegment

Flight parameters with which the Scope 3 emissions are fetched.

Fields
departure_date

Date

Required. Date of the flight in the time zone of the origin airport. Only year is required for typical flight and distance-based emissions models (month and day values are ignored and therefore, can be either omitted, set to 0, or set to a valid date for those cases). Correspondingly, if a specific date is not provided for TIM emissions, we will fallback to typical flight (or distance-based) emissions.

cabin_class

CabinClass

Required. The cabin class of the flight.

origin

string

Optional. IATA airport code for flight origin, e.g. YVR. This is used to match specific flight if provided alongside destination, carrier, and flight number. If there is no match, we will first try to match the flight to a typical flight between the provided origin and destination airports. Otherwise, we will use the distance-based emissions model if the flight distance is provided.

destination

string

Optional. IATA airport code for flight destination, e.g. ICN. This is used to match specific flight if provided alongside origin, carrier, and flight number. If there is no match, we will first try to match the flight to a typical flight between the provided origin and destination airports. Otherwise, we will use the distance-based emissions model if the flight distance is provided.

carrier_code

string

Optional. IATA carrier code, e.g. KE. This is required if specific flight matching is desired. Otherwise, this is unused for typical flight and distance-based emissions models. This could be both operating and marketing carrier code (i.e. codeshare is covered).

flight_number

int32

Optional. Flight number, e.g. 71. This is first used to match a specific flight if a flight number is specified alongside origin, destination, and carrier. If a flight number is not specified, we will first try to match the flight to a typical flight between the provided origin and destination airports. If that fails and/or origin & destination are not provided, we will use the distance-based emissions model based on the flight distance provided.

distance_km

int64

Optional. Distance in kilometers, e.g. 2423. This is used to match a flight to distance-based emissions when origin and destination are not provided or there are no matching typical flights. This field supports values between 0 and 2.5e16 km.

CabinClass

The cabin class of the flight.

Enums
CABIN_CLASS_UNSPECIFIED Unspecified cabin class.
ECONOMY Economy class.
PREMIUM_ECONOMY Premium economy class.
BUSINESS Business class.
FIRST First class.

Source

The source of the emissions data.

Enums
SOURCE_UNSPECIFIED The source of the emissions data is unspecified.
TIM The emissions data is from the Travel Impact Model.
EASA The emissions data is from the EASA environmental labels.

TypicalFlightEmissions

Typical flight emission estimates for a certain market

Fields
market

Market

Required. Matches the flight identifiers in the request. Note: all IATA codes are capitalized.

emissions_grams_per_pax

EmissionsGramsPerPax

Optional. Typical flight emissions per passenger for requested market. Will not be present if a typical emissions could not be computed. For the list of reasons why typical flight emissions could not be computed, see GitHub.