Klu Docs

Retail audit guide

Check sales, cash, stock, transfers, supplier receiving, and variances.

Before you begin

Most audit work uses two places in Klu: Reports for downloadable Excel files, and live Dashboard pages for checking a specific sale, shift, stock item, or transfer.

Open Reports when you need an Excel file. Open Sales, Inventory, Cash Drawers, or Suppliers when you need to inspect the original record.

Audit map

What you are checkingStart hereDownload Excel when
Daily sales total and payment methodsSales ReportAlways for a daily sales audit.
One suspicious billSales -> BillsYou need to keep evidence or inspect line items/status.
Cash drawer and shift closingCash Drawers -> ShiftsCash does not match or you need Cash Movement evidence.
Products or categories soldSales -> Products / CategoriesGrouped totals are not enough, or you need each sold line.
Current stock quantityInventory ReportAlways for a stock count audit.
Why stock changedStock Flow ReportStock quantity does not make sense.
Supplier receivingSuppliers -> Purchase RequestsYou need to prove stock-in from a supplier purchase.
Branch transferTransfer Orders / Purchase OrdersYou need to prove stock moved between branches.

Before every audit

Before checking numbers, confirm:

  1. The correct branch is selected.
  2. The date range matches the business day, especially if the shop closes after midnight.
  3. The report status/filter is correct, for example Paid sales first, then Cancelled, Reverted, and Pending only when investigating.
  4. Use the same branch and date range across Sales, Cash Drawer, Inventory, and Stock Flow.

Daily sales audit

Purpose: confirm that sales recorded in the system match the money received.

Open Reports and create a Sales Report for the branch and date. Use sale status Paid first. If you are investigating mistakes, also check Cancelled, Reverted, and Pending. To inspect one invoice, open Sales -> Bills.

Check these columns:

ColumnWhat to check
Invoice No.Use it to identify the transaction. Check sequence gaps only if the business expects strict invoice numbering.
DateThe sale is inside the audit period.
BranchThe sale belongs to the branch being audited.
TotalAdd totals and compare with payment records.
Payment MethodCompare cash, card, bank transfer, PromptPay, Alipay, WeChat Pay, or crypto against external evidence.
CashierLook for repeated mistakes by the same person.
Rounding, Discounts, LoyaltyCheck large or unusual reductions.

Sale status is a filter when generating the Sales Report, not an output column. Use Sales -> Bills when you need to review Paid, Pending, Cancelled, or Reverted status on individual invoices.

If the total does not match:

  1. Separate the sales by payment method.
  2. Check cash sales against the shift/cash drawer.
  3. Check transfer/PromptPay/card sales against bank or terminal evidence.
  4. Open suspicious invoices from Sales and check line items.
  5. Write down the invoice number, cashier, amount, and reason.

Daily cash and shift audit

Purpose: confirm that the cash drawer was opened, used, and closed correctly.

Open Cash Drawers -> Shifts for the branch and date. Use the table for the shift list, then open the shift row for the detailed breakdown.

Check:

FieldWhat to check
StatusThe shift should be CLOSED after the day is finished.
Opened / closed timeThe shift belongs to the audit period.
Cashier and deviceConfirm the correct person and iPad/device.
Opening amountStarting cash recorded when the shift opened.
Closing amountCash left in the drawer after End Shift. If cash was removed at close, also check the Close Shift operation amount in the shift details.
Total sales and sale countCompare with Sales Report totals for the same period.
Shift detail modalReview cash flow, payment method breakdown, transactions, and post-close reverted sales if shown.

Cash formula:

Expected before close = Opening cash + Cash sales + Cash In - Cash Out

If money was removed during End Shift, compare expected before close with Closing amount + Close Shift operation amount. Also check whether the shift details show sales reverted after the shift was closed.

Generate a Cash Movement Report only if cash does not match, or if you need evidence for drawer movements. The report exports Date, Store, Event Type, Cash Amount, Employee, Reason, and Device. For investigation, manually select Cash In, Cash Out, Reset Cash, Open Shift, and Close Shift.

