Most businesses know what their bank balance is. Fewer know which products lost them money last month, which customers stopped buying in the last quarter, or which lines have been sitting in the warehouse since spring. The reporting module is built to put those answers in front of you in seconds — not in a spreadsheet you have to assemble after the fact.
Reports run on the same live database as the rest of the system. There's no overnight ETL, no separate analytics warehouse to keep in sync, no caveat that "this is yesterday's number." The gross profit shown on screen reflects the orders that closed five minutes ago.
Gross profit, drilled to the SKU
The gross profit report is the workhorse. Top level shows margin by month — revenue, cost of goods, profit, and percentage — across whatever date range you set. Drill into any month and it breaks down by category, by sub-category, by individual product. Open a product and you see every order it appeared in, with the customer, the date, the sell price, the cost price at the time, and the line margin.
Compare-mode lets you put two periods side by side — this quarter vs last quarter, this year vs last year, this month vs the same month last year — with the percentage change highlighted. The same view exists at the product level, so you can see which SKUs are growing, which are declining, and which have collapsed. Export to CSV or PDF in one click; both formats preserve the drill-down hierarchy.
Customers and their behaviour
Top-customers reports rank your accounts by revenue, by margin, by order count, by average order value. Each row is a link into the customer's full history. Lapsed-customer reports flag accounts that used to buy and have stopped — with the size of the gap and the value of what they used to spend, so the sales team knows where the recovery effort is worth making.
Per-customer profitability is calculated automatically. A customer with high revenue but low margin is visible immediately, separately from one whose total spend is smaller but who pays full retail. The cost line on every order is a real number, not an estimate — it's the actual cost-at-time-of-sale, captured per line.
Stock that earns its keep
The stock report lists every SKU with its current physical, allocated, and available figures, plus its cost value, age in stock, and last-movement date. Sort by age to see what's been sitting; sort by cost value to see where the cash is tied up; sort by movement to see what's still active. Dead-stock reports run the same data with a velocity threshold — anything below X units a month gets flagged.
Reorder reports work the other way: SKUs below their reorder threshold, with the recommended order quantity already calculated. Click through and you draft a purchase order against the preferred supplier in two clicks.
An AI in the corner of the room
The AI Sales Director watches the same data and writes you short, plain-English summaries — what shifted this week, which products are accelerating, which customers are unusually quiet, what categories underperformed compared to seasonal expectation. It runs as a background job and posts its findings to a feed you can read in 60 seconds with your morning coffee. The point is to surface things you'd otherwise only catch by spending an hour on the dashboards.
You can ask it specific questions too — "what changed for customer X over the last three months?", "which products had margin compression?" — and it pulls the relevant slices from the data and answers in context. Underneath, it's reading the same SQL views the human dashboards read, so its answers are consistent with the figures everyone else sees.
Schedule it, export it, share it
Any report can be scheduled — daily, weekly, monthly — to download to your file system or email out as a PDF. The cron-downloaded reports archive means you have a permanent record of how the business looked on the first of every month, without having to remember to run anything. Excel users get a download that drops cleanly into their existing models; everyone else gets a PDF.