Unit Economics · Annotated Waterfall · 2026

The Money You Actually Keep

A stage-by-stage walk down the margin waterfall: what happens to a single dollar between the price on the page and the money in your account. The same seven stages for ecommerce, services, subscriptions, and lead gen. Only the words change.

Scope Price → costs → fees → refunds → ad spend → break-evenBasis First principles + cash-flow-correct mathClaim Profitability math is universal; vocabulary isn't Updated 8 June 2026

The one idea underneath all of it

Ask a founder how much money they make per sale and most can't tell you. Not the revenue. Not the gross profit. The real number, after the processor takes its cut, after the freight, after the return that came back unsellable, after the ad spend. The number that decides whether scaling makes you richer or just busier.

The reason it's hard isn't that the math is complex. It's that almost every calculator and spreadsheet gets it structurally wrong: applying refund rates to revenue, treating shipping as recoverable, stopping at gross margin and calling it done. The errors are small per order and ruinous at scale. Half a margin point, multiplied across a year of ad-spend decisions, is real money built on a phantom.

So here's the whole thing, stage by stage, in the order a dollar actually flows. The math is identical for every business type. An ecommerce brand, a consultant, a SaaS app and a lead-gen agency all resolve to the same waterfall. The only thing that changes is what you call each line. The left column is the mechanism (the formula, worked). The right is the why (what it means, the lie most people believe, and how the words change by business type).

LAW 01

Gross margin is not the number

The real figure is contribution margin per order, after every variable cost and the true cost of refunds.

LAW 02

Percentage costs and fixed costs behave differently

Raise price 10% and your margin doesn't rise 10%. Percentage fees eat in; fixed fees shrink as a share. That's operating leverage.

LAW 03

Refunds are not a revenue haircut

A return loses the sale, may return the goods, and never returns the shipping or the processing fee. Three rules, not one.

LAW 04

Break-even is a boundary, not a target

Your margin sets the most you can pay to acquire a customer. Past it, every extra sale loses money. Faster.

The worked example below, as a picture: where the ex-tax order dollar goes
COGS 41%
fees & fulfilment 27%
4%refund leak
keep 28%
cost of the thing selling costs & the refund leak net contribution you keep
This is the exact example traced through every stage below (before ad spend). Tax sits outside it: ~9% of the $110 sticker came off the top as GST before this bar even starts. The "keep" slice is contribution margin, what's left to cover overhead and profit and to pay for acquisition.
Formula / mechanism Worked example What it means (the "why") The lie most calculators tell
Phase 00 · Before any math

The four things that decide whether the number is real

These aren't stages, they're the conditions that make the whole waterfall trustworthy. Get them wrong and every figure downstream is confidently false.

The discipline underneath the formulas
  • Per order, not totals Profitability is decided one transaction at a time. Blended monthly P&L hides the products and channels that lose money on every sale. Work at the unit.
  • Money is not a float 0.1 + 0.2 does not equal 0.3 in most software. Tiny rounding errors compound into real discrepancies at volume. Calculate money in exact decimals, never floating point.
  • Cash flow, not accounting fiction The question is what actually leaves and enters your account, and when. A "5% refund rate" is meaningless until you know what comes back sellable and what's gone for good.
  • Per-product, not global averages A 10% return rate with 90% resellable is a different business from 10% with 0% resellable. Aggregate rates lie. Recovery is a per-product fact.
Phase 01 · What you actually charge

From the price on the page to revenue you keep

The number a customer sees is rarely the number you bank. Tax and discounts come out before a single cost is counted. Start the waterfall honest, or everything below inherits the error.

01 Stage 1: Tax resolution
# strip tax out of an inclusive price P_ex = P_inc / (1 + t) if tax-inclusive P_ex = P_inc if tax-exclusive / unregistered
Price shown $110, GST t = 0.10, inclusive P_ex = 110 / 1.10 = $100 ← the $10 was never yours
Stage 01: Tax

The first ten dollars were never your money.

What it means

If your price includes tax, a chunk of every "sale" is collected on the government's behalf and passes straight through. Counting it as revenue inflates every margin downstream.

The lie

Treating the sticker price as revenue. It feels like $110 came in; only $100 did.

