Most ecommerce stores can tell you their revenue to the dollar and cannot tell you their profit to the nearest thousand. The reason is not laziness. Revenue arrives in one system, product costs live in a spreadsheet, ad spend sits in an ad platform, and shipping, fees and salaries are scattered across a bank statement. Each number is knowable. The total is not, until someone sits down and assembles it.

This guide assembles it. It walks the full profit waterfall from the revenue you actually realized down to net margin, using a worked example in USD, and it is specific about the places where two reasonable people calculate the same business differently and get different answers.

Ecommerce profit waterfall Realized revenue of $52,200 less COGS of $22,446 gives gross profit of $29,754; advertising of $14,500 and other operating expenses of $13,450 leave net profit of $1,804. Realized revenue $52,200 − COGS −$22,446 = Gross profit $29,754 − Advertising −$14,500 − Other operating expenses −$13,450 = Net profit $1,804
The same figures as the worked example above. Net profit is 3.5% of realized revenue.

The profit waterfall, in order

Every layer below answers a different question. Skipping one is how a business ends up scaling something that loses money.

The full waterfall Realized revenue − Cost of goods sold (COGS) = Gross profit − Advertising spend − Other operating expenses = Net profit

Two intermediate numbers are worth naming because operators use them constantly: gross margin (gross profit ÷ realized revenue) and net margin (net profit ÷ realized revenue). The first tells you whether the product works. The second tells you whether the business works.

Step 1 — Realized revenue, not gross sales

This is the layer that most often goes wrong, and it goes wrong early enough to corrupt everything beneath it.

If you sell on cash on delivery, or you have meaningful cancellations, or a proportion of shipments come back, then the orders placed on your store and the orders that turned into money are two different populations. Counting placed orders as revenue inflates the top of the waterfall, and because COGS and ad spend are real regardless, the inflation lands entirely in your profit line.

Two conventions, and they are not interchangeable. Some systems recognize every order as revenue and then subtract refunds as contra-revenue. ORVX does not. ORVX recognizes revenue from delivered order items only — an order that was returned or cancelled was never revenue in the first place, so it is not subtracted later either. Both conventions can be defended; what you cannot do is mix them, because subtracting a refund from revenue that never included the sale double-counts the loss.

The practical consequence: when you compare your profit figure against someone else's, or against last year's spreadsheet, check which convention each one used before concluding anything changed.

Returns are two separate measurements

"Return rate" is ambiguous and the ambiguity matters. A store returning 8% of units but 15% of value has a problem concentrated in its expensive products, which is a different problem from one spread evenly. Keep the unit return rate (returned units ÷ sold units) and the value ratio (refund value ÷ realized revenue) as distinct numbers and read them together.

Step 2 — COGS

Cost of goods sold is what the units you actually sold cost you to obtain. Per unit, that normally means the landed cost: the manufacturing or purchase price, plus inbound freight, duties and any per-unit packaging that ships with the product.

Two mistakes are common. The first is using the price you paid on your most recent purchase order for all historical sales, which quietly rewrites past months every time your supplier price changes. The second is leaving inbound freight and duty out because they arrive as a separate invoice — on imported goods that can be 10–20% of landed cost, and excluding it makes every downstream margin look better than it is.

Gross profit Gross profit = Realized revenue − COGS Gross margin = Gross profit ÷ Realized revenue

Gross profit is the money the product itself generates before the business around it is paid for. If gross margin is thin, nothing downstream can rescue it: advertising, salaries and shipping all come out of this number.

Step 3 — Advertising

Advertising is an operating expense, and it belongs in the waterfall exactly once. This sounds obvious and is violated regularly — most often by subtracting ad spend to get a "contribution" figure and then subtracting a total expenses line that also contains advertising.

Keep the split explicit: total expenses = advertising + other operating expenses, where "other" excludes ads by definition. Then net profit subtracts total expenses once, and any contribution figure you calculate separately is understood as a different view of the same money rather than an additional deduction.

A related trap: the revenue figure your ad platform reports is not your revenue. It is revenue the platform attributes to itself, measured under its own attribution window and its own rules about which conversions count. That number belongs in advertising analysis, not in your P&L. ROAS vs profit goes through why in detail.

Step 4 — Other operating expenses

Everything else it costs to run the business in the period. For most ecommerce operations that includes outbound shipping and fulfillment, payment processing fees, platform and app subscriptions, salaries and contractors, warehousing, customer support, and returns processing labor.

Whether an expense is "operating" or belongs in COGS is less important than being consistent. Shipping in particular gets classified both ways. Pick one, apply it to every period, and write down which you chose — because moving shipping between COGS and operating expenses changes your gross margin without changing your net profit at all, and that is precisely the kind of change that gets mistaken for a real one.

