To calculate shipping costs, start with the packed order, get a carrier quote, then add the expenses involved in getting that order out the door.
Total shipping cost = carrier charge + packaging + handling labor + other applicable costs.
The amount you charge at checkout is a separate decision. You might recover the full cost, absorb part of it, or offer free delivery on qualifying orders. The numbers need to support that choice.
This guide walks through the calculation for US ecommerce stores, including international orders, platform settings and a worked cost example.
Step 1: Pack, weigh and measure the order
Quote the package you will send. A product’s catalog weight leaves out the box, protective material and everything else traveling with it.
Pack a representative order using your normal materials. Include inserts, tape and any accessories shipped with the product. Weigh the complete parcel, then measure its outside dimensions. Record the measurements before applying the rounding rules for your chosen carrier service.
Keep these details together:
- Packed weight: Use the parcel’s scale weight, with the unit clearly marked.
- Outside dimensions: Record length, width and height, including bulges.
- Origin and destination: Use the actual dispatch location and delivery postal code.
- Address type: Identify residential delivery where the quote requires it.
- Dispatch date and service: Specify when you will hand over the parcel and the delivery speed needed.
- Package count: Record each package separately for orders that ship in multiple boxes.
Incorrect measurements and address classification can lead to UPS shipping-charge corrections. Guessing now can leave you paying the difference later.
If you sell several product types, create a small packing sheet for common baskets: a single item, a typical bundle and a bulky order. Record which box each basket actually needs. Don’t assume that doubling the item count only doubles the weight; it may require a different package.
You now have a shipment record you can reuse across calculators. Keep those inputs unchanged when comparing equivalent services.
Step 2: Calculate the billable weight
A light box can attract a heavy shipping bill. Carriers can price parcels using the space they occupy as well as their scale weight.
Actual versus dimensional weight
Actual weight is what your scale measures. Dimensional weight, also called DIM or volumetric weight, converts the package’s volume into a weight for pricing.
The basic calculation is:
Dimensional weight = length ร width ร height รท the applicable divisor.
Use the units, measurement rounding and eligibility rules specified for your service and rate channel. Where dimensional pricing applies, the carrier generally compares actual and dimensional weight to establish the billable weight.
| Service or rate channel | Dimensional-weight rule to check |
|---|---|
| USPS Ground Advantage Commercial, zones 1 to 9 | For rectangular parcels over 1,728 cubic inches, divide volume by 139; round dimensions and dimensional pounds up. |
| UPS Daily Rates packages | Divide cubic inches by 139; round fractional dimensions and dimensional pounds up. |
| UPS Retail Rates packages | Use 166 for domestic packages and 139 for export packages; round fractional dimensions up. |
| FedEx Ground and Home Delivery | Calculate each package using cubic inches divided by 139; round fractional inches up. |
These rules apply to the listed parcel services and rate channels. Check the USPS Ground Advantage Commercial rules, UPS rate guides or FedEx Service Guide for your shipment. Freight and other services can have different requirements.
Worked example
Consider a hypothetical 5 lb rectangular package measuring 18 ร 14 ร 10 inches, sent using USPS Ground Advantage Commercial in zones 1 to 9:
- Volume: 18 ร 14 ร 10 = 2,520 cubic inches.
- This exceeds the 1,728-cubic-inch threshold.
- Dimensional weight: 2,520 รท 139 = 18.13 lb.
- Round up to 19 lb. This exceeds the actual 5 lb weight, so 19 lb is the billable weight.
This calculates weight, not a postage price. Eligible cubic pricing follows separate rules; don’t substitute it for this calculation.
Before accepting a high billable weight, try a smaller suitable box. Keep enough protection for the product, then measure and quote again. Record both results so you can choose packaging based on the total cost and protection it provides.
Keep separate fields for scale weight, outside dimensions and billable weight. In this example, the parcel still weighs 5 lb: don’t enter 19 lb into a calculator’s actual-weight field.
Step 3: Compare carrier quotes on the same basis
Get quotes for the same packed order, dispatch date and delivery requirement. Compare rates you can actually purchase, including any account or platform pricing available to your store.
A public retail estimate and a signed-in account quote may show different prices. For example, USPS Click-N-Ship gives users commercial pricing. You don’t need to assume the retail counter price is your only option.
Use these calculators as starting points:
| Calculator | What to check | Rate-channel consideration |
|---|---|---|
| USPS postage calculator | Destination, package dimensions, weight and eligible services | Compare the relevant retail or business estimate with the channel where you will buy the label. |
| UPS shipping quote | Package details, address type, dispatch date and delivery service | Use the appropriate account and rate type; Daily and Retail pricing differ. |
| FedEx rate calculator | Service, shipment details, options and total estimated charges | Sign in to see applicable account discounts. |
| DHL quote tool | Origin, destination, shipment type and package details | Choose the relevant DHL service or division and confirm the quote’s exclusions. |
Save the result with the input details. A price without its service, package and destination is difficult to use when setting a storewide policy.
For each quote, review:
- Delivery terms: Compare services that meet the customer’s needs. Read the terms before treating a delivery estimate as a commitment.
- Total quoted charge: Check the breakdown, rather than copying the first rate displayed.
- Additional services: Match signature and other selected options across quotes.
- Surcharges: Establish which applicable fees are already included.
- Dispatch timing: Check the handover requirements for the quoted service and date.
FedEx’s estimating guidance distinguishes estimates from final charges. Its service guide also covers options and surcharges that can affect the total. Don’t add a fee twice if the quote already includes it.
There is no useful universal answer to โWhich carrier is cheapest?โ Your store needs the lowest suitable quote for a particular parcel and route, with the terms you need. Repeat the exercise across representative orders before choosing a default.
For example, compare a nearby single-item order, a distant bundle and your bulkiest regular parcel. A carrier that wins one comparison may not win all 3. Keep a separate note for unusually expensive destinations so those orders don’t disappear inside a comfortable average.
Requote when the shipment date or package changes. Save a shortlist of suitable services and the complete quoted cost for each.
If a platform’s label rate beats a carrier’s direct quote, record the platform as the purchasing channel. You need access to that price when the order arrives. Allocate any required software cost in the next step’s ledger so you can assess the saving after expenses.
Step 4: Add packaging, handling and other costs
The label price is only part of your shipping cost. Add the supplies and work needed to prepare the parcel before deciding how much of the bill your store can absorb.
Here is a hypothetical calculation. The inputs are invented for this example, not carrier quotes or typical market prices. This is a separate shipment from the dimensional-weight example above.
| Cost component | Hypothetical calculation | Per-order cost |
|---|---|---|
| Shipping label | Assumed complete label charge | $8.20 |
| Packaging | Box, protective material and tape | $0.90 |
| Handling labor | 6 minutes at $18 per hour | $1.80 |
| Shipping software allocation | $30 monthly cost divided by 100 orders | $0.30 |
| Total | Sum of the 4 components | $11.20 |
For labor, divide the minutes spent on an order by 60, then multiply by the hourly labor cost you want the calculation to recognize. Include the relevant picking, packing and label work consistently.
If you pack orders yourself, record that time too. You might not make a separate wage payment for each parcel, but valuing your work helps you judge whether the shipping policy would support paid help later.
Keep direct expenses and allocated costs identifiable. The box is a direct expense. A share of your monthly software bill is an allocation. Revisit the allocation when order volume changes; $30 spread across 50 orders is $0.60 per order, not $0.30.
Choose a clear boundary for the worksheet. If it measures outbound fulfillment, keep product acquisition costs elsewhere in your order-profit calculation. If you also allocate warehouse overhead, label that allocation and explain how you divided it. Consistency lets you compare two packing methods or providers without moving expenses between columns to make one look cheaper.
Add other costs only where they apply:
- Extra protection purchased for a shipment, using the actual product’s terms.
- An allowance for return shipping you expect to fund, based on your own order history.
- Relevant storage or fulfillment overhead, using a consistent allocation method.
Be precise about protection. FedEx declared value increases its liability limit under stated conditions; it is not the same thing as shipping insurance.
If you use a fulfillment provider
Request a complete quote for your order pattern. ShipBob’s pricing separates categories including implementation, receiving, storage, and picking, packing and shipping; special requirements can add costs.
Check what each charge includes before adding your own packaging or labor allowance. Count a bundled expense once. Compare the complete provider estimate with your complete self-fulfillment cost, rather than comparing its combined fee with your postage alone.
Our fulfillment-company guide can help you explore providers. The ShipBob vs ShipStation comparison explains the difference between outsourced fulfillment and shipping software. Buying a label doesn’t transfer the packing work to a warehouse.
Step 5: Account for international shipping costs
For an international order, calculate transport and import-related costs separately. Then decide who will pay each part before you offer the destination at checkout.
Transport versus import costs
A shipping estimate may cover moving the parcel without covering everything needed to import it. The DHL Express Capability Tool uses origin retail estimates that may exclude duties, taxes, customs charges and some fees.
Keep separate lines in your worksheet for:
- Transport: The selected service and included shipment options.
- Government charges: Applicable import duties and taxes.
- Carrier processing: Applicable clearance, administration or duty-payment fees.
- Your fulfillment costs: Packaging, handling and any other expenses you fund.
Carrier processing charges deserve their own line. DHL customs services can involve fees for duty and tax processing or nonroutine clearance, in addition to government charges.
Don’t fill an unknown field with zero. Mark it for confirmation so an incomplete transport estimate doesn’t become the price you promise the customer.
Decide who pays duties and taxes
Make the payer explicit. DHL generally charges the receiver for import duties and taxes, but shippers can arrange payment on the receiver’s behalf, with applicable customs-related charges. Check the arrangement for your selected service. DHL customs guidance also explains how classification, origin, value and destination affect assessment.
If your store pays import charges, include them in the order economics before setting a delivered price. If the customer pays separately, explain that responsibility before purchase and in your shipping policy. A checkout label saying โshippingโ shouldn’t leave the buyer guessing about an arrival bill.
Get a shipment-specific import estimate, and confirm who pays any difference between estimated and assessed charges.
Prepare a complete international quote
Build a reusable shipment record with these fields:
- Product information: Accurate description and appropriate HS classification, the system used to classify traded goods.
- Country of origin: Record the goods’ origin separately from the US dispatch address.
- Declared value: Use the accurate shipment value for the required paperwork.
- Destination: Include the complete delivery information.
- Responsibility: Record who pays transport, import charges and carrier processing fees.
- Customer disclosure: Match the checkout wording and shipping policy to that arrangement.
Start your costing exercise with a small set of destinations you intend to serve. Work through a normal basket and a more expensive basket for each, then keep the supporting estimates with your worksheet. Add more destinations when you can explain the full offer clearly.
Plan for returns at the same time. Decide whether your store will pay for a return label, where the customer should send the goods and how you’ll assess the cost of bringing them back. Confirm applicable customs treatment separately; don’t assume every original charge is refundable.
Before enabling a destination, review a complete sample order: purchase price, checkout shipping charge, import-payment responsibility and your expected cost. Resolve any missing amount or unclear responsibility before using that example to set rates.
Give anyone answering customer questions the same example and policy wording. They should be able to explain what the buyer pays at purchase and what may be payable later without making assumptions.
Step 6: Decide what to charge your customer
Use your cost worksheet to choose a checkout policy. The customer charge and the merchant cost don’t have to match, but the difference needs to be deliberate.
In the hypothetical $11.20 example, charging $5 for shipping leaves $6.20 for the store to fund from other revenue. Charging the $8.20 label price would still leave $3 of packaging, labor and allocated software cost.
These are choices about your margin. A calculated carrier rate doesn’t make the other expenses disappear.
| Checkout policy | Suitable use | Main risk | What to test |
|---|---|---|---|
| Calculated shipping | Orders whose parcel sizes and destinations vary | The returned rate may omit handling and other costs | Quote accuracy, package assumptions and any handling allowance |
| Merchant flat fee | A reasonably consistent order and destination mix | Expensive parcels can consume the margin from cheaper ones | Average cost and expensive exceptions, split by order type |
| Free shipping threshold | Baskets with enough remaining margin to fund delivery | A qualifying basket may still have poor order economics | Product mix, discounts, destination and total fulfillment cost |
| Pickup or local delivery, where offered | Orders within a practical collection or delivery area | Staff time and local delivery expense can go uncounted | Labor, transport, service area and the customer’s available options |
A merchant flat fee is the amount you choose to charge shoppers. A carrier’s Flat Rate product is a shipping service with its own packaging and eligibility conditions. Offering a $5 checkout fee doesn’t require you to use a particular branded box.
Set a free shipping threshold using order economics
Start with the money a basket leaves after product costs, discounts, payment costs and other relevant variable expenses. Compare that amount with the shipping and fulfillment cost you intend to absorb.
Gross margin alone isn’t net profit, and a higher order value doesn’t guarantee a healthier order. A customer can reach your threshold by adding a heavy, low-margin item that requires a larger box.
Test proposed thresholds against several baskets:
- Your most common combination of products.
- A basket just above the free shipping threshold.
- A discounted basket that qualifies after promotions.
- A bulky or low-margin basket of the same value.
- A qualifying order going to an expensive destination.
Look at what remains after fulfillment in each case. If the results vary sharply, consider a different threshold or clearly defined eligibility rules. Model the policy before promising it across your whole catalog.
For a flat fee, review both the average and the exceptions. A store shipping small accessories shouldn’t let its occasional oversized bundle hide inside one overall average. Group orders by a useful distinction, such as package size or destination region, and calculate each group’s costs.
Keep the customer-facing offer understandable. Explain eligible destinations, qualifying basket value and any exclusions together. Avoid a broad โfree shippingโ promise that turns into an unexpected charge late in checkout.
Write down your chosen policy, the orders used to test it and the amount you’re willing to absorb. That gives you a starting point for platform setup and a benchmark for reviewing actual orders later.
Price faster services separately, using their own quotes. Test whether qualifying for free shipping removes the standard delivery fee while preserving any intended upgrade charge.
Step 7: Set up rates in your ecommerce platform
Check label purchasing and checkout rates separately. Your platform can help with both, but enabling one doesn’t prove the other is configured correctly.
Use this distinction when choosing your setup:
| Platform | Buying labels | Calculating checkout rates | Main dependency |
|---|---|---|---|
| Shopify | Built-in label purchases for eligible locations and carriers | Merchant-set rates or eligible built-in carrier rates; connecting your own carrier account is separate | Check carrier, location and plan eligibility for the feature you need. |
| WooCommerce | WooCommerce Shipping buys labels for supported US/USD stores | Core flat/free/pickup options or a separate extension for live carrier rates | The label extension does not supply live checkout rates. |
| BigCommerce | Native ShipStation-powered labels or another supported integration | Native real-time carrier quotes and configured shipping methods | Native label setup has US/new-account conditions; rate setup is separate. |
Shopify
Start with your actual fulfillment locations, product weights, shipping profiles, zones and package details. These inputs are part of Shopify’s shipping setup. Check the package assumptions against the sample orders you packed in Step 1.
Shopify’s built-in carrier-calculated checkout rates are available on all plans for supported fulfillment locations. Its US checkout-rate list includes USPS, DHL and UPS.
Connecting your own carrier accounts uses separate third-party carrier-calculated shipping eligibility: Advanced or Plus, or Grow with annual billing or a monthly add-on. Don’t upgrade solely because you assume every carrier-calculated rate requires Advanced.
Shipping-label availability has its own carrier and location rules. It includes US options beyond the built-in checkout list, so a carrier appearing in your label workflow doesn’t establish that the same carrier is available through every checkout-rate feature.
Test a single item and a mixed basket. If either quote assumes the wrong package or origin, correct that input before changing your pricing policy to compensate.
WooCommerce
Choose your checkout method first. WooCommerce includes flat rate, free shipping and local pickup. Flat-rate settings can apply per item, shipping class or order, allowing you to build a merchant-defined charging policy.
WooCommerce Shipping buys UPS, USPS, DHL Express and FedEx labels for supported US-based stores using USD. It does not provide live rates at checkout.
For that, choose a compatible carrier-rate extension. The USPS Shipping Method, for example, has its own origin, currency, product-data and API requirements. Confirm the extension’s current compatibility before relying on an old installation or setup guide.
Complete the product weights and dimensions, define the intended zones and methods, then test them using real packing examples. Budget for any extension subscription in your cost worksheet. Keep its cost distinct from postage so you can review both when volume changes.
BigCommerce
BigCommerce lists real-time shipping quotes on its Core, Growth, Scale and Performance plans. Its shipping configuration supports native carrier integrations including UPS, FedEx and USPS, with account and geographic setup requirements.
Configure the origins, carrier connections, zones and methods needed for your actual destinations. Then check which services return for representative baskets. Availability on a plan doesn’t mean every integration or advanced shipping rule is included.
For labels, the native ShipStation workflow requires a US-based account and a new ShipStation account created through BigCommerce. Existing account holders use a separate connection route. Confirm the appropriate workflow before creating another account.
Across all 3 platforms, decide what should happen when a live rate is unavailable. Check the supported fallback behavior and test it. You need a usable checkout offer that still reflects your costs, plus a label workflow that fulfills the order under the promised terms.
Record which system supplies each checkout rate and where you buy labels, including the carrier account and subscription involved. This gives you a starting point for troubleshooting. Retest after changing an app, account connection or fulfillment location.
Step 8: Test checkout and reconcile shipping invoices
Validate the policy with sample checkouts, then compare it with actual billed costs. A successful quote is only the first check.
Before relying on the setup, work through this list:
- Vary the destination. Test nearby and distant addresses, relevant residential addresses, and supported international destinations.
- Vary the basket. Include a single product, a mixed order and a bulky combination. Check the assumed package and dispatch location.
- Test pricing boundaries. Try baskets below, at and above any free shipping threshold. Repeat with the discounts you offer.
- Check missing-rate behavior. Confirm what shoppers see when a destination or service doesn’t return a rate.
- Save the evidence. Keep the checkout amount, carrier quote, shipment inputs and chosen service together.
When an order ships, add the label charge and eventual adjustments to the same record. Compare the customer’s payment with your full cost ledger, not just the label receipt.
If a discrepancy repeats, identify its cause before raising every shipping fee. A wrong box size needs a packaging or data correction. An omitted cost needs a better ledger. A policy that consistently subsidizes more than intended needs a pricing review.
Review expensive exceptions separately from the average order. This helps you see whether a particular product combination, destination or fulfillment location needs attention without obscuring the performance of everything else.
Repeat the checks when packaging, carrier prices, product mix or fulfillment arrangements change. Keep a note of what changed so the next comparison is meaningful.
Start with 1 representative order: pack it, obtain comparable quotes, complete the cost ledger and test the checkout charge. That gives you a concrete calculation to improve as real orders arrive.
Shipping cost FAQs
Can I calculate shipping before I have an order?
Yes. Pack a sample basket and use its weight and outside dimensions with representative origin and destination details. Request quotes for the services you intend to offer, then add your packaging, handling and other applicable costs. Treat the result as an estimate for that basket and route. Repeat it for different baskets and destinations before turning it into a storewide fee.
Which carrier is cheapest for an online store?
There is no carrier that is cheapest for every store and parcel. Compare suitable services using the same shipment details and the retail, account or platform rates you can actually buy. Check the complete quoted charge and service terms. A useful comparison covers your common orders and expensive exceptions, rather than selecting a carrier from one unusually favorable quote.
Does calculated shipping cover all my costs?
Not automatically. A carrier-calculated checkout rate can omit your packaging, handling labor, software allocation and other expenses. In the hypothetical example above, an $8.20 label sits inside an $11.20 total cost. Use a complete ledger, then decide whether to recover the remaining amount through the shipping charge, product revenue or a deliberate combination. Compare the estimate with the eventual invoice too.
What is the difference between flat-rate packaging and a flat shipping fee?
Carrier Flat Rate packaging belongs to a specific shipping service with eligibility conditions. A merchant flat shipping fee is the amount your store charges customers, such as $5 for an eligible order. You can choose that checkout fee independently of the actual label cost. Calculate the cost of fulfilling the order first, then measure how much the flat fee recovers.
Great read and advices.
Really appreciated!
Big up!
Thanks Sam! ๐
I am trying to understand the psychological percentage of shipping costs for big products
Hello Chiara, I’m not sure I understand what you mean by psychological percentage of shipping costs.
Nice insights Joe! Very helpful for sure – I’ll share it with my clients as some of them struggle with the matter ๐ Thanks!
We’re really glad you liked it Matt!