Vocabulary by model
ModelThe "price"
E-comRetail price
ServiceFee / day rate
SubscriptionMonthly plan
Lead genDeal value
Same operation regardless of model. Tax is pass-through, not income.
02 Stage 2: Average order value
AOV = P_ex × Q × (1 - d) Q = items per order d = avg discount
P_ex $100, Q 1.4 items, discount d = 0.08 AOV = 100 × 1.4 × 0.92 = $128.80
Stage 02: Order value

What an average transaction is really worth.

What it means

Most businesses sell more than one unit per order and discount more than they admit. Both move the real figure before costs even enter.

The lie

Modelling a single unit at full price. The discount you "rarely" give is averaged across everyone and quietly lowers the line you build everything on.

Vocabulary by model

E-com: items per cart. Service: scope / hours per engagement. Subscription: usually Q = 1, the plan. Lead gen: contract size.

Discounts are a margin decision disguised as a sales tactic. Track the average; it's higher than you think.
Phase 02 · What it costs to deliver

The two kinds of cost, and why the difference is everything

Costs split into the cost of the thing itself, and the cost of selling it. Within selling costs, the split between percentage-based and fixed is the single most misunderstood lever in unit economics.

03 Stage 3: Cost of goods sold
COGS_unit = supplier + freight + packaging + other COGS_order = COGS_unit × Q purely additive, no hidden interactions
Supplier $32 + freight $4 + packaging $2 = $38/unit × Q 1.4 = $53.20/order
Stage 03: COGS

The cost of the thing, fully loaded.

What it means

Every cost to land the product in a customer's hands, not just the supplier invoice. Inbound freight and packaging are real and routinely forgotten.

The lie

Counting only the supplier price. The freight to get it to your warehouse and the box it ships in are COGS too, and they're often 15-20% of the "true" unit cost.

Vocabulary by model

E-com: supplier + freight + packaging. Service: labour + travel. Subscription: infrastructure / hosting. Lead gen: fulfilment cost.

A service business with "no COGS" is mispricing its own time. Labour is the cost of goods.
04 Stage 4: Variable selling costs (the leverage stage)
VSC_pct = AOV × (payment% + marketplace% + bnpl%) VSC_fixed = payment fee + pick/pack + shipping + other VSC_total = VSC_pct + VSC_fixed
% fees: 128.80 × (0.029 + 0.15) = $23.06 fixed: $0.30 + pick/pack $3 + ship $8 = $11.30 VSC_total = $34.36
Stage 04: Selling costs

Where raising your price doesn't do what you think.

What it means

Percentage fees (processing, marketplace) scale with price. Fixed fees (a flat shipping label, a $0.30 transaction fee) don't. This split is operating leverage, and it's why a 10% price rise never gives you a clean 10% more margin.

The lie

Lumping all fees into one "fees" percentage. Do that and your scenario modelling is wrong every time you change price, because half your fees didn't move and half did.

Vocabulary by model

E-com: processing + marketplace + shipping + pick/pack. Service: processing + booking platform fee. Subscription: processing + dunning. Lead gen: platform / CRM per-deal fees.

The trap

Marketplace sellers who forget the 15% take rate is a percentage cost: every price rise hands a cut straight back to the platform.

Source: unit operating leverage. The separation of percentage vs fixed cost is the part most spreadsheets collapse and get wrong.
Phase 03 · The real number

Contribution margin, and the truth about refunds

This is where most calculators stop too early, and where the single most expensive error in unit economics lives: treating a refund as a simple revenue haircut.

05 Stage 5: Contribution margin (before refunds)
CM = AOV - COGS_order - VSC_total
128.80 - 53.20 - 34.36 = $41.24/order margin before a single return is counted
Stage 05: Contribution

What each sale contributes, before returns.

What it means

The money a single order throws off to cover your fixed overheads and profit. This, not gross margin, is the figure that decides whether you can afford to acquire a customer.

The lie

Calling this the final margin. It isn't. It ignores the orders that come back, and for many businesses that's several points of margin still to lose.

Vocabulary by model

Identical across all four. Contribution is contribution. This is the clearest proof that the math doesn't care what you sell.

Contribution margin is the load-bearing number of the whole model. Everything downstream references it.
06 Stage 6: Refund-adjusted net margin (the hard part)
# a refund follows THREE rules, not one Net_Revenue = AOV × (1 - R) revenue: gone COGS_chargeable = 1 - (R × ρ) goods: maybe back Net_COGS = COGS_order × COGS_chargeable Net_VSC = VSC_total fees: mostly sunk* Net_CM = Net_Revenue - Net_COGS - Net_VSC
R 5%, recovery ρ 0.5 (half the returns resell) chargeable = 1 - (0.05 × 0.5) = 0.975 Net_CM = 122.36 - 51.87 - 34.36 = $36.13 # why: a refunded order isn't a $0 non-sale. # revenue refunded, only half the goods come back, # the fees are gone → a refunded order = -$60.96 0.95 × (+41.24) + 0.05 × (-60.96) = $36.13
Stage 06: Refunds

