A Shopify profit dashboard that counts every cost
See net profit by day, product, order and channel after COGS, shipping, payment fees, handling, custom costs and ad spend. Then send each order's margin to Meta so it can bid on profit.
Net profit dashboard
Net profit, margins, POAS, break-even ROAS, CAC and repurchase rate, each against the previous period.
Every cost
COGS, shipping, payment fees, handling, custom costs, order fees and lost chargebacks.
A real P&L
By day, week, month, quarter or year, as a % of gross sales, revenue or net sales.
POAS bidding
Send each order's contribution margin to Meta as a ContributionMargin event.
Profit per product and channel
Ad spend split over products and orders, and campaign profit under any attribution model.
Goals and custom reports
Monthly targets with an end-of-month forecast, and saved reports emailed on a schedule.
How profit is calculated
- Revenue = gross sales − discounts − returns + taxes + shipping charged
- Net profit = revenue + tips + gift cards + other revenue − total costs − taxes − chargebacks
Calculation rules decide how taxes count, whether returns land on the return date or the order date, how the COGS of returns is treated, whether cancelled and zero-revenue orders count, and which campaigns count when an ad account is shared.
| Metric | Formula |
|---|---|
| Gross profit | Revenue + tips + gift cards − product costs − shipping cost − order fees − payment fees − handling |
| Contribution margin | Gross profit − deducted taxes − ad spend − marketing costs |
| POAS | Gross profit ÷ ad spend |
| Break-even ROAS | Revenue ÷ profit before ads: the ROAS at which ads use up all of the margin |
| Blended ROAS (MER) | Revenue without tax ÷ ad spend |
| Ad spend + marketing % of revenue | (Ad spend + marketing costs) ÷ revenue, shown under Contribution margin |
| CAC | (Ad spend + costs marked as CAC) ÷ new customers |
The cost model
- COGS: Shopify cost-per-item sync, costs per variant, SKU or product with effective dates, per-country zones, supplier bundle prices, and CSV import and export.
- Shipping: per order, per item, by quantity tiers, per kg or as a % of value, by country.
- Payment fees: exact Shopify Payments fees, otherwise gateway fees, plus Shopify's third-party fee and a PayPal estimator.
- Handling and custom costs: fixed or variable. A custom cost can also be booked as other revenue or a cost of goods credit.
- Order fees: affiliate or influencer fees on a discount code, tag or UTM, pick and pack per unit, vendor mark-ups, duty above a de minimis value per country, and fees on orders above a price.
- Chargebacks: Shopify Payments, Stripe and PayPal disputes lost or accepted, plus their dispute fee.
- Actual costs per order: what a supplier (AliExpress, CJ Dropshipping, Printful, Printify, Gelato, Gooten), a shipping tool (Shopify Shipping, ShipStation, ShipBob, ShipHero, Sendcloud, Easyship, Shippo) or Stripe and PayPal really charged replaces the estimate for that order.
- Cost snapshots: optionally, each order's costs are frozen when it is first synced, so later cost changes do not rewrite past profit.
- VAT: reclaimable EU input VAT comes off your costs, and orders that report no tax can use One-Stop Shop destination rates.
- Overheads: cost categories, staff costs, and expenses imported from QuickBooks Online, Xero, Google Sheets or scanned bills, down to EBITDA.
POAS bidding on Meta
Turn on profit bidding on the Meta pixel and every Purchase is joined by a ContributionMargin event. Its value is order revenue − refunds − COGS − handling − shipping − fees − tax. Meta optimizes on positive values, so a loss-making order sends 0. Choose the event as the conversion goal in Ads Manager. Background: what is POAS. Run your own numbers in the POAS calculator or the ROAS calculator.
Reports
- P&L by day, week, month, quarter or year, with contribution margin levels CM1 to CM3 and EBITDA, also split into new and returning customers.
- Product profit: campaign spend split over the products in its credited orders, with profit after ads and POAS.
- Order profit: marketing allocated per order, contribution profit and per-order cost corrections.
- Channel and campaign profit under any attribution model, with 90-day LTV and LTV:CAC.
- Breakdowns by discount code, payment gateway, shipping, sales channel and country, an all-stores view in one currency, and CSV export everywhere.
- Goals for revenue, net profit, gross profit, orders, new customers, ad budget, ROAS and margin, with an end-of-month forecast (28-day level × capped trend × weekday factor).
- Custom reports with 22 metrics, two groupings, 7 templates, CSV or print, and email schedules to up to 10 recipients.
- Custom dashboards per store or across all stores: KPI tiles, charts, tables, goals and notes, with custom metrics built from formulas, 5 templates, team sharing and email schedules.
Who it is for and setup
Owners and marketers who need to know what they earn after ads, not only what they sell. Shopify orders, refunds, products, inventory and disputes arrive by webhook, with a backfill of past orders. Orders from other webshop connectors are costed from their totals and line items. Start by syncing Shopify's cost per item or importing a COGS file, then set shipping, fees and custom costs. Profit is also available from GET /api/v1/profit.
Limits
- Ad spend syncs from Meta, TikTok and the ad accounts you connect under Setup › Ad spend. Enter manual ad spend for other channels; it is spread over its days.
- Spend in another currency is converted to the store currency at ECB rates.
- Actual costs come only from the suppliers, shipping tools and payment providers listed above; other orders use your cost rules.
Built on the same first-party data
Questions, answered
What is POAS and how is it different from ROAS?
ROAS is revenue divided by ad spend. POAS is profit divided by ad spend. On the ROASaurus dashboard, POAS is gross profit (revenue after product, shipping, fee and handling costs) divided by ad spend, so a POAS above 1 means those sales earned more gross profit than the ads cost.
How is break-even ROAS calculated?
Revenue divided by profit before ads. It is the ROAS at which ad spend uses up all of the margin. Below it, the ads cost more than the sales earn.
Where do product costs come from?
From Shopify's cost per item, synced automatically, or from costs you set per variant, SKU or product with effective dates. You can also import costs from a CSV file and set country zones and supplier bundle prices.
Does it work outside Shopify?
Yes. Orders from the WooCommerce plugin, the other webshop connectors and the orders API are costed from their totals and line items. Shopify stores also get refunds, inventory and disputes by webhook. Amazon, eBay, Walmart and TikTok Shop orders and fees can be added under Setup › Marketplaces.
Every sale, traced to the ad that earned it
Server-side tracking, profit and lifetime value in one app. 14-day free trial, no credit card.
Start your free trial →