MerchantFlowMerchantFlow Docs
Profit & Loss

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.

Daily P&L Breakdown

The daily breakdown turns your P&L into one row per day, with every line item from gross revenue down to net profit spelled out. Where the main P&L page answers "how did this period do", the daily breakdown answers "which days did it, and why" -- the view you want when a month looks fine in aggregate but hides a run of unprofitable days.

Open it from Profit → Daily Breakdown (/dashboard/pnl/daily-breakdown).

What each row shows

Every row is a single day in your store's timezone, in your reporting currency.

The on-screen table is deliberately narrow -- Date, Revenue, COGS, Gross Profit, Ad Spend, Fees, Tax, Funding, Net Profit, Net %, where Revenue is net revenue. The remaining lines below live in the expanded row, and most of them in the CSV export as well.

Revenue

ColumnMeaning
Gross revenueOrder subtotal + shipping charged + sales tax (tax-exclusive stores only -- tax-inclusive stores already have it inside the subtotal). Discounts are already reflected in the subtotal
Net revenueGross revenue minus refunds. Discounts are not subtracted again
Shipping revenueShipping charged to customers
Refund amountRefunds recorded for the day
Discount amountDiscounts applied

Costs

ColumnMeaning
COGSCost of goods sold for units shipped
Ad spendCombined spend across connected ad platforms
Payment feesProcessing fees
Tax amountPer your tax rules
Shipping costA separate merchant-side shipping line, reserved for future use -- it currently reports 0. Your real delivery cost lands on Fulfillment cost below
Fulfillment costPer your fulfillment cost method
Variable costsThe combined variable cost block
OpEx expensesOperating expenses hitting that day
Amortised expensesExpenses spread across a period rather than charged to one day
Funding repaymentRepayments on revenue-based funding

Profit

ColumnMeaning
Gross profit and gross profit marginNet revenue minus COGS
Contribution margin and contribution margin %Gross profit minus shipping cost, fulfillment, payment fees and ad spend
Net profit and net profit marginContribution margin minus OpEx, amortised CapEx, variable costs and funding interest. Sales tax is deducted here only when Settings → Sales Tax Treatment is set to Yes - deduct from profit; the default, No - pass-through, leaves tax out of profit entirely

Data quality

COGS coverage is the share of the day's units that had a cost on file. A day at 100% coverage has trustworthy margins; a day at 60% is overstating profit because 40% of what shipped was costed at zero. Treat low-coverage days as unreliable rather than as good days -- see COGS accuracy for how to close the gap.

Expanding a day

Select any row to expand it. The detail view breaks that day's figures out into four blocks -- Revenue Breakdown, Cost of Goods, Operating Expenses, and Bottom Line -- which is the fastest way to find the single cost line responsible for an outlier. The optional lines are hidden when they are zero for that day rather than shown as 0: Refunds, Discounts, Shipping Revenue, OPEX, Shipping Cost, Fulfillment, Variable Costs, Amortised CapEx and Funding Repayment. The headline lines -- gross and net revenue, COGS and coverage, gross profit and margin, ad spend, payment fees, tax, contribution margin and net profit -- always render, zero or not.

Filtering

The filter button sits next to Export Ledger and opens a Filter Daily Breakdown dialog. Available filters:

  • Minimum Revenue and Maximum Revenue (compared against net revenue)
  • Minimum Margin and Maximum Margin (compared against net profit margin)
  • Show only profitable days (positive net profit)
  • Show only unprofitable days (negative net profit)
  • Minimum COGS Coverage (%)

Two filters worth knowing by name:

  • Show only unprofitable days surfaces exactly the days that dragged the period down.
  • Minimum COGS Coverage filters out days whose costs are incomplete, so you can judge margin on the days where margin is actually knowable.

The two profitability checkboxes are mutually exclusive -- ticking one clears the other. Reset All clears every filter at once.

Time range

The daily breakdown follows the global time range selector at the top of the dashboard. Changing the range changes which days appear.

On plans with a history limit, requests reaching further back than your plan allows are clamped to the earliest date available to you rather than failing.

Exporting

Export Ledger downloads a CSV named pnl-daily-breakdown-<first date>-to-<last date>.csv.

Two things to know before you rely on it:

  • Filters do not apply to the export. It always writes every day in the selected time range, not just the rows you filtered down to. Narrow the time range instead if you want a subset.
  • It is a wider table than the screen but not the full row. The CSV carries gross revenue, refunds, discounts, shipping revenue, net revenue, COGS, gross profit and margin, ad spend, payment fees, tax, funding repayment, contribution margin and %, net profit and %, COGS coverage %, and currency. Shipping cost, fulfillment cost, variable costs, OpEx and amortised expenses are in the expanded row only.

Common questions

Why does a day show revenue but no ad spend? Ad platform data syncs on its own schedule and can land later than order data. Recent days often fill in over the following hours -- check sync status if a day stays empty.

Why does one day look catastrophic? The usual causes are a refund on a large order landing on that day, an annual expense charged to a single day instead of being amortised, or a funding repayment. Expand the row to see which.

Do the daily rows sum to the P&L total for the period? Yes, for the same time range and reporting currency. If they do not, the range selectors differ or a sync landed between the two loads.

Last updated on

On this page