Skip to main content
    ← Insights|POAS · Shopify

    WhyYourShopifyPOASIsWrong(AndHowtoFixItin30Minutes)

    By Chris Avery, Founder8 min readUpdated 18 May 2026

    Shopify's gross profit number is wrong for POAS calculations. Not slightly wrong — structurally wrong by 15–40% depending on your category, return rate and fulfilment model. If you're using it as the profit input for your Google Ads POAS, your reporting is misleading you on every campaign decision. This article shows exactly what Shopify includes, what it excludes by default, why the gap matters commercially, and how to build a more accurate POAS view in 30 minutes using a spreadsheet plus data you already have.

    For context on POAS calculation generally, start with our POAS calculation guide for Shopify brands. This article zooms in specifically on what Shopify's built-in reporting gets wrong.

    What Shopify's "gross profit" actually includes

    Open Shopify Admin → Analytics → Reports → Sales. You'll find a "gross profit" column. Here's what Shopify is calculating:

    Gross profit (Shopify) = Net sales − COGS (variant cost field)

    That's it. Two inputs. Net sales (revenue minus refunds and gift cards). COGS pulled from the cost-per-item field you populated against each product variant.

    Useful as a directional metric. Dangerous as a bidding signal. Because here's what it deliberately excludes:

    The four cost categories Shopify excludes by default

    1. Payment processing fees

    Shopify Payments takes 1.5–2.5% plus 20p per transaction in the UK depending on plan tier. For a brand processing £100k/month at 2% blended fees, that's £2,000/month of cost that doesn't appear anywhere in the "gross profit" line. For a low-margin brand, payment fees alone can shave 4–6 percentage points off true margin.

    2. Shipping costs

    Both inbound from suppliers and outbound to customers. Shopify's "gross profit" doesn't deduct what you're paying for fulfilment. If you offer "free shipping over £50" but pay £4.50 per outbound shipment, that £4.50 is real money leaving your bank account that Shopify's profit number ignores entirely.

    3. Discount value at order level

    Shopify reports discounts in a separate column but doesn't always pull them through into the gross profit calculation cleanly. If a customer applies a 15% promo code and you're calculating profit against the pre-discount revenue minus full COGS, you're overstating profit by the discount amount.

    4. Return processing costs

    Refunded items appear in "net sales" but the cost of processing them — return shipping, restocking, customer service time, depreciation on items not returned to sellable condition — appears nowhere. For an apparel brand with 25% return rate, this can be the single biggest hidden cost erosion.

    Why the gap matters

    A worked example. Apparel brand, July 2026, 1,200 orders.

    LineAmount
    Net sales (Shopify)£124,800
    COGS (Shopify variant costs)£62,400
    Shopify-reported "gross profit"£62,400
    Payment fees (2% + 20p × 1,200)(£2,736)
    Outbound shipping (£4.50 × 1,020 paid orders)(£4,590)
    Return processing (18% return rate × £6 per processed return)(£1,652)
    Promo code value(£8,400)
    True contribution margin£45,022

    The gap: Shopify reports £62,400 of profit. Reality is £45,022. Shopify overstates true contribution margin by 38% for this brand.

    Now apply this to POAS calculation. Imagine the brand spent £20k on Google Ads in July.

    POAS using Shopify reported "gross profit": £62,400 / £20,000 = 3.12:1

    POAS using true contribution margin: £45,022 / £20,000 = 2.25:1

    The agency's reporting shows a comfortable 3.12 POAS. The reality is 2.25 — still profitable, but materially lower. Bid signals set to optimise toward 3.0 POAS are actually delivering closer to 2.0. The difference compounds across every scaling decision for the rest of the year.

    This isn't a corner case. Every Shopify brand we audit has this gap. The size of the gap varies — 15–40% is the typical range — but the direction is always the same: Shopify's profit number overstates reality, and POAS calculations built on it understate the work that needs doing.

    The 30-minute fix — a spreadsheet template

    You don't need a BI platform or a POAS tool to fix this for monthly reporting. A simple spreadsheet pulling from existing Shopify exports gets you 80% of the way there.

    Build a monthly POAS reconciliation sheet with these columns:

    InputSourceHow to pull
    Net salesShopify Reports → SalesExport filtered by date range
    COGSShopify Reports → Sales (cost column)Same export, if variant costs populated
    Discounts (item-level)Shopify Reports → Sales (discount column)Same export
    Payment feesShopify Payments → PayoutsSum of "fees" column across payouts in date range
    Outbound shipping costsShopify Shipping → Insights, or 3PL invoicesMonthly total
    Return processingCalculated estimateReturn rate × orders × per-return cost (typical: £4–8)
    Ad spendGoogle Ads → Reports → CampaignsSame date range

    Calculation:

    True contribution margin = Net sales − COGS − Discounts − Payment fees − Shipping − Return processing

    POAS (true) = True contribution margin / Ad spend

    POAS (Shopify reported) = (Net sales − COGS) / Ad spend

    Overstatement % = (POAS Shopify − POAS true) / POAS true

    That's it. A spreadsheet with one row per month and seven input columns gives you a true POAS view that's materially more accurate than what Shopify's dashboard reports.

    For most £10k–£50k/month spenders, monthly reconciliation in a spreadsheet is enough. The data lag (you can only true-up POAS once you've reconciled the month) is acceptable for ongoing bid strategy reviews even if not for daily decisions.

    The longer-term fix — pipe into a BI tool or POAS platform

    Once you've validated the spreadsheet approach for a few months and you trust the calculations, the next step is automating it. Three categories of tooling worth knowing about:

    Dedicated POAS platforms

    ProfitMetrics, Polar, Triple Whale. These integrate directly with Shopify, payment processors, ad platforms and 3PLs to calculate true POAS automatically and pipe it into Google Ads as conversion values. Best fit for brands spending £30k+/month on ads where the per-month cost (£200–£800 depending on plan) is small relative to the spend efficiency they unlock.

    General BI tools

    Looker Studio, Power BI, Metabase. You build the joins yourself between Shopify exports, accounting data and ad platform data. More flexible than dedicated POAS platforms but requires someone competent in BI. Best fit for brands with technical resource or working with an analytics partner.

    Custom data pipeline

    For larger brands, building a custom data warehouse layer (BigQuery, Snowflake) that joins all the inputs and serves them to both reporting tools and back into Google Ads via APIs. Highest ceiling, highest setup cost. Only worth it for brands spending £100k+/month on ads.

    The spreadsheet approach is the right starting point regardless. Get the calculation right first, automate later.

    What to do this week

    • Export July (or last completed month) data from Shopify, Shopify Payments, your 3PL or shipping tool, and Google Ads.
    • Build the spreadsheet above. 30 minutes for someone competent in Excel or Sheets.
    • Compare Shopify-reported POAS to true POAS for the month. If the gap is over 20%, your bid signals are wrong by a material amount and your reporting is materially understating the work to do.
    • Repeat for the previous 3 months to establish a trend. The gap is usually stable — meaning if Shopify is overstating by 30% in July, it's been overstating by roughly 30% for months.
    • Share with whoever runs your Google Ads (agency or in-house). Have the conversation about what bid targets should actually be once you're optimising against true POAS.
    • Once true POAS is visible monthly, you can move on to feeding the signal into Google Ads itself — covered in How to feed margin data into Google Ads conversion values.

    Frequently asked questions

    Is Shopify's gross profit number deliberately misleading?

    No. It's calculated as designed — net sales minus COGS — which is a valid definition of gross profit in textbook accounting terms. The problem is that 'textbook gross profit' excludes the variable costs that materially affect contribution margin in ecommerce. Shopify shows you what it shows you because it's the cleanest number it can calculate without integrating dozens of third-party systems. The fault is in how the number gets used, not in how it's calculated.

    Why doesn't Shopify just include payment fees, shipping and returns in the profit calculation?

    Because each of those data sources lives outside Shopify's core platform. Payment fees come from Shopify Payments (or third-party processors). Shipping costs come from Shopify Shipping or third-party shipping tools or 3PL invoices. Return processing cost is a calculated estimate, not a measured value. Integrating all of these into a single 'true profit' number is a hard product problem — and Shopify's solution has been to provide the components and let users (or third-party POAS tools) do the integration.

    Can I trust the Shopify profit number for anything?

    Yes, as a high-level directional view. If your Shopify-reported gross profit is trending up month-over-month, that's directionally a positive sign. If it's collapsing, that's directionally a problem. The number is misleading for bid signal optimisation, but it's not useless for trend analysis.

    How often should I recalculate true POAS?

    Monthly minimum if you're spending £10k+/month on ads. Weekly if you're spending £50k+/month or running aggressive bid changes. Daily true POAS is rarely worth the operational overhead — by the time you've reconciled all the data sources daily, the bid decisions you'd have made have already been made.

    What about Shopify Plus brands with custom apps for profit reporting?

    Shopify Plus often has more sophisticated reporting built in or via custom apps, but the same underlying gap usually exists — the apps tend to report on the inputs Shopify gives them, which means the same exclusions (payment fees, shipping, returns) apply unless explicitly handled. Worth auditing your Plus reporting against a manual spreadsheet calculation before trusting it.

    Should I just buy a POAS tool to skip the spreadsheet work?

    Eventually, probably yes. But not before you've done the spreadsheet calculation manually for a few months. You need to understand how the calculation works before you can validate that a tool is doing it correctly. Tools that promise 'POAS in one click' often hide the same simplifications Shopify makes, just dressed up better.

    What if my true POAS comes out negative?

    It happens. If true POAS is consistently negative — meaning you're losing money on ads after all costs — you have two options. Reduce spend until the variable cost structure clears. Or change the variable cost structure (raise prices, cut shipping, reduce return rate). Continuing to run negative-POAS ads while hoping for volume gains is the most expensive bet in ecommerce.

    Next steps

    Want help building corrected POAS reporting against your Shopify data? We audit ecommerce Google Ads accounts spending £10k+/month and show you exactly where Shopify's profit reporting is hiding unprofitable campaigns.

    Author

    By Chris Avery, Founder, JudeLuxe. Speaker at HeroConf and PerformanceMCR 2026 on POAS-led PPC for DTC brands. Find Chris on LinkedIn.

    POAS is a registered trademark of ProfitMetrics.

    We use cookies to improve your experience. Privacy Policy