Estimate shipping costs based on weight, volume, and transport mode.
Air Freight (6000 dim factor)
Sea Freight (LCL – 1000 dim factor)
Express Courier (5000 dim factor)
$
Package Dimensions (cm)
$
Shipment Summary
Total Actual Weight:0 kg
Total Volumetric Weight:0 kg
Chargeable Weight:0 kg
Base Freight Cost:$0.00
Fuel Surcharge:$0.00
Estimated Total:$0.00
*Disclaimer: This is an estimate. Final rates are subject to carrier confirmation, local taxes, and specific port charges.
Understanding International Freight Rates
Calculating the cost of shipping goods internationally involves more than just weighing a box. Logistical providers use a concept called Chargeable Weight to determine the final price. This ensures that bulky, light items (like pillows) pay their fair share of space compared to heavy, compact items (like steel bars).
How Chargeable Weight is Determined
Carriers compare two numbers and bill based on whichever is higher:
Actual Weight: The gross weight of the cargo including packaging and pallets.
Volumetric (Dimensional) Weight: A calculation based on the volume of the package using a "dim factor."
Common Volumetric Factors
The divisor used to calculate volume-based weight varies by transport mode:
Mode
Standard Divisor (cm³/kg)
Formula (L x W x H) / Factor
Air Freight
6,000
(L * W * H) / 6,000
Express / Courier
5,000
(L * W * H) / 5,000
Sea (LCL)
1,000
(L * W * H) / 1,000
Practical Shipping Example
Imagine you are shipping 5 boxes via Air Freight. Each box weighs 20kg and measures 50cm x 50cm x 50cm.
Actual Weight: 5 boxes × 20kg = 100kg.
Volume: 50 × 50 × 50 = 125,000 cm³ per box. Total = 625,000 cm³.
Volumetric Weight: 625,000 / 6,000 = 104.17kg.
Chargeable Weight: Since 104.17kg (Volumetric) is higher than 100kg (Actual), you are billed for 104.17kg.
Additional Freight Costs to Consider
The "Base Rate" is rarely the final price. Keep an eye out for these standard surcharges:
Fuel Surcharge (BAF): A percentage adjusted monthly based on global oil prices.
Currency Adjustment (CAF): Used in sea freight to offset exchange rate fluctuations.
Security Fees: Often applied at airports and ports for screening.
Documentation & Customs: Fixed fees for bill of lading (B/L) or airway bill (AWB) preparation.
Inland Haulage: The cost of moving the goods from the warehouse to the port/airport.
function calculateFreightRate() {
// Inputs
var mode = document.getElementById("freightMode").value;
var packages = parseFloat(document.getElementById("packageCount").value) || 1;
var unitWeight = parseFloat(document.getElementById("unitWeight").value) || 0;
var rate = parseFloat(document.getElementById("baseRate").value) || 0;
var length = parseFloat(document.getElementById("pkgLength").value) || 0;
var width = parseFloat(document.getElementById("pkgWidth").value) || 0;
var height = parseFloat(document.getElementById("pkgHeight").value) || 0;
var fuelPct = parseFloat(document.getElementById("fuelSurcharge").value) || 0;
var fees = parseFloat(document.getElementById("extraFees").value) || 0;
// Logic setup
var dimFactor = 6000;
if (mode === "sea") dimFactor = 1000;
if (mode === "express") dimFactor = 5000;
// Calculations
var totalActualWeight = packages * unitWeight;
var volumePerPkg = (length * width * height);
var totalVolume = volumePerPkg * packages;
var totalVolumetricWeight = totalVolume / dimFactor;
// For Sea LCL, if volume is measured in CBM, 1 CBM = 1000kg chargeable usually
// Here we use the standard cm to kg conversion
var chargeableWeight = Math.max(totalActualWeight, totalVolumetricWeight);
var baseCost = chargeableWeight * rate;
var fuelCost = baseCost * (fuelPct / 100);
var grandTotal = baseCost + fuelCost + fees;
// Display Results
document.getElementById("resTotalActual").innerText = totalActualWeight.toFixed(2) + " kg";
document.getElementById("resTotalVol").innerText = totalVolumetricWeight.toFixed(2) + " kg";
document.getElementById("resChargeable").innerText = chargeableWeight.toFixed(2) + " kg";
document.getElementById("resBaseCost").innerText = "$" + baseCost.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resFuelCost").innerText = "$" + fuelCost.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resGrandTotal").innerText = "$" + grandTotal.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("freightResult").style.display = "block";
// Scroll to results
document.getElementById("freightResult").scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}