Revenue to EBITDA. One table. Years deep.
Every month walks from gross revenue through COGS, variable costs and ad spend to contribution margin and EBITDA, next to the same month last year, with the current month projected.
Your first 100 days are free.

Shopify, Meta and Google report revenue and ROAS. Your books report profit, weeks after the month closes.
Nothing in between tells you whether the month you’re in is making money, and every report uses a different definition of the same word.

The whole waterfall, month by month
Seven sections walk from revenue to profit. Gross Revenue → Net Revenue → Gross Profit → Contribution Margin → EBITDA reads down one column; the year reads across. One table replaces the revenue report, the ad report, and the spreadsheet that tried to join them.

Your assumptions, your call
Use the store’s product-level COGS or set a flat percentage. Set merchant fee and postage rates. Enter fixed costs and agency costs as monthly amounts with start and end months. Every change flows through the whole table on the next refresh, and shows as Pending sync until it does.

Read a month that isn’t over
Turn on Pacing to project the current month linearly from what has landed so far. Turn on Prorate Overhead so a full month’s fixed costs don’t hit on day one. Two separate mechanisms, so you always know which one is doing what.

Compare, then explain
YoY reveals last year beside every month. Changes adds the delta and percent. Details opens every sub-line, from one-time vs. subscription revenue to per-channel variable costs. The summary nests four rings from Gross Revenue to Contribution Margin, by month or by year.

The spend the connectors miss
Click any month’s Other Ad Spend cell, enter the amount and a note. It cascades immediately through Total Ad Spend, Variable Costs, Contribution Margin and EBITDA, badged Pending sync until the next run confirms it. Affiliate fees, influencer payments and offline spend belong in the margin, not in a footnote.

Refunds, in proportion
Trailing-12-month refunded revenue and refund rate, a monthly table back 48 months, and every individual refund for a month with a link straight to the order in Shopify or BigCommerce. Refunds are already netted in the scorecard; this is where you see which ones.
The fine print we’re proud of
Small decisions about how numbers are computed and shown. Most tools skip them. We think they’re the product.
Totals are weighted, not summed.
AOV, CAC, MER, aMER, ROAS, conversion rate and EBITDA margin compute a true whole-year figure. We never add up twelve monthly averages.
Pacing never extrapolates a fixed cost.
A monthly fixed line shows at full value, and ratios are never projected. Pacing a rate isn’t meaningful, so we don’t.
Prior-year figures are never prorated.
Proration touches only the current month. Last year stays exactly what it was.
Refund percentages are volume-weighted.
All refunds over all revenue, not an average of monthly rates. A big-revenue month can’t hide a worse refund rate.
Green means the rate went down.
On the refund table, colour tracks whether the change helped you, not which way the number moved.
Every row explains itself.
An ⓘ on every line opens the plain-language calculation. The toggles change what you see, never the data.
Related metrics
What this page computes, in plain words
- Gross Revenue
- Total sales revenue, Ecommerce plus Amazon.
- Net Revenue
- Gross Revenue + Shipping − Discounts − Refunds
- Gross Profit
- Net Revenue − Total COGS
- Contribution Margin
- The primary metric. Also called Marketing Profit.Gross Profit − Variable Costs
- EBITDA
- Net Revenue − COGS − Variable Costs − Overhead
Configured and validated before you rely on it
Every account is set up and checked by operators who manage $100M+ in ad spend, so the first number you see is one you can act on. When you want a team acting on those numbers with you, that’s Human.
See your own P&L this way.
Two years of history on day one. Configured and checked before you rely on it. Your first 100 days are free.
Your first 100 days are free.