Docs / Operations
Reports
Revenue and margin by client, item and period; backlog aging, cycle time, on-time rate; inventory valuation and stock movements.
Reports turns your orders into the numbers you run the business on: what you earned and kept per client, item and period, how much work is waiting and how late it is, how long fulfilment takes, how often you ship by the date you promised, how much tax you have collected, and what the stock on your shelves is worth and how it moved. Open it from the sidebar.
Every report is one screen: pick the report along the top, set the period, and read the summary tiles and the table beneath. Export CSV downloads the rows you are looking at, and the same numbers are available through the API for spreadsheets and BI tools.
Choosing a period
The period picker offers the same presets as the dashboard — today, this week, last 7 / 30 days, this month, quarter, year, custom range — and every report except backlog aging follows it. The header under the report name says what the period selects:
- The three revenue & margin reports cover the orders issued in the period.
- Fulfilment cycle time and on-time delivery cover the orders that became fully shipped in the period, whatever their status since.
- Tax collected covers the invoices issued in the period.
- Stock movements covers the movements that occurred in the period.
- Order backlog aging and Inventory valuation are snapshots of right now; the period does not apply.
Revenue & margin
Three views of the same figures — by client, by item and by period — so you can see who and what makes you money, and how it trends.
Only booked orders count: anything Confirmed or later. Drafts are not revenue yet and cancelled orders never were, so both are left out. Net revenue is the order before tax: the subtotal less the order-level discount, plus the shipping charged.
Cost and gross margin follow the order margin rules described in Orders & shipping: each line's cost snapshot, the freight you recorded on its shipments, and the processor fees on anything paid online. An order with no cost data on any line is counted in revenue but cannot be measured, so the margin tiles say how many orders (or lines) the margin rests on. Add unit costs to your catalog items and those orders start counting.
Credit notes do not reduce these figures: the revenue reports are about what was sold, and what was given back afterwards has its own report below. A written-off invoice likewise stays in revenue — the sale happened; what was lost is the money, which is an expense.
Every revenue view also carries a payment fees column — what the payment processor took on the invoices raised against those orders — and a net after fees column that takes it off. Fees are a cash fact rather than an estimate, so they are reported even for orders whose margin can't be measured. Take nothing online and both columns read zero. See Getting paid online.
- By client — one row per client, largest revenue first: orders, net revenue, payment fees, net after fees, cost, gross margin, margin %, and how many orders had cost data.
- By item — one row per catalog item, largest first, with the quantity sold. Lines written without a catalog item are grouped in one No catalog item row. Line revenue here is after the line's own discount but before the order-level discount, so an order with a header discount contributes a little more here than in the other two views. Payment fees, by contrast, are shared out: an order's fees are split across its lines by revenue, so the fee columns do add up across the rows.
- By period — one row per day, week or month across the period, with a chart above the table. Auto picks days for up to a month, weeks for up to about two, months beyond that; the Day / Week / Month buttons override it. Empty periods stay in the table as zeros so nothing hides a gap.
Quote conversion
What happens to the quotes you send, and which of the options they offered your clients actually take.
The summary counts the period's quotes by outcome — accepted, declined, expired, still open — with a win rate over the answered ones, what was quoted, what was accepted, and the average days from issue to an answer. The rows list every quote with its outcome, its total, what it left on the table and the options the client picked.
Underneath, the option mix: for each option group on your won quotes, how many of them offered that choice, how often each alternative was the one taken, and what it was worth. A joinery that finds nine in ten clients pick the lacquer has learned to quote the lacquer first; one that finds nobody ever takes the soft-close hinges has learned to stop offering them, or to price them differently. The mix counts won quotes only — what somebody chose on a project they then walked away from says nothing about what sells.
Order backlog aging
Everything committed and not yet fully shipped — orders that are Confirmed or Partially shipped — bucketed by how far past (or ahead of) their promised date they are today:
| Bucket | Meaning |
|---|---|
| Overdue 30+ days | Promised more than 30 days ago |
| Overdue 8–30 days | Promised 8 to 30 days ago |
| Overdue 1–7 days | Promised in the last week |
| Due within 7 days | Promised today or within the next six days |
| Due in 8–30 days | Promised a week to a month out |
| Due in 30+ days | Promised further out |
| No promised date | No commitment recorded — set one on the order |
Each bucket shows its order count, the orders' grand totals and their open value — the net value of the quantity not yet shipped or closed short, so a half-shipped order counts half. Below the buckets, the orders themselves are listed most overdue first with links to the order and the client. Set or change the promised date on the order form; see Orders & shipping.
Fulfilment cycle time
How long orders take from confirmed to fully shipped, over the orders that became fully shipped in the period. The tiles give the average, median, fastest and slowest; the table lists each order with both timestamps and the days between them.
OrderDen records the two milestones for you:
- Confirmed is stamped when you confirm an order (or create it, or convert a quote, straight into Confirmed). Sending an order back to Draft clears it, and confirming again starts the clock afresh.
- Fully shipped is stamped by the shipment that ships the last open quantity — using the shipment's ship date when you entered one — or by closing the remainder short. Voiding a shipment that reopens a line clears it again.
Orders that shipped without a confirmation time on record (confirmed before this was tracked) are reported as not measured rather than counted as zero days.
On-time delivery
The share of orders, among those fully shipped in the period with a promised date, that shipped on or before that date. Shipping on the promised day counts as on time; the table shows each order as on time (with how many days early) or late (by how many days), and the tiles give the rate, the counts and the average lateness of the late ones.
Two figures sit alongside the rate without being in it: orders that shipped in the period with no promised date (nothing to measure against), and orders that are still open past their promised date today — those are late in the making, and the backlog aging report lists them.
Tax collected
The report a sales-tax return is built from: what you charged, per rate and per period, across the invoices you have issued. Drafts have been charged to nobody and voided invoices have been withdrawn, so neither counts.
The tiles give the tax collected, the taxable sales it was charged on (net of every discount), the non-taxable sales alongside it — exempt clients and lines marked not taxable — and the net sales the two add up to, so the figures reconcile against your revenue. Below them, one table rolls the period up per rate, and a second breaks it down per period and rate; the Day / Week / Month buttons set the period grain as they do on the revenue report.
Every figure comes from the rate names and amounts snapshotted onto the invoice lines, not from your current settings, so renaming or repricing a rate never moves a filing you have already made. See Tax for how rates, groups and exemptions work.
Income by payment method
How the money actually arrived: cash, card, bank transfer. One row per method, with what was received, what was refunded, the net, the processor fees and each method's share of the period's income.
This reads the payments rather than the documents, so an invoice settled in two instalments by two different means shows up as both — including how much of the month came in as cash that still has to be banked.
Credits and refunds
What was given back, and what for. One row per reason — return, damaged, pricing error, goodwill, cancellation, marketplace refund — with what was applied to invoices, what was refunded, and what is still sitting on client accounts, plus each reason's share.
The reasons are the report. "We refunded £900 this quarter" is a number; "£700 of it was damaged and it was all the same product" is a decision to change the packaging.
Bad debt written off sits alongside rather than inside it. A write-off is not a return: mixing the two would make returns look like a collections problem, or the other way round. The credit rate is the period's credit as a share of what it sold. See Credit notes.
Cash flow forecast
What is expected in, week by week, for the next eight weeks — and, like AR ageing, a snapshot rather than a period.
Two sources, kept apart on purpose. Invoiced is money somebody has already been asked for: a real debt with a real due date. Agreed is an instalment on a quote or an order that has not been invoiced yet — softer, because a milestone can slip, but the whole reason to keep a schedule is to know it is coming.
Anything already past due sits in the first week. It is expected now, and burying last month's overdue invoice behind you would make the forecast read better than the bank account. Money owed on an event rather than a date — an instalment due "on completion" — is reported as no date yet rather than dropped, because the point of a forecast is to notice what is missing from it.
See Deposits, instalments and final invoices.
Recurring revenue
What the running plans are worth a month, per client, with what each has already billed and when the next invoice falls — the number a business with retainers is actually run on. A snapshot rather than a period: the question is "what is coming in from here", which a date range has nothing to say about.
Frequencies are annualised before they are compared. A weekly plan is 52 invoices a year, not 48, so a book with weekly, monthly and quarterly plans in it adds up honestly. The summary carries the annual run rate (the monthly figure times twelve), what the plans have billed to date, how many are due within the week and how many take the money off a card by themselves.
Failed automatic charges
The queue of money that should have arrived by itself and did not: every invoice whose card on file was declined, with what the processor said, how many attempts it has had and when the next one falls.
Split by whether another attempt is coming, because only one of those two lists is somebody's project today — the ones the retry ladder has given up on need chasing by hand.
AR ageing
Who owes you what, and for how long. A snapshot, not a period: "what am I owed right now" is not a question about a date range.
One row per client, five columns — current, 1–30, 31–60, 61–90 and 90+ days past due — and underneath, every unsettled invoice behind those totals, latest first, with a badge on any whose reminders are paused. The bar of tiles across the top is each bucket as a share of what is owed, which is the number that turns "we are owed £18,400" into "£6,100 of it has been owed for three months".
The balance is the real one — total less payments, credit applied and anything written off — so a part-paid invoice ages only what is left of it. Drafts and voids are not debts, and neither is a written-off invoice: that was given up on, and it belongs in Credits and refunds.
The Overdue by age dashboard widget is the top of this report, and the invoice list's Age column uses the same buckets. See Reminders, follow-ups and status emails.
Inventory valuation
What the stock on hand is worth — as at any date, not just today. Pick 31 December and you get the figure the cost-of-goods statement uses for closing inventory.
Each row is an item, or a variant where that is where the stock lives, with the quantity on hand, what it averaged out at, what that comes to, and how much of it is still curing. Underneath, totals by what things are: materials and supplies on one line, finished goods on another.
It is a sum over the movement ledger, not a recalculation — every movement records what it was worth at the time — so a valuation on a past date gives the answer it would have given that day.
Stock movements
The ledger over the period — opening balances, adjustments, shipments and voids — for every tracked item or one item picked at the top, newest first, with the reason, the signed quantity, the unit cost where known and the note. The tiles total the units that came in, went out and the net. Each item's own Movements tab links here for its full history.
Stock by location
A snapshot rather than a period: what is where, right now. A summary line per location — units, value and how many lines it holds — then the detail, item by item and place by place, valued at each item's weighted average cost.
The rows add up to the inventory valuation exactly: this is that number split by place, not recounted.
Stocktake variance
What the physical counts found, read two ways. Line by line: every count that came out different from the books, worst by value first, with the reason somebody typed at the shelf. Per item: the same differences rolled up across the period, which is the answer to the question that actually matters — which things go missing.
Shrinkage is almost never spread evenly. It is the small expensive thing near the door, and a table sorted by units would bury it under a hundred missing washers. This one is sorted by what it cost you.
The range selects counts by when they posted; a count that has not posted has not established anything yet.
Production summary
What you made in the period and what it cost: one row per item, with the runs that made it, the units they produced, and the materials, labour and overhead they consumed. The figures come from the costs frozen on each batch when it completed — never recomputed — so this report and the batch label always agree, and a change in a material's price next month does not rewrite last month's costs. Filter to one item with the picker. See Production.
Materials usage
What the workshop got through: quantity and cost consumed per material over the period, straight from the stock ledger, with waste on its own line and its share of the total. Waste is separated deliberately — it left the shelf, but it never left in a product, so it is not a cost of goods sold. Two different questions, kept apart.
Expenses by category
Every expense and purchase in the period added up under each spend category: how many of each, the tax on them, the net spend, and how much is still waiting to be charged back to a client. Click a category to see the records behind it. See Expenses.
Profit and loss
Revenue, less cost of sales, less operating expenses — and what is left. Cost of sales is what actually left the shelf (from the stock ledger), plus material bought and used without ever being stock, plus what the card processor took. Switch between an accrual basis (a sale counts when it was invoiced) and a cash basis (money when it moved) at the top of the report. See Expenses.
Project profitability
What each project was quoted at, what it actually cost in material, labour and expenses, and the margin left — with the hours nobody has billed yet. Thin margins are flagged, because a project at 4% is the one thing that has to be noticed before it finishes. The period selects projects by when they ended, plus those still running that started in it.
Cost of goods sold, and the expense summary
Two more reports live one click away, under their own pages, because they take a financial year rather than a rolling range:
- Cost of goods sold — the seven-line statement a tax return asks for, with every figure drillable and a reconciliation to what actually shipped.
- Expense summary for tax — everything that is not cost of goods, grouped by the tax line it belongs on.
Both are covered in Tax time.
Accounting export
Reports → Accounting export is not a report but a handover: a period's books as the files QuickBooks and Xero import — sales, credits, payments, bills, expenses, fees, and a journal whose debits equal its credits every day. Map your chart of accounts once, then it is a period and a download. See handing the numbers to your accountant.
Exporting and the API
Export CSV downloads the current report's rows with the period applied,
formula-safe and ready for a spreadsheet. Through the API, each report lives
under /api/v1/reports/… with the same range, from and to
parameters as the dashboard widgets, and ?format=csv with the list
exports' columns= picker. See the API reference.
Everything on this page is in the free tier — one person, the whole product, no card.
Start free