Skip to main content
Glama

Freight Emissions Calculator

emissions_calculator
Read-onlyIdempotent

Estimate freight transport greenhouse-gas emissions (kgCO2e) for a shipment leg, per ISO 14083:2023 / GLEC Framework v3.2: emissions = mass x distance x a published emission-intensity factor (kgCO2e/tonne-km).

Provide mass + distance_km + mode (road | rail | sea | air | inland_waterway); optionally choose sub_mode, region/authority (uk = DEFRA, us = EPA, fr = ADEME) and basis (wtw default, or ttw). IMPORTANT: pass ACTUAL GROSS MASS, not chargeable/volumetric weight (a common air-freight mistake — see mass_basis in the result). Distance must be provided — this tool does NOT route, geocode, or compute distances.

Behavior: deterministic given the same factor edition; the fleet-average factor already includes average empty running (see empty_running) — do NOT add your own empty-return leg; sea and air are low-representativeness generic defaults (real emissions vary materially by vessel/aircraft, load factor and routing — see representativeness and the result summary). An unknown mode/sub_mode/region returns available:false with the covered options, never a fabricated factor. Rate-limited: a limit error carries reset_at, the UTC time the allowance resets.

Returns: well-to-wheel AND tank-to-wheel emissions where the factor has both, the exact factor used (value, authority, edition), the tonne-km activity and a per-result _source citing BOTH the ISO method and the specific published factor, all under result, plus confidence, _source and citation (the FreightUtils v1 response envelope).

Limitations: best-effort reference estimate from published factors (DEFRA / EPA / ADEME) — NOT a verified or audited carbon report.

