help1
shopify shipping costshopifyshipping marginreportingprofit tracking

Four Ways to See Your Real Shopify Shipping Cost (One Actually Works)

Four ways to track your real Shopify shipping cost compared: the hidden labels report, Finance Summary, a spreadsheet, and third-party P&L apps.

help1 Team
Four Ways to See Your Real Shopify Shipping Cost (One Actually Works)

A merchant posted in r/shopify in May asking for something that sounds trivial. They wanted a single number: last month's total spend on shipping labels. They had been pulling the figure out of individual orders by hand because they could not find a report that totaled it. Their store does flat-rate shipping with free shipping over $100, so their orders report shows "$0 shipping" on half their orders even though they bought labels for every one of them. The thread filled up with suggestions, and the suggestions did not agree with each other.

That disagreement is the whole story. There is no one place in the admin that answers "what is my real shopify shipping cost," and the workarounds that merchants reach for solve different pieces of the problem.

Quick Answer: No single native Shopify report shows your real shopify shipping cost against what you collected from customers. Four tools get you partway, and only one gives you a per-order margin view. We walk through each below and recommend the one worth your time.

The reason the suggestions disagree is that Shopify keeps the pieces of your shipping cost in different places. Label spend lives in one report. Collected shipping lives in another. Retroactive price adjustments from the carrier show up in a billing CSV. Duty reconciliations show up in a line item on a monthly bill. Nothing joins them. Four workarounds have emerged across the community. We tested each one on our own store and on three merchants we help regularly through help1.

Here is the shape of the comparison before we go deep.

MethodSetup timePlan requiredShows per-order marginCatches label adjustmentsCatches backup-rate firesCost
Shipping Labels Over Time report2 minutesAny planNoNoNoFree
Finance Summary + Payouts CSV15-30 minutesAny planNo (per-payout only)PartialNoFree
Spreadsheet reconciliation2-4 hours/monthAny planYesYes (if you dig)Yes (if you look)Free + time
Third-party P&L app (BeProfit, Polar, Lifetimely, Triple Whale)30-60 minutesAny planYesYesYes$39-$100+/month

Method 1: The hidden Shipping Labels Over Time report

The report everyone eventually finds and nobody fully trusts. Go to Analytics > Reports, type "shipping" into the search box, and open "Shipping labels over time." It shows a line chart of your label spend for whatever date range you pick, plus a table with the labels you bought and what each one cost at the time of purchase.

If you have never found this report, finding it feels like a win. For about a week.

Then you notice two things. First, the shopify shipping cost it reports is the price you were charged at label purchase, not the final carrier-billed amount. If a carrier later invoices Shopify for extra weight or dimensions on your package, Shopify passes that adjustment through to you weeks later, and this report never updates to reflect it. A Shopify staffer confirmed publicly in March 2024 that there is no filter for adjustments. One merchant in our scan sample had $340 in label adjustments across a quarter that this report shows as $0.

Second, the report has no idea what your customer paid you for shipping. It cannot. The orders data lives somewhere else. So on a store with any flat-rate pricing, free-shipping threshold, or paid-shipping tier, you cannot read a margin from this report; you only read a total expense. Merchants with a true "charge the live carrier rate" setup can treat this report as a cost line and get close, but almost nobody we meet is actually running that configuration cleanly.

What it is good for: a quick monthly check on raw label spend. If the number jumped 15% month over month and your order volume did not, you have a signal to go investigate.

What it does not do: tell you whether you are making money on shipping.

Method 2: Finance Summary and the Payouts transactions CSV

A merchant on r/shopify in June wrote something that saved us two days of head scratching with a different client: Shopify's Finance Summary page is not meant for standard accounting. It mixes cash movement, accrual signals, and settlement timing in a way that does not map to the way a bookkeeper reconciles anything. If you have ever stared at Finance Summary and your bank statement side by side and watched the numbers refuse to agree, that is why. They were not supposed to.

