Main Dashboard
Revenue Burn-Up Chart (Current Year)
Revenue Burn-Up Chart — Explanation
What is this chart?
It answers one question: are we on track to hit our annual revenue target? Each coloured area is a different bucket of money for the year. They stack on top of each other and grow month by month. The dashed red line is where we should be. If the stack reaches the red line by December, we hit the target.
Every band is on the same basis as the target: recognised revenue as finance reports it — net of sales tax, credit memos and month-end deferrals. Invoice and order totals in NetSuite include sales tax, so they run about 7–11% higher than these numbers; that is expected, not a discrepancy.
What each colour means
Actualized (dark blue) — revenue we have actually earned so far this year.
- What it is: recognised revenue — the same number finance reports on the income statement. Goods have shipped and been invoiced.
- Where it comes from: the NetSuite “Actualized Revenue” report (RESTlet script 2193), one call per month. It sums every income-account line across invoices, journal entries and credit memos, so it already nets out sales tax, credit memos and month-end deferral journals. It matches finance’s Custom P&L row Sales Total − Income to the dollar.
- Not invoice totals. Invoice totals include sales tax and can’t see credit memos or journals; that figure is shown as Invoiced on the Invoice Dashboard and is deliberately not used here.
- The current month is month-to-date. Actualized is held flat after this month so you can compare projection against reality.
Deferred (light blue) — money we have invoiced but not yet earned.
- What it is: invoices raised for goods that haven’t shipped yet. Finance parks this in deferred revenue and recognises it when the goods ship.
- Where it comes from: the NetSuite “Deferred Revenue” report (RESTlet 2193). It is a balance, not a monthly flow, so it is placed in the current month and carried forward.
- Why it’s here: the Booked band below removes anything already invoiced, so without this band invoiced-but-unshipped money would vanish from the chart.
Booked (orange) — sales orders we have won that still have to be invoiced, scheduled to ship this year.
- What it is: the not-yet-billed part of every open sales order, net of sales tax. The product is in production or in the shipping queue.
- Where it comes from: a live SuiteQL query over sales-order lines (
transactionjoined totransactionline). - How it’s computed:
- Sales orders whose status is not Cancelled, Billed or Closed, with an effective ship date (
shipdate, falling back to the internal ship-date fieldcustbody10) in the chart year. The order lands in the calendar month of that ship date. - Sales-tax lines are dropped, so the amount is net of tax like the target.
- For each line, only the unbilled share counts:
(quantity − quantity billed) ÷ quantity× line amount. Closed lines count for nothing. Shipping, discount and other non-quantity lines are scaled by the same unbilled fraction as the order’s item lines.
- Sales orders whose status is not Cancelled, Billed or Closed, with an effective ship date (
- No double counting: because the billed share is removed line by line, nothing that already sits in Actualized (or Deferred) is counted again here. Previously the whole order total was counted even when part of it had been invoiced.
Forecast (green) — money we expect from open quotes we haven’t yet won.
- What it is: a best-guess of how much of our open quote pipeline will close this year.
- How it’s computed:
- Take every open quote and multiply it by its predicted win rate (from our win/loss model). Add them up → that’s the “expected pipeline value”.
- Spread that total across the months based on how quickly quotes historically turn into orders:
- ~51% closes within 30 days
- ~16% closes in days 31–60
- ~9% closes in days 61–90
- ~9% closes in days 91–120
- The remainder is too far out to land on this year’s chart.
- Quote totals include sales tax, so the result is scaled down by the net-of-tax ratio observed on the open sales orders in the Booked band (typically about 0.90–0.93).
- Where the percentages come from:
quote_to_order_lead_times.json, computed from real historical quote-to-order conversion times.
Target (red dashed line) — where revenue should be each month.
- What it is: the cumulative monthly target from the approved annual budget. The budget is built on finance’s recognised-revenue P&L, i.e. the same basis as the Actualized band.
- Where it comes from:
config.cfg [REVENUE_BURNUP] monthly_targets— 12 monthly numbers, accumulated month-by-month.
Reading the chart
- Hover over any month to see the exact amounts in each bucket.
- The tooltip’s “Stacked total” sums the four coloured stacks (it ignores the target line).
- Actualized stops growing after the current month — we hold it flat so you can compare future projection vs. past reality.
- The “Gap to Dec target” number at the top of the card is the December target minus the December top of the stack (actualized + deferred + booked + forecast). If the stack already exceeds the target, it flips to green and shows how far ahead we are.
- Actualized for past months can still move slightly for a few days after month end, while finance posts its closing journals. That is the report catching up, not a data error.
How fresh is the data?
- The numbers come from a JSON cache (
cache/revenue_burnup.json) that refreshes every few hours via a background scheduler. - The “Last updated” label at the top of the chart shows the cache age.
- Click Refresh Data for a fresh pull. The button only appears when the cache is older than an hour (to avoid hammering NetSuite).