Flat Rate Envelope
Legal Flat Rate Envelope
Padded Flat Rate Envelope
Small Flat Rate Box
Medium Flat Rate Box
Large Flat Rate Box
Your Own Packaging (Calculate by Weight/Zone)
USPS rounds up to the nearest pound.
Zone 1 (Local / < 50 miles)
Zone 2 (51 – 150 miles)
Zone 3 (151 – 300 miles)
Zone 4 (301 – 600 miles)
Zone 5 (601 – 1000 miles)
Zone 6 (1001 – 1400 miles)
Zone 7 (1401 – 1800 miles)
Zone 8 (1801+ miles)
Zone 9 (Freely Associated States)
Zones are based on the distance between origin and destination zip codes.
Estimated Retail Postage
$0.00
Understanding USPS Priority Mail Rates
Calculating shipping costs for the United States Postal Service (USPS) Priority Mail is essential for small business owners, e-commerce sellers, and individuals sending packages. The cost is determined primarily by three factors: the packaging type (Flat Rate vs. your own box), the weight of the package, and the distance it must travel (measured in "Zones").
1. Flat Rate Pricing
USPS Flat Rate pricing is one of the most popular options because it offers predictability. If it fits in the specific USPS-branded box or envelope and weighs under 70 lbs, it ships for a fixed price regardless of the destination within the US. This is ideal for heavy items traveling long distances.
Flat Rate Envelopes: Best for documents and small flat items.
Small Flat Rate Box: Ideal for small electronics or jewelry.
Medium Flat Rate Box: The most versatile size for shoes, office supplies, or clothing.
Large Flat Rate Box: Best for larger items or bulkier goods.
2. Zone-Based Pricing (Variable Rates)
If you use your own packaging, the rate is based on weight and distance. USPS divides the United States into 9 Zones based on the distance from the origin zip code to the destination zip code.
Zone 1 & 2: Local shipments (up to 150 miles).
Zone 8: Cross-country shipments (over 1801 miles).
Zone 9: Shipments to US territories and Freely Associated States.
Generally, the heavier the package and the higher the Zone number, the more expensive the postage will be.
3. Weight Rules
When using your own packaging, weight is critical. USPS rounds up to the nearest pound. For example, a package weighing 1 lb 2 oz will be charged at the 2 lb rate. The maximum weight for Priority Mail is 70 lbs.
Dimensional Weight
Note that for very large but lightweight packages, USPS may apply "Dimensional Weight" (DIM weight) pricing, which charges based on the volume of the box rather than the actual weight. This calculator provides estimates based on actual weight; always check dimensions for large boxes to avoid surcharges.
function toggleFields() {
var type = document.getElementById("packageType").value;
var weightDiv = document.getElementById("weightContainer");
var zoneDiv = document.getElementById("zoneContainer");
if (type === "variable") {
weightDiv.style.display = "block";
zoneDiv.style.display = "block";
} else {
weightDiv.style.display = "none";
zoneDiv.style.display = "none";
}
}
function calculatePostage() {
var type = document.getElementById("packageType").value;
var cost = 0;
var details = "";
// 2024 Approximate Retail Rates for estimation purposes
var flatRates = {
"flat-env": 9.85,
"flat-legal": 10.15,
"flat-padded": 10.60,
"flat-small": 10.40,
"flat-med": 18.40,
"flat-large": 24.75
};
if (type !== "variable") {
cost = flatRates[type];
details = "Flat Rate Option selected. Weight limit: 70lbs.";
} else {
var weightInput = document.getElementById("weightLbs").value;
var zone = parseInt(document.getElementById("uspsZone").value);
if (weightInput === "" || weightInput 70) {
document.getElementById("totalCost").innerHTML = "Error";
document.getElementById("rateDetails").innerHTML = "Maximum weight for Priority Mail is 70 lbs.";
document.getElementById("resultBox").style.display = "block";
return;
}
// Simplified Matrix for Variable Rates (Retail Approximation)
// Format: [Weight, Zone 1&2, Zone 3, Zone 4, Zone 5, Zone 6, Zone 7, Zone 8, Zone 9]
// Note: Zone 1 and 2 are usually same price.
// Using representative 2024 retail data points.
// Base rates for 1lb to 10lb
var rateMatrix = {
1: [9.25, 9.65, 10.25, 11.00, 11.75, 12.60, 14.35, 23.00],
2: [10.10, 10.95, 11.95, 13.50, 15.35, 17.05, 19.95, 33.95],
3: [10.85, 11.95, 13.15, 15.10, 18.00, 21.05, 25.55, 43.15],
4: [11.65, 13.15, 14.55, 17.55, 21.65, 25.20, 29.85, 51.55],
5: [12.45, 14.25, 15.65, 19.65, 24.85, 29.35, 34.60, 59.85],
6: [13.25, 15.30, 16.75, 21.80, 27.95, 33.55, 39.55, 68.30],
7: [14.25, 16.60, 18.40, 23.95, 30.50, 37.75, 45.10, 77.05],
8: [15.00, 18.05, 20.25, 26.20, 33.50, 42.00, 50.35, 86.45],
9: [15.75, 19.30, 22.15, 28.50, 36.65, 45.45, 55.65, 95.80],
10: [16.65, 20.80, 24.15, 30.85, 39.60, 50.15, 60.85, 105.10]
};
var selectedRate = 0;
// Map zone selection to array index
// Zone 1/2 = index 0, Zone 3 = index 1… Zone 9 = index 7
var zoneIndex = 0;
if (zone index 1, Zone 8 -> index 6, Zone 9 -> index 7
if (weight 10lbs, use a formula approximation based on Zone multiplier
// This prevents needing a 70-line array while keeping estimates reasonable
var baseRateTen = rateMatrix[10][zoneIndex];
var extraWeight = weight – 10;
// Approximate cost per additional pound based on Zone
var perLbAdder = [0.85, 1.25, 1.65, 2.30, 3.15, 4.25, 5.30, 9.35];
selectedRate = baseRateTen + (extraWeight * perLbAdder[zoneIndex]);
}
cost = selectedRate;
details = "Variable Rate for " + weight + " lb(s) to Zone " + zone;
}
document.getElementById("totalCost").innerHTML = "$" + cost.toFixed(2);
document.getElementById("rateDetails").innerHTML = details;
document.getElementById("resultBox").style.display = "block";
}
// Initialize state
toggleFields();