Skip to main content
Glama

Shipment Summary

shipment_summary
Read-onlyIdempotent

Composite shipment analysis in one call: volume (CBM), gross and chargeable weight, road LDM with pallet spaces and a vehicle suggestion (road mode), volumetric weight (air), revenue tonnes with a container suggestion (sea), dangerous-goods presence for items carrying un_number, and UK duty estimates for items carrying hs_code + customs_value.

Provide mode (road | air | sea | multimodal) and items[] (dims in cm, weight in kg PER ITEM, quantity; optional stackable, pallet_type, hs_code, un_number, customs_value PER ITEM, and adr_quantity — the TOTAL for the dangerous-goods line, all pieces together); origin/destination and incoterm refine the duty leg.

Behavior: calls the ldm_calculator, adr_lookup and uk_duty_calculator engines directly; CBM, volumetric weight and revenue tonnes are the same arithmetic inline rather than a call out. Road LDM uses the 2.40 m loading-metre convention divisor and, like ldm_calculator, treats an item with no stackable flag as NOT stacked. modeSpecific.palletSpaces is pallet FLOOR POSITIONS (the figure ldm_calculator reports); palletRows is the separate row count. The suggested vehicle is the smallest that holds the load by its length, its payload and its pallet floor positions — the record's own count when it is a floor count, otherwise worked from its deck (a 7.5t rigid holds 15 Euro pallets on the floor; modeSpecific.suggestedVehicleFloorPositions says which) — and trailerUtilisation is of that vehicle (utilisationBasis names it); the suggested container is the smallest dry box whose record holds the volume and payload. Sections that cannot run (e.g. duty without a customs value) surface in warnings instead of failing the whole call. Fields are checked by name: a field the tool does not read is refused with a tool error naming it and listing the accepted ones, never ignored. Rate-limited: a limit error carries reset_at, the UTC time the allowance resets.

Returns: mode, itemCount, totals {pieces, grossWeight, volumeCBM, chargeableWeight, billingBasis}, modeSpecific (LDM / pallet floor positions / pallet rows / suggested vehicle, or revenue tonnes / container), warnings and dataVersion (road mode attributes the vehicle dataset and the LDM divisor) under result — note this composite's result uses camelCase field names (legacy shape); plus confidence, _source and citation (the FreightUtils v1 response envelope).

Limitations: a planning summary, not a quotation or compliance determination.

