Run the sales report

Refund-netted revenue, discount + payment breakdown, and a Sales & Returns ledger that reconciles to Net.

3 min readUpdated 10 September 2026

The sales report is the analytical view of everything you sold in a period — distinct from Sales History (which is operational: view, void, refund). Every number here is net of refunds (sale-attributed) — every refund, full or partial, subtracts from the sale it came from, so what you see is what actually landed.

KPI waterfall, filters, and the reconciling ledger.
Demo coming soon
KPI waterfall, filters, and the reconciling ledger.

Open the report

Sidebar: Reports → Sales. The page has:

  1. KPI strip — the refund waterfall.
  2. Filters — date, cashier, payment method.
  3. Payment breakdown — revenue by method.
  4. Sales & Returns ledger — every transaction, paginated.
  5. Export — CSV, Excel, PDF.

The KPI strip

The strip shows the refund waterfall left to right, ending in the hero Net revenue number:

KPIWhat it is
Gross revenueΣ subtotal, before any discount or refund, over non-voided sales.
− DiscountsTotal discounts given in the period.
− RefundsTotal value refunded in the period.
= Net revenueThe hero. What actually landed in the till.

Under those:

KPIWhat it is
Net profit / Margin %Kept revenue minus kept cost. Margin as a percent. Single number — no waterfall.
Sales / RefundsCount of sales and count of refund events.
UnitsSold, refunded, net.
Average sale valueΣ charged ÷ number of sales. "How big is a typical sale?" — not netted (a later refund doesn't shrink the original transaction).

Filter the report

  • Date — Today (default), 7d, 30d, or a custom range.
  • Cashier — pick a specific staff member. Management only — dispensers don't see this filter.
  • Payment method — cash, transfer, card, or other.

Filters compose. Pick a date range AND a cashier AND a payment method for a very specific view.

Sales & Returns ledger

Every sale and every refund from the period, interleaved in time order. Sales appear as positive amounts, refunds as −₦X with a Refund badge and a link back like REF-000012 ← SAL-000042.

The signed amounts add up to Net revenue — you can literally sum the ledger column and get the same number as the hero KPI. That's the reconciliation guarantee across every RxShelf report.

Sortable by date and amount. Paginated (~20 rows per page).

Payment breakdown

Revenue by payment method, net of refunds. When a refund was issued in a different method than the original sale, both the original method and the refunded method are shown so the split is honest.

Who can access it

  • Owner — everything.
  • Manager — everything.
  • Accountant — everything (no cost, but reads-only).
  • Dispenser — sees the Sales Report scoped to their own sales only. The cashier filter is hidden; cost and profit columns stay blank.

Export

Export the full report to:

  • CSV — for Excel or Google Sheets.
  • Excel (.xlsx) — formatted with headers.
  • PDF — branded with your pharmacy header, printable.

The ledger export mirrors the on-screen view: signed amounts sum to Net.

Next steps