ldm_calculator
Calculate loading metres (LDM) a pallet load occupies on European road freight trailers, checking stacking, vehicle fit, floor positions and payload.
Instructions
Calculate loading metres (LDM) for European road freight — how much trailer length a pallet load occupies. 1 LDM = 1 linear metre of a 2.4m-wide trailer; a standard artic is 13.6 LDM.
Provide a pallet preset OR custom length_mm + width_mm — omitting both errors with a usage hint. Behavior: deterministic; stackable=true with stack_height 2 or 3 divides the floor footprint accordingly; fits is true only when the load fits the vehicle's LENGTH, its pallet FLOOR POSITIONS and — when weight_kg is given — its max PAYLOAD; each failed limit is named in warnings[] with its numbers. Euro and UK pallets count as their own floor positions (pallet_spaces.basis says which), other footprints as Euro equivalents. The vehicle's floor positions are its record's own count only when that count is a floor count; a weight-limited or unverified count (the 7.5t rigid stores 8, its 6.1 x 2.4 m deck holds 15) is not, and the positions come from the deck instead — pallet_spaces.floor_positions_basis says which, record_count is the stored figure. Without weight_kg the payload is not checked: payload_checked is false and an info warning gives the payload. utilisation_percent is of the vehicle's length. Rate-limited: a limit error carries reset_at, the UTC time the allowance resets.
Returns: ldm, vehicle (name, length_m, max_payload_kg), utilisation_percent, pallet_spaces (used, available, basis, floor_positions_basis, floor_positions_note, record_count, record_count_basis), total_weight_kg, payload_checked, fits and warnings under result, plus confidence, _source and citation (the FreightUtils v1 response envelope). Field names as this package serves them (snake_case); the hosted /api/mcp endpoint serves the same fields in camelCase (e.g. total_cbm → totalCbm).
Related: vehicle_lookup (the trailer specs behind the vehicle presets), pallet_fitting_calculator (boxes onto one pallet), consignment_calculator (mixed lines including LDM).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pallet | No | Pallet preset: euro=1200x800mm, uk=1200x1000mm, half=800x600mm, quarter=600x400mm. Provide this OR length_mm + width_mm. | |
| vehicle | No | Vehicle preset: artic = 13.6m curtainsider (default), rigid10 = DEPRECATED, removal in 3.0.0 (it still answers with the same figures and returns a DEPRECATED advisory in warnings[]; its 10 m length is published by no manufacturer for any rigid — use custom with vehicle_length_m, or artic), rigid75 = 7.5t rigid, luton = 3.5t Luton van, us53 = 53ft US/Canada trailer, us48 = 48ft US trailer, or custom. EU presets divide by the 2.40 m loading-metre convention; US trailers divide by their own 2.591 m internal width, because loading metres are not the North American pricing unit. | |
| quantity | No | Number of pallets. Default: 1. | |
| width_mm | No | Custom pallet width in millimetres. Example: 980. | |
| length_mm | No | Custom pallet length in millimetres (use with width_mm instead of a preset). Example: 1140. | |
| stackable | No | Whether pallets can be double/triple-stacked — halves (or thirds) the floor footprint. Default: false. | |
| weight_kg | No | Weight per pallet in kg — enables the payload side of the fits check. | |
| stack_height | No | Stack height when stackable: 2 or 3. Default: 2. | |
| vehicle_length_m | No | Custom vehicle load length in metres (required when vehicle=custom). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | ||
| _meta | No | ||
| as_of | No | ||
| result | Yes | ||
| status | No | ||
| _source | Yes | ||
| edition | No | ||
| citation | Yes | ||
| validity | No | ||
| warnings | No | ||
| confidence | Yes | ||
| missing_inputs | No | ||
| blocking_errors | No | ||
| envelope_version | Yes | ||
| normalized_input | No |