Profit metrics explained
How COGS, gross profit, CM1, CM2, CM3, payment fees and EBITDA are worked out, which costs each one takes off, and where to set those costs.
4 min readUpdated 7 October 2026
Profit figures start from your sales and take off costs in layers, so you can see where margin goes. The P&L (Trading, P&L) shows every layer in one statement. Each layer is called a contribution margin, CM for short.
Before you start
- A connected Shopify store, with product costs filled in on your products in Shopify. Without them, COGS is understated.
- Meta or Google Ads connected for CM3 to include ad spend.
- Your other costs set up in Settings, Costs: shipping and fulfilment, payment gateways, affiliate commissions, fixed overheads and anything else. Who can edit Costs depends on your role.
- Opening the P&L needs the P&L permission and a plan that includes it.
The layers, top to bottom
| Figure | How it is worked out |
|---|---|
| COGS | Unit cost times quantity on orders placed in the period. Returned items' cost is taken back off automatically. |
| Gross profit (CM1) | Net sales plus shipping, less COGS. |
| Gross margin | Gross profit divided by net sales plus shipping, as a percentage. On the P&L this is CM1 %. |
| Transaction fees | The payment processing fees Shopify reports on each order's payout. |
| Gateway fees | Fees calculated from the rates you agreed with each payment provider (for example Stripe or PayPal), set in Costs. |
| Payment fees | Transaction fees plus gateway fees. |
| CM2 | Gross profit less transaction fees less the costs assigned to CM2 in Costs (gateway fees and fulfilment among them). |
| CM3 | CM2 less total ad spend less the costs assigned to CM3 in Costs (affiliate commissions, for example). |
| Fixed overhead | Fixed costs from Costs (rent, salaries, software), spread evenly by day across the period. |
| EBITDA | CM3 less the costs assigned to EBITDA in Costs. |
| EBITDA margin | EBITDA divided by net sales plus shipping, as a percentage. |
A worked example
Fellwick's month: net sales plus shipping 50,000; COGS 20,000; payment fees 1,000; packaging and couriers 3,000; ad spend 12,000; fixed costs 8,000.
- CM1: 50,000 less 20,000 = 30,000 (60%)
- CM2: 30,000 less 1,000 less 3,000 = 26,000 (52%)
- CM3: 26,000 less 12,000 = 14,000 (28%)
- EBITDA: 14,000 less 8,000 = 6,000 (12%)
Step by step: read the P&L
- Open the brand and choose Trading, then P&L.
- Pick the month, quarter, half or year in the P&L's period control.
- Read down the statement: Revenue, then Cost of Goods Sold, Direct Variable Costs (CM2), Acquisition / Marketing (CM3), Fixed Overhead and EBITDA.
- Expand Payment Fees to see the fees by provider.
- Below the statement, Profit over time shows the months before, and Where the money went shows how revenue splits into costs and profit.
What you will see
- If no costs have been set, a notice says so and links to Settings, Costs.
- The memo section Cash Collected (memo) shows taxes and duties collected and Gross Collected. These are money you collected, not income, so they are kept out of profit.
- Ad spend is shown per platform under Acquisition / Marketing, converted into your reporting currency.
Troubleshooting
- "The P&L could not be loaded": one of its parts (sales, manual inputs, line items or cost rules) could not be read. Choose Try again. If it keeps happening, email support@fabrik.ae.
- "No Shopify sales in this period": there are no orders in the chosen dates, or the store is not connected.
- Gross margin looks too high: some products probably have no cost in Shopify. Add unit costs in Shopify and they are picked up on the next sync.
- Fees look low: some orders arrive from Shopify with no fee recorded, which pulls the measured fee down.