The short answer
Follow the original order cohort through its refunds and costs. Subtract refunds from revenue, credit only the product cost actually recovered, retain costs you cannot recover, and subtract advertising once. Keep estimated future returns separate from settled results. A return rate alone cannot tell you how much profit remains.
Start with order dates, then follow the adjustments
Choose an order-date window, currency, channel scope, and “as of” date. Join later refunds and return costs to those original orders. A calendar-month sales report can answer a different question: Shopify records sales on the sale date and reversals on the processing date.
Shopify also distinguishes physical returns from sales reversals. A refund can happen without a product coming back. Do not assume every refund restores inventory, or that every returned unit can be resold.
Source: Shopify: Sales reports
Worked example: USD 1,200 becomes USD 280
Illustrative cohort: 100 orders, USD 10,000 merchandise revenue after discounts and before refunds, no shipping revenue, and no tax included. Advertising spend is USD 2,000. The costs below cover this cohort only and exclude fixed overhead.
Later, 20 orders are fully refunded for USD 2,000. All 20 units come back, but only 16 are resalable. At USD 80 product cost per refunded order, those 16 units recover USD 1,280 of inventory cost. The other four recover nothing. Return transport and handling add USD 200. Original fulfillment and payment costs remain spent.
| Line · USD | Before returns | After recorded returns |
|---|---|---|
| Revenue after discounts | 10,000 | 10,000 |
| Refunds | 0 | −2,000 |
| Net revenue | 10,000 | 8,000 |
| Product cost originally assigned | −5,500 | −5,500 |
| Recovered inventory cost | 0 | +1,280 |
| Original variable costs | −1,300 | −1,300 |
| Return transport and handling | 0 | −200 |
| Advertising | −2,000 | −2,000 |
| Contribution after ads | 1,200 | 280 |
Check the bridge before changing a bid
The loss of contribution is USD 920: 2,000 refunded − 1,280 recovered + 200 return costs. Therefore 1,200 − 920 = 280. There is no additional write-off for the four unsalable units: their original cost already remains in the 5,500.
For the existing contribution calculator, enter net revenue 8,000; cost of goods 4,220 (5,500 − 1,280); variable costs 1,500 (1,300 + 200); and ad spend 2,000. It returns contribution before ads of 2,280, contribution after ads of 280, revenue ROAS of 4.0, and contribution return of 1.14.
Break-even ROAS on that net-revenue basis is about 3.51 (8,000 ÷ 2,280). Do not compare it with a dashboard ratio that still uses pre-refund revenue. This cohort calculation is a management view, not evidence that advertising caused every included order.
Keep open returns visible
A cohort is provisional while material returns or adjustments remain unresolved. Show observed contribution and an additional expected adjustment separately. When an estimated return becomes actual, replace the estimate; do not charge both.
Sensitivity example: five more full refunds of USD 100 each, each recovering USD 55 of product cost and adding USD 10 of return cost, reduce contribution by another USD 275. The remaining USD 5 is too thin to treat the original 5× revenue ratio as a reason to scale.
Record how the reserve was estimated, when it will be revisited, and which unresolved orders it covers. Use the business’s return window and actual processing delays rather than an arbitrary universal maturity threshold.
Download the cohort review templateSeparate reporting repair from campaign action
Google Ads supports conversion adjustments, including restatements and retractions, subject to conversion type, identifiers, timing, and other requirements. A reconciliation document does not make those uploads happen. Check the current setup and documentation before changing bidding inputs.
First resolve missing costs, duplicate refunds, and allocation rules. Then compare mature cohorts on the same basis. Keep platform attribution, blended spend efficiency, and incremental impact as separate views. Allocate shared spend once and label the method; never add together platform-attributed revenue that may claim the same orders.
Sources & scope
Primary references checked for this edition. The notes below distinguish source-backed facts from the frameworks and examples proposed in this guide.
- Shopify: Sales reports ↗
Documents sales/reversal timing and the distinction from physical returns. Cohort reconciliation and the USD example are original management-analysis illustrations, not Shopify accounting output.
Checked September 5, 2026 - Google Ads: How to adjust your conversions ↗
Documents conversion adjustments and their prerequisites. No conversion settings or bid changes are implied by this example.
Checked September 5, 2026
AI-assisted research and drafting. Provider-specific claims link to primary sources. Frameworks are editorial proposals; worked examples are illustrative and are not employer performance results.
Editorial policy & corrections ↗