Reset Cash sets the drawer balance to zero. In the Cash Movement Report, review the event date, employee, device, and reason; do not treat Cash Amount as the reset amount.

If cash does not match:

  1. Compare cash sales from the Sales Report with the shift cash summary.
  2. Check all Cash In and Cash Out rows have a reason.
  3. Check Reset Cash events by date, employee, device, and reason.
  4. Check whether a pending bill was later paid or cancelled.
  5. Write down the shift ID, cashier, amount difference, and explanation.

Daily exception audit

Purpose: use this when there is no time to check every transaction. These items are the most likely to explain missing money, wrong stock, or staff mistakes.

Open Reports, Sales -> Bills, and Inventory for the same branch/date. Look for:

ExceptionWhere to checkWhy it matters
Cancelled salesSales Report or Sales pageMay be normal, but repeated cancellations need review.
Reverted salesSales Report or Sales pageStock and money may need to be reversed correctly.
Pending salesSales Report or iPad pending billsPending bills should not remain open after close.
Large discountsSales Report or Sales by ItemsCan hide mistakes or unauthorized discounts.
Cash resetsCash Movement ReportReset Cash sets the drawer balance to zero and must have a reason.
Stock count adjustmentsStock Flow ReportAdjustments change inventory and can hide shrinkage.
WasteStock Flow Report or Inventory logsRepeated waste may mean damage, mistakes, or theft.

If anything looks unusual, keep the invoice number, shift ID, SKU, PO/TO number, or screenshot so the manager can trace it.

Product sales audit

Purpose: confirm which products were sold and whether product totals make sense.

Open Reports and use Sales Report (by Items) when you need every sold line. This report includes paid sales only.

Open Sales -> Products, Sales -> Categories, Best Sellers Report, or Product Category Report when you only need grouped totals. This avoids reading thousands of line items by hand.

Check:

QuestionBest place
Which exact products were on each invoice?Sales Report (by Items)
How many units of a product sold this week?Sales -> Products or Sales Report (by Items) with Excel pivot
Which category sold the most?Sales -> Categories or Product Category Report
Which products need closer stock review?Best Sellers Report and Stock Flow Report

If product totals look wrong:

  1. Search by product name in Sales -> Products, or filter the Sales Report (by Items) Excel file by SKU.
  2. Compare quantity sold with stock out in the Stock Flow Report.
  3. Check discounts and zero-price/free items.
  4. Open the invoice if a single sale looks suspicious.

Stock count audit

Purpose: confirm physical stock matches system stock.

Open Reports and generate an Inventory Report for the branch. If the branch uses rooms, filter by room or count one room at a time. You can also check live stock from Inventory -> Stock.

Check these columns:

ColumnWhat to check
ProductProduct being counted.
CategoryHelps group the count.
BranchNeeded when auditing multiple branches.
QuantitySystem stock to compare with physical count.
SKUUse this to match labels and avoid product name confusion.
RoomPhysical location of the stock.
Avg. Cost / Last Cost / Total CostAvg. Cost is shown separately. Total Cost uses Last Cost x Quantity.

Counting rule:

  1. Count the real product.
  2. Compare real count with Quantity in the Inventory Report.
  3. If the number matches, mark it as checked.
  4. If the number does not match, write the physical count, system count, difference, SKU, room, and staff note.
  5. Investigate the difference using the Stock Flow Report before approving any adjustment.

Stock movement audit

Purpose: explain why stock changed.

Open Reports and generate a Stock Flow Report for the branch and period. Use all movement types first. If the file is too large, filter by product category or movement type.

Read stock movement by reason:

ReasonMeaning
SalesStock went out because it was sold.
Sale revertedStock came back after a sale was reverted.
Supplier receiving / restockStock came in from supplier receiving or manual restock.
Transfer outStock left this branch or room.
Transfer inStock arrived at this branch or room.
Stock count / adjustmentStock changed after a count, reconciliation, or correction.
WasteStock was removed because it was wasted or damaged.

