improved

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 parameterWhat does it stand for?Also known as*
DIESEL99_BIODIESEL199% diesel, 1% biodieselB1
DIESEL98_BIODIESEL298% diesel, 2% biodieselB2
DIESEL95_BIODIESEL595% diesel, 5% biodieselB5
DIESEL93_BIODIESEL793% diesel, 7% biodieselB7
DIESEL90_BIODIESEL1090% diesel, 10% biodieselB10
DIESEL80_BIODIESEL2080% diesel, 20% biodieselB20
DIESEL50_BIODIESEL5050% diesel, 50% biodieselB50
BIODIESEL100% biodieselB100

*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 parameterCO2e total (in grams)Intensity (g/t.km)CO2e decrease vs DIESEL (%)
DIESEL8457350.1160
DIESEL99_BIODIESEL18402670.115250.65%
DIESEL98_BIODIESEL28347990.11451.29%
DIESEL95_BIODIESEL58184680.112263.22%
DIESEL93_BIODIESEL78075310.110764.52%
DIESEL90_BIODIESEL107912730.108536.44%
DIESEL80_BIODIESEL207366640.1010412.90%
DIESEL50_BIODIESEL505731310.0786132.23%
BIODIESEL3005270.0412264.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 scacinformation 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]!