Worked exampleRetail & e-commerceIllustrative, not a client

Online retail: reporting on margin, not platform ROAS

An illustrative $8M online homewares brand on Shopify and Klaviyo is paying more for paid social every quarter, while three agencies report three versions of success. One contribution-margin model, rebuilt retention flows and a fortnightly creative testing cadence show which spend pays for itself and bring more revenue from customers the brand already has.

This is a worked example: a realistic scenario we've built to show how we'd approach the problem. The organisation is fictional, and every number is a stated assumption or a calculation from those assumptions. It is not a client case study and makes no claim about results.

The situation

Revenue has grown, but profit hasn't kept pace. Paid social costs more each quarter, and the founder spends Sunday nights reconciling three agency reports that each claim a share of the same sales.

Each agency reports return on ad spend (ROAS) from its own platform. Added together, platform-reported revenue is more than Shopify actually recorded, and none of the reports include product cost, shipping, payment fees or discounts. Nobody can say which channel is making money.

The Klaviyo flows were set up at launch and haven't been touched since. Campaign emails go out mostly when there is a sale on, which teaches customers to wait for the next discount.

Constraints we'd work within

  • Shopify and Klaviyo stay. They suit a brand of this size, and the team knows them well.
  • Cost data is incomplete: some variants have no cost per item in Shopify, and freight-in and 3PL charges arrive as monthly invoices in Xero.
  • Agencies are mid-contract, and nothing can pause campaigns during November and December trading.
  • Email and SMS marketing must meet Spam Act consent, identification and unsubscribe requirements.
  • There is no analyst on staff, so reporting has to run without someone maintaining spreadsheets every week.

What the Diagnostic would find

Findings by lens, with the commercial effect of each. See how the Diagnostic works.

LensObservationCommercial effect
Data & reportingEach platform counts a sale within its own window after a click or a view. Google Ads, for example, defaults to 30 days after a click and 1 day after a view. When a customer touches two platforms, both can claim the same order.Budget follows whichever channel reports the best ROAS, not the one producing the most margin, and the founder can't reconcile any report to the bank account.
Strategy & commercial modelTargets are set in revenue. There is no target for contribution margin per order, and no ceiling on what the brand will pay to acquire a new customer.The business can grow revenue while losing money on first orders, especially in discount-heavy months.
Systems & technologyShopify's profit reports only include variants that had a cost recorded when they sold, and several ranges have none. Shipping and pick-and-pack costs sit in Xero, a month behind.The platform's own profit figures leave out part of the range and most fulfilment costs, so true margin per order is unknown until month-end, if at all.
Growth & marketing maturityOnly welcome and abandoned-cart flows exist, both unchanged since launch. There is no browse, post-purchase or win-back flow, and paid social relies on a few ads refreshed only when results drop.Repeat purchases depend on discounts, and acquisition costs rise as the same creative wears out.
Operations & processThree agencies, three briefs, three monthly meetings and no shared plan. Creative made for paid social is rarely reused in email, and the reverse.Founder time goes on coordinating suppliers, and the brand pays to produce assets that only run in one channel.
AI readiness & opportunityWeekly commentary is written by hand from screenshots. Once orders, spend and costs are joined, the data is structured enough for AI to draft the commentary for a person to check.Hours back each week, and decisions made on Monday from one set of numbers instead of mid-month from three.

The moves

Every recommendation resolves to one of nine moves: build, buy, improve, integrate, automate, remove, change, train or leave alone. Building is only one of them.

  • Leave alone

    Shopify and Klaviyo as platforms. They are the right tools at this size; the problem is how they are configured and reported, not the software.

  • Buy

    An off-the-shelf data connector to pull Shopify, Meta, Google, Klaviyo and Xero data into one store each day, rather than building and maintaining custom pipelines.

  • Integrate

    Product cost, 3PL charges, payment fees and returns joined to each order, after completing cost per item on every variant, so contribution margin per order can be calculated daily.

  • Build

    One contribution-margin dashboard by day, channel, product and new versus returning customer, with ad spend judged against margin rather than platform ROAS.

  • Improve

    Rebuild the welcome, browse, cart, post-purchase and win-back flows in Klaviyo, with fewer default discounts and product recommendations based on what each customer bought.

  • Change

    Move paid social from ad hoc refreshes to a fortnightly creative testing cadence, with one hypothesis per test and results judged on margin per order and new-customer cost.

  • Automate

    A weekly AI-drafted commentary on what moved and what to check, written only from the joined data and reviewed by the e-commerce manager before it reaches the founder.

  • Remove

    Three separate agency reporting decks. Every supplier works to the same scoreboard and the same definitions.

The system, end to end

Orders, spend and costs are pulled each day into one model that calculates contribution margin per order. The dashboard and a weekly AI-drafted commentary, checked by a person, drive decisions on budget, creative and retention flows, and the results flow back into next week's data.

  1. Shopify, Klaviyo and ad platforms
  2. 3PL, payment and Xero costs
  3. Data connector
  4. Contribution-margin model
  5. One dashboard
  6. AI-drafted weekly commentary
  7. Human review and decisions
  8. Budget, creative and flow changes

Margin model

Revenue per order less discounts, product cost, shipping and pick-and-pack, payment fees and returns, with ad spend allocated by channel and day. The rules are written down so anyone can check the arithmetic.

One dashboard

