---
title: "Loading Metres Calculator"
method: GET
path: "/api/ldm"
tags: ["Calculators"]
---

# Loading Metres Calculator

`GET /api/ldm`

## Request

- Base URL: `https://www.freightutils.com`
- URL: `https://www.freightutils.com/api/ldm`
- Auth: none declared

Calculate loading metres (LDM) for pallets on a vehicle. Supports preset pallet sizes or custom dimensions. Returns utilisation percentage, pallet spaces, and fit warnings.

## Query parameters

- `pallet` 'euro' | 'uk' | 'half' | 'quarter'
- `length` number
- `width` number
- `qty` integer
- `stackable` boolean
- `stack` 2 | 3
- `weight` number
- `vehicle` 'artic' | 'rigid10' | 'rigid75' | 'luton' | 'us53' | 'us48' | 'custom'
- `vehicle_length` number

## Response `200`

Successful LDM calculation.

- LdmResponse
  - `ldm` number, required: Calculated loading metres.
  - `vehicle` LdmVehicle, required
    - `name` string, required: Human-readable vehicle name.
    - `length_m` number, required: Vehicle loading length in metres.
    - `max_payload_kg` number, required: Maximum payload capacity in kilograms.
  - `utilisation_percent` number, required: Percentage of vehicle length used.
  - `pallet_spaces` LdmPalletSpaces, required
    - `used` integer, required: Floor positions the load needs (stacked pallets share a position). For a footprint other than Euro or UK, Euro-pallet equivalents.
    - `available` integer, nullable, required: Floor positions the vehicle offers for this pallet standard: the record's own count when its palletCapacityBasis is floor-positions, otherwise derived from its internal length x width (see floor_positions_basis). null for a custom vehicle.
    - `basis` 'euro_floor_positions' | 'uk_floor_positions' | 'euro_pallet_equivalents', required: What used and available count.
    - `floor_positions_basis` 'record_floor_count' | 'deck_geometry' | 'loading_metre_convention' | 'not_available', required: Where available came from: the record's floor count, the deck geometry, the loading-metre convention (no internal width on the record), or not available (custom vehicle).
    - `floor_positions_note` string: One sentence on how available was arrived at.
    - `record_count` integer, nullable: The vehicle record's stored pallet count for this standard, as stored (it may be weight-limited or unverified rather than a floor count).
    - `record_count_basis` string, nullable: The record's palletCapacityBasis: floor-positions, weight-limited or unverified.
  - `total_weight_kg` number, nullable, required: Total weight of all pallets in kg, or null if weight not provided.
  - `payload_checked` boolean: true when a weight was given and checked against the vehicle's max payload. false: fits reflects the floor and length only, and warnings[] carries an info note with the payload figure.
  - `fits` boolean, required: true only when the load fits the vehicle's length, its floor positions (pallet_spaces.available) and, when a weight is given, its max payload. Each failed constraint is named in warnings[] with its numbers.
  - `warnings` object[], required: Warnings about the load and the request. Each is an object. A deprecated vehicle id yields warnings[0] with type=info and a message starting DEPRECATED: vehicle="<id>".
    - `type` 'danger' | 'warn' | 'info', required: danger = the load does not fit or is overweight; warn = close to a limit; info = advisory, including vehicle deprecation.
    - `message` string, required: Human-readable warning text.
  - `meta` object, required
    - `inputs` LdmMetaInputs
      - `length_mm` number: Pallet length in mm as interpreted.
      - `width_mm` number: Pallet width in mm as interpreted.
      - `qty` integer: Number of pallets.
      - `stackable` boolean
      - `stack_factor` integer
      - `weight_per_pallet_kg` number, nullable
      - `vehicle` string
  - `_source` SourceEnvelope: Additive provenance citation for the dataset or method behind this response, from FreightUtils' single provenance source of truth. Shapes: reference, methodology (calculators), or reference with provenance_status:'pending-verification'. Fields appear only when a real value exists.
    - `type` 'reference' | 'methodology', required
    - `authority` string
    - `dataset` string
    - `source_url` string
    - `data_vintage` string
    - `licence` string
    - `retrieved_via` string
    - `standard` string
    - `reference` string
    - `computed_by` string
    - `provenance_status` 'pending-verification'
    - `dataset_edition` string: Edition this response is served from (editioned reference datasets only), e.g. 'UN/LOCODE 2025-1'.
    - `authority_current_edition` string: The authority's current in-force edition at the last check. Differs from dataset_edition only when the served data lags the authority.
    - `checked_at` string: YYYY-MM-DD of the last served-vs-authority edition comparison (on-demand checker, staleness-guarded).

## Other responses

- `400`: Invalid or missing parameters — an unknown vehicle, a custom vehicle without a vehicle_length above 0, or a qty that is not a whole number. The details name each one.

---

[API](https://skmtc.dev/freightutils/apis/freightutils-api.md) · [All operations](https://skmtc.dev/freightutils/apis/freightutils-api/llms.txt) · [OpenAPI document](https://skmtc.dev/freightutils/apis/freightutils-api/revisions/6607bb3cea90?raw)