Their recommended workaround was to ignore Finance Summary for reconciliation entirely and use Finances > Payouts > Transactions > Export instead. The transactions CSV gives you one row per settled cash event, dated to the day the money hit your bank. For shipping, that CSV includes label purchases and label adjustments as discrete rows under the Shipping Fees category, which means your bookkeeping finally reconciles against the deposits in your account.

The problem is what the CSV does not break out. Every shipping charge, including retroactive label adjustments and duty reconciliations, gets lumped into the single "Shipping Fees" bucket. A merchant in a 2021 thread asked how to find a specific adjustment and could not. Five years later the answer is still the same CSV plus a text search in the Description column for "Shipping Label Price Adjustment." You will find the adjustments. You cannot easily tie them back to a specific order without exporting your orders data and matching on label purchase date, which starts to feel a lot like method 3.

What it is good for: reconciling your Shopify payouts to your bank statement, and running a monthly aggregate of true shopify shipping cost once adjustments have settled.

What it does not do: show you per-order margin, and does not surface individual adjustments without manual spreadsheet work.

Method 3: Spreadsheet reconciliation (the one most honest consultants will admit they still run)

This is the one that works. It is also the one nobody wants.

The method we use with merchants in our audits looks like this. Pull three exports: the Shipping Labels report for the month, the orders export filtered to the same month with the Shipping column visible, and the billing CSV for any month that could contain adjustments for shipments in your target period (which is usually the target month and the two after it). Then build a sheet with four columns per order: shipping collected from the customer, label cost at purchase, label adjustments applied later, and the computed margin. Match orders to labels on the order number or the tracking number. Scan for the backup-rate fingerprint. We will come back to that.

Three things we see every time we do this exercise for a new merchant.

  1. Free-shipping thresholds that were set by gut feel are usually wrong. One of our clients had a $49 free-shipping threshold against a $51 AOV and an $8 average label cost. Their shipping margin on free-shipping orders was negative $8 per order. They had been running that threshold for 14 months. The formula from the community that gets close for most stores is threshold = current AOV + (2 x average label cost). Run that against your numbers before you touch anything else.
  2. Backup rates fire more than merchants think they do. If you use carrier-calculated rates and you also have a "backup" flat rate set, that backup fires whenever the carrier API takes longer than two seconds to respond, which Shopify does not disclose anywhere and does not log. One Shopify developer discovered the 2-second cutoff by instrumenting their app. If your backup is set at the Shopify default of $9.99 and your real DHL rate on international shipments is $80 plus, every silent backup fire is a $70 undercollection. In the spreadsheet, backup fires show up as orders where shipping collected is suspiciously flat (always $9.99) while the label cost varies wildly. We have seen stores where this had been happening on 10% of orders for a year.
  3. Carrier rate drift is only visible in a trailing comparison. Pull the same report for Q1, Q2, and Q3 of the current year and look at the per-shipment cost by service. USPS Ground Advantage padded-envelope rates roughly doubled between 2023 and 2026 according to merchants tracking it. The jumps are 8-10% per quarter on some services. If your threshold math worked in January and does not now, this is probably why.

The honest cost of this method is 2 to 4 hours a month if your store does under 500 orders. It gets steeper fast. We help one merchant who runs three stores and the shopify shipping cost spreadsheet is a part-time job for them; at that volume, method 4 starts to pay back.

What it is good for: every question. Per-order margin, backup-rate audit, threshold tuning, rate-drift tracking. This is the only method that gives you the full picture.

What it does not do: scale. If you are growing, you will stop doing it, and the first month you skip is usually the month something quietly breaks.

If you want a second pair of eyes on the audit before you adjust anything structural, that is exactly what help1's expert chat is for. We have a saved template for this specific exercise. The first 15 minutes is free, which is enough to walk through the sheet and flag what looks off.

Method 4: Third-party shipping P&L apps

The reason these apps exist is that Shopify's own analytics does not include a shipping-margin view below the Shopify plan ($105/month, versus Basic at $39). Profit reports are the only native tool that attempts the margin math, and they are plan-gated. The gap between what Basic merchants can see about their shopify shipping cost and what their accountants need to run the business got large enough that a third-party market filled in.

