Skip to content

Stock tracked by the batch, from arrival to expiry

Every purchase lands as a batch with its own cost and expiry date. Sales consume the oldest batch first, expiry warnings fire at 7, 14 and 30 days out with the retail value at risk on the 7-day tier, and reorder points come from your own sales history.

Batch tracking with expiry dates

Every purchase lands as its own batch, with quantity, cost, and expiry date. Costing, warnings, and traceability all work from that record.

FIFO costing
Sales consume the oldest batch first, so cost of goods sold uses the price you actually paid for that stock, not a blended average. Margin computes per batch, and the purchase price history stays attached to the product.
Expiry dates on every batch
Each batch carries its expiry date, and warnings fire at 7, 14 and 30 days out. The 7-day tier also totals the retail value sitting in the batches that expire inside it, alongside the value already expired. First-expired-first-out suggestions follow, so short-dated stock gets discounted and sold instead of written off.
Traceability back to the supplier
Any unit on the shelf traces to its batch, the purchase bill it arrived on, and the supplier who sent it — what you need when a lot has to come off the shelf.

Three batches, one shelf, the right cost

Every purchase lands as its own batch. A sale consumes the oldest first, so margin is computed at the price you actually paid — and a short-dated batch is flagged at 7, 14, 30 days out, with the retail value at risk totalled on the 7-day tier before any of it becomes a write-off.

Batches
SKU-4180 — shampoo sachet
On hand
480 pieces
BatchReceivedRemainingCostExpiry
B-10422 Jan 202680 of 2008.50Dec 2026
B-10674 Feb 2026200 of 2009.10Sep 2026 · 30-day warning
B-10811 Mar 2026200 of 2009.25Mar 2027
Sale — 120 piecesPKR 1,800
FIFO: 80 from B-1042, then 40 from B-1067 — oldest firstCOGS PKR 1,044 · margin 42%
Expiry — B-1067 crosses the 30-day warning200 pieces · retail value totalled at 7 days
Sample data · as of 12 Aug 2026 · amounts in PKR

One product, two units

Buy in cartons, sell by the piece. Define the conversion once and every count, price, and margin stays correct in both units.

Units and subunits
A carton of 12, a dozen, a case — set the relationship per product, including custom conversions, and stock displays in whichever unit you are counting.
Mixed-unit sales
Sell two cartons and five loose pieces on the same bill. The conversion happens at billing time and the on-hand count decrements exactly.
A price for each unit
Carton price and piece price are set separately, so bulk rates do not flatten the loose-piece margin. Margin reports break out by unit type.

Reorder points from actual sales history

Polaris reads your sell-through and tells you which products need a purchase order — and which need a clearance instead.

Reorder points that show their arithmetic
Safety stock is 3 days of average sales. The reorder point is supplier lead time — 7 days unless you have set your own — times daily sales, plus that safety stock. Anything inside 3 days of running out is marked critical, and you can see every term of the sum.
Demand forecasting over your own sales history
Machine-learning forecasts run over the sales you have actually recorded, not a category average, so the daily rate behind each reorder point follows your shop through slow weeks and festival weeks.
Dead stock, graded rather than listed
A product with no sale in 180 days and more than PKR 10,000 tied up in it is graded critical, and the instruction is liquidate. Between 120 and 180 days the suggestion is a 30% to 40% discount, and between 90 and 120 days it is a featured promotion or another 30 days of watching before you act. Each line carries the PKR value sitting in it.

One stock count across every terminal

Two counters selling from the same shelf need the same number. Allocation happens in the database, under a lock, so the shelf count cannot be sold twice.

The last unit sells once
A sale drains batches under a row lock, so two counters cannot sell the same last unit. The second sale is refused outright — not queued, not silently short — and the shortfall is named in units and subunits, so the cashier knows exactly what is missing before the customer leaves.
Per-location stock and transfers
Each branch holds its own count, transfers between branches stay tracked while in motion, and a consolidated view totals the lot.
Turnover and valuation reports
Turnover ratio, days of stock, and velocity per product. Valuation at cost and at retail. Inventory is one of the 8 report categories, and low-stock and valuation reports export as branded PDFs.

Labelling and counting the shelf

Stock records only stay true if the shelf can be scanned and recounted without closing the shop for the evening.

Barcodes and labels you can print today
Polaris reads and prints 12 barcode symbologies, lays out 36 labels on a plain A4 sheet, and drives thermal label printers over ZPL at 203 dpi.
Cycle counts in batches
Count a section at a time: up to 500 counted lines post in one submission, and the difference against the system count is applied per line rather than as one unexplained adjustment.
A miscount is undoable
A wrong count, a wrong batch, a wrong transfer — undo has a 5-minute window and covers 45 record types, so a mistake at the shelf does not need a manager and a correction entry.

Count stock once, on every terminal.

Batches, expiry warnings at 7, 14 and 30 days, and reorder points start working from your first purchase entry.

14 days free, no card.