How To Calculate Freight Emissions Under ISO 14083
Learn to calculate road freight CO2e under ISO 14083 and the GLEC Framework, step by step, using data your TMS already holds.
What You Need Before You Start
Calculating a single shipment's road freight CO2e under ISO 14083 emissions calculation rules takes three inputs: a shipment-level export from your TMS, a GLEC-compliant emission factor source, and a defined reporting boundary. Miss any one of these and you're guessing, not calculating.
Start with your TMS export. You need origin and destination (ideally postcode-level, not just city), consignment weight or volume, vehicle and equipment type, fuel type, and the distance travelled. Most shippers have the first three fields sitting in their order management data already. Distance and fuel type are where things get messy, and we'll deal with that in Step 3.
Next, pick your emission factor source. For most shippers this means the GLEC Framework's default factors, unless you've negotiated primary data (actual fuel consumption, real load data) from your carrier. CountEmissionsEU actually pushes hard on this point: CountEmissionsEU requires companies to prioritize primary data, such as actual fuel consumption figures, real load data, and verified carrier inputs, over secondary data such as default emission factors or industry averages. Secondary data is only acceptable where primary data is not reasonably available. Don't let that scare you off starting with defaults today, but know where the bar is moving. Finally, decide your boundary: well-to-wheel (fuel production plus combustion) or tank-to-wheel (combustion only). ISO 14083 pushed the industry toward well-to-wheel as standard, and it's what most CSRD/CBAM disclosures now expect. Here's the checkpoint most shippers fail at: their TMS doesn't actually capture what's needed. Smart Freight Centre's own guidance is blunt about this. As a first step, companies can ensure that a minimum level of parameters are captured in their TMS to combine it in the calculation. If you're not sure your TMS holds vehicle type, fuel type, and actual routed distance at the shipment line level, check that before you build anything. It's the single most common reason shipment-level ISO 14083 calculations stall.
Step 1 — Confirm Your Reporting Boundary and Standard
You're calculating against EN ISO 14083:2023, and it's worth knowing why this standard replaced what came before it. ISO 14083 is the first universal method for logistics emissions accounting, replacing EN 16258. Unlike this previous standard, ISO 14083 introduces well-to-tank emissions into the calculation and allows companies to choose their own emissions factors, provided the source is credible.
The regulatory reason this matters right now: the CountEmissionsEU framework establishes a single, science-based methodology aligned with international standard (EN ISO 14083:2023) to ensure accurate, comparable, and reliable emissions data across all transport modes. By providing door-to-door emissions calculations, the new rules empower businesses to benchmark performance, optimise logistics, and support low-carbon procurement. If you're a shipper voluntarily disclosing transport emissions for CSRD or a customer tender, this is now the reference point auditors and customers will hold you to.
Step 2 — Break the Shipment into Transport Chain Elements (TCEs)
A Transport Chain Element is the smallest unit ISO 14083 works with, a single leg on a single mode with a single vehicle configuration. Hub operations (loading, cross-docking, transshipment) get their own category too. This isn't academic; it's how the math actually works. The GLEC Framework v3 takes a bottom-up approach and starts with TCEs. This chapter explains the calculation steps for data drawn from systems like a Transport Management System (TMS).
Take a Rotterdam-to-Munich FTL move. If the trailer goes straight through by road, that's one TCE. But if it routes via a cross-dock in Duisburg, you now have two road TCEs plus a hub operation category (HOC) for the transshipment. Each gets its own distance, its own emission factor, and its own line in your calculation. Skip the split and you'll either double-count the hub handling or miss it entirely.
Step 3 — Determine Distance Using the Shortest Feasible Distance (SFD) Method
Don't use a straight-line distance or a plain consumer routing API here. GLEC-aligned calculators use Shortest Feasible Distance instead, and the difference in output can be significant on constrained European road networks. To match with the methodology of the GLEC default factors we use, we estimate the Shortest Feasible Distance (SFD) between points per transport mode. SFD represents the shortest practical route between two places taking into account the real operating conditions, such as the physical restrictions of a vehicle (e.g. weight and height), road type, topography and congestion and is typically found using route planning software.
Failure mode to watch for: teams plug an origin-destination pair into Google Maps or a generic logistics API and call it done. SFD does not reflect the shortest distance if you are willing to risk shortcuts that might be unsuitable for your vehicle type or congestion typical of a city center. A 40-tonne artic can't take the route a van can. If your routing tool doesn't account for vehicle class, height restrictions, and weight limits, your distance figure is wrong before you've even applied an emission factor. This is the single most common source of quiet inaccuracy in shipper-run calculations, because the output looks plausible even when it's off by 10-15%.
Step 4 — Apply Emission Factors (Default vs. Primary Data)
You have two paths here: GLEC default factors, or carrier-supplied primary data. The GLEC framework allows transportation estimates to be made using the best available data - from default factors through to carrier-specific factors. Default factors are perfectly compliant and are what most shippers use for the bulk of their freight base.
Worth noting: the factors themselves moved recently. Following the October 21, 2025 publication of HBEFA 5.1, the GLEC Framework will update European Road Freight emission intensity values to reflect this latest research. If you built a spreadsheet calculator in 2024, check it's pulling GLEC v3.2 factors, not an older vintage — the numbers have moved.
The harder problem is getting carrier-specific data at all. Shippers want it, but the industry structure works against them. This is the practical failure mode you'll hit constantly: LSPs often subcontract multiple tiers deep, and the carrier at the bottom of that chain has little incentive to hand over granular fuel and load data to a shipper they see as a customer, not a partner. When you hit this wall, don't stall the whole calculation waiting for cooperation that may never come. Fall back to GLEC defaults for that lane, and document in your methodology notes exactly where you used defaults versus primary data. Auditors expect a documented data hierarchy, not perfection everywhere.
Step 5 — Calculate and Allocate (Tonne-km, Load Factor)
The core formula is distance × mass × emission factor, then allocated by load factor so you're not charging your shipment for the whole truck's emissions when it only filled half the trailer. The principle behind the calculation is straightforward: for each container that is to be transported from its origin to its destination, the total transport is broken down in individual moves of the container, per mode of transport. For each individual movement, the distance to be travelled is calculated, and the specific emission per km for that mode of transport is used; it is multiplied with the distance, giving an estimate for the amount of carbon emission for that movement. More broadly, the standard accounts for empty trips too, based on a round-trip approach, so backhaul and repositioning legs don't get a free pass. A worked example: a 22-tonne shipment travelling 850km by 40-tonne diesel artic. You'd take the GLEC road freight factor (in kg CO2e per tonne-km, varying by vehicle class and load), multiply by 22 tonnes and 850km, then adjust for the truck's actual load factor versus GLEC's assumed baseline. If your truck ran at 55% utilisation instead of GLEC's default assumption, your allocated share of that trip's total emissions goes up accordingly, because fewer tonnes are splitting the same fuel burn.
Step 6 — Report at the Right Level of Detail
You don't have to report every calculation at full granularity, and knowing which level to pick saves real time. ISO 14083:2023 permits reports to be provided at one or more levels of detail - from individual Transport Chain Elements (TCE) to the whole Transport Chain (TC). For a single-shipment customer disclosure, TCE-level detail (road leg, hub, road leg) is usually expected. For an annual CSRD Scope 3 rollup, you'll typically aggregate to Transport Chain level and only drop to TCE detail when a customer or auditor asks for the underlying breakdown.
Keep both levels available. Auditors reviewing CBAM or CSRD disclosures will often want to trace an aggregate figure back to shipment-level TCE data, and if you've only ever calculated at the aggregate level, that trace-back becomes a scramble.
Step 7 — Validate the Output and Feed It Back Into Your TMS
You'll know your calculation worked if a second tool gets you within a reasonable margin of the same figure, and if the tonne-km CO2e sits within the expected range for that mode and vehicle class. Cross-check against a GLEC-accredited calculator such as EcoTransIT World, Searoutes, or Climatiq, whose Freight v3 endpoint is explicitly built to allow emissions estimation and reporting for freight in compliance with ISO 14083:2023. If your manual figure and the tool's figure diverge by more than a small margin, the usual culprit is distance methodology (see Step 3) or a mismatched vehicle/fuel factor.
Longer term, the goal is to stop doing this shipment-by-shipment in a spreadsheet. Check whether your TMS already captures TCE-level fields natively before you build anything custom. Platforms like Cargoson, alongside MercuryGate, Transporeon, and nShift, vary widely in how much shipment-level carbon detail they expose out of the box, and pairing a TMS with a specialist carbon add-on (BigMile, Searoutes, Climatiq) is often faster than waiting for your core system to catch up.
Recap of the process:
- Confirm your reporting boundary (well-to-wheel vs tank-to-wheel) and anchor to EN ISO 14083:2023.
- Break the shipment into Transport Chain Elements and hub operations.
- Calculate distance using Shortest Feasible Distance, not straight-line routing.
- Apply GLEC v3.2 default factors, or carrier primary data where you can get it.
- Calculate tonne-km emissions and allocate by actual load factor.
- Report at TCE or whole-chain level depending on the audience.
- Validate against a second GLEC-accredited tool and feed the workflow back into your TMS.
Do this once manually for a handful of representative lanes before you automate anything. It's the only way to know whether your TMS data is actually good enough to trust once you scale the calculation across your full freight spend.