A return is three different losses, not one.

What it means

When an order comes back: the revenue is gone (you refund it), the goods may return to sellable stock (recoverable, set by ρ), and the shipping and processing fees are sunk forever. Three rules. The recovery rate ρ is per-product: a melted candle is ρ=0, refurbished electronics maybe ρ=0.9.

The lie

"A 5% refund rate just costs me 5% of my margin." That treats a refund as a neutral non-sale worth $0. It isn't, it's a negative order (here, −$61): you refund the revenue, recover only some of the goods, and the shipping and processing are gone. The naive haircut shows $39.18; the truth is $36.13. On a $10M business that ~$3/order gap is $200–300K of profit that was never there.

Honest simplification

This holds all variable selling costs as sunk on a refund. That's the conservative choice and it's right for shipping and processing. Marketplace commission is often refunded with the order (would lift the number); return shipping is often an added cost (would lower it). Model those two at the fee level if they're material to you; the direction of each is noted so you're not misled.

Vocabulary by model

E-com: returns + restocking. Service: cancellations + rebooking rate. Subscription: churn (ρ rarely applies). Lead gen: deal fall-through.

The trap

A global recovery rate across all products. A business with 10% returns at 90% recovery loses ~1% of margin; the same return rate at 0% recovery loses ~10%. Averaging them hides which products are quietly bleeding.

Source: cash-flow-correct refund modelling (Conservation of Mass: a fully refunded, fully recovered order nets exactly minus the sunk fees, never more).
Phase 04 · What you can afford to spend

Break-even, and the boundary you cannot cross

Once you know the real margin per order, acquisition becomes arithmetic. Your margin sets the ceiling on what you can pay for a customer. Most overspending is just not knowing where that ceiling is.

07 Stage 7: Ad performance & break-even boundaries
CPA = CPC / CVR cost to acquire one Orders = Budget / CPA Post_Ad_Profit = (Orders × Net_CM) - Budget # the boundaries Break_Even_CPA = Net_CM Break_Even_ROAS = AOV / Net_CM Break_Even_CPC = Net_CM × CVR
Net_CM $36.13, CVR 2.5% max CPA you can pay = $36.13 break-even ROAS = 128.80 / 36.13 = 3.57× max bid per click = 36.13 × 0.025 = $0.90 ROAS basis: ex-tax revenue ÷ net margin. Platforms often report ROAS on tax-inclusive gross. Compare like with like.
Stage 07: Break-even

Your margin is the speed limit on ad spend.

What it means

You can spend up to your net contribution margin to acquire a customer and break even. Your required ROAS falls straight out of it. These aren't goals to beat, they're walls: cross them and every additional sale loses money faster the more you scale.

The error

Chasing a ROAS target borrowed from a podcast ("aim for 4x"). The number isn't wrong, it's just not yours. The right ROAS is your AOV divided by your net margin. A high-margin product breaks even at 2x; a thin one needs 6x. A benchmark is a prior, useless until you put your own margin into it.

Vocabulary by model

E-com: CPC → conversion → order. Service: cost per lead → booking rate → client. Subscription: CAC → signup → subscriber (then LTV over churn). Lead gen: cost per lead → qualify → close (two-stage funnel).

The trap

Scaling budget when CPA already exceeds Net_CM. More spend doesn't fix a negative unit; it multiplies the loss. Fix the margin first, then scale.

Source: break-even as boundary, not target; subscription models extend this with LTV = margin ÷ churn over the customer lifetime.
Phase 05 · Working it backwards

The four levers, and which one to actually pull

Once the waterfall is correct, hitting a profit target stops being guesswork. There are only four levers, and they cost wildly different amounts of effort to move.