Contribution margin by day, channel, product and new versus returning customer, new-customer acquisition cost, and Shopify-recorded revenue shown beside platform-reported revenue so the gap stays visible.

Retention flows

Welcome, browse abandonment, cart abandonment, post-purchase and win-back flows rebuilt in Klaviyo, with consent checks, frequency limits and discounts used deliberately rather than by default.

Creative testing cadence

A fortnightly plan for paid social: a fixed number of new concepts, one variable changed at a time, and a shared library so winning creative is reused in email and on site.

Weekly commentary

An AI draft of what moved, the figures behind it and what to check next, reviewed and edited by the e-commerce manager. It reports; it never changes a budget or a campaign by itself.

Measurement rules

Clicks and placed orders as the main email measures, because Apple Mail Privacy Protection downloads email content in the background, which makes open counts unreliable. Consistent tracking tags across every supplier.

Delivery stages

Indicative timings.

  1. Diagnostic and data audit

    Audit ad accounts, Klaviyo flows, tracking and cost data, reconcile one month of platform-reported revenue against Shopify, and agree the margin rules and targets with the founder.

    2 to 3 weeks (indicative)

  2. Margin model and dashboard

    Connect sources, complete cost data, build the model and dashboard, and check it against last quarter's Xero figures before anyone relies on it.

    4 to 6 weeks (indicative)

  3. Retention flows

    Rebuild the five core flows one at a time, comparing each against its previous version or a holdout group so the effect of each change is measured.

    4 to 6 weeks (indicative)

  4. Creative cadence and commentary

    Start the fortnightly testing plan, switch on the weekly commentary, and move every agency onto the single scoreboard after peak trading.

    2 to 4 weeks, then ongoing (indicative)

  5. 90-day review

    Review margin by channel and product, then reallocate budget and reset targets using contribution margin rather than ROAS.

    At 90 days (indicative)

The arithmetic

Assumptions first, then the calculations they produce. Change an assumption and the result changes with it, which is the point.

AssumptionValue
Annual revenue$8,000,000 ex GST (assumption)
Average order value$125 ex GST (assumption)
Landed product cost40% of revenue (assumption)
Shipping, pick-and-pack and payment fees per order$16 (assumption)
Annual paid media spend$1,200,000 (assumption)
Rise in paid media cost for the same orders next year if nothing changes15% (assumption)
Extra repeat orders from rebuilt flows2% of current annual orders (assumption)
Time spent compiling and reconciling reports6 hours a week today; 1.5 hours a week reviewing the AI draft (assumption)

Contribution per order before marketing

$125 − (40% × $125) − $16 = $125 − $50 − $16

$59 per order (modelled)

Contribution after paid media, today

Orders: $8,000,000 ÷ $125 = 64,000. Then 64,000 × $59 = $3,776,000; $3,776,000 − $1,200,000

$2,576,000 a year (modelled)

Do-nothing baseline next year

Same 64,000 orders, paid media 15% dearer: $1,200,000 × 15% = $180,000 more spend; $2,576,000 − $180,000

$2,396,000 a year, with no extra revenue (modelled)

Rebuilt retention flows

64,000 × 2% = 1,280 extra repeat orders; 1,280 × $59

About $75,520 a year in contribution, before Klaviyo costs and any discounts (modelled)

Reporting time released

(6 − 1.5) hours × 48 working weeks

216 hours a year of founder and manager time (modelled)

What we'd measure

  • Contribution margin after marketing, weekly and by channel
  • New-customer acquisition cost against first-order contribution
  • Gap between platform-reported revenue and Shopify-recorded revenue
  • Placed-order rate and revenue per recipient, by flow
  • Share of revenue from returning customers, and the discount rate on those orders
  • Creative tests run each fortnight, and the share that beat the control on margin per order

Risks and how we'd manage them

Cost data is incomplete or wrong

We reconcile the model to Xero before anyone uses it, flag variants with no cost, and show a data-completeness score on the dashboard so gaps are visible rather than hidden.

Agencies resist a shared scoreboard

Agree the definitions in writing, give every supplier access to the same dashboard, and make the change after peak trading so no campaign is paused.

The AI commentary says something the data doesn't support

The draft can only use figures from the model, cites the numbers it relies on, and a named person reviews it before it is sent. It never adjusts budgets.

Flows over-mail customers or miss consent rules

Express consent captured at sign-up and checkout, the brand identified in every message, a working unsubscribe honoured within five working days, and frequency limits across flows and campaigns. We check against the rules; legal advice settles anything uncertain.

The takeaway

Platform ROAS tells you which channel is best at claiming credit. Contribution margin per order tells you which spend pays for itself, and this system puts that number in front of the founder every Monday.

Recognise your business in this?

A 30-minute call is enough to tell whether the same moves would pay off for you.

Sources

Third-party facts on this page, checked 14 October 2026.

  1. About conversion windows, Google Ads Help. support.google.com/google-ads/answer/3123169?hl=en
  2. Profit reports, Shopify Help Center. help.shopify.com/en/manual/reports-and-analytics/shopify-reports/report-types/default-reports/profit-reports
  3. Protect email privacy in Mail on Mac, Apple Support. support.apple.com/en-gb/guide/mail/mlhlp1205/mac
  4. Avoid sending spam, Australian Communications and Media Authority. www.acma.gov.au/avoid-sending-spam