Related: distinct from cbm_calculator / ldm_calculator / chargeable_weight_calculator (those size or bill a shipment; this one estimates its CO2e).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
massYesShipment mass, expressed in mass_unit. Example: 1000
modeYesTransport mode
basisNoEmissions basis: wtw = well-to-wheel incl. upstream energy (default), ttw = tank-to-wheel / operation only
regionNoFactor source/region: uk = DEFRA, us = EPA, fr = ADEME. Default is per-mode.
sub_modeNoOptional sub-mode / vehicle class (e.g. "articulated", "container ship", "long-haul"). Omit for the representative default; an unknown value returns available:false with the covered list.
mass_unitNoUnit for mass (default: kg)
distance_kmYesTransport distance in kilometres — you provide it; the tool does not route or compute distance

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
resultYes
_sourceYes
citationYes
validityNo
warningsNo
confidenceYes
blocking_errorsNo
envelope_versionYes
normalized_inputNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  2. Changed5 schema fields changed
    • addedOutput schema / properties / _source / properties / authority_current_edition
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / _source / properties / checked_at
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / _source / properties / dataset_edition
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / envelope_version / const
      Removed value: -"1"
    • addedOutput schema / properties / envelope_version / enum
      Added value: +[
      +  "1",
      +  "1.1"
      +]
  3. Changed37 schema fields changed
    • removedOutput schema / properties / _source / description
      Removed value: -"Citability envelope: ISO method + the specific open factor used (authority, edition, value, basis, last_verified date, source, licence)"
    • addedOutput schema / properties / _source / properties / checked
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / _source / properties / computed_by
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / _source / properties / factor
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "authority": {
      -      "type": "string"
      -    },
      -    "basis": {
      -      "type": "string"
      -    },
      -    "edition": {
      -      "type": "string"
      -    },
      -    "last_verified": {
      -      "type": "string"
      -    },
      -    "licence": {
      -      "type": "string"
      -    },
      -    "source_url": {
      -      "type": "string"
      -    },
      -    "unit": {
      -      "type": "string"
      -    },
      -    "value": {
      -      "type": "number"
      -    }
      -  },
      -  "required": [
      -    "authority",
      -    "edition",
      -    "value",
      -    "unit",
      -    "basis",
      -    "last_verified",
      -    "source_url",
      -    "licence"
      -  ],
      -  "type": "object"
      -}
    • addedOutput schema / properties / _source / properties / name
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / _source / properties / provenance_status
      Added value: +{
      +  "enum": [
      +    "verified",
      +    "pending-verification",
      +    "computed",
      +    "live"
      +  ],
      +  "type": "string"
      +}
    • removedOutput schema / properties / _source / properties / reference
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / _source / properties / standard
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / _source / properties / type
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / properties / _source / required
      Previous value: -[
      -  "type",
      -  "standard",
      -  "reference",
      -  "source_url",
      -  "computed_by",
      -  "factor"
      -]New value: +[
      +  "name",
      +  "checked",
      +  "provenance_status"
      +]
    • removedOutput schema / properties / available
      Removed value: -{
      -  "description": "True if a factor matched and emissions were computed; false if the combination is not covered",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / available_for
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "Present when available:false — the covered modes/regions/sub-modes",
      -  "properties": {
      -    "modes": {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "regions_for_mode": {
      -      "items": {
      -        "type": "string"
      -      },
      -      "type": "array"
      -    },
      -    "sub_modes": {
      -      "items": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "id": {
      -            "type": "string"
      -          },
      -          "region": {
      -            "type": "string"
      -          },
      -          "sub_mode": {
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "region",
      -          "id",
      -          "sub_mode"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    }
      -  },
      -  "required": [
      -    "modes",
      -    "regions_for_mode",
      -    "sub_modes"
      -  ],
      -  "type": "object"
      -}
    • addedOutput schema / properties / blocking_errors
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "code": {
      +        "type": "string"
      +      },
      +      "message": {
      +        "type": "string"
      +      },
      +      "recovery": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "action": {
      +            "type": "string"
      +          },
      +          "params": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "tool": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "action"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "message",
      +      "recovery"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / citation
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "qualifier": {
      +      "type": "string"
      +    },
      +    "text": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "text"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / confidence / additionalProperties
      Added value: +false
    • removedOutput schema / properties / confidence / description
      Removed value: -"Human-readable confidence label for representativeness"
    • addedOutput schema / properties / confidence / properties
      Added value: +{
      +  "basis": {
      +    "enum": [
      +      "deterministic",
      +      "provenance",
      +      "match_quality",
      +      "freshness"
      +    ],
      +    "type": "string"
      +  },
      +  "level": {
      +    "enum": [
      +      "high",
      +      "medium",
      +      "low"
      +    ],
      +    "type": "string"
      +  },
      +  "score": {
      +    "maximum": 1,
      +    "minimum": 0,
      +    "type": "number"
      +  }
      +}
    • addedOutput schema / properties / confidence / required
      Added value: +[
      +  "level",
      +  "basis"
      +]
    • changedOutput schema / properties / confidence / type
      Previous value: -"string"New value: +"object"
    • removedOutput schema / properties / disclaimer
      Removed value: -{
      -  "description": "Best-effort estimate; not a verified carbon report",
      -  "type": "string"
      -}
    • removedOutput schema / properties / emissions
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "Computed emissions: WTW + TTW where available, plus the primary value per basis",
      -  "properties": {
      -    "basis_used": {
      -      "type": "string"
      -    },
      -    "primary_kgco2e": {
      -      "type": "number"
      -    },
      -    "ttw_kgco2e": {
      -      "anyOf": [
      -        {
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "wtw_kgco2e": {
      -      "anyOf": [
      -        {
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    }
      -  },
      -  "required": [
      -    "wtw_kgco2e",
      -    "ttw_kgco2e",
      -    "primary_kgco2e",
      -    "basis_used"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / empty_running
      Removed value: -{
      -  "description": "Whether the fleet-average factor already embeds average empty running (\"sector_average_included\" → do NOT add your own empty-return leg) or the source does not state it (\"see_source\")",
      -  "type": "string"
      -}
    • addedOutput schema / properties / envelope_version
      Added value: +{
      +  "const": "1",
      +  "type": "string"
      +}
    • removedOutput schema / properties / factor
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "The exact emission-intensity factor used",
      -  "properties": {
      -    "authority": {
      -      "type": "string"
      -    },
      -    "edition": {
      -      "type": "string"
      -    },
      -    "id": {
      -      "type": "string"
      -    },
      -    "mode": {
      -      "type": "string"
      -    },
      -    "region": {
      -      "type": "string"
      -    },
      -    "sub_mode": {
      -      "type": "string"
      -    },
      -    "ttw": {
      -      "anyOf": [
      -        {
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    },
      -    "unit": {
      -      "type": "string"
      -    },
      -    "wtw": {
      -      "anyOf": [
      -        {
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ]
      -    }
      -  },
      -  "required": [
      -    "id",
      -    "mode",
      -    "sub_mode",
      -    "authority",
      -    "edition",
      -    "region",
      -    "unit",
      -    "wtw",
      -    "ttw"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / inputs
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "Echo of the resolved inputs (incl. defaults applied)",
      -  "properties": {
      -    "basis": {
      -      "type": "string"
      -    },
      -    "distance_km": {
      -      "type": "number"
      -    },
      -    "mass": {
      -      "type": "number"
      -    },
      -    "mass_tonnes": {
      -      "type": "number"
      -    },
      -    "mass_unit": {
      -      "type": "string"
      -    },
      -    "mode": {
      -      "type": "string"
      -    },
      -    "region": {
      -      "type": "string"
      -    },
      -    "sub_mode": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "mass",
      -    "mass_unit",
      -    "mass_tonnes",
      -    "distance_km",
      -    "mode",
      -    "sub_mode",
      -    "region",
      -    "basis"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / mass_basis
      Removed value: -{
      -  "description": "Mass basis the factor expects: always \"actual_gross_mass\" — NOT chargeable/volumetric weight (a common air-freight mistake)",
      -  "type": "string"
      -}
    • removedOutput schema / properties / message
      Removed value: -{
      -  "description": "Present when available:false — why no factor matched",
      -  "type": "string"
      -}
    • removedOutput schema / properties / methodology
      Removed value: -{
      -  "description": "ISO 14083:2023 / GLEC Framework v3.2",
      -  "type": "string"
      -}
    • addedOutput schema / properties / normalized_input
      Added value: +{
      +  "additionalProperties": {},
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / ok
      Added value: +{
      +  "type": "boolean"
      +}
    • removedOutput schema / properties / representativeness
      Removed value: -{
      -  "description": "How representative the generic default factor is: \"low\" for sea/air (varies materially by vessel/aircraft type, load, routing), \"medium\" for road/rail/inland",
      -  "type": "string"
      -}
    • addedOutput schema / properties / result
      Added value: +{
      +  "additionalProperties": {},
      +  "propertyNames": {
      +    "type": "string"
      +  },
      +  "type": "object"
      +}
    • removedOutput schema / properties / summary
      Removed value: -{
      -  "description": "Primary human-readable one-line result — carries the empty-running + actual-gross-mass notes and, for sea/air, a high-variance warning. Surface this to the user, do not drop it.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / tonne_km
      Removed value: -{
      -  "description": "Transport activity = mass (tonnes) × distance (km)",
      -  "type": "number"
      -}
    • addedOutput schema / properties / validity
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "as_of": {
      +      "type": "string"
      +    },
      +    "effective_from": {
      +      "type": "string"
      +    },
      +    "effective_to": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "as_of"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / warnings
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "code": {
      +        "type": "string"
      +      },
      +      "details": {
      +        "additionalProperties": {},
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "message": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "message"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "available",
      -  "methodology",
      -  "disclaimer"
      -]New value: +[
      +  "envelope_version",
      +  "ok",
      +  "result",
      +  "confidence",
      +  "_source",
      +  "citation"
      +]
  4. Changed8 schema fields changed
    • changedOutput schema / properties / _source / description
      Previous value: -"Citability envelope: ISO method + the specific open factor used (authority, edition, value, basis, source, licence)"New value: +"Citability envelope: ISO method + the specific open factor used (authority, edition, value, basis, last_verified date, source, licence)"
    • addedOutput schema / properties / _source / properties / factor / properties / last_verified
      Added value: +{
      +  "type": "string"
      +}
    • changedOutput schema / properties / _source / properties / factor / required
      Previous value: -[
      -  "authority",
      -  "edition",
      -  "value",
      -  "unit",
      -  "basis",
      -  "source_url",
      -  "licence"
      -]New value: +[
      +  "authority",
      +  "edition",
      +  "value",
      +  "unit",
      +  "basis",
      +  "last_verified",
      +  "source_url",
      +  "licence"
      +]
    • addedOutput schema / properties / confidence
      Added value: +{
      +  "description": "Human-readable confidence label for representativeness",
      +  "type": "string"
      +}
    • addedOutput schema / properties / empty_running
      Added value: +{
      +  "description": "Whether the fleet-average factor already embeds average empty running (\"sector_average_included\" → do NOT add your own empty-return leg) or the source does not state it (\"see_source\")",
      +  "type": "string"
      +}
    • addedOutput schema / properties / mass_basis
      Added value: +{
      +  "description": "Mass basis the factor expects: always \"actual_gross_mass\" — NOT chargeable/volumetric weight (a common air-freight mistake)",
      +  "type": "string"
      +}
    • addedOutput schema / properties / representativeness
      Added value: +{
      +  "description": "How representative the generic default factor is: \"low\" for sea/air (varies materially by vessel/aircraft type, load, routing), \"medium\" for road/rail/inland",
      +  "type": "string"
      +}
    • addedOutput schema / properties / summary
      Added value: +{
      +  "description": "Primary human-readable one-line result — carries the empty-running + actual-gross-mass notes and, for sea/air, a high-variance warning. Surface this to the user, do not drop it.",
      +  "type": "string"
      +}
  5. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.