The four levers, ranked by what they cost you to move
  • Conversion rate Usually the cheapest lever and the first to try. A small lift in CVR drops straight to orders with no price resistance and no cost increase. Landing pages, friction, clarity (see the conversion-journey companion).
  • Price The most powerful lever per unit of effort, and the scariest. A 3% rise often beats a 25% cost cut, but it meets demand elasticity, so it's never a free 3%. Different channels feel it differently: search shoppers flinch, loyal customers barely notice.
  • Costs Real but slow and finite. You can negotiate suppliers and trim fees once; you can't do it every quarter. High-COGS businesses get more from this lever than high-fee ones.
  • Budget / scale The most tempting and most dangerous. Only profitable if CPA < Net_CM. Below that line it prints money; above it, it prints losses faster. Never the first lever for a unit that isn't already profitable.
The tool · Try it on your own numbers

The margin waterfall, made interactive

Everything above, running live, on the same engine as The Universal Margin. Switch between e-commerce, services, subscriptions, lead gen and digital products. The maths never changes, only the words. Watch the dollar fall, size up your acquisition break-even, and let the goal solver work backwards from a target margin or monthly profit to the smallest change on each lever. Free, and embeddable on your own site.

Physical products, shipping, returns.

The order
Cost of goods (per unit)
Selling costs
Refunds

You keep · per order of revenue
Break-even CPA max to acquire one order
Required ROAS to break even (ex-tax revenue)

CPA vs break-even
Cost to acquire (CPA)
Max bid per click
New orders / mo
Contribution / mo
Profit after ad spend / mo
What most calculators get wrong
  • Refunds taken off revenue, not margin. A refund doesn’t just hand back the sale price; it removes the contribution you would have kept, and you usually eat the selling costs anyway. Applying the refund rate to revenue understates the real damage.
  • Returned goods treated as fully recoverable. A returned unit is rarely 100% resellable. Counting full recovery quietly flatters cost of goods on every refunded order.
  • Stopping at gross margin. Gross margin ignores percentage and fixed selling fees and the refund leak. The number that decides what you can spend to acquire a customer is the contribution you actually keep.

This one is cash-flow-correct instead. Cash-flow-correct margin: a refund loses the sale and the selling costs, and returns goods only to the resellable extent. The Universal Margin (research), Christopher White

Put this calculator on your own site, free

Two lines of code. It stays in sync, costs nothing, asks nothing.

If your audience would find this useful, host it. Paste the snippet below where you want it to appear. The tool runs from this site, so it updates itself; it adapts to your visitor's business model, solves backwards from a target, and gives them a "Copy for LLM" and "Copy my numbers" button so they can carry the work into their own AI, briefing it on the margin model and on your business too. It even co-brands itself: a small badge pairs your site's icon with mine, so it reads as a collaboration. No sign-up, no script bloat, no tracking of your visitors.

Paste the URL of the page you'll embed the tool on. We'll read its colours and fonts and show you what the calculator would look like in your brand.

Reading your site…

Extracted colours

Click an area below, then tap colours above to paint it. The area stays selected, so try a few quickly. The green (money kept) and red (leaks) are generated automatically so the chart always reads right.

Background
Text
Accent
Border
Fine-tune surfaces (cards, fields, buttons, active tab)
Cards
Fields
Buttons & tabs
Active tab

Pick a colour from the strip above

How the collaboration badge will appear:

Christopher White × A tool from Christopher White Consulting, provided by Your website. The full playbook, The Money You Actually Keep, explains every stage.
<div data-cwc-tool="margin-calculator" data-cwc-title="Margin & Break-even Calculator by Christopher White Consulting" data-cwc-reserve-narrow="2200" data-cwc-reserve-wide="1320" style="min-height:1320px"></div>
<script src="https://christopherwhite.com.au/embed/loader.js" data-cwc-tool="margin-calculator" async></script>
  1. Paste the two lines where you want the calculator to appear.
  2. Use a real HTML / "embed code" block, not a rich-text field, so the <script> survives.
  3. Publish. It loads instantly and auto-sizes its height; nothing to set, nothing to maintain.
Platform notes: WordPress, Webflow, Shopify, Squarespace, Wix…
  • WordPress: a Custom HTML block (Classic editor: the Text tab).
  • Webflow: an Embed element, then publish.
  • Shopify: a Custom Liquid / Custom HTML section in the theme.
  • Squarespace: a Code block (Business plan or higher).
  • Wix: Embed Code → Embed HTML / Custom Code.
  • Framer, Ghost, Carrd, Notion sites: the platform's "embed HTML" / "custom code" block.

Stuck? Paste the install guide into ChatGPT, Claude or Gemini and it'll walk you through your exact platform, or just point your AI at christopherwhite.com.au/embed/install.md.

