---
title: "Ecommerce profit margins: what is good and how to calculate"
description: "Ecommerce profit margins: US online retailers average 39.6% gross, listed retailers about 5% net. What is good, how to calculate it, and break-even ROAS."
canonical: "https://www.productmetrics.io/blog/ecommerce-profit-margins"
pageType: article
language: en
publisher: "Product Metrics"
author: "Berend Vrakking"
datePublished: 2026-10-27
dateModified: 2026-10-27
image: "https://www.productmetrics.io/og/blog/ecommerce-profit-margins.png"
---

> Content index: https://www.productmetrics.io/llms.txt

# Ecommerce profit margins: what is good and how to calculate

## Key takeaways

- Compare only the same margin layer: US-listed general retailers kept 33.2% gross but 5.6% net in January 2026.
- In the illustrative €100.00 order, a 65% gross margin becomes 50% contribution before ads and 30% after €20.00 of ads.
- Break-even ROAS is 1 ÷ contribution margin before ads, per product: in the example, a store at a ROAS of 4 hides a product that needs 3.70 and gets 2.86.

An ecommerce profit margin is the share of revenue a store keeps after the costs it chooses to subtract, so the same order can show 65% or 30%.

I compared four published margin benchmarks on 27 October 2026 and worked through one €100.00 order to show which figures you can hold against yours.

## What is a good ecommerce profit margin?

