Most Shopify brands can tell you their revenue, return on ad spend (ROAS), and gross margin.
Fewer can say, with real confidence, what they actually made once shipping, payment fees, returns, discounts, cost of goods sold (COGS), and ad spend are pulled into the same view.
That's not because the team is careless. It is usually because the tech stack was never built to answer that question clearly.
At MerchantFlow, we have tracked more than 128,000 Shopify orders, representing over A$28 million in gross merchandise value. Across that data, one pattern has recurred: brands that struggle to understand profit are often not short on dashboards. They are short on alignment between the numbers those dashboards produce.
Revenue lives in Shopify. Ad spend is in Google, Meta, TikTok, or other ad platforms. Cost of goods sold could be in Shopify, a spreadsheet, an inventory tool, or nowhere reliable at all. Fulfilment and shipping costs may sit with a third-party logistics provider. Regional delivery costs may be handled separately. Payment fees are somewhere else again.
Each tool may be doing its own job properly. The problem starts when those separate views are treated like a complete profit picture.
Why the Numbers Feel More Reliable Than They Are
The danger with eCommerce reporting is that most of the numbers look precise.
A dashboard can show revenue down to the cent. An ad platform can calculate return on ad spend. Shopify can report sales, refunds, and shipping. A spreadsheet can outline product margin. On their own, these numbers feel official.
But precision is not the same as completeness.
Shopify reporting is designed around eCommerce activity. It can show what was sold, refunded, discounted, and charged for shipping. Its profit reporting can also be useful, but it depends on the cost per item being added and maintained correctly.
Meanwhile, Google Ads optimises around the conversion values reported back to the platform. Meta reporting may also include estimated or modelled metrics.
None of this is wrong. It just means each system is looking at the business from its own angle.
That becomes a problem when merchants use those separate angles to make blended profit decisions.
The Blended Profit Gap
The blended profit gap is the space between what a brand thinks it made and what it actually kept after costs are factored in.
It usually shows up in boring places: missed transaction fees, outdated product costs, shipping costs assigned too broadly, returns visible in one report but not reflected in another, and ad spend reviewed at the channel level while product profitability is reviewed somewhere else.
In the stores we have analysed at MerchantFlow, the most common issue was not one single huge error. It was lots of small mismatches that compounded.
A product might look strong because it has high revenue and a healthy return on ad spend. But once shipping, refunds, fulfilment, payment fees, and product cost are included, it may be much weaker than expected.
This is where profit gets misread. Not because the data does not exist, but because it does not meet in one place.
The Blind Spots We See Most Often
There are a few recurring blind spots that show up when eCommerce brands try to move from revenue reporting to profit-led reporting.
1. Ad Spend Is Measured Separately From Margin
Most brands look at ad performance inside each platform. That is understandable, but it often leads to channel-first thinking.
Google may look strong, Meta may look weaker, and TikTok may look experimental. But the real question is not just which channel has the best reported return. It is which products, campaigns, and customer segments are still profitable after the full cost base is factored in.
This matters even more with campaign types like Performance Max, where reporting can vary depending on whether you are looking at campaign-level data or product-level listing group data. If spending is not reconciled carefully, product-level profit can look cleaner than it really is.
2. Cost of Goods Sold Is Treated as Fixed
Many teams set product costs once and then trust them for too long.
That works until supplier costs change, bundles are introduced, variants are updated, freight costs increase, or a product is replaced with a new version. Even small cost changes matter when they are applied across hundreds or thousands of orders.
The issue is not only whether the cost of goods sold exists. It is whether it is complete, current, and attached to the right product or variant at the time of sale.
3. Shipping and Fulfilment Costs Sit in the Wrong Place
Shipping is one of the easiest costs to misread.
A customer may pay shipping at checkout, but that does not mean the order was profitable to ship. Some regions cost more to fulfil. Some products are bulky, fragile, or split across multiple shipments. Some orders include free shipping thresholds that look good for conversion but weaken the contribution margin.
If shipping is only reviewed as a store-level expense, it becomes difficult to see which products or regions are quietly dragging margin down.
This becomes especially important when brands scale across regions. A store can look profitable overall, while certain countries, states, or delivery zones are much weaker once shipping, fulfilment, duties, payment fees, and return costs are included.
A brand might see strong revenue from a new region and assume it is a growth opportunity. But if that region has higher delivery costs, higher return rates, or lower average order value, the margin may be much thinner than the store-wide numbers suggest.
4. Fees Are Treated as Too Small to Matter
Payment fees, platform fees, and transaction costs are easy to dismiss because each one looks small.
But small fees applied to every order are not small. They are structural costs.
When fees are not included in product or order-level reporting, teams can overestimate margin across the entire store. This is especially true for brands with lower average order values, high order volume, or international sales.
5. Store Averages Hide Product-Level Problems
A store can look healthy overall while individual products, channels, or regions are unprofitable.
That is one of the biggest traps in eCommerce analytics. Store-level profit is useful, but it can smooth over the products that are carrying the business and the products that are only creating activity.
For operators, this matters because most decisions are not made at the store level. Teams decide which products to promote, which regions to scale, which products to discount, which bundles to test, and which campaigns deserve more budget.
If the reporting stack cannot answer those questions at the product, channel, and regional levels, it is not giving the team enough data to act on.
The Tech Stack Question Merchants Should Ask
When eCommerce brands think about improving their tech stack, the common question is, "What tool should we add?"
A better first question is, "Which decision are we trying to make more accurately?"
If the decision is about creative testing, the stack needs campaign and content visibility. If the decision is about retention, it needs customer and lifecycle visibility. If the decision is about profit, it needs revenue, costs, fees, shipping, refunds, and ad spend in the same view.
Before adding another app or dashboard, merchants should pressure-test whether their current stack can answer these fundamental questions:
- Where does each profit input come from?
- Which system is the source of truth for that input?
- Is the data available at the order, product, channel, and region levels?
- Are refunds, shipping, fees, and cost changes reflected correctly?
- Can the numbers be reconciled back to the reports the finance team already trusts?
If the answer to any of these is unclear, the issue might not be a lack of reporting. The stack may be producing more reports than the team can confidently connect.
A Simple Framework for Pressure-Testing Profit Reporting
A useful profit reporting setup does not need to be complex, but it does need to be deliberate.
Start by mapping the core inputs: revenue, discounts, returns, product costs, ad spend, payment fees, shipping, fulfilment, and any other costs that affect margin.
Then decide where each input should live. One system does not need to own every number, but the business should know which source is trusted for each one.
Next, check the level of detail. Store-level reporting is a starting point, not the finish line. Profit should be reviewable by product, order, channel, and region, where those dimensions affect real operating decisions.
After that, reconcile the numbers regularly. This is the unglamorous part, but it is where trust is built. If reported revenue, ad spend, fees, or fulfilment costs do not line up with the source systems, the business needs to know why.
Finally, connect reporting back to action. A good profit-led stack should help teams decide what to scale, what to pause, what to reprice, and what to investigate. If a dashboard creates more questions than decisions, it may not be optimised for the decisions the team actually needs to make.
Final Thoughts
eCommerce brands do not need more disconnected numbers. They need a cleaner path from order data to operating decisions.
That is the real tech stack lesson from the data we have seen. Profit visibility is not just a finance problem or an analytics problem. It is a systems problem.
The brands that understand profit best are not always the ones with the most tools. They are the ones who have made the fewest assumptions about what their tools are actually telling them.
Revenue matters. Return on ad spend matters. Gross margin matters. But none of those numbers should be trusted on their own.
The real question is whether the stack can show what the business actually kept after the sale was made, the order was fulfilled, the customer was acquired, and the hidden costs were counted. That is the number eCommerce operators need before they scale.
At MerchantFlow, we believe eCommerce teams should not have to stitch together disconnected reports just to understand whether growth is profitable. MerchantFlow gives Shopify and eCommerce brands a single profit-focused view of revenue, ad spend, product costs, fees, shipping, returns, and fulfilment, so merchants can see which products, channels, and regions are actually making money before they scale.