Related: consignment_calculator (canonical snake_case lines[] shape with advisory flags), cbm_calculator, chargeable_weight_calculator, ldm_calculator, adr_lookup, uk_duty_calculator. ldm_calculator, adr_lookup and uk_duty_calculator are the engines this actually calls; the rest are the single-purpose equivalents of arithmetic it does inline.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeYesTransport mode
itemsYesArray of shipment items with dimensions, weight, and optional HS/UN codes
originNoOrigin location — ISO country code and optional UN/LOCODE
incotermNoIncoterms 2020 three-letter code (e.g. 'DAP', 'EXW', 'FOB')
destinationNoDestination location — ISO country code and optional UN/LOCODE
freight_costNoOptional freight cost in GBP for duty calculation, 0 or more (default 0)
insurance_costNoOptional insurance cost in GBP for duty calculation, 0 or more (default 0)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
okYes
resultYes
_sourceYes
citationYes
validityNo
warningsNo
confidenceYes
blocking_errorsNo
envelope_versionYes
normalized_inputNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / properties / freight_cost / description
      Previous value: -"Optional freight cost in GBP for duty calculation"New value: +"Optional freight cost in GBP for duty calculation, 0 or more (default 0)"
    • addedInput schema / properties / freight_cost / minimum
      Added value: +0
    • changedInput schema / properties / insurance_cost / description
      Previous value: -"Optional insurance cost in GBP for duty calculation"New value: +"Optional insurance cost in GBP for duty calculation, 0 or more (default 0)"
    • addedInput schema / properties / insurance_cost / minimum
      Added value: +0
    • changedInput schema / properties / items / items / properties / customs_value / description
      Previous value: -"Customs value in GBP PER ITEM (per piece) — multiplied by quantity for the line; the duty estimate uses the sum over all lines."New value: +"Customs value in GBP PER ITEM (per piece), 0 or more — multiplied by quantity for the line; the duty estimate uses the sum over all lines."
    • addedInput schema / properties / items / items / properties / customs_value / minimum
      Added value: +0
  2. Changed2 schema fields changed
    • changedInput schema / properties / items / items / properties / adr_quantity / description
      Previous value: -"ADR 1.1.3.6.3 quantity for this dangerous-goods line, in adr_quantity_unit. SEPARATE from weight, which is gross package mass — 1.1.3.6.3 counts none of its four categories that way. Supply both on EVERY dangerous-goods line and adrFlags.totalPoints is calculated; omit either and it stays null."New value: +"ADR 1.1.3.6.3 quantity for this dangerous-goods line — the total for the whole line, all pieces together (never per piece), in adr_quantity_unit. SEPARATE from weight, which is gross package mass — 1.1.3.6.3 counts none of its four categories that way. Supply both on EVERY dangerous-goods line and adrFlags.totalPoints is calculated; omit either and it stays null."
    • addedInput schema / properties / items / items / properties / customs_value / description
      Added value: +"Customs value in GBP PER ITEM (per piece) — multiplied by quantity for the line; the duty estimate uses the sum over all lines."
  3. Changed5 schema fields changed
    • addedInput schema / properties / items / items / properties / adr_quantity / maximum
      Added value: +1000000000
    • changedInput schema / properties / items / items / properties / quantity / maximum
      Previous value: -9007199254740991New value: +1000000
    • addedInput schema / properties / items / items / properties / weight / minimum
      Added value: +0
    • addedInput schema / properties / items / maxItems
      Added value: +50
    • addedInput schema / properties / items / minItems
      Added value: +1
  4. Changed4 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / destination / additionalProperties
      Added value: +false
    • addedInput schema / properties / items / items / additionalProperties
      Added value: +false
    • addedInput schema / properties / origin / additionalProperties
      Added value: +false
  5. Changed2 schema fields changed
    • addedInput schema / properties / items / items / properties / adr_quantity
      Added value: +{
      +  "description": "ADR 1.1.3.6.3 quantity for this dangerous-goods line, in adr_quantity_unit. SEPARATE from weight, which is gross package mass — 1.1.3.6.3 counts none of its four categories that way. Supply both on EVERY dangerous-goods line and adrFlags.totalPoints is calculated; omit either and it stays null.",
      +  "exclusiveMinimum": 0,
      +  "type": "number"
      +}
    • addedInput schema / properties / items / items / properties / adr_quantity_unit
      Added value: +{
      +  "description": "Dimension of adr_quantity. Checked against the dimension 1.1.3.6.3 counts for the row — a litres row given kilograms still withholds the total.",
      +  "enum": [
      +    "L",
      +    "kg"
      +  ],
      +  "type": "string"
      +}
  6. Changed5 schema fields changed
    • addedOutput schema / properties / _source / properties / authority_current_edition
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / _source / properties / checked_at
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / _source / properties / dataset_edition
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / envelope_version / const
      Removed value: -"1"
    • addedOutput schema / properties / envelope_version / enum
      Added value: +[
      +  "1",
      +  "1.1"
      +]
  7. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "_source": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "checked": {
      +          "type": "string"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "provenance_status": {
      +          "enum": [
      +            "verified",
      +            "pending-verification",
      +            "computed",
      +            "live"
      +          ],
      +          "type": "string"
      +        },
      +        "source_url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "name",
      +        "checked",
      +        "provenance_status"
      +      ],
      +      "type": "object"
      +    },
      +    "blocking_errors": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "message": {
      +            "type": "string"
      +          },
      +          "recovery": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "action": {
      +                "type": "string"
      +              },
      +              "params": {
      +                "additionalProperties": {},
      +                "propertyNames": {
      +                  "type": "string"
      +                },
      +                "type": "object"
      +              },
      +              "tool": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "action"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message",
      +          "recovery"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "citation": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "qualifier": {
      +          "type": "string"
      +        },
      +        "text": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "text"
      +      ],
      +      "type": "object"
      +    },
      +    "confidence": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "basis": {
      +          "enum": [
      +            "deterministic",
      +            "provenance",
      +            "match_quality",
      +            "freshness"
      +          ],
      +          "type": "string"
      +        },
      +        "level": {
      +          "enum": [
      +            "high",
      +            "medium",
      +            "low"
      +          ],
      +          "type": "string"
      +        },
      +        "score": {
      +          "maximum": 1,
      +          "minimum": 0,
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "level",
      +        "basis"
      +      ],
      +      "type": "object"
      +    },
      +    "envelope_version": {
      +      "const": "1",
      +      "type": "string"
      +    },
      +    "normalized_input": {
      +      "additionalProperties": {},
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "ok": {
      +      "type": "boolean"
      +    },
      +    "result": {
      +      "additionalProperties": {},
      +      "propertyNames": {
      +        "type": "string"
      +      },
      +      "type": "object"
      +    },
      +    "validity": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "as_of": {
      +          "type": "string"
      +        },
      +        "effective_from": {
      +          "type": "string"
      +        },
      +        "effective_to": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "as_of"
      +      ],
      +      "type": "object"
      +    },
      +    "warnings": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "type": "string"
      +          },
      +          "details": {
      +            "additionalProperties": {},
      +            "propertyNames": {
      +              "type": "string"
      +            },
      +            "type": "object"
      +          },
      +          "message": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "message"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "envelope_version",
      +    "ok",
      +    "result",
      +    "confidence",
      +    "_source",
      +    "citation"
      +  ],
      +  "type": "object"
      +}
  8. Changed12 schema fields changed
    • removedInput schema / properties / freightCost
      Removed value: -{
      -  "description": "Optional freight cost in GBP for duty calculation",
      -  "type": "number"
      -}
    • addedInput schema / properties / freight_cost
      Added value: +{
      +  "description": "Optional freight cost in GBP for duty calculation",
      +  "type": "number"
      +}
    • removedInput schema / properties / insuranceCost
      Removed value: -{
      -  "description": "Optional insurance cost in GBP for duty calculation",
      -  "type": "number"
      -}
    • addedInput schema / properties / insurance_cost
      Added value: +{
      +  "description": "Optional insurance cost in GBP for duty calculation",
      +  "type": "number"
      +}
    • removedInput schema / properties / items / items / properties / customsValue
      Removed value: -{
      -  "type": "number"
      -}
    • addedInput schema / properties / items / items / properties / customs_value
      Added value: +{
      +  "type": "number"
      +}
    • removedInput schema / properties / items / items / properties / hsCode
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / items / items / properties / hs_code
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / items / items / properties / palletType
      Removed value: -{
      -  "description": "Pallet standard the item sits on, if any",
      -  "enum": [
      -    "euro",
      -    "uk",
      -    "us",
      -    "custom",
      -    "none"
      -  ],
      -  "type": "string"
      -}
    • addedInput schema / properties / items / items / properties / pallet_type
      Added value: +{
      +  "description": "Pallet standard the item sits on, if any",
      +  "enum": [
      +    "euro",
      +    "uk",
      +    "us",
      +    "custom",
      +    "none"
      +  ],
      +  "type": "string"
      +}
    • removedInput schema / properties / items / items / properties / unNumber
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / items / items / properties / un_number
      Added value: +{
      +  "type": "string"
      +}
  9. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.