A good ecommerce profit margin is one at or above the benchmark for the same margin: about 5.6% net for listed US general retailers (NYU Stern, January 2026) and 39.6% [gross margin](https://www.productmetrics.io/glossary/gross-margin "Gross margin is the share of revenue left after subtracting the cost of goods sold, shown as a percentage.") for US online retailers (US Census Bureau, 2022).

Compare a figure with yours only when it subtracts the same costs from the same revenue. Three layers cover most ecommerce reporting, each subtracting more than the one before.

| Measure | Formula | Answers | Leaves out |
|---|---|---|---|
| Gross margin | (revenue − product cost) ÷ revenue | Price against product cost | Shipping, fees, returns, ads, overhead |
| Contribution margin before ads | (revenue − product cost − variable order costs) ÷ revenue | Room to pay for ads | Ads, fixed overhead |
| Net profit margin | Net income ÷ revenue, over a period | Profitability of the business | Which product or campaign earned it |

[Gross margin vs net margin](https://www.productmetrics.io/glossary/gross-margin-vs-net-margin) covers the two ends of the table.

In between sits [contribution margin](https://www.productmetrics.io/glossary/contribution-margin): revenue minus the variable costs of an order, and the layer that tells you what an order can spend on ads.

Labels vary between sources. One report's "profit margin" is gross, another's is net. Check the formula before the number.

### Is markup the same as profit margin?

No: markup divides profit by cost, margin divides profit by price, so a 100% markup is a 50% gross margin. To convert, gross margin = markup ÷ (1 + markup).

| Markup on cost | Gross margin on price | Price of a €35.00 product, excl. VAT |
|---|---|---|
| 25% | 20.0% | €43.75 |
| 50% | 33.3% | €52.50 |
| 100% | 50.0% | €70.00 |
| 185.7% | 65.0% | €100.00 |

Quoting markup as margin overstates profit at every price. [Markup vs margin](https://www.productmetrics.io/glossary/markup-vs-margin) explains the difference, and the [margin calculator](https://www.productmetrics.io/margin-calculator) sets a price from a target margin.

## What is the average ecommerce profit margin?

The average ecommerce profit margin is 30–65% gross and 2–27% net across four published benchmarks; the range is wide because each source measures different stores, periods and costs.

The table records what each source measures, so you can pick the one that matches your own calculation.

| Source | Measures | Sample and period | Figure | Costs included |
|---|---|---|---|---|
| US Census Bureau, Annual Retail Trade Survey | Gross margin, measured | ~16,500 US employer retail firms, 2022 | 39.6% online and mail order; 31.1% all retail | Product cost |
| NYU Stern, Damodaran | Gross and net margin, measured | 23 US-listed general retailers, January 2026 | 33.2% gross, 5.6% net | Net: all costs, interest and tax |
| TrueProfit | Gross, contribution and net, vendor panel | 5,000+ stores, January–August 2026 | 55–65% gross, 35–50% contribution, 10–15% net | Contribution: ads, shipping, payment fees |
| [Shopify blog](https://www.shopify.com/blog/what-is-a-good-profit-margin) | Rule of thumb, no source given | Retail, published March 2026 | 30–50% gross, 2–10% net | Not stated |

Don't average these figures. A census, a set of listed companies, a vendor's customers and an unsourced range describe four different populations.

### US online retailers: 39.6% gross margin

US online and mail-order retailers reported a 39.6% gross margin in 2022, against 31.1% for all US retail (US Census Bureau, [Annual Retail Trade Survey](https://www2.census.gov/programs-surveys/arts/tables/2022benchmarked/gmper.xlsx), NAICS 4541, benchmarked tables released 31 August 2026).

The figure was 40.8% in 2021. The survey samples about 16,500 US employer firms, which makes it the broadest measured figure here.

The category also contains the largest online retailers and mail-order sellers. The survey ended with 2022: the Annual Integrated Economic Survey took over its data collection in 2024. Use it as the gross-margin yardstick for a US store, not for contribution or net.

### Listed US retailers: about 5% net margin

US-listed general retailers reported a 33.2% gross margin and a 5.6% net margin in January 2026, and speciality retailers 35.3% and 5.2% ([Aswath Damodaran, NYU Stern](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/margin.html)).

**Figure: Gross and net margin of US-listed retailers, January 2026.** Listed general and speciality retailers keep 33–35% gross but 5–6% net. Grocery keeps 1.3% net, against 9.7% across all US sectors.

![Bar chart of gross and net margin of US-listed retailers in January 2026: general retail 33.2% and 5.6%, speciality 35.3% and 5.2%, grocery 26.3% and 1.3%.](https://www.productmetrics.io/images/blog/ecommerce-profit-margins/public-retail-gross-vs-net.png)

| Sector (number of firms) | Gross margin | Net margin |
| --- | --- | --- |
| Retail (General), 23 firms | 33.2% | 5.6% |
| Retail (Special Lines), 94 firms | 35.3% | 5.2% |
| Retail (Grocery and Food), 15 firms | 26.3% | 1.3% |
| All US sectors, 5,994 firms | 37.8% | 9.7% |

_Source: Aswath Damodaran, NYU Stern, Margins by Sector (US), data as of January 2026; sector totals of net income and sales_

[NYU Stern margin data](https://pages.stern.nyu.edu/~adamodar/New_Home_Page/datafile/margin.html)

Read the gap rather than either number. A listed general retailer keeps about 17% of its gross profit as net income, a speciality retailer about 15%.

Damodaran adds up net income and sales across a sector before dividing, so the biggest companies dominate the result. The data has no separate online-retail row.

### Online stores: one vendor's panel

TrueProfit reports 55–65% gross, 35–50% contribution and 10–15% net margins for 5,000+ ecommerce stores between January and August 2026, in [its ecommerce profit margins guide](https://trueprofit.io/blog/ecommerce-profit-margins).

Its contribution margin subtracts ads, shipping and payment fees, so compare it with your contribution after ads, not before.

**Figure: Gross and net margin of Shopify stores by category, one October 2026 week.** Gross margin doesn't predict net margin: pet supplies keep 73% gross but 14% net, while home and garden keep 67% gross and 33% net.

![Bar chart of gross and net margin for Shopify stores by category in one October 2026 week: pet supplies 73% gross, 14% net; electronics 63% and 12%; home and garden 67% and 33%.](https://www.productmetrics.io/images/blog/ecommerce-profit-margins/shopify-stores-by-category.png)

| Category | Gross margin | Net margin |
| --- | --- | --- |
| Health and beauty | 74% | 34% |
| Animals and pet supplies | 73% | 14% |
| Home and garden | 67% | 33% |
| Apparel and accessories | 65% | 28% |
| Electronics | 63% | 12% |
| Furniture | 44% | 16% |

_Source: TrueProfit, Profit Margin by Industries, 5,000+ Shopify stores, 18–24 October 2026 (the page refreshes weekly); vendor data, country and averaging method not stated_

[TrueProfit benchmarks](https://trueprofit.io/resources/profit-margin-by-industries)

The same vendor's weekly category page reports more: 25–27% net in each month from March to September 2026, and 0–39% across 20 categories for 18–24 October 2026.

That page doesn't state the country or how stores are averaged, and it refreshes every week. Treat the panel as a sample of one vendor's customers.

## How do you calculate ecommerce profit margin?

You calculate an ecommerce profit margin by subtracting one layer of costs at a time from revenue excl. VAT, then dividing what is left by that same revenue.

Take, for example, one €100.00 order of a product that costs €35.00.

**Figure: What is left of a €100.00 order at each margin layer.** Each layer subtracts more of the order: €35.00 of product cost, then €15.00 of order costs, then €20.00 of ads.

![Bar chart of an illustrative €100.00 order excl. VAT: €65.00 gross profit after product cost, €50.00 contribution before ads and €30.00 left after €20.00 of ads.](https://www.productmetrics.io/images/blog/ecommerce-profit-margins/order-margin-layers.png)

| Margin layer | Left of the order |
| --- | --- |
| Revenue | €100.00 |
| Gross profit (after product cost) | €65.00 |
| Contribution before ads | €50.00 |
| Contribution after ads | €30.00 |

_Source: Illustrative data: the €100.00 order in the table below, revenue excl. VAT_

The €15.00 of variable order costs breaks down as follows. Illustrative data.

| Line | Amount | Running total | Margin |
|---|---|---|---|
| Revenue, after discounts, excl. VAT | €100.00 | €100.00 | |
| Product cost (landed) | −€35.00 | €65.00 | 65% gross |
| Fulfilment and outbound shipping | −€8.00 | €57.00 | |
| Payment processing (2.9% + €0.30) | −€3.20 | €53.80 | |
| Packaging | −€1.30 | €52.50 | |
| Returns allowance (10% × €25.00 per return) | −€2.50 | €50.00 | 50% contribution before ads |
| Advertising for the order | −€20.00 | €30.00 | 30% contribution after ads |

The order's [ROAS](https://www.productmetrics.io/glossary/roas "Return on ad spend (ROAS) is the revenue your ads generate for every euro you spend on them.") is 5: €100.00 of revenue on €20.00 of ads. The €30.00 left still has to pay for salaries, software and rent before any of it is profit.

To run your own order through the same subtractions, use the [contribution margin calculator](https://www.productmetrics.io/contribution-margin-calculator). Set the price to "excl. VAT" and enter your price without VAT; the maths is the same in any currency.

> **Sidenote:** This example leaves out fixed overhead, interest and income tax, so the 30% is not net margin. Net margin needs a period's totals, because those costs don't belong to one order.

## Which costs belong in each margin layer?

Each cost enters at one layer and stays in every layer below it: product cost in gross margin, other per-order costs in contribution, advertising after that, and fixed costs only in net margin.

**Calculate your margin in seven subtractions**

1. **Fix the revenue basis.** Start from revenue after discounts, excl. VAT. Decide once whether the shipping you charge counts as revenue.
2. **Subtract product cost.** Use landed cost: the purchase price plus inbound freight and duties. Revenue minus this is gross profit.
3. **Subtract fulfilment and shipping.** Pick and pack, packaging and the outbound carrier label, per order.
4. **Subtract payment and marketplace fees.** The processor's percentage plus its fixed fee per order, and any marketplace commission.
5. **Subtract returns once.** Either lower revenue by refunds or add a returns allowance as a cost, never both. What is left is contribution before ads.
6. **Subtract advertising.** The ad spend allocated to the order or product gives contribution after ads.
7. **Subtract fixed costs over a period.** Salaries, software, rent, then interest and income tax. Only now do you have net profit, for a month or a year.

The table shows which layers include each cost.

| Cost | Gross | Contribution before ads | Contribution after ads | Net |
|---|---|---|---|---|
| Product cost, landed | Yes | Yes | Yes | Yes |
| Fulfilment and shipping | No | Yes | Yes | Yes |
| Payment and marketplace fees | No | Yes | Yes | Yes |
| Returns and refunds | No | Yes | Yes | Yes |
| Advertising | No | No | Yes | Yes |
| Salaries, software, rent | No | No | No | Yes |
| Interest and income tax | No | No | No | Yes |

Some stores put outbound shipping in product cost, which lowers their gross margin and leaves contribution unchanged. Either choice works, as long as you make it once and a benchmark makes the same one.

The common double count is returns. If revenue is already net of refunds, a returns allowance on top subtracts the same loss twice.

The [ecommerce return rate guide](https://www.productmetrics.io/blog/ecommerce-return-rate) shows both ways to handle it. The [dropshipping margin guide](https://www.productmetrics.io/blog/dropshipping-profit-margin-after-returns) works through a model where the supplier may not take returns back.

## Why can a healthy store margin hide losing products?

A healthy store margin can hide losing products because it averages strong and weak orders into one number. Take, for example, two products that both sell at €100.00 excl. VAT. Illustrative data.

| Line | Product A | Product B | Store (one order each) |
|---|---|---|---|
| Revenue | €100.00 | €100.00 | €200.00 |
| Product cost | €30.00 | €55.00 | €85.00 |
| Variable order costs | €14.00 | €18.00 | €32.00 |
| Ad spend | €15.00 | €35.00 | €50.00 |
| ROAS | 6.67 | 2.86 | 4 |
| Contribution after ads | €41.00 | −€8.00 | €33.00 |

The store shows a 57.5% gross margin, a ROAS of 4 and €33.00 left after ads.

Product B, with a 27% contribution margin before ads, needs a ROAS of 3.70 (1 ÷ 0.27) to break even and gets 2.86, so it loses money on every order. [Break-even ROAS per product](https://www.productmetrics.io/blog/break-even-roas-per-product) shows how one account-wide target funds products like it.

**Figure: Contribution after ads per order: two products and their store average.** The store average shows €16.50 per order after ads while product B loses €8.00 on every order it sells.

![Bar chart of illustrative contribution after ads per order: product A earns €41.00, product B loses €8.00 and the store average is a healthy-looking €16.50.](https://www.productmetrics.io/images/blog/ecommerce-profit-margins/product-vs-store-contribution.png)

| Product | Contribution after ads |
| --- | --- |
| Product A | €41.00 |
| Product B | -€8.00 |
| Store average per order | €16.50 |

Reference line: Break-even (€0.00).

_Source: Illustrative data: products A and B in the table above, one order each_

Finding product B means calculating [profit per product](https://www.productmetrics.io/glossary/profit-per-product), with each product's own cost, order costs and ad spend. Across hundreds of products and campaigns, that stops being a spreadsheet job.

[Product Segmentation](https://www.productmetrics.io/product-segmentation) places every product in one of six segments by ad clicks and ROAS, or [POAS](https://www.productmetrics.io/glossary/poas "Profit on ad spend (POAS) is contribution profit before advertising divided by ad spend.") once you connect margins. It writes the segment to a Merchant Center label you approve, so you can increase or lower each product's priority.

> **Grow revenue with the products that perform best.** Every product segmented on profit, so you know which ones get more priority. [Analyse your products for free](https://app.productmetrics.io/) Log in with Google, no credit card.

## How does contribution margin set your break-even ROAS?

Contribution margin before ads sets your break-even ROAS through one formula: break-even ROAS = 1 ÷ contribution margin, so the €100.00 order's 50% margin breaks even at a ROAS of 2, a target ROAS of 200%.

Revenue and margin must share a basis: both excl. VAT, with the margin measured before ads.

**Figure: Break-even ROAS by contribution margin before ads.** Break-even ROAS rises faster as margin falls: 60% breaks even at 1.67, 50% at 2, 30% at 3.33 and 20% at 5.

![Bar chart of break-even ROAS by contribution margin before ads: 1.67 at 60%, 2 at 50%, 2.5 at 40%, 3.33 at 30% and 5 at 20%.](https://www.productmetrics.io/images/blog/ecommerce-profit-margins/break-even-roas-by-margin.png)

| Contribution margin before ads | Break-even ROAS |
| --- | --- |
| 60% | 1.67 |
| 50% | 2 |
| 40% | 2.5 |
| 30% | 3.33 |
| 20% | 5 |

_Source: Calculated as 1 ÷ contribution margin before ads, on revenue excl. VAT_

Lost margin points cost more as the margin shrinks. Going from 50% to 40% moves break-even from 2 to 2.5; going from 30% to 20% moves it from 3.33 to 5.

The [break-even ROAS calculator](https://www.productmetrics.io/break-even-roas-calculator) runs the formula for any product. Profit on ad spend (POAS) is the same check in profit terms: POAS = ROAS × contribution margin, so break-even POAS is 1 ([POAS vs ROAS](https://www.productmetrics.io/blog/poas-vs-roas)).

At break-even the ads pay for themselves and nothing more, so fixed overhead still needs a target above it. [Setting a target ROAS from your margin](https://www.productmetrics.io/blog/target-roas-from-margin) adds the profit you want to keep.

### What to do when your margin is too low

When a margin is too low, find the layer where it drops before you change a price. Each layer points to different levers.

| Where the margin drops | Check first | Levers |
|---|---|---|
| Gross margin | Freight and duties in product cost | Price, supplier terms, product range |
| Contribution before ads | Shipping, fees and returns per order | Free-shipping threshold, packaging, return policy |
| Contribution after ads | [Each product's ROAS against its break-even](https://www.productmetrics.io/blog/ecommerce-ppc-profitability) | Lower priority below break-even, increase it above |
| Net margin | Fixed costs against order volume | Order volume, overhead |

Check the data before the levers. A missing freight invoice or a refund counted twice moves a margin as much as a supplier's price rise.

## Final thoughts

The number to compare is the one that matches your formula. A 65% gross margin and a 30% contribution after ads can describe the same order, so pick the layer you decide with and compare only figures built the same way.

For ad decisions that layer is contribution before ads, product by product. Work it out for your three biggest sellers first, then check each one's ROAS against its break-even.

## Frequently asked questions

### Is a 20% net margin good for an online store?

Yes, on the published figures. A 20% net margin is well above the 5–6% that US-listed general and speciality retailers reported in January 2026 (NYU Stern) and inside the 10–27% net that TrueProfit reports for Shopify stores in 2026. Check that the figure is net: at 20% contribution before ads, a product needs a ROAS of 5 just to break even.

### Is a 40% profit margin too high?

No. A 40% gross margin is close to the 39.6% that US online retailers reported for 2022, and a 40% contribution margin before ads breaks even at a ROAS of 2.5. A 40% net margin would be far above the public retail figures, so check that fixed costs, interest and tax are all in it.

### What is the 80/20 rule in ecommerce?

The 80/20 rule is the Pareto principle applied to products: the idea that a small share of products earns most of the revenue or profit. It is a rule of thumb, so test it on your own data by ranking products by contribution after ads.

## Keep reading.

- [How to optimise PPC campaigns: a margin-first playbook](https://www.productmetrics.io/blog/how-to-optimize-ppc-campaigns)
- [Ecommerce PPC: how to judge ads by product profit](https://www.productmetrics.io/blog/ecommerce-ppc-profitability)
- [How to Calculate a Google Ads Budget for Shopping](https://www.productmetrics.io/blog/google-ads-budget-calculator)

---

Written by Berend Vrakking, founder of Product Metrics. Last updated 2026-10-27.

HTML version: https://www.productmetrics.io/blog/ecommerce-profit-margins
