Cycle 15 updates, Q2 2024
Hey there, fellow developers! Welcome to our latest release notes.
π Before diving in, here's a sneak peek at what we've been working on:
- Electric vehicles emissions calculation now accurately done at the country level;
- Addition of biofuels for road mode;
- Shipment API enhancement for historical emissions;
- App rebranding: discover our new look.
β¨ New & Improved
π Electric vehicles for road shipments at country level
While our last cycle unlocked the possibility to do reporting on electric vehicles, the accuracy of the calculation has been greatly improved during this cycle !
Whether you're using our Shipment API (v2/report/co2
) or our CO2 road endpoint (co2/v2/direct/road
), we calculate precise emissions at the country level (country of departure), instead of using wider regions (like Europe, North America, etc.). For USA and Canada, we actually run calculations based on the electricity emission factor at the State level (state of departure).
Note that for cross-region shipments, the emission factors used are those of the origin region. Given that electric vehicles (EVs) primarily charge before the journey and currently have a range limitation of approximately 300km, it makes more sense for now to consider the origin only.
Accuracy is paramount when it comes to electricity because emission factors can vary significantly between different regions and even between states within a country. This variation is due to differences in how electricity is produced in each area. By calculating emissions at the country and state levels, we ensure that the data reflects the true environmental impact, leading to more reliable and actionable insights.
Concretely, here is how the latest development impact the EV's emissions, compared to the past calculations done at the region level:
β½ Biofuels for road
New addition to the family of fuels available in our Shipment API (v2/report/co2) and CO2 road endpoint (co2/v2/direct/road):
BIOCNG
BIOLNG
BIODIESEL
- Biofuels blends (see below):
API parameter | What does it stand for? | Also known as* |
---|---|---|
DIESEL99_BIODIESEL1 | 99% diesel, 1% biodiesel | B1 |
DIESEL98_BIODIESEL2 | 98% diesel, 2% biodiesel | B2 |
DIESEL95_BIODIESEL5 | 95% diesel, 5% biodiesel | B5 |
DIESEL93_BIODIESEL7 | 93% diesel, 7% biodiesel | B7 |
DIESEL90_BIODIESEL10 | 90% diesel, 10% biodiesel | B10 |
DIESEL80_BIODIESEL20 | 80% diesel, 20% biodiesel | B20 |
DIESEL50_BIODIESEL50 | 50% diesel, 50% biodiesel | B50 |
BIODIESEL | 100% biodiesel | B100 |
*market name. Not valid as an input parameter.
Here is how biodiesel blends can impact your emissions.
Let's take the example of a 20GP of 10 tons, from Munich to Hamburg.
Example of request:
{
"orders": [
{
"type": "CONTAINER",
"quantity": 1,
"weight": 10000,
"sizeTypeCode": "20GP"
}
],
"legs": [
{
"from": "DEMUC",
"to": "DEHAM",
"mode": "road",
"details": {
"fuel": "DIESEL80_BIODIESEL20"
}
}
]
}
{
"parameters": {
"orders": [
{
"type": "CONTAINER",
"quantity": 1,
"weight": 10000,
"sizeTypeCode": "20GP"
}
],
"details": {}
},
"co2e": {
"total": 736664,
"wtt": 217465,
"ttw": 519199,
"intensity": 0.10104
},
"legs": [
{
"from": {
"locode": "DEMUC",
"coordinates": [
11.562614919242346,
48.140486781553626
],
"city": "MΓΌnchen (Munich)",
"country": "Germany",
"region": "Mediterranean/Black Sea"
},
"to": {
"locode": "DEHAM",
"coordinates": [
9.93855,
53.519272
],
"city": "Hamburg",
"country": "Germany",
"region": "North Europe"
},
"tradeLane": "North Europe to-from Mediterranean",
"mode": "road",
"parameters": {
"details": {
"fuelType": "DIESEL80_BIODIESEL20",
"truckSize": 30,
"carrier": {}
}
},
"properties": {
"dataType": "DEFAULT",
"distance": 728004,
"model": {
"name": "sfd-direct-emissionfactors"
},
"region": "Europe",
"carrierScac": null,
"truck": {
"minSize": 26,
"maxSize": 32,
"loadFactor": null,
"emptyRunning": null,
"fuel": "DIESEL80_BIODIESEL20",
"combinedEmptyRunningLoadFactor": null
},
"containerSizeTypeCode": "20GP",
"orders": [
{
"type": "CONTAINER",
"quantity": 1,
"weight": 10000,
"sizeTypeCode": "20GP",
"co2e": {
"total": 735576,
"wtt": 217164,
"ttw": 518412,
"intensity": 0.10104
}
}
]
},
"co2e": {
"total": 736664,
"wtt": 217465,
"ttw": 519199,
"intensity": 0.10104
}
}
]
}
API parameter | CO2e total (in grams) | Intensity (g/t.km) | CO2e decrease vs DIESEL (%) |
---|---|---|---|
DIESEL | 845735 | 0.116 | 0 |
DIESEL99_BIODIESEL1 | 840267 | 0.11525 | 0.65% |
DIESEL98_BIODIESEL2 | 834799 | 0.1145 | 1.29% |
DIESEL95_BIODIESEL5 | 818468 | 0.11226 | 3.22% |
DIESEL93_BIODIESEL7 | 807531 | 0.11076 | 4.52% |
DIESEL90_BIODIESEL10 | 791273 | 0.10853 | 6.44% |
DIESEL80_BIODIESEL20 | 736664 | 0.10104 | 12.90% |
DIESEL50_BIODIESEL50 | 573131 | 0.07861 | 32.23% |
BIODIESEL | 300527 | 0.04122 | 64.47% |
π Fixes & Updates
π¨ Shipment API : historical emissions
We have made significant improvements to the Shipment API to enhance historical accuracy.
Improved logic:
Previously, if the carrier code (scac
) did not match the vessel imo
, the search would block the historical search and fall back to a calculation based on the vessel characteristics of the requested imo
, with a direct routing.
With our latest update, the API will prioritize the imo
over the scac
in the case they don't match. The emissions are therefore calculated based on the inclusion of this imo
, and the route it operated at the requested date. The returned modeled is actual-portcalls-ais
.
Fallback mechanism:
If the imo
number is not found, the API will then use the scac
to calculate emissions based on vessels that have departed at the required date, with the specified carrier. The returned modeled is still the historical model, called actual-portcalls-ais
.
These changes ensure more accurate and reliable emissions data at the historical level.
Here is an example.
Let's calculate emissions for CMA CGM SAN FRANCISCO (imo=9225615
), that was not operated by nor with MSC.
Scenario 1: wrong scac
provided, in addition to an imo
{
"orders": [
{
"type": "CONTAINER",
"quantity": 1,
"sizeTypeCode": "20GP"
}
],
"legs": [
{
"from": "PLGDY",
"to": "USCHS",
"mode": "sea",
"details": {
"carrier": {
"scac": "MSCU"
},
"dateTime": {
"departure": "2024-01-27"
},
"vessel": {
"imo": "9225615",
"name": "CMA CGM SAN FRANCISCO"
}
}
}
]
}
{
"parameters": {
"orders": [
{
"type": "CONTAINER",
"quantity": 1,
"sizeTypeCode": "20GP"
}
],
"details": {}
},
"co2e": {
"total": 930752,
"wtt": 137785,
"ttw": 792967,
"intensity": 0.0086
},
"legs": [
{
"from": {
"locode": "PLGDY",
"coordinates": [
18.5298614501953,
54.531909942627
],
"city": "Gdynia",
"country": "Poland",
"region": "North Europe"
},
"to": {
"locode": "USCHS",
"coordinates": [
-79.95617866516113,
32.89991189721562
],
"city": "Charleston",
"country": "United States",
"region": "North America - East Coast"
},
"tradeLane": "North Europe to-from North America EC",
"mode": "sea",
"parameters": {
"details": {
"vessel": {
"name": "CMA CGM SAN FRANCISCO",
"imo": "9225615"
},
"dateTime": {
"departure": "2024-01-27"
},
"carrier": {
"scac": "MSCU"
}
}
},
"properties": {
"dataType": "MODELED",
"distance": 10823565,
"model": {
"name": "actual-portcalls-ais"
},
"containerSizeTypeCode": "20GP",
"orders": [
{
"type": "CONTAINER",
"quantity": 1,
"weight": 10000,
"sizeTypeCode": "20GP",
"nTEU": 1,
"co2e": {
"total": 930752,
"ttw": 792967,
"wtt": 137785,
"intensity": 0.0086
}
}
]
},
"co2e": {
"total": 930752,
"wtt": 137785,
"ttw": 792967,
"intensity": 0.0086
}
}
]
}
Scenario 2: no scac
provided, only imo
{
"orders": [
{
"type": "CONTAINER",
"quantity": 1,
"sizeTypeCode": "20GP"
}
],
"legs": [
{
"from": "PLGDY",
"to": "USCHS",
"mode": "sea",
"details": {
"dateTime": {
"departure": "2024-01-27"
},
"vessel": {
"imo": "9225615",
"name": "CMA CGM SAN FRANCISCO"
}
}
}
]
}
{
"parameters": {
"orders": [
{
"type": "CONTAINER",
"quantity": 1,
"sizeTypeCode": "20GP"
}
],
"details": {}
},
"co2e": {
"total": 930752,
"wtt": 137785,
"ttw": 792967,
"intensity": 0.0086
},
"legs": [
{
"from": {
"locode": "PLGDY",
"coordinates": [
18.5298614501953,
54.531909942627
],
"city": "Gdynia",
"country": "Poland",
"region": "North Europe"
},
"to": {
"locode": "USCHS",
"coordinates": [
-79.95617866516113,
32.89991189721562
],
"city": "Charleston",
"country": "United States",
"region": "North America - East Coast"
},
"tradeLane": "North Europe to-from North America EC",
"mode": "sea",
"parameters": {
"details": {
"vessel": {
"name": "CMA CGM SAN FRANCISCO",
"imo": "9225615"
},
"dateTime": {
"departure": "2024-01-27"
},
"carrier": {}
}
},
"properties": {
"dataType": "MODELED",
"distance": 10823565,
"model": {
"name": "actual-portcalls-ais"
},
"containerSizeTypeCode": "20GP",
"orders": [
{
"type": "CONTAINER",
"quantity": 1,
"weight": 10000,
"sizeTypeCode": "20GP",
"nTEU": 1,
"co2e": {
"total": 930752,
"ttw": 792967,
"wtt": 137785,
"intensity": 0.0086
}
}
]
},
"co2e": {
"total": 930752,
"wtt": 137785,
"ttw": 792967,
"intensity": 0.0086
}
}
]
}
As you can see, even in case the scac
information is not correct, we do calculate emissions at the historical level, including this vessel and accounting for its route. The emissions in both scenarios below are exactly the same.
π¨ App rebranding
We also worked on our App rebranding with a refreshed color scheme and a new map layer. These updates align the App with our latest company visual branding, enhancing both visual appeal and functionality.
We remain committed to further improving the user interface for an even better experience in the near future.
π Preview of next Cycle C16
For the upcoming cycle, we will be focusing on:
- The addition of the flight number in the Shipment API parameters, for us to retrieve the aircraft for you and include it into our calculations.
- The addition of a Carbon Report dashboard, embedded in our Searoutes App.
You just read our Product Update π
We'd love to hear what you think about these updates. Send us your feedback at [email protected]!