A worked example

A store with a $60 average order value, selling into the US, over one month. Every figure here is illustrative.

LineAmountNote
Orders placed1,000Everything customers submitted
Orders delivered87090 cancelled before dispatch, 40 returned
Realized revenue$52,200870 delivered × $60
COGS−$22,446Landed cost, 43% of realized revenue
Gross profit$29,75457% gross margin
Advertising−$14,500All platforms
Shipping & fulfillment−$6,090$7 per delivered order
Payment processing−$1,540~2.95% of realized revenue
Software & subscriptions−$620
Salaries & contractors−$5,200
Net profit$1,8043.5% net margin

Look at what this store would have believed using gross sales. A thousand orders at $60 is $60,000. Subtract the same $22,446 of COGS and the same $27,950 of operating costs and it appears to have made $9,604 — more than five times the truth. The real number is $1,804 on $52,200, which is a business one bad month from losing money: a 13% rise in ad costs alone erases the entire profit.

Nothing in that table is unusual. The gap came from 130 orders that never became revenue, and from the fact that every cost below the revenue line was incurred anyway.

What net margin is telling you

Net margin is the compression of everything above it into one number, which makes it useful as an alarm and useless as a diagnosis. A 3.5% net margin does not tell you whether the problem is product cost, ad efficiency, delivery failure or overhead. It tells you to go and look.

The diagnostic order that usually works:

  • Gross margin first. If the product does not earn enough, no amount of operational tuning downstream will fix it.
  • Then delivery rate. The gap between placed and delivered orders is often the single largest lever, and it is operational rather than financial.
  • Then advertising. Not ROAS — whether the gross profit on what advertising sold exceeds what advertising cost. See contribution margin.
  • Then fixed overhead. Usually the least responsive in the short term, which is why it is last, not because it matters least.

Common mistakes

Treating every placed order as revenue

Covered above, and worth repeating because it is the most expensive error on the list. It does not make your profit slightly wrong; it makes profit a residual of a number that was never real.

Counting advertising twice

Subtracting ad spend once to get contribution and again inside total expenses. The resulting net profit is understated by exactly the ad spend, and the error is invisible because both individual steps look correct.

Using platform-attributed revenue in the P&L

Attributed revenue answers "what did this channel influence". Realized revenue answers "what did the business earn". Substituting one for the other typically inflates revenue, because attribution windows overlap across platforms and the same order can be claimed more than once.

Averaging margin across products and stopping there

A blended 57% gross margin can be one product at 70% carrying three at 30%. The average is true and useless for deciding what to stock or advertise. See product profitability.

Ignoring the cost of a return

A returned order costs outbound shipping, return shipping, processing labor and sometimes the unit itself. Removing the sale from revenue captures the lost margin but not the cost of having attempted it.

Comparing months with different conventions

If you move shipping from operating expenses into COGS, your gross margin drops and your net profit does not move. Anyone reading the gross margin trend will conclude the product got worse. It did not; the definition did.

How ORVX handles this

ORVX exists because this calculation is not hard, it is just relentless — it has to be redone every time an order is delivered, a supplier price changes or an ad account spends money.

It connects orders, per-product costs, operating expenses and ad spend, then reports the waterfall above continuously: realized revenue from delivered items, gross profit, net profit and both margins, with advertising counted once. Every figure in the profit dashboard resolves to the same definitions used in this guide, which is the only reason the numbers on different screens agree with each other.

Frequently asked questions

Is gross profit the same as gross margin?

No. Gross profit is a dollar amount — realized revenue minus COGS. Gross margin is that amount as a percentage of realized revenue. A store can grow gross profit while its gross margin falls, which usually means it is growing by discounting.

Should shipping costs go in COGS or operating expenses?

Either is defensible. Inbound freight to get stock to you is normally part of landed cost and belongs in COGS. Outbound shipping to the customer is more often treated as an operating expense. What matters is that you apply the same rule every period, because moving shipping between the two changes gross margin without changing net profit.

Why is my profit lower than my ad platform suggests?

Because the platform is reporting revenue it attributes to itself against the spend you gave it, and neither COGS, returns, shipping, fees nor overhead appear anywhere in that calculation. A campaign can report a strong return and still reduce your net profit.

What net margin should an ecommerce store target?

There is no honest universal answer, and anyone offering one is quoting a benchmark that does not know your category, price point, delivery model or overhead structure. The useful comparison is your own business against itself over time, and the useful question is whether margin is moving in the direction your decisions intended.

How often should I recalculate profit?

Often enough that a bad trend is visible while you can still act on it. Monthly is the minimum for a business with meaningful ad spend, because a month is long enough to lose a quarter's profit in. Continuous is better, which is the case for automating it.