The ones that come up in community threads most often are BeProfit, Polar Analytics, Lifetimely, and Triple Whale. Each takes 30 to 60 minutes to connect; most want read access to your Shopify store, your ad accounts, and sometimes your Shippo or ShipStation integration. Once connected, they pull label spend from Shopify directly and show it alongside collected shipping, ad spend, COGS, and refunds in one dashboard. The per-order view is the headline feature, and it is genuinely useful if you have it.

Price range runs $39 to $100 plus per month depending on volume and features. At a store doing $5K/month revenue, a $79 app is 1.6% of revenue, which is not nothing. At $25K/month, the same app is 0.3% and the hours it saves in reconciliation are worth the fee by a wide margin.

Two caveats we have hit.

  • Label adjustments can lag in the app the same way they lag in Shopify. If the app is pulling from Shopify's data, it sees what Shopify sees. A $40 adjustment that lands on your bill in week 6 may or may not retroactively update the margin on the order it belongs to, depending on the app. Ask the vendor directly before you trust the per-order margin figure as final.
  • Not every low-cost option survives. One well-liked purpose-built shipping P&L app at the $5-per-month end of the market went offline in March 2025 and left its users without a replacement, which is how the Reddit thread that still gets linked by every search for "shipping profit app" started. If you pick an app, pick one with real revenue behind it; small single-purpose apps in this niche have a bad survival record.

What it is good for: a persistent dashboard, cross-store tracking, and anyone past 100 orders a month who does not want to live in a spreadsheet.

What it does not do: fix the underlying setup problems. If your backup rate is $9.99 and firing silently, the app will show you a line going down in per-order margin, but it will not point at the backup rate as the cause. That diagnosis is still on you.

What we would actually pick

Here is the recommendation, by store size.

If you are under 100 orders a month, use method 3 once (the full spreadsheet reconciliation) to find the obvious holes, fix them, then run method 1 (the Shipping Labels Over Time report) monthly as your tripwire. The first spreadsheet pass is what pays for itself. The monthly check is what keeps you from drifting.

If you are 100 to 500 orders a month, do the spreadsheet reconciliation once a quarter, pair it with method 2 (Payouts CSV) for your bookkeeping, and consider a third-party app if you also need cross-channel attribution. Shipping alone probably does not justify the app; combined with ad spend tracking, it starts to.

If you are 500-plus orders a month or multi-store, go to method 4. The reconciliation time saved pays the app's fee within a month, and you need the persistent dashboard to catch rate drift as it happens, not three months later when you finally sit down with the spreadsheet.

Across every bucket, the one piece of work we would do first regardless of your reporting choice is a backup-rate audit. Go to Settings > Shipping and Delivery > General Shipping Rates > Manage. Open each profile. Find any row that says "When no rates are available show this rate." If it is set to $9.99 or any other placeholder below your worst-case real carrier rate, change it to $1,000 as a defensive placeholder (customers will not pick a $1,000 shipping option, so the field acts as a null if your carrier API fails), or set it to a rate that at least covers your average shipment plus margin. This single change has saved stores we help four-figure sums over a quarter.

That is also the right test to run before any of the four reporting methods above will give you a trustworthy number. If backup rates are quietly firing in the background, every "collected shipping" figure you look at is off by the amount of silent undercharges that already happened. Fix the leak first, then measure.

Pull up the Shipping and Delivery settings today and check the backup rate on every profile. That is a one-field change, and it closes the single largest leak we see in a shopify shipping cost audit. The reporting work is next week's problem. The undercollection is this week's. For a deeper read on where free-shipping thresholds go wrong across the stores we audit, our writeup on what we find in free-shipping audits covers the pattern that always shows up first in the spreadsheet.

Still stuck? Talk to an expert.

Our vetted Shopify experts can fix this issue for you in a live session. $39 per session. Your first 15 minutes are free.