Appendix A · The errors that cost the most

Five ways the number lies to you

Each of these inflates your apparent margin, which is the dangerous direction: it makes you spend money you don't have on customers you can't afford. All five are common in tools people trust.

Refund rate × revenue

Treats a return as a revenue haircut. Ignores recovered goods and sunk fees. Overstates margin by 2-3 points on returns-heavy lines.

Stopping at gross margin

Revenue minus COGS feels like the answer. It ignores every selling cost and every refund. It is roughly twice the real number.

One blended "fees" %

Collapsing percentage and fixed fees makes every price-change scenario wrong, because only half the fees actually move with price.

Borrowed ROAS targets

"Aim for 4x" is someone else's margin structure. Not wrong, just not yours. Your break-even ROAS is your AOV over your net margin. Nobody else's number applies.

Floating-point money

Rounding errors invisible per order, material at volume. Calculate money in exact decimals.

Blended P&L, no unit view

A healthy monthly total can hide products and channels losing money on every sale. The unit is where truth lives.

Appendix B · How to know your number is real

Trust the math, verify the inputs

  • Find your worst unit Calculate net CM per product and per channel, not blended. The average always hides a loser.
  • Stress the refund line Set recovery ρ honestly, per product. The candle and the laptop are not the same business.
  • Separate your fees Tag every cost as percentage or fixed before modelling any price change, or the model will lie.
  • Find your boundary first Know your break-even CPA and ROAS before you set a spend target, not after the quarter.
  • Re-run when inputs move Supplier prices, processor rates, and shipping all drift. A margin model is maintained, not finished.

Method & basis

Most of this is not novel, and shouldn't be. The individual stages are standard managerial accounting: contribution margin, variable vs fixed cost behaviour, break-even, and LTV as margin over churn are textbook. What's assembled here is (a) running them in the correct cash-flow order, (b) the refund model, which most calculators get wrong, and (c) the claim that one engine serves every business model. Those three are the parts to scrutinise.

  1. The waterfall stages: tax, AOV, COGS, variable selling costs, contribution margin, break-even. Standard managerial accounting; the contribution here is sequence and cash-flow correctness, not the formulas themselves.
  2. The cash-flow refund model: a return loses revenue, may recover goods (per-product rate ρ), and sinks variable fees. COGS_chargeable = 1 − (R × ρ). A refunded order is a negative order, not a $0 non-sale. This is the part most tools get structurally wrong, and the part worth checking hardest.
  3. Unit operating leverage: percentage-based costs scale with price; fixed costs don't. Required for any correct price-change scenario. Textbook, routinely collapsed in practice.
  4. Break-even as boundary: max CPA = net contribution margin; required ROAS = AOV ÷ net CM, on a stated revenue basis. Channel-specific, never a universal target.
  5. Universality: a service priced with zero shipping and zero pick/pack yields identical unit economics to a physical product; the vocabulary changes, the math doesn't. This is a sufficiency claim, demonstrated across four models (e-com, service, subscription, lead gen), not a proof that a fifth (e.g. two-sided marketplace economics, where both sides take a fee) couldn't strain it. Treat it as a strong working hypothesis, not a theorem.
  6. Precision: money calculated in exact decimals, never floating point, to prevent compounding rounding error at volume.
  7. Provenance: the full derivation, the six failed versions, and the test methodology are documented in C. White, "The Universal Margin" (2026). These formulas run in production in ProfitOS, verified against a Python oracle and 10,000 randomised scenarios per invariant. This paper is the reasoning, not a sales page; if you want the engine that does it for you, that's what ProfitOS is, and it's reasonable to be skeptical of a method whose author also sells the tool. The defence is that the math is checkable, so check it.

Fidelity note: this is the mechanism and the reasoning first; the calculator above runs that exact model so you can plug in your own figures. Worked examples are illustrative; your inputs are the only ones that matter.

Honesty note: the universality claim is a sufficiency claim, demonstrated across four business models, not a proof that a fifth (e.g. two-sided marketplace economics) couldn't strain it. Channel elasticity and recovery rates are business judgments to be set per case, not universal constants. Where a figure is an assumption, it is marked as one. That restraint is the point.

Published by

White, C. (2026). The Money You Actually Keep. Christopher White Consulting. https://christopherwhite.com.au/playbooks/how-to-unfuck-your-margins/