Short answer
Gross margin divides gross profit by net sales; markup divides it by product cost. State whether freight and duty are included before setting prices or discounts.
The answer in detail
Gross margin divides gross profit by net sales. Markup divides the same profit by product cost. A candle costing $20 and selling for $50 before tax has a 60% gross margin and a 150% markup. Use the product's landed cost, or state clearly which costs your calculation excludes.
The benchmark
The denominator changes the meaning of the percentage. In English business terminology, markup is measured against cost; gross margin is measured against sales. This matters when translating French accounts: taux de marge in this article means markup, while taux de marque means gross margin.
Take a fictional candle. Its manufacturer charges $17 before tax, and inbound freight and duty add $3. It sells for $50 before tax. In the source's illustrative 20%-VAT scenario, its displayed consumer price would be $60. That tax rate is part of the example, not a default for international stores.
| Measure | Supplier cost only | Including inbound freight and duty |
|---|---|---|
| Unit cost before tax | $17 | $20 |
| Gross profit | $33 | $30 |
| Markup: profit divided by cost | 194% | 150% |
| Gross margin: profit divided by selling price | 66% | 60% |
You can convert between the ratios:
gross margin = markup ÷ (1 + markup)
A 150% markup gives 1.5 ÷ 2.5 = 60% gross margin. A pre-tax selling-price multiplier of 2.5 produces the same answer: 1 − 1 ÷ 2.5 = 60%.
Business Queensland’s English mark-up calculator defines mark-up pricing from cost plus a percentage of cost. The landed-cost numbers here are fictional examples; the denominator distinction follows directly from the displayed formulas. Shopify's profit-report documentation explains the store-report calculation separately.
The rule
Use gross margin to manage the business. It expresses profit as a share of revenue, so it can be read alongside other lines in your e-commerce profit-and-loss statement. It also provides the product-cost starting point for contribution margin per order, before fulfillment, payment and acquisition costs are deducted.
Keep markup for conversations framed around supplier cost. Most importantly, name the measure you mean. In a discussion reported by the Club's contributors, a silver and vermeil jewelry brand's founder described multipliers between 5.5 and 7 for an earring. A pre-tax multiplier of six means a 500% markup and an approximately 83% gross margin. Both numbers can describe the same product correctly.
Do not let a translated label hide a different denominator.
The steps
-
Calculate landed cost. For each SKU, establish a unit cost delivered to the warehouse: supplier price, allocated inbound freight and duty. Allocate shared shipment costs by a consistent method, such as value or volume. Document how your accounts classify those costs.
-
Enter product costs. In Shopify, populate the Cost per item field for each variant. The profit-report documentation, checked on October 29, 2026, says costs need to be recorded at the time of sale; entering a cost later does not populate those older order reports. Shopify's field definition and your internal landed-cost definition may differ. If you enter landed cost, document that choice so inbound freight is not deducted twice.
-
Check cost coverage. Measure the proportion of revenue with recorded product costs. ShopifyQL, Shopify's report-query language, can help rank products by sales without a recorded cost. The current ShopifyQL sales schema confirms the cost-coverage metrics used in this example; run it in your admin with the supported reporting access:
FROM sales SHOW net_sales, net_sales_without_cost_recorded, gross_profit, gross_margin GROUP BY product_title SINCE startOfDay(-30d) UNTIL today ORDER BY net_sales_without_cost_recorded DESC -
Calculate the margin. For a product, divide pre-tax selling price minus landed cost by pre-tax selling price. Rank the catalog from lowest to highest margin. For the whole store, use the period's net sales and cost of goods sold. Purchases made that month are a different figure: inventory movements can make them misleading.
-
Reconcile with the accounts. Compare your result with the accountant's gross-profit figure. Ask where inbound freight and duty are recorded and whether those costs are included in the measure being compared. French general-ledger account numbers are not an international reconciliation method; the useful question is whether the same costs and period are included on both sides.
-
Recalculate before a promotion. Use the discounted selling price, rather than the list price, to establish the remaining margin. Follow the Playbook on promotion profitability.
The pitfall
A Shopify report and a landed-cost spreadsheet can both be internally correct while answering different questions. Shopify's reported gross margin uses net sales and recorded product costs. If those recorded costs exclude freight, the candle in the example can show 66% rather than the 60% landed-cost margin. Using the higher figure to set discounts would overstate the room you have.
An even simpler problem is missing cost data. In an audit described by the Club's contributors, a winter-accessories brand generating roughly €2 million online had not entered product purchase costs in Shopify. The audit could not measure actual margin by product and had to start with an assumed average. Its first recommendation was to enter costs for the 20 best-selling products, which accounted for close to 90% of revenue.
That is an individual brand's audit, not a benchmark for every store.
What to tell your team
Adapt this fictional example to your own cost definition:
“Our landed-cost gross margin is 60%: every $100 in sales before tax leaves $60 after the product, inbound freight and duty. Shopify shows 66% because its recorded costs exclude freight. We will use 60% when setting prices and discounts.”
