Estimate shipping costs within Canada based on weight, dimensions, and distance.
Purolator Ground
Purolator Express (End of Day)
Purolator Express 10:30 AM
Purolator Express 9:00 AM
Estimated Shipping Quote
Billable Weight:–
Base Transport Charge:–
Distance Surcharge:–
Fuel Surcharge (Est. 14%):–
Total Estimated Cost:–
Understanding Purolator Shipping Rates in Canada
Calculating shipping costs accurately is essential for businesses and individuals sending packages across Canada. Purolator rates are determined by a combination of factors, including package weight, dimensions, distance traveled, and the speed of delivery required.
Key Factors Influencing Your Rate
Actual vs. Volumetric Weight: Couriers charge based on the "Billable Weight," which is the greater of the actual scale weight or the volumetric weight. Volumetric weight reflects the space a package occupies in the truck or plane. It is calculated in centimeters as: (Length x Width x Height) / 5000.
Zones and Distance: Canada is vast, and shipping rates increase significantly with distance. Shipping from Toronto to Montreal (Zone 1 or 2 equivalent) is cheaper than shipping from Toronto to Vancouver (Zone 7+).
Service Level:
Purolator Ground: The most economical option, typically taking 2-5 business days depending on the distance.
Purolator Express: Faster air or expedited ground services that guarantee delivery by a specific time (e.g., 9 AM, 10:30 AM, or End of Day).
Additional Surcharges
When using a Purolator rates calculator, keep in mind that the base rate is rarely the final price. Common surcharges include:
Fuel Surcharge: A variable percentage added to the base rate, fluctuating with global oil prices.
Residential Delivery Fee: Delivering to a home often incurs an extra fee compared to delivering to a business address.
Special Handling: Items that are not encased in cardboard, are cylindrical, or are exceptionally heavy may trigger special handling fees.
Note: This calculator provides an estimation based on standard industry formulas and approximated zone pricing. For exact quotes, creating a shipment, or scheduling a pickup, please visit the official Purolator website or log in to your shipping account.
function calculateShipping() {
// 1. Get Input Values
var weightInput = document.getElementById('packageWeight').value;
var distanceInput = document.getElementById('distanceKm').value;
var lengthInput = document.getElementById('dimLength').value;
var widthInput = document.getElementById('dimWidth').value;
var heightInput = document.getElementById('dimHeight').value;
var serviceMultiplier = document.getElementById('serviceType').value;
// 2. Validate Inputs
var weight = parseFloat(weightInput);
var distance = parseFloat(distanceInput);
var length = parseFloat(lengthInput);
var width = parseFloat(widthInput);
var height = parseFloat(heightInput);
var multiplier = parseFloat(serviceMultiplier);
if (isNaN(weight) || weight <= 0) {
alert("Please enter a valid package weight.");
return;
}
if (isNaN(distance) || distance <= 0) {
alert("Please enter a valid distance in km.");
return;
}
if (isNaN(length) || isNaN(width) || isNaN(height) || length <= 0 || width <= 0 || height <= 0) {
alert("Please enter valid dimensions (Length, Width, Height).");
return;
}
// 3. Calculation Logic
// A. Calculate Volumetric Weight (cm / 5000 is standard metric formula)
var volWeight = (length * width * height) / 5000;
// B. Determine Billable Weight (Max of Actual vs Volumetric)
var billableWeight = Math.max(weight, volWeight);
// C. Base Cost Model (Simulated)
// Base starting fee for processing
var baseFee = 12.00;
// Weight Cost: heavily dependent on distance, but modeled here as base cost per kg
var costPerKg = 1.50;
var weightCharge = billableWeight * costPerKg;
// Distance Cost: Cost per km
var costPerKm = 0.04;
var distanceCharge = distance * costPerKm;
// Combine for transport subtotal
var transportSubtotal = (baseFee + weightCharge + distanceCharge) * multiplier;
// D. Fuel Surcharge (Estimated at 14%)
var fuelSurchargePercent = 0.14;
var fuelCharge = transportSubtotal * fuelSurchargePercent;
// E. Total
var totalCost = transportSubtotal + fuelCharge;
// 4. Update UI
document.getElementById('res-billable-weight').innerText = billableWeight.toFixed(2) + " kg";
// Show the breakdown
// Base transport shown as the pre-fuel, pre-distance specific breakdown is hard to split cleanly in a simple summary,
// so we will show the "Base Transport" as the sum before fuel.
// Let's split it up for the display logic:
// Base portion (weight + base fee) * multiplier
var baseDisplay = (baseFee + weightCharge) * multiplier;
// Distance portion
var distanceDisplay = (distanceCharge) * multiplier;
document.getElementById('res-base').innerText = "$" + baseDisplay.toFixed(2);
document.getElementById('res-distance').innerText = "$" + distanceDisplay.toFixed(2);
document.getElementById('res-fuel').innerText = "$" + fuelCharge.toFixed(2);
document.getElementById('res-total').innerText = "$" + totalCost.toFixed(2);
// Show results div
document.getElementById('shipping-results').style.display = "block";
}