> 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-gate4.md).

# Flight: GATE4

:bulb: **High-Level Description:**

GATE4 is a carbon emissions calculation methodology developed by Advito, tailored for the travel sector with a particular focus on flights. Embracing a holistic sustainability approach, GATE4 captures a broad range of factors to produce a detailed and accurate assessment of travel-related carbon emissions. For flights, variables such as aircraft type, passenger-to-freight ratios, carbon intensity, and the effect of radiative forcing are carefully accounted for. This comprehensive method allows organizations to accurately track emissions and devise strategies to mitigate their environmental impact.

The GATE4 methodology is ISO-certified, which adds a layer of credibility and ensures that its calculations align with international environmental management standards. By utilizing real-time data integration, it provides travel managers with actionable insights through the GATE4 Insights dashboard, covering not just air travel but also hotel stays, rail journeys, and car rentals. This enables businesses to identify opportunities to reduce emissions, optimize travel choices, and align their practices with sustainability goals. GATE4’s robust data-driven approach supports the development of science-based sustainability targets, helping organizations contribute effectively to global carbon reduction efforts.

### **Sample API Requests**

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

```json
{
    "expand": ["items"],
    "items": [
        {
            "audit": false,
            "type": "flight",
            "methodology": "GATE4",
            "origin": "NBO",
            "destination": "ABJ",
            "number_of_travelers": 1,
            "booking_class": "business",
            "airline": "2J",
            "flight_number": "2J520",
            "external_reference": "test",
            "departure_date": "2024-10-01"
        }
    ]
}
```

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

```json
{
    "expand": ["items"],
    "audit_for": "<Auditable Entity ID>",
    "items": [
        {
            "audit": true,
            "type": "flight",
            "methodology": "GATE4",
            "origin": "NBO",
            "destination": "ABJ",
            "number_of_travelers": 1,
            "booking_class": "business",
            "airline": "2J",
            "flight_number": "2J520",
            "external_reference": "test",
            "departure_date": "2024-10-01"
        }
    ]
}
```

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

### **API Request Items**

* `"type": "flight"` (required)
* `"methodology": "GATE4"` (required)
* `"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.
* `"number_of_travelers"`: Minimum value is `1`. The default value is `1`.
* `"origin"`: For airports use IATA codes (format: `^[A-Z]{3}$`, e.g. `"MUC"`).
* `"destination"`: For airports use IATA codes (format: `^[A-Z]{3}$`, e.g. `"MUC"`).
* 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).
* `"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 `GATE4`, `economy` is the default.
* `"aircraft_type"`: Aircraft type in the IATA or ICAO format.
* `"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.
* `"airline"`: The IATA Designator of an airline, e.g., `LH`. Airline names are also supported, SQUAKE will then automatically resolve it. The combination of `fare_class` and `airline` is mutually exclusive with `booking_class`.
* `"flight_number"`: Flight numbers should include the airline designator, e.g., `"BA115"`. `"115"` also works with `airline` passed separately.
* `"departure_date"`: The departure date in the format `YYYY-MM-DD`, which is aligned with [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
* `"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.

### **How SQUAKE resolves the GATE4 record**

GATE4 figures are flight-level: Advito publishes one record per operating carrier, flight number, route, and departure date, and the aircraft configuration is implied by that record. SQUAKE resolves each flight in the following order, agreed with Advito, and stops at the first level that yields data:

1. `exact`: carrier, flight number, route, and departure date all match.
2. `flight_nearest_date`: the same carrier and flight number on the route, on the closest available date. With a `booking_class`, SQUAKE prefers the closest date whose aircraft offers that cabin.
3. `carrier_route_date`: the average of the carrier's flights on the route on the departure date.
4. `route_date`: the average of all carriers' flights on the route on the departure date.
5. `carrier_route_nearest_date`: level 3 on the closest date with data.
6. `route_nearest_date`: level 4 on the closest date with data.

A flight number is never matched against another carrier. Without a `departure_date`, "closest date" is measured from the day of the request. When no level yields data, the flight fails with `not_found`.

SQUAKE keeps GATE4 records from 1 January 2019 onward. Up to July 2025 they're the historical figures Advito provided; from then on they're the monthly schedules Advito publishes, each kept as published closest to the departure date. A past departure therefore resolves at the level its record allows, most often `exact`. Always pass `departure_date`, and read `match_level` in the response to decide whether to apply your own fallback, for example GATE4 Light.

### **Sample API Response**

```json
{
    "carbon_quantity": 1078043,
    "carbon_unit": "gram",
    "items": [
        {
            "carbon_quantity": 1078043,
            "carbon_unit": "gram",
            "external_reference": "test",
            "type": "flight",
            "methodology": "GATE4",
            "distance": 4700.0,
            "distance_unit": "kilometer",
            "algorithm_specifics": {
                "match_level": "exact",
                "matched_airline": "2J",
                "matched_flight_number": 520,
                "matched_departure_date": "2024-10-01",
                "matched_flights": 1,
                "booking_class_used": "business"
            }
        }
    ]
}
```

### **API Response Items: Algorithm Specifics**

* `"match_level"`: the resolution level that answered the flight, see above.
* `"matched_airline"`, `"matched_flight_number"`, `"matched_departure_date"`: the record the figure was taken from. For averaged levels the flight number is `null`, and the airline is set only for carrier-level averages.
* `"matched_flights"`: how many records were averaged; `1` for an exact or nearest-date match.
* `"booking_class_used"`: the cabin the figure belongs to. GATE4 has no figure for a cabin the matched aircraft does not offer, so SQUAKE falls back to the next lower cabin (`first` → `business` → `premium_economy` → `economy`) and reports it here.

A `routing` item is resolved leg by leg, so these fields appear on each entry of `legs` (request `expand: ["legs"]`) rather than on the item itself.

### **Bibliography**

* Accurately Measure Your Travel Emissions with GATE4 (2024, Sep). Advito. Retrieved from <https://www.advito.com/gate4/>
