Profit & Loss Report
The Profit & Loss report answers one simple question: after all costs, how much money did your shop actually make?
Open it from Reports → Profit & Loss in the Dashboard. It uses the same date range filter as the other reports.
What this report shows
The report reads from top to bottom, like any profit and loss statement:
| Line | What it means |
|---|---|
| Money collected | Money from paid orders in the date range, after refunds |
| − Tax | Tax you charged customers. You pass it on to the tax office, so it isn't your income |
| − Delivery fees | Shipping paid by customers. It goes to the courier |
| − Payment fees | Service fees from the payment provider |
| = Net sales | What you earned from selling your own goods and services |
| − Cost of goods sold | The total cost price of the items you sold |
| = Gross profit | Net sales minus cost of goods sold, with the margin as a percentage |
| − Expenses | Running costs from the Expenses page, grouped by category. Includes Bad debt (write-offs) when receivables were written off |
| = Net profit | Your shop's bottom line for the period |
How to read each line
Money collected and net sales
Only paid orders count. Orders still waiting for payment, or canceled ones, are left out. If you issued a refund, the refunded money is already taken off.
Tax, delivery fees, and payment fees are removed because that money isn't the shop's. What's left is net sales.
Points that customers spend count as a discount, not as income. They don't add to money collected.
Cost of goods sold
Cost of goods sold uses the cost price recorded at the moment each item was sold. If you change a product's cost price today, the profit on earlier sales stays the same.
For refunded items:
- items put back in stock don't count as cost, because you still have them
- items refunded without going back to stock still count, because they're gone (for example, damaged)
Gross profit and margin
Gross profit = net sales − cost of goods sold.
Margin shows what percentage of net sales became gross profit. For example, net sales of Rp10,000,000 with gross profit of Rp3,000,000 is a 30% margin.
Expenses and net profit
Every expense dated inside the report's date range is taken off gross profit. Expenses are shown by category — Rent, Salaries, Utilities, and so on — so you can see where most of your money goes.
The result is net profit. If it's negative, the shop made a loss for that period.
Bad debt and receivables outstanding
If you use customer credit (on account), revenue is recognised on the day of the sale even though the money has not arrived. Receivables you write off (write-off) appear as the expense category Bad debt (write-offs) in the period they are written off, and reduce net profit. The report also shows receivables_outstanding: the money customers still owe right now. Revenue already includes it, cash does not. See How it affects reports.
Cost price coverage warning
If some sold items have no cost price, the report shows a warning. It tells you what percentage of the units sold have a cost price.
This means items without a cost price are treated as costing nothing, so the profit shown is higher than it really is.
To fix it:
- go to Products and fill in the Cost Price on products and variants where it's empty
- your next sales will be recorded with that cost price
Adding a cost price doesn't change sales that already happened, so coverage climbs gradually as new sales come in.
First-time setup
Do this once to make the report accurate:
- fill in the Cost Price for all active products, including any variant whose cost is different — see Products
- record this month's regular expenses (rent, salaries, utilities) in Expenses
- get into the habit of recording new expenses every week
- open this month's Profit & Loss report and check there's no cost price coverage warning
Who can see this report
The Profit & Loss report shows cost prices and expenses, so only the owner and admins can open it. Cashiers can't see it. See Staff roles.