Why does it matter how metrics are calculated?
When two reports show different numbers, the first instinct is to assume one is wrong. Usually both are right and they're answering different questions. Knowing exactly how each ProfitPeak metric is built helps you pick the right number for the decision in front of you. It also lets you explain the difference confidently when someone on your team holds up a Shopify report next to a ProfitPeak one.
How are sales and gross profit calculated?
Metric | How it's calculated |
Gross Sales | Product price × quantity, before discounts, shipping, taxes, and refunds |
Net Sales (also called Total Revenue) | Gross Sales − discounts − refunds |
Shipping Paid | Shipping charged to customers, minus shipping discounts and shipping refunds |
Total Sales | Net Sales + Shipping Paid + taxes + duties |
Gross Profit | Net Sales − product cost |
Gross Margin | Gross Profit ÷ Net Sales × 100 |
Shipping and tax are kept separate from your product sales. Picture shipping as a separate envelope. It sits next to your product sales but never gets mixed in with them. It's reported on its own as Shipping Paid. That means Gross Sales, Net Sales, and every profit metric built on them reflect product revenue only. Shipping and tax show up in Total Sales, the figure that matches what customers actually paid at checkout.
What types of costs does ProfitPeak use?
Cost | What it means |
Track Cost | Ad spend attributed to specific tracked orders |
Blended Ad Spend | All the ad spend you actually incurred, added up across every platform |
Variable Cost | Costs that grow with order volume, like shipping, packaging, and payment fees |
Fixed Cost | Costs that stay the same regardless of sales, like rent, salaries, and software |
For how to set these up, see Understanding Costs in ProfitPeak 2.0.
What's the difference between Allocated and Accrual profit?
ProfitPeak calculates contribution profit (profit after variable costs and ad spend) in two ways. The only difference is which ad spend gets subtracted.
| Contribution Profit (Allocated) | Contribution Profit (Accrual) |
Ad spend used | Only ad spend attributed to tracked orders (Track Cost) | All ad spend as it was incurred (Blended Ad Spend) |
Formula | Gross Profit − Variable Cost − Track Cost | Gross Profit − Variable Cost − Blended Ad Spend |
Best for | Judging campaign and channel performance | Financial reporting and Peak dashboards |
Answers | "Which campaigns are profitable?" | "What did the business actually make?" |
Net profit works the same way. Subtract fixed costs from whichever version of contribution profit you're using:
Net Profit (Allocated) = Contribution Profit (Allocated) − Fixed Cost
Net Profit (Accrual) = Contribution Profit (Accrual) − Fixed Cost
Net Margin = Net Profit ÷ Net Sales × 100
Before comparing two reports, check which version each one uses. Allocated and Accrual figures will almost never match each other, and mixing them up can make correct numbers look inconsistent.
How do the attribution models assign credit?
Attribution models decide which marketing touchpoints get credit for a sale. They apply to paid sources, including Google, Meta, TikTok, Pinterest, and Bing.
Model | How credit is shared | Example |
Last Click | 100% to the last touchpoint before purchase | Meta, then Google, then Direct: Direct gets 100% |
First Click | 100% to the first touchpoint | Meta, then Google, then Direct: Meta gets 100% |
Linear (80/20) | 80% shared equally across paid touchpoints, 20% shared equally across non-paid ones | Google, then Direct, then Organic, then Direct: Google gets 80%, each non-paid visit gets 6.67% |
Linear Paid | Shared equally across paid touchpoints only. Non-paid visits get nothing. | Meta, then Google, then TikTok, then Direct: each paid platform gets 33.3%, Direct gets 0% |
Last Paid Click (per platform) | Each platform's last paid click gets an equal share, within a 14-day click window. Klaviyo isn't included. | Two Meta ads, then two Google ads, then purchase: the last Meta click gets 50%, the last Google click gets 50% |
For Linear Paid, if a journey has no paid touchpoints at all, no ad gets credit for that order.
The model you choose changes the story. Last Click and First Click can tell completely different stories about the same sales. Choose the model that fits the question you're asking, not the one that makes a channel look best. For more on how ProfitPeak's attribution works, see Attribution Vertex.
Why don't refund and return rates match Shopify?
This is the most common reason ProfitPeak and Shopify numbers differ.
ProfitPeak records a refund or return against the date of the original order. Shopify records it on the date the refund was processed. Both approaches are valid. They just answer different questions.
What's the difference between Refund % and Return %?
ProfitPeak tracks two separate metrics because refunds and returns don't always happen together.
Refund %: Of the money you made in this period, how much went back to customers?
Return %: Of the orders placed in this period, how many had an item sent back?
Scenario | Counts toward Refund % | Counts toward Return % |
Full refund, item returned | Yes | Yes |
Partial refund, item returned | Yes | Yes |
No refund, item returned (a goodwill return) | No | Yes |
Refund with no item returned (like a shipping refund) | Yes | No |
How does order-date matching work in practice?
An order placed on April 15 is returned on May 3. ProfitPeak counts that return in April, because that's when the sale happened. An order and its return always land in the same month.
The trade-off is that past months aren't frozen. As late returns come in, last month's Return % can rise over time. That's what you get with a true picture of each month's sales. Shopify's view locks the number in on the day it's reported, which suits cash flow tracking.
Why does this matter for real decisions?
Say you launch a new dress on April 1 and spend $100K on ads that month. Shopify shows April as a record month, so you order $500K more stock and double your May ad budget. Then returns roll in between May 1 and 5, because the fit runs small.
In Shopify, those returns come out of May. April still looks like a win, and you keep spending on a product that isn't working.
In ProfitPeak, those returns are matched back to April. April's profit and return on ad spend drop right away, so you can pause the ads and cancel the stock order before the damage grows.
Put simply, Shopify explains why your bank balance changed. ProfitPeak shows whether your products, marketing, and ads are actually working.
What should you keep in mind?
A mismatch isn't necessarily an error. If refund or return numbers differ from Shopify for the same period, check the order-date difference above before contacting support.
Compare product sales to product sales. ProfitPeak's Net Sales doesn't include shipping or tax. If you're comparing it to a Shopify figure that does, use Total Sales instead.
Match the profit version before comparing. Make sure both reports use Allocated or both use Accrual.
Match the attribution model to the question. Last Click, First Click, and Linear will each tell you something different about the same data.
What should you ask Sherpa?
"Why doesn't my refund % match what I see in Shopify?"
"Show me Contribution Profit Accrual vs. Allocated for last month."
"Compare my channel performance under Last Click vs. Linear attribution."
"What's driving the difference between my Refund % and Return % this month?"
Short description: How ProfitPeak calculates profit, attribution, and returns, and why some numbers differ from Shopify.
Long description: A plain-language reference for ProfitPeak's core metrics: sales, shipping, gross profit, Allocated vs. Accrual contribution profit, net profit, and every attribution model. Includes a clear explanation of why refund and return rates won't match Shopify, and why that's useful.

