Profit & Loss Tracking for E-Commerce
Track true e-commerce profitability with MerchantFlow P&L. Manage COGS, ad spend, expenses, and calculate accurate gross and net profit margins.
Profit & Loss (P&L) Overview
Profit & Loss tracking in MerchantFlow gives Shopify and WooCommerce merchants a complete view of true profitability by combining revenue data with cost of goods sold (COGS), advertising spend, operating expenses, and capital expenses in a single dashboard. Go beyond top-line revenue to understand which products, channels, and campaigns actually generate profit.
What Is P&L Tracking?
Profit & Loss tracking helps you understand:
- True profitability - revenue minus all costs, not just gross sales
- Profit margins - percentage of profit per product, category, and overall business
- Cost breakdown - where your money goes across COGS, ads, and operations
- Net profit - what you actually keep after every expense
Why it matters: High revenue does not always mean high profit. P&L tracking reveals which products are truly profitable and which erode your bottom line.
P&L Components
Revenue
Total sales from your connected e-commerce platform (Shopify or WooCommerce), tracked through synced order data.
Cost of Goods Sold (COGS)
- Product manufacturing or wholesale cost
- Shipping from supplier
- Import duties and tariffs
- Packaging materials
Advertising Spend
- Google Ads campaigns
- Meta (Facebook/Instagram) Ads
- TikTok Ads and Snapchat Ads
- Other paid marketing
Operating Expenses (OPEX)
- Software subscriptions
- Marketing costs
- Operations and fulfillment
- Overhead costs
- Salaries and contractors
Capital Expenses (CAPEX)
- Equipment purchases
- Website development
- Major infrastructure investments
How Profit Is Calculated
MerchantFlow uses an industry-standard ecommerce waterfall - the CM1 / CM2 / CM3 / EBITDA / Net framework - and applies the same calculation in every surface (dashboard KPIs, P&L pages, North Star history, orders, and the daily email summary).
Net Revenue is the starting line:
Gross Revenue = Order subtotal + Shipping charged + Sales tax (tax-exclusive stores only)
Net Revenue = Gross Revenue - RefundsDiscounts are already reflected in the subtotal your store reports, so they are never subtracted a second time. For stores that report tax-inclusive prices (UK/EU VAT, AU GST), tax is already inside the subtotal and is not added again.
CM1 - Product Margin (product cost only, excluding handling):
CM1 = Net Revenue - Product CostCM2 - Gross Profit (full COGS, including per-unit handling):
Gross Profit = Net Revenue - COGSCM3 - Contribution Margin (after all variable order-level costs):
Contribution Margin = Gross Profit - Shipping Cost - Fulfillment - Payment Fees - Ad SpendEBITDA (after operating overhead):
EBITDA = Contribution Margin - OpEx - Amortised CapEx - Variable CostsNet Profit:
Net Profit = EBITDA - Financing CostProfit Margin:
Profit Margin % = (Net Profit / Net Revenue) x 100Every margin percentage on the waterfall divides by net revenue, and reads 0% when net revenue is zero or negative.
What is excluded by default:
- Sales tax is collected inside gross revenue but is never deducted as a cost, so it is effectively treated as a pass-through liability. Switch Sales Tax Treatment from "No - pass-through" (the default) to "Yes - deduct from profit" in Settings > Financial Preferences to deduct it at the net profit line. See Tax Rules.
- Refunds are already netted out of net revenue, so they are not subtracted again.
- Funding repayment principal is treated as cash flow, not an operating cost. Only the interest portion of a funding agreement (when the agreement carries an interest rate) reduces net profit.
- Customer-paid shipping is revenue, not a cost - it is inside gross revenue and reported separately as "shipping revenue". The merchant-side cost of delivering the order is the separate fulfillment line.
Quick Links
- COGS Management - Add and manage product costs
- Importing COGS - CSV, BeProfit, and store cost sync
- COGS Accuracy - Effective dates, coverage, and recompute
- Price Breaks - Quantity-tiered supplier pricing
- Fulfillment Costs - 3PL, percentage, and per-product methods
- Country Fulfillment Rates - Per-destination rates and tiers
- Ad Spend Tracking - Monitor advertising expenses
- Profit Margins - Calculate and analyze margins
- Order Tracking - Order-level profitability
- Expense Tracking - Track business expenses
- Bank Balance - Monitor cash position
- Burn Rate & Runway - Cash flow analysis
- Bundle Management - Track bundle profitability
Accessing the P&L Dashboard
The Profit group in the left navigation holds every P&L surface:
| Nav item | Path | What it shows |
|---|---|---|
| Summary | /dashboard/pnl | Revenue waterfall (gross to net) and profit waterfall (CM1 / CM2 / CM3 / EBITDA / Net), plus a top-regions card |
| Daily Breakdown | /dashboard/pnl/daily-breakdown | Day-by-day P&L rows |
| Markets | /dashboard/pnl/markets | Per-country revenue, profit, margin, ROAS and POAS |
| Bank Balance | /dashboard/pnl/bank-balance | Cash position and tracked-balance reconciliation |
| Expenses | /dashboard/expenses | OPEX and CAPEX entries |
| COGS | /dashboard/cogs | Product cost management |
| External Funding | /dashboard/funding | Funding agreements (plan-gated) |
How to Set Up P&L Tracking
Step 1: Add COGS
For accurate profitability, add Cost of Goods Sold for your products.
Method 1: Edit on the COGS Page
- Go to Profit > COGS
- Find the product (expand it to see variants)
- Click a cost to edit it inline, or use "Bulk Edit COGS" to set many at once
- Enter the product cost and save
Method 2: Import
- Go to Profit > COGS
- Click "Import"
- Upload a CSV with a
sku(orvariant_id) column and a cost column, a BeProfit export, or sync costs from your connected Shopify or WooCommerce store
See the COGS Management guide for the page itself and Importing COGS for every import option.
Step 2: Connect Advertising Platforms
Ad spend automatically syncs from every connected ad platform: Google Ads, Meta, Snapchat, TikTok, and - where enabled for your workspace - Pinterest and Klaviyo.
For channels with no supported integration, record the spend as an operating expense in the marketing category (Profit > Expenses) so it still reduces net profit.
Step 3: Track Business Expenses
Record all operating and capital expenses:
- Go to Profit > Expenses
- Click "Add Expense"
- Enter amount, date, category (Marketing (Non-Ad), Software & Subscriptions, Rent & Utilities, Salaries & Wages, Other, and more), and type (OPEX or CAPEX)
- Optional: Attribute to project or channel
- Save
Set up recurring expenses:
- Toggle "Repeats automatically" ON
- Set frequency: Weekly, Monthly, Quarterly, or Yearly
- Automatically creates each period
Step 4: Monitor Bank Balance
Track your cash position for a complete financial picture:
- Go to Profit > Bank Balance
- Add your current bank account balance
- Record regularly (weekly recommended)
View metrics:
- Current recorded balance
- Tracked balance (initial balance plus revenue minus expenses) and the delta against your recorded balance
Share P&L as an Image
MerchantFlow can export your current P&L as a branded, shareable image. Use it for investor updates, social posts, or quick screenshots for advisors.
How to Share
- Open the main Dashboard (Overview) page
- Click Share P&L in the page header
- Pick a format: Twitter / X (16:9), Square (1:1), LinkedIn (4:5), or Story (9:16)
- Pick a theme: Dark or Light
- Optionally tick "Include my store name in the image" - your store name stays hidden unless you opt in
- Click Download to save the PNG, Copy image to put it on the clipboard, or Share to hand it to your device's native share sheet
The image covers the currently selected global timeframe, and the filename includes the format, theme and timeframe so files stay distinguishable when you export several.
P&L Freshness and Today's Numbers
P&L snapshots refresh automatically on a daily worker so the dashboard always reflects the latest synced orders, ad spend, COGS, and expenses. For today's date, MerchantFlow also runs a separate refresh loop that recomputes the in-flight P&L throughout the day as new orders sync in. You do not need to trigger a manual recompute - the dashboard will surface a fresh number every few minutes during active trading hours.
If the headline number ever looks meaningfully different from your live calculation (for example, an order that just synced has not yet flowed through), MerchantFlow's drift analyzer flags the gap to engineering for review. You can also see the timestamp of the last snapshot in the P&L header.
Margin by Region
For a per-country breakdown of revenue, COGS, ad spend, CAC, net profit, and POAS, see the Margin by Region guide, which documents the Profit > Markets page. It is most useful when you ship to multiple destination countries and want to see which regions are profitable and which are leaking margin.
Reading the Full Cost Structure
The profit waterfall on Profit > Summary lists every cost line in order, each with its percentage of net revenue, so you can see exactly where the money goes:
Net Revenue -> Product Cost -> CM1 -> Handling & Freight -> CM2 (Gross Margin) -> Payment Fees -> Shipping Cost -> Fulfillment Cost -> Ad Spend -> CM3 (Contribution Margin) -> Operating Expenses -> Amortised CapEx -> Variable Costs -> EBITDA -> Financing Cost -> Net Profit.
(When Sales Tax Treatment is set to "Yes - deduct from profit", a Sales Tax (treated as cost) line appears just before Net Profit.)
Why it matters: Gross profit does not show the full picture. Net profit also absorbs software subscriptions, overhead, salaries, equipment amortisation, and every other business expense.
Example:
- Net revenue: $100,000
- COGS: $40,000
- Ad spend: $20,000
- Operating expenses: $25,000
- Gross profit: $60,000 (60% margin)
- Contribution margin: $40,000 (40% margin)
- Net profit: $15,000 (15% margin)
True profitability is 15%, not 60%.
Profit Margin Benchmarks
| Margin Level | Range |
|---|---|
| Excellent | 40%+ |
| Good | 20-40% |
| Acceptable | 10-20% |
| Low | Below 10% (evaluate pricing and costs) |
Varies by industry:
- Electronics: 10-20%
- Fashion: 40-60%
- Home goods: 25-40%
- Beauty: 60-80%
ROAS Tracking
Return on Ad Spend is calculated automatically:
ROAS = Gross Revenue / Ad SpendMerchantFlow also reports POAS (Profit on Ad Spend), which is the more honest signal for scaling because it accounts for every cost, not just revenue:
POAS = Net Profit / Ad SpendBenchmarks:
- 3x: Minimum for most businesses
- 4-5x: Good
- 6x+: Excellent
Troubleshooting P&L Issues
COGS not showing
- Verify COGS entries exist for your products
- Confirm the time range includes orders
- Check that products were active during the period
Profit seems wrong
- Verify COGS values are correct
- Confirm ad spend is syncing properly
- Check for missing cost categories
- Verify currency settings
Ad spend not tracking
- Confirm Google Ads or Meta Ads integration is connected
- Verify a recent sync completed
- Check that campaigns were active during the period
Frequently Asked Questions
How does MerchantFlow calculate profit margins?
MerchantFlow calculates gross margin as (Net Revenue - COGS) / Net Revenue. Ad spend is deducted at the contribution margin line together with fulfillment and payment fees, and net margin deducts all remaining costs including OPEX and amortised CAPEX. Margins are displayed as percentages at the product, category, and business level.
Do I need to enter COGS for every product?
No. Focus on your highest-revenue products first. MerchantFlow's coverage metrics help you prioritize. Aim for at least 80% revenue coverage for meaningful profit calculations.
Can I track ad spend from platforms other than Google and Meta?
Yes. MerchantFlow also syncs ad spend from Snapchat Ads and TikTok Ads, plus Pinterest and Klaviyo where those integrations are enabled for your workspace. For any other channel, record the spend as a marketing operating expense in Profit > Expenses so it still lands in net profit.
How often should I update COGS?
Review and update COGS quarterly or whenever supplier pricing changes, you switch suppliers, or import duties change.
Related Articles
- COGS Management
- Importing COGS
- COGS Accuracy
- Price Breaks
- Fulfillment Costs
- Country Fulfillment Rates
- Ad Spend Tracking
- Profit Margins
- Margin by Region
- Order Tracking
- Burn Rate & Runway
- Expense Tracking
- Bank Balance
- KPI Metrics
- Unit Economics
Last updated: August 29, 2026
Last updated on
Sync Troubleshooting - Fix Stale Data
Fix common MerchantFlow sync issues including stale data, failed jobs, expired tokens, and partial provider updates with this step-by-step checklist.
Daily P&L Breakdown - Day-by-Day Profit Table
See every P&L line item day by day in MerchantFlow. Filter by revenue, margin, and COGS coverage, expand any day for detail, and export the table for accounting or investor reporting.