Why your store's dashboard can't show you profit
Shopify knows one of the eight numbers that decide whether you made money. That is a data boundary, not a reporting failure — and it explains why a whole category of tools exists on top of a platform that already has analytics.
Every so often someone asks why they need another tool when Shopify already has an analytics tab. It is a fair question, and the answer is more interesting than "ours is prettier."
Shopify can tell you revenue. It cannot tell you profit. Not because the report hasn't been built — because the numbers are not in the building.
What Shopify knows
Orders. Revenue. Average order value. Sessions and conversion rate. Discounts. Refunds. Its own payment processing fees, if you use Shopify Payments.
That is a complete picture of money coming in.
What decides whether you kept any of it
- Ad spend, which lives in Meta, Google and TikTok.
- Cost of goods, which lives in a supplier invoice, changes between purchase orders, and usually excludes freight and duty.
- Shipping you actually paid, which lives with the carrier or the 3PL and is a different number from what the customer was charged.
- Processing fees, plural, because most stores run PayPal and Klarna and Afterpay alongside Shop Pay, and every one prices differently.
- App subscriptions and plan fees, quietly compounding.
- Chargebacks and disputes, arriving weeks after the sale.
- Returns processing, which costs the shipping twice and the ad spend once.
That is seven sources. Shopify holds one of them.
No amount of dashboard design fixes this. It is not a UI problem. It is a data boundary, and it is why Triple Whale, TrueProfit and Lifetimely built real businesses selling profit reporting on top of a platform that already gives you analytics for free. A company with total distribution, the customer relationship and every commercial incentive still lost that category — because the data was never theirs to report on.
Attribution makes it worse
Even with all seven files you hit the second problem: everybody claims the same sale.
Meta reports 400 conversions. Google reports 300. TikTok reports 150. Shopify recorded 500 orders. The platforms are not lying — each counts anyone who touched its surface inside an attribution window, and those windows overlap.
So the only honest version of return on ad spend is blended: total spend across every channel, divided into the revenue the store actually recorded. That requires pulling all of it together and dividing by the one source with no incentive to over-claim. No ad platform will ever build that, for obvious reasons.
The general shape of this problem
Ecommerce is the loud example, but the pattern is not specific to stores. The same structure shows up anywhere the answer lives across systems that were never designed to talk:
- A bookkeeper's client pack — accounting platform, bank, payroll, three systems that each hold a third of the story.
- A franchise group's weekly numbers — one export per location, all the same shape, and no view across them.
- An agency's client report — ads, analytics, CRM and whatever the client runs in-house.
- A property manager's owner statement — one per building.
In each case a platform holds part of the picture, shows you that part excellently, and structurally cannot show you the rest.
Why the gap persists
You would expect someone to have filled it generically by now. The reason nobody has is connector economics: every integration costs the same to build and pays back in proportion to how many customers use that source. Shopify and Meta clear the bar easily. A regional POS with four hundred installs never will.
So the tools that exist cluster around the big sources, and the messy long tail — the client on the strange ERP, the location running ancient software, the supplier who sends a spreadsheet — stays manual forever.
Early access
We are building this.
Databoat rebuilds recurring reports from the files your systems export — no connector required. Tell us which report you rebuild every month; it shapes what we support first.