Calculating sea freight rates, specifically for Less than Container Load (LCL) shipments, requires understanding the Weight or Measurement (W/M) rule. Shipping lines charge based on whichever is greater: the actual weight of the cargo or its volumetric size.
The 1:1000 Ratio
In sea freight, the standard conversion factor is 1,000 kg = 1 Cubic Meter (CBM). This means that if your cargo weighs 1,200 kg but only occupies 0.8 CBM, you will be billed for 1.2 "Revenue Tons" because the weight exceeds the volume ratio.
Step-by-Step Calculation Example
Imagine you are shipping a crate with the following details:
Gross Weight: 500 kg (0.5 Metric Tons)
Dimensions: 1.5m x 1.2m x 1.2m = 2.16 CBM
Freight Rate: $90 per CBM/Ton
Port Fees: $200
In this case, 2.16 CBM is greater than 0.5 Tons. Therefore, the Chargeable Weight is 2.16. The ocean freight cost would be 2.16 x $90 = $194.40. Adding the $200 port fees, your total rate is $394.40.
Key Terms to Know
CBM: Cubic Meters, calculated by multiplying Length x Width x Height (in meters).
Revenue Ton: The unit used for billing, derived from the higher value between weight and volume.
BAF (Bunker Adjustment Factor): A fuel surcharge often added to the base freight rate.
CAF (Currency Adjustment Factor): A fee to offset exchange rate fluctuations.
function calculateFreight() {
var weight = parseFloat(document.getElementById('cargoWeight').value);
var volume = parseFloat(document.getElementById('cargoVolume').value);
var rate = parseFloat(document.getElementById('freightRate').value);
var fixed = parseFloat(document.getElementById('fixedCharges').value);
var resultDiv = document.getElementById('freightResult');
if (isNaN(weight) || isNaN(volume) || isNaN(rate)) {
alert("Please enter valid numbers for weight, volume, and rate.");
return;
}
if (isNaN(fixed)) {
fixed = 0;
}
// Convert weight to Metric Tons for comparison (1000kg = 1 Ton/CBM)
var weightInTons = weight / 1000;
// Determine Chargeable Weight (W/M rule)
var chargeableWeight;
var unitLabel;
if (weightInTons > volume) {
chargeableWeight = weightInTons;
unitLabel = " Tons (Weight-based)";
} else {
chargeableWeight = volume;
unitLabel = " CBM (Volume-based)";
}
var oceanFreight = chargeableWeight * rate;
var grandTotal = oceanFreight + fixed;
// Display Results
document.getElementById('resChargeable').innerHTML = chargeableWeight.toFixed(3) + unitLabel;
document.getElementById('resOcean').innerHTML = "$" + oceanFreight.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('resTotal').innerHTML = "$" + grandTotal.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
resultDiv.style.display = 'block';
}