Where Shopify Profit Tracking Goes Wrong
I traced Shopify profit tracking through the native dashboard, three paid apps, and a custom setup. Every path had a hole in it.
Pull up your Shopify admin and go to Analytics > Reports > Finances > Sales. If the Gross profit column shows a number, note it. Now compare that number against the amount that actually landed in your bank account this month after ad spend, app fees, and returns. If the two agree, close this tab; you have already solved Shopify profit tracking. Most of the merchants who ask me to look see a gap wide enough that neither number tells them whether they are running a business that makes money.
Quick answer. Shopify's native profit report is plan-gated, is missing three cost inputs (ad spend, transaction fees, and return-adjusted COGS), and silently rewrites historical margin whenever a supplier cost changes. Every paid P&L app I have tested trades one of those problems for another. The number worth watching daily is not net profit at all.
The first place I looked was Analytics > Reports > Finances > Sales
My working hypothesis at the start was that the merchant just needed to enable the right native report. That was wrong within about ninety seconds.
The Sales report with Gross profit and COGS columns only appears on the Shopify plan at $79 a month and above. On Basic at $39 a month, the columns are literally not rendered. A Shopify Staff comment named Luna_1 confirmed this arrangement back in March 2022; a merchant called Markk60 confirmed in April 2026 that four years later, nothing had changed. So the first merchant I walked through this had a decision she was not expecting to make: pay Shopify an extra $40 a month for a Gross profit column, or install a third-party app to get any margin visibility at all.
She is on Basic. She installed ClearProfit's free tier and moved on. Halfway through the month she asked me why the app's ad spend total for July was $2,400 when Meta's own billing dashboard said she had spent $8,000. That is where the actual investigation into her Shopify profit tracking started.
Why the COGS column was already lying to me
Before I looked at the app, I went back to what Shopify itself was tracking. Two things had already gone wrong that I had not noticed on the first pass.
First: Shopify stores cost per item as a single live field on each product variant. There is no snapshot, no point-in-time locking. When your supplier raises prices in April and you dutifully update the cost field from $8 to $11, Shopify silently recalculates every historical order using $11. Your January margin now looks worse than it actually was. Your quarterly comparison is broken. There is no way to see the old number without an external accounting export. A Shopify Partner named HAPOApps confirmed on a May 2024 community thread that "Shopify doesn't allow you to directly edit the financial data for past orders," so if you also entered the cost wrong on day one, you cannot fix it forward or backward inside the admin. You can only fix it in whatever ledger you keep on the side.
Second: the Gross profit calculation subtracts COGS on every refund, regardless of whether the item was physically restocked. An item returned in perfect condition and put back on the shelf still triggers a full COGS deduction in Shopify's numbers, which produces an artificially low COGS figure in any period with a high return rate. If your July return rate is 12 percent and half of your returns are restocked, roughly 6 percent of your gross profit that month is fabricated. Not enormous. Enough to matter if your margin is thin.
So the number I started with, before I ever looked at ad spend, was already carrying two errors baked in at the platform level. That is worth stating plainly because the Shopify profit tracking conversation spends a lot of energy on ad-spend accuracy and almost none on COGS accuracy. The COGS problem is the older one, and the one Shopify itself has quietly declined to fix.
The paid app that reported the wrong ad spend
Now the merchant's real question: why did ClearProfit's ad spend total differ from Meta's own by a factor of three?
My first assumption was that the app was broken. It was not. It was doing exactly what its own documentation said, which is the more interesting failure mode, and it is the one every merchant evaluating this category needs to understand before signing up for anything.
There is a distinction that most of these apps do not surface clearly in their onboarding: attributed spend versus total spend. Attributed spend is spend the app can trace back to a specific order through UTM parameters or the Meta Conversions API. Total spend is what Meta actually charged your card. The gap is everything Meta ran that did not produce a UTM-traceable conversion inside the reporting window. Abandoned-cart traffic. View-through conversions counted outside the app's attribution window. Brand-awareness campaigns. Top-of-funnel testing budget.
Some apps default to attributed only. Some claim total but silently fall back to attributed when the platform API returns partial data. The only way to check is to compare the app's number for a specific 30-day window against Meta Ads Manager's billing view for the same window. If they match within roughly 5 percent, the app is showing total spend. If the app is 30 to 70 percent lower, it is showing attributed. In our case ClearProfit was showing attributed only, so the reported "profit" number was overstated by roughly the full delta.
Ten P&L apps show up across the Shopify community threads I read for this: TrueProfit, BeProfit, ClearProfit, Lifetimely, ProfitLossDash, Mipler, SimplyCost, Bloom Analytics, Fiducia, and GoProfit. Not a single thread I found presented benchmark test data comparing any of those apps' reported total spend against the platform's billed number. The Shopify profit tracking market is asking merchants to choose between them on the promise of accuracy with no neutral way to verify it. If you install one, run the 30-day comparison yourself in the first month. Nobody else is going to run it for you.
There is a quieter second version of the same failure. When a Meta ad drives one order containing three products at different margins, most apps split the ad cost by revenue share. A merchant called ZestoraX put it cleanly in a June 2026 thread: the $50 item gets 71 percent of the ad-spend credit even if it contributes less actual profit than the two smaller items. Revenue-based attribution is easy to explain and quietly biases every per-product profitability decision the app then feeds you.
What the custom Claude and n8n rig gave me, and where it broke
A July 2026 r/shopify post from a merchant called Secure_Sorbet_8671 documented an alternative I now recommend to a small handful of merchants who have the technical patience for it. The setup pulls revenue and COGS from Shopify through Claude's Shopify MCP connector, Google Ads spend through an n8n workflow hitting the Ads API, and overheads from Xero on a daily basis. The output is a contribution-margin waterfall showing revenue, minus COGS, minus fulfillment and fees, minus ad spend, minus overhead, over rolling 1-to-60-day windows. Total software cost is roughly €24 a month for n8n, plus an existing Claude subscription. The apps doing this job commercially run €35 to €249 a month.
I have not run this exact setup for more than three months on any single merchant's data, so treat what follows as a limited sample. What I have seen: the output number is closer to reality than any packaged app I compared against, because the merchant can look at each input as a raw number rather than as an app's opinion of that number. It is also fragile in ways that packaged apps are not. When Google's Ads API returned an unexpected field for one week in June, the merchant's waterfall silently dropped seven days of ad-spend data and the "profit" line jumped 22 percent before we caught it. If you are the sort of merchant who does not enjoy diagnosing an API error at 11pm on a Sunday, the €24 a month is not the whole cost of running it.
For the merchant we started this post with, the custom rig was not the right answer. She was not comfortable maintaining n8n flows, and the whole point of installing ClearProfit had been to spend less time in spreadsheets, not more. So the trail went cold on the technical path.
The number I actually watch now
After all of that, the number I ended up handing back to her was not full net profit. It was contribution margin per SKU: revenue on that product, minus its variant cost, minus its per-order fulfillment and payment fees, expressed as a percentage. Shopify's native Sales by Product report shows this the moment you fill in the cost-per-item field, on any plan that has the Profit Report at all. On Basic, the same figure sits inside ClearProfit's free tier or any comparable app.
Contribution margin does not answer "did the whole business make money last month?" It answers "am I about to scale ad spend on a product that keeps 12 percent after ads and shipping, when I thought it was keeping 35 percent?" That second question is the one that put the merchant at the top of this article inside a losing month before her monthly P&L could tell her about it. A merchant called MerchantHQ, writing about her own catalog in August 2026, framed it the same way: "this product only keeps 12-18 percent after ads plus shipping plus returns, that's the number I'd want before scaling spend, not the revenue figure."
I still recommend a full monthly P&L review. I just no longer recommend using it as a daily signal, because in the time it takes to assemble one, a bad SKU can consume weeks of ad budget. The framing I keep coming back to comes from a merchant called clawmama in a July 2026 community thread: "Revenue is native, true net profit has to be assembled." Shopify handles the first part reliably. The second part is a project.
If the project is one you would rather hand off before your next quarter closes, the first 15 minutes with a help1 expert is free, and setting up per-SKU contribution margin against real ad spend is one of the top three things merchants bring us in that first conversation. Shopify profit tracking is not glamorous work. It also does not need a $249-a-month subscription to get right.
One limitation I want to name before I stop. I have not tested any of this on a Shopify Plus store. Plus merchants have access to reports and API surfaces that are not available on the Shopify plan, and most of the plan-gate conversation above evaporates for them. If you are on Plus and reading this, most of the workarounds I described are aimed at merchants who are two tiers below you. The COGS-rewriting and refund-COGS bugs still apply, though. Those are platform-level.
So here is the actual question
If you sat down right now and had to say, in one sentence, how much profit your last completed order generated, what would you look at first, and would you trust the number? If your honest answer is "the Shopify dashboard" and "yes," come back to this article after an afternoon of poking at it. The gap between what you think that number is and what it turns out to be is the whole reason ten P&L apps exist and no one of them has decisively won this market.
The corner-case version of this same pattern, in a different part of the admin, is a Shopify Flow workflow that reports Completed on every run while quietly failing to fire its intended action. Same dashboard-versus-reality mismatch, different diagnosis. If you want the walk-through, here is the one I use for silent Flow failures.
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.