> For the complete documentation index, see [llms.txt](https://docs-integration.squake.earth/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-integration.squake.earth/api-calculations-request-response/travel/flight/flight-co2-emissiefactoren.md).

# Flight: CO2 emissiefactoren 🇳🇱

### :bulb: High-Level Description:

CO2-emissiefactoren is a distinguished methodology originating from the Netherlands, designed to provide accurate emission factors across various sectors, including passenger aviation. With a focus on delivering clear and precise carbon metrics, the methodology is widely adopted by European stakeholders, offering them a reliable system for understanding and mitigating the carbon footprint of their activities.

Within the aviation sector, CO2-emissiefactoren's approach stands out for its ability to consider multiple factors, such as aircraft type, engine specifications, distance traveled, and fuel efficiency. The methodology is continually updated to reflect the latest research and technological developments, ensuring that the carbon calculations remain both current and comprehensive. By offering detailed insights into the carbon impact of air travel, CO2-emissiefactoren equips airlines, policymakers, and travelers with the tools necessary to make more sustainable choices in the aviation industry.

**Versioning:** Use `methodology_version` to pin a published factor year — `"2020"` for flights in 2020 and 2021, `"2022"` for flights from 2022 onward. If you omit it, SQUAKE picks the year from `departure_date`; if neither is given, the latest version is used. See **Versions** below.

### **Sample API Requests**

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

```json
{
  "expand": ["items"],
  "items": [
    {
      "audit": false,
      "type": "flight",
      "methodology": "CO2-EMISSIEFACTOREN-NL",
      "external_reference": "string",
      "origin": "MIL",
      "destination": "ORY",
      "booking_class": "first",
      "energy_scope": "wtw",
      "number_of_travelers": 1,
      "radiative_forcing_index": true
    }
  ]
}
```

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

```json
{
  "expand": ["items"],
  "audit_for": "<Auditable Entity ID>",
  "items": [
    {
      "audit": true,
      "type": "flight",
      "methodology": "CO2-EMISSIEFACTOREN-NL",
      "external_reference": "string",
      "origin": "MIL",
      "destination": "ORY",
      "booking_class": "first",
      "energy_scope": "wtw",
      "number_of_travelers": 1,
      "radiative_forcing_index": true
    }
  ]
}
```

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

**Defaults**

* `"booking_class": "average"`
* `"radiative_forcing_index": true`
* `"energy_scope": "wtw"`
* `"methodology_version"`: resolved from `departure_date`, or the latest version if no date is given

### **API request items**

* `"type": "flight"` (required)
* `"methodology": "CO2-EMISSIEFACTOREN-NL"` (required)
* `"methodology_version"`: The published factor year. Supported: `2020` (flights in 2020 and 2021) and `2022` (flights from 2022 onward). **Optional**; if omitted, the year is taken from `departure_date`, falling back to the latest version. See **Versions** below.
* `"departure_date"`: The date of departure in `YYYY-MM-DD` format. Used to select the factor year when `methodology_version` is omitted.
* `"external_reference"`: A unique identifier that helps you link the resulting emissions to the requested item. Especially useful if multiple items are requested since SQUAKE cannot guarantee to keep the same order. The maximum length is 128 characters.
* `"booking_class"`: If you don't pass a `booking_class`, then `fare_class` and `airline` are highly recommended. SQUAKE will then automatically resolve the correct `booking_class`. For `CO2-EMISSIEFACTOREN-NL`, this is optional with `average` as the default value. Values are `first`, `premium_economy`, `economy`, or `business`.
* `"number_of_travelers"`: Minimum value is `1`. The default value is `1`.
* `"origin"`: For airports use IATA/ICAO code (format: `^[A-Z]{3,4}$`, e.g. `"MUC"`), for other locations used in trade and transportation use UN/LOCODE codes (format: `^[A-Z]{2}\W?[A-Z2-9]{3}$`, e.g. `"DEHAM"`). You can also pass lat/long (format: `^[-+]?\d{1,3}\.\d{1,10}\s?,\s?[-+]?\d{1,3}\.\d{1,10}$`, e.g. `"+40.712,-74.006"`).
* `"destination"`: For airports use IATA/ICAO code (format: `^[A-Z]{3,4}$`, e.g. `"MUC"`), for other locations used in trade and transportation use UN/LOCODE codes (format: `^[A-Z]{2}\W?[A-Z2-9]{3}$`, e.g. `"DEHAM"`). You can also pass lat/long (format: `^[-+]?\d{1,3}\.\d{1,10}\s?,\s?[-+]?\d{1,3}\.\d{1,10}$`, e.g. `"+40.712,-74.006"`).
* Multi-leg itineraries: use **`routing`** (hyphen-separated airports) instead of `origin`/`destination` — see [**Flight: Routing (multi-leg)**](/api-calculations-request-response/travel/flight/flight-routing.md).
* `"distance_in_km"`: Prioritized over `origin` and `destination`. If you don't have a `distance_in_km`, you can use `origin` and `destination` and the distance will be automatically resolved. If you pass both `distance_in_km` and `origin`/`destination`, then `distance_in_km` will be used. When **`routing`** is set, per-leg computed distances apply; see Flight: Routing.
* `"fare_class"`: The combination of `fare_class` and `airline` is mutually exclusive with `booking_class`. This is a single letter, e.g., `Y`, `J`, etc.
* `"radiative_forcing_index"`: Controls if a multiplier that factors in gases emitted to the atmosphere when flying at altitude should be applied. The default value is `true`.
* `"airline"`: The IATA Designator of an airline, e.g., LH. Airline names are also supported, SQUAKE will then automatically resolve it.
* `"energy_scope"`: Values are `ttw` or `wtw`. The default value is `wtw`.
* `"sustainable_fuels"`: Indicates the usage of sustainable fuels. This lowers the computed emissions in SQUAKE but is not part of the current official emissions frameworks.
* `"carbon_reduction_percentage_of_total"`: The percentage of emissions reduction through the usage of sustainable fuel. The minimum value is `0`, and the maximum value is `1`. Default value is `0`.
* `"audit"`: boolean (optional). Set to `true` to create immutable audit records for finalized calculations. Must be enabled for your account.

### **Sample API Response**

```json
{
    "carbon_quantity": 633654,
    "carbon_unit": "gram",
    "items": [
        {
            "carbon_quantity": 633654,
            "carbon_unit": "gram",
            "external_reference": "string",
            "type": "flight",
            "methodology": "CO2-EMISSIEFACTOREN-NL",
            "distance": 749.0,
            "distance_unit": "kilometer"
        }
    ]
}
```

### **Versions**

CO2-emissiefactoren publishes flight factors per vintage. SQUAKE supports two:

| Version | Applies to               | Notes                                                            |
| ------- | ------------------------ | ---------------------------------------------------------------- |
| `2020`  | Flights in 2020 and 2021 | Factors are published per haul band only — no travel-class split |
| `2022`  | Flights from 2022 onward | Factors are published per travel class and haul band             |

SQUAKE picks the version in this order:

1. **An explicit `methodology_version`**, if you send one. This always wins, even when it disagrees with `departure_date`.
2. **The year of `departure_date`**, if no version was sent. A flight on `2020-05-01` or `2021-11-30` uses the `2020` factors; a flight on `2023-02-14` uses the `2022` factors.
3. **The latest version**, if neither is given.

A year that has no factor set of its own resolves to the most recent earlier year — `2021` resolves to `2020`, and `2023` and later resolve to `2022`. Years before `2020` are rejected with an `invalid_methodology_version` error.

The version actually used is returned as `methodology_version` on each item when you request `"expand": ["items"]`, so a calculation stays reproducible:

```json
{
  "expand": ["items"],
  "items": [
    {
      "type": "flight",
      "methodology": "CO2-EMISSIEFACTOREN-NL",
      "origin": "MIL",
      "destination": "ORY",
      "departure_date": "2020-05-01",
      "number_of_travelers": 1
    }
  ]
}
```

```json
{
  "carbon_quantity": 149800,
  "carbon_unit": "gram",
  "items": [
    {
      "carbon_quantity": 149800,
      "carbon_unit": "gram",
      "type": "flight",
      "methodology": "CO2-EMISSIEFACTOREN-NL",
      "methodology_version": "2020",
      "distance": 749.0,
      "distance_unit": "kilometer"
    }
  ]
}
```

> **Note:** the `2020` factors have no travel-class dimension, so `booking_class` (and the `fare_class` + `airline` pair) does not change the result for flights priced with that version. Audit records for those calculations report the travel class actually priced, `average`.

For more details about RFI: [Radiative Forcing Index](https://squake.notion.site/Radiative-Forcing-Index-1f8f0d7eb6e141a6ad7a3351bdc53f05?pvs=4)

### **Bibliography**

* Lijst emissiefactoren (2025). CO2 emissionfactoren. Retrieved from <https://www.co2emissiefactoren.nl/>
* Milieu Centraal (n.a.). Retrieved from <https://www.milieucentraal.nl/>
* Emissiefactoren van vliegverkeer in meer detail (Jan, 2022). MilieuCentraal. Retrieved from <https://www.co2emissiefactoren.nl/wp-content/uploads/2022/01/37-MilieuCentraal-Emissiefactoren-van-vliegverkeer-in-meer-detail-2022-v1.1.pdf> — factors for `methodology_version` `2022`
* Emissiefactoren van vliegverkeer (2020). MilieuCentraal. Retrieved from <https://www.co2emissiefactoren.nl/> — factors for `methodology_version` `2020`
