Detect Demurrage risk

Detect Demurrage risk with Container Tracking API

Demurrage fees

demurrage

Demurrage fees are charged whenever a container stays longuer in a port that the timeframe that was alloted by the carrier or the port authority. Find more information about detention and demurrage fees in this article.

Detecting early the risk of beeing charged those fees can allow shimpent owner to adapt the schedule and pay less fees.

Detect Demurrage risk

Demurrage fees can be charged in 2 cases :

  • the container has arrived at Port of Lading and has not been loaded on a vessel yet
  • the container has been unloaded at Port of Discharge and has not leaved the port yet

Detecting Demurrage risks can be done by detecting those 4 events and raising an alert when the delay between those events is longer than a specific threshold.

Implement Demurrage detection

You can get all the information you need to implement this detection in a single Container Tracking call, by implementing this logic :

Detect demurrage

Note : Always prefer Discharge and Load events to compute a demurrage time.Vessel arrival and departure dates should be used only when the load or discharge event are unavailable.

Note 2 : Data availability depends on the shipping line.

Example

Let's take an example with a real container. You have done a call and retrieved this data :

{
    "metadata": {
        "shipmentType": "CT",
        "shipmentNumber": "ZZZZ0000000",
        "sealine": "ZZZZ",
        "sealineName": "TEST",
        "shippingStatus": "IN_TRANSIT",
        "updatedAt": "2024-06-04T09:17:41.163706Z",
        "warnings": []
    },
    "locations": [
        {
            "name": "MELBOURNE",
            "state": null,
            "country": "Australia",
            "countryCode": "AU",
            "locode": "AUMEL",
            "coordinates": {
                "lat": -37.8388,
                "lng": 144.937
            },
            "timezone": "Australia/Melbourne"
        },
        {
            "name": "COLOMBO",
            "state": null,
            "country": "Sri Lanka",
            "countryCode": "LK",
            "locode": "LKCMB",
            "coordinates": {
                "lat": 6.9535,
                "lng": 79.8465
            },
            "timezone": "Asia/Colombo"
        }
    ],
    "route": {
        "prepol": {
            "location": null,
            "date": null,
            "actual": false,
            "predictiveEta": null
        },
        "pol": {
            "location": {
                "name": "MELBOURNE",
                "state": null,
                "country": "Australia",
                "countryCode": "AU",
                "locode": "AUMEL",
                "coordinates": {
                    "lat": -37.8388,
                    "lng": 144.937
                },
                "timezone": "Australia/Melbourne"
            },
            "date": "2024-05-29T07:37:00Z",
            "actual": true,
            "predictiveEta": null
        },
        "pod": {
            "location": {
                "name": "COLOMBO",
                "state": null,
                "country": "Sri Lanka",
                "countryCode": "LK",
                "locode": "LKCMB",
                "coordinates": {
                    "lat": 6.9535,
                    "lng": 79.8465
                },
                "timezone": "Asia/Colombo"
            },
            "date": "2024-07-06T13:30:00Z",
            "actual": false,
            "predictiveEta": "2024-07-04T11:31:33Z"
        },
        "postpod": {
            "location": null,
            "date": null,
            "actual": false,
            "predictiveEta": null
        }
    },
    "vessels": [
        {
            "name": "MSC JUSTICE VIII",
            "imo": 9450351,
            "callSign": "CQIY7",
            "mmsi": 255806105,
            "flag": "PT"
        }
    ],
    "facilities": [],
    "containers": [
        {
            "number": "ZZZZ0000000",
            "isoCode": null,
            "status": "IN_TRANSIT",
            "events": [
                {
                    "location": {
                        "name": "MELBOURNE",
                        "state": null,
                        "country": "Australia",
                        "countryCode": "AU",
                        "locode": "AUMEL",
                        "coordinates": {
                            "lat": -37.8388,
                            "lng": 144.937
                        },
                        "timezone": "Australia/Melbourne"
                    },
                    "facility": null,
                    "description": "Gate in at Port terminal",
                    "eventType": "EQUIPMENT",
                    "eventCode": "GTIN",
                    "status": "CGI",
                    "date": "2024-05-29T07:34:00Z",
                    "isActual": true,
                    "isAdditionalEvent": null,
                    "routeType": "LAND",
                    "transportType": "TRUCK",
                    "vessel": null,
                    "voyage": null
                },
                {
                    "location": {
                        "name": "MELBOURNE",
                        "state": null,
                        "country": "Australia",
                        "countryCode": "AU",
                        "locode": "AUMEL",
                        "coordinates": {
                            "lat": -37.8388,
                            "lng": 144.937
                        },
                        "timezone": "Australia/Melbourne"
                    },
                    "facility": null,
                    "description": "Loaded on board",
                    "eventType": "EQUIPMENT",
                    "eventCode": "LOAD",
                    "status": "CLL",
                    "date": "2024-06-02T03:51:00Z",
                    "isActual": true,
                    "isAdditionalEvent": null,
                    "routeType": "SEA",
                    "transportType": "VESSEL",
                    "vessel": {
                        "name": "MSC JUSTICE VIII",
                        "imo": 9450351,
                        "callSign": "CQIY7",
                        "mmsi": 255806105,
                        "flag": "PT"
                    },
                    "voyage": null
                },
                {
                    "location": {
                        "name": "COLOMBO",
                        "state": null,
                        "country": "Sri Lanka",
                        "countryCode": "LK",
                        "locode": "LKCMB",
                        "coordinates": {
                            "lat": 6.9535,
                            "lng": 79.8465
                        },
                        "timezone": "Asia/Colombo"
                    },
                    "facility": null,
                    "description": "Vessel Arrival",
                    "eventType": "TRANSPORT",
                    "eventCode": "ARRI",
                    "status": "VAD",
                    "date": "2024-07-06T13:30:00Z",
                    "isActual": false,
                    "isAdditionalEvent": null,
                    "routeType": "SEA",
                    "transportType": "VESSEL",
                    "vessel": {
                        "name": "MSC JUSTICE VIII",
                        "imo": 9450351,
                        "callSign": "CQIY7",
                        "mmsi": 255806105,
                        "flag": "PT"
                    },
                    "voyage": "0NNI2W1NL"
                }
            ]
        }
    ],
    "routeData": null
}

Detection at POL

  • We have both event "CGI" for Container Gate in and "CLL" for Container loaded at POL.
  • CGI date is 2024-05-29T07:34:00Z
  • CLL date is 2024-06-02T03:51:00Z
  • demurrage time is 3 days, 20 hours, 17 minutes

You can then compare to your threshold and send, or not, an alert.

Detection at POD

  • We only have a "VAD" vessel arrival at POD event, and no "CGO" Container Gate out event
  • You cannot compute demurrage risk for POD
    You should keep updating the data for this shipment. Events can be added regularly by the shipping line.