Product Profit
Every product line carries two numbers: what the patient paid, and what that stock cost you at the moment it left the shelf. This report puts them side by side.
Find it at Reports → Financial → Product sales — the same place it always was. With Inventory on, it is the costed version.
Where to Find It
Click an address to open that screen on your own clinic. The first click asks which clinic you are, then remembers it. Addresses holding a {id} need a specific record, so they are shown but not linked.
| Screen | Address |
|---|---|
| Product profit report | /product-sales-report |
| Export it | /product-sales-report/export |
| One product's profit | /inventory/items/{id}/profit |
Where the Cost Comes From
Not from a cost price somebody typed. Every time stock leaves the shelf, the system stamps what it was worth at that moment — the weighted average built from your purchase receipts — and the profit on that sale is fixed there and then.
That has one consequence worth stating plainly:
TIP
A delivery next month never changes last month's profit. Buy the same cream dearer in March and March's sales cost more; February reads exactly what it read before.
Reading the Columns
| Column | What it is |
|---|---|
| Sales | What was sold in the period, and its value |
| Returns | What came back: a line deleted or reduced, an invoice cancelled, a delivery returned |
| Net sales | Sales minus returns |
| Cost of goods sold | What that net quantity cost you |
| Profit | Net sales − cost |
| Margin (to sales) | Profit ÷ net sales |
| Markup (to cost) | Profit ÷ cost |
| Share of profit | What this product contributed to the period's whole profit |
A refund lands in the month it happened. The month of the sale is never rewritten, so a report you printed in February still reads the same in April.
Why some cells show —
A dash means there is nothing to divide by, and it is deliberate:
- A product with no cost has no markup to report.
- A product returned in full has no net sales, so it has no margin.
The dash is never a zero and never 100%. A report that printed 0% there would be telling you the item sold at cost, which is a different claim.
The uncosted mark
An item that was never received — opened by an adjustment, or sold before its first delivery — has no cost the system can honestly state. Those lines count as zero cost, the row is marked, and the header says how many such lines the report holds.
Nothing is estimated from the sell price or borrowed from a later delivery. Record a purchase receipt for that item and its next sales will be costed properly.
Consumption Is Not a Sale
Stock your clinic uses on its own work — the mask used during a facial, the gel on an ultrasound head — is a cost with no revenue. It appears in its own column and is never folded into profit or margin.
So a product only ever consumed shows a consumption cost and no margin at all, rather than a 100% loss.
Products Sold Below Cost
Any product whose profit is negative is listed on its own, under Products sold below cost. That is usually a shelf price that stood still while the supplier's price rose — which nothing else in the system would have told you.
One Product's Own Page
Click a row. The product's page shows the same five figures for the period, plus two numbers about tomorrow: today's shelf price and today's average cost, with the margin they imply. If the price is under the cost, the page says so at the top.
Below that, every visit and invoice the product was sold on, newest first. Click any of them to open the document.
The Profit Tab on a Visit and an Invoice
A visit and an invoice each carry a profit tab, showing per line:
the product, the quantity, the selling price, the per-unit average cost, the line's cost, its profit and its margin. Lines used on the patient are listed below, with a cost and no price.
The totals row adds the quantities, the revenue, the cost and the profit — and leaves the average-cost cell empty on purpose. Adding one per-unit average to another gives a number that means nothing.
The two tabs always agree: an invoice written from a visit is a mirror of it, so the same sale is read once.
Reconciling With the Books
Under the filters, the report compares its own cost of goods against what the journal posted to cost of goods sold for the same sales. They come from the same stamped figures, so normally they agree exactly.
When they do not, the report names the difference — usually uncosted lines, or a refund of a sale made in an earlier month — rather than leaving you to find it.
The Date It Uses
A sale falls in a period by the date of the document that sold it — the visit or the invoice — never by the date the stock was received. The report says so on the page, so you never compare it against a differently dated report by accident.
Who Can See It
| Permission | Lets somebody |
|---|---|
| See the product profit report | Open this report and any product's profit page |
| See costs | See cost and profit figures anywhere, including the profit tabs |
A user without them does not see a hidden tab with the numbers greyed out — the figures are never sent to their browser at all.
Limits
- The report covers stocked products only. A service, and a catalogue item you never marked stocked, have no cost to report and do not appear.
- It needs the connection. Offline it is unavailable, and a visit's profit tab says so rather than showing a figure from a cached cost.
- A product sold on a desk invoice with no visit has no return path yet — the system has no credit note — so such a sale can be cancelled but not partly refunded.
- Sales recorded before Inventory was switched on can be filled in with a one-off backfill, but a price edited before then cannot be recovered: the figure is read from the line as it stands.
See Also
- Purchasing — where the cost figures come from
- Stocked items — the sell price, the unit and the category
- Stock movements — every movement behind these numbers
- Stocktake and waste — what you lost rather than sold