Use this simple formula:

Opening stock + Qty in - Qty out = Closing stock

If you do not have a saved opening stock report, use the Stock Flow Report to trace movement during the period and compare with the current Inventory Report.

If stock does not make sense:

  1. After downloading the Stock Flow Report, search or filter the Excel file by Product SKU.
  2. Check every Qty In and Qty Out row.
  3. Match sales rows to invoice IDs.
  4. Match branch transfer rows to Transaction ID, which shows the TO number and sometimes a linked PO number.
  5. Match supplier receiving by the Purchase Requests page details, date, SKU, quantity, and store. Stock Flow does not export the supplier PR number as Transaction ID.
  6. Write down any row without a clear reason.

Supplier receiving audit

Purpose: confirm supplier purchases were approved, received, and added to stock correctly.

Open Suppliers -> Purchase Requests for supplier purchases. Check for three problems first:

  1. Approved but not received.
  2. Received quantity does not match the supplier document.
  3. Received stock does not appear in Inventory or Stock Flow.

Then open the purchase request and check supplier, SKU/product, quantity, cost, received date, branch, and room. For received requests, check the Stock Flow Report for matching stock-in rows and the Inventory Report for the current stock.

If receiving does not match:

  1. Check whether the purchase request was approved before receiving.
  2. Check whether the wrong room was selected.
  3. Check whether quantity or cost was entered incorrectly.
  4. Write down purchase request number, product, expected quantity, received quantity, and difference.

Branch PO and transfer audit

Purpose: confirm stock sent by one branch was received by the correct branch.

Open Inventory -> Purchase Orders for the request/approval document. Open Inventory -> Transfer Orders for the actual stock movement. PO approval alone does not deduct stock; stock leaves the source branch when the linked Transfer Order is shipped and moves to IN_TRANSIT.

Check:

ItemWhat to check
PO and linked TOApproved PO should have a linked Transfer Order.
Source branchStock leaves this branch when the Transfer Order is shipped.
Destination branchStock should arrive here when received.
Product/SKUSame product on both sides.
Sent quantityQuantity leaving source branch.
Received quantityQuantity entering destination branch.
StatusAnything IN_TRANSIT, RECEIVED but not COMPLETED, or REVERTED needs follow-up.
Stock Flow transaction IDShould connect the document to stock movement.

If a transfer is incomplete:

  1. Check whether the PO is approved but has no linked Transfer Order.
  2. Check whether the Transfer Order is still PENDING, IN_TRANSIT, RECEIVED, COMPLETED, or REVERTED.
  3. Check source branch Stock Flow for stock out.
  4. Check destination branch Stock Flow for stock in.
  5. Confirm whether received quantity differs from shipped quantity.
  6. Write down the PO/TO number, source, destination, product, quantity, and status.

Sales vs stock audit

Purpose: confirm that sold products actually reduced stock.

Open Reports and generate Sales Report (by Items) plus Stock Flow Report for the same branch/date range. Do this for suspicious products, high-value products, products with stock variance, or products where sales look wrong. For a full check, group or pivot Sales Report (by Items) by SKU first, then compare the totals against Stock Flow.

For a product or SKU:

  1. Add the sold quantity in Sales Report (by Items).
  2. Find the same SKU in Stock Flow Report.
  3. Confirm sales appear as Qty Out.
  4. Check returns/reverts appear as Qty In.
  5. Compare with Inventory Report if the current stock looks wrong.

If Sales Report (by Items) shows sold quantity but Stock Flow does not show Qty Out:

  1. Check whether the product was configured without stock tracking or wrong SKU.
  2. Check whether the sale was pending, cancelled, or reverted.
  3. Check whether the item was free or zero-value but still removed stock.
  4. Open the invoice and product history for details.

On this page