Detention and Demurrage Optimization
In logistics, and especially in ocean transportation, interchange points are a major source of delays and additional costs. This is especially significant at the terminals when the loading and unloading of containers happen, as well as additional processes like customs clearance. Project44's Detention and Demurrage Optimization provides real-time visibility into the status of containers at the terminal. This visibility allows for better planning and execution of the terminal processes, reducing delays and costs.
Overview of Workflow
The workflows to create, get updates, update, and delete Ocean shipments with Detention and Demurrage Optimization are the same as the workflows for Ocean visibility. This documentation provides an overview of Detention and Demurrage Optimization data provided by project44 along with Ocean visibility data.
Detention and Demurrage Optimization Event Types
Below are the descriptions for event types specific to Detention and Demurrage Optimization shipments. These event types will be returned by the Get Event History and the Get Full Tracking History endpoints when retrieving a list of events for an Ocean shipment. The list of all Ocean visibility events are available here.
Event Type | Description |
---|---|
LAST_FREE_DAY | The last day that the container can be picked up from the terminal without incurring demurrage or detention charges. |
CUSTOMS_HOLD | The container is being held at the terminal by customs. |
CARRIER_HOLD | The container is being held at the terminal by the carrier. |
HELD | The container is being held at the terminal by any party other than carrier, customs for some reason. |
CUSTOMS_CLEARANCE | The container has been released by customs and is available for pickup at the terminal. |
RECEIVE_FROM_CARRIER | The container has been released by the carrier and is available for pickup at the terminal. |
AVAILABLE | The container is available for pickup at the terminal after it has been held by any party other than carrier, customs. |
COST_UPDATE | The cost information for the shipment has been updated. |
Detention and Demurrage Optimization Costs
Project44 also provides visibility into the detention and demurrage costs incurred when the container is not picked up from or return back to the terminal within the last free day. The costs are available in the cost section of the Get Full Tracking History endpoint.
Fields and Objects
The table below describes cost fields returned in the response 200 OK
from the GET: Fetch the tracking history endpoint.
Field | Description |
---|---|
costs | An array of all costs incurred for the shipment and the assets contained within. |
costs.type | The specific type of costs the shipment incurred. Valid values include [IMPORT_DEMURRAGE , IMPORT_DETENTION ]. |
costs.totalCost | A monetary value expressing amount and currency type. |
costs.totalCost.currency | The currency of the shipment value. Valid values include [ USD , CAD , MXN , EUR ] |
costs.totalCost.amount | The monetary amount indicating the total cost on shipment. |
costs.identifiers | A list of identifiers that specify the asset to which this cost or fee pertains. |
costs.tier | The tier of the cost. Valid values include [FREE_PERIOD , FIRST_PERIOD , SECOND_PERIOD , THIRD_PERIOD ]. |
Example
{ "costs": [ { "type": "IMPORT_DETENTION", "identifiers": [ { "type": "CONTAINER_TYPE", "value": "45GP" }, { "type": "CONTAINER_ID", "value": "string" } ], "totalCost": { "currency": "USD", "amount": 1000 }, "tier": "SECOND_PERIOD" }, { "type": "IMPORT_DEMURRAGE", "identifiers": [ { "type": "CONTAINER_TYPE", "value": "45GP" }, { "type": "CONTAINER_ID", "value": "string" } ], "totalCost": { "currency": "USD", "amount": 2000 }, "tier": "THIRD_PERIOD" } ] }
Terminal Information
Project44 also provides information about the terminal - for example, terminal name, address, facility ID, etc. This information can be found in the shipment.routeInfo.stops.location
object of Get Full Tracking History response.
Field | Description |
---|---|
name | Name of the terminal |
address.postalCode | Postal code of terminal |
address.addressLines | Detailed address of terminal |
address.city | City of terminal |
address.state | State of terminal |
address.country | Country of terminal |
identifiers.type | Type of location identifier for terminal. For example, FACILITY_ID , PORT_UN_LOCODE |
identifiers.value | Value of location identifier |
See our API Reference documentation for more information on all data that can be returned in a Get Event History response or a Get Full Tracking History response. The response payload returned by a Get Full Tracking History request is the same payload PUSHed by a webhook.