An append-only ledger underneath everything: receipts, sales, returns and adjustments are movements, never edits. The number on the screen is the number on the shelf — and you can prove how it got there.
Stock is never 'edited to match'. Each receipt, sale, return and adjustment is an immutable movement carrying a reason code — so the count is always explainable.
Discrepancies don't get quietly erased; they book forward as current-dated adjustments with mandatory reasons. Idempotency keys mean a flaky network or a retried sync can never double-count. The ledger is the truth, and the truth is auditable.
Every quantity change is a permanent, reason-coded entry. Nothing is overwritten, ever.
Damage, theft, miscount, return — every adjustment says why, so patterns become visible.
Retries and offline syncs can't double-count. The same movement posts exactly once.
Variances post as current-dated adjustments, never back-dated. The history stays honest.
Any count traces back through every movement that produced it. Audits have answers.
Stock per warehouse, per shop, per van — moved between them as tracked transfers, not guesses.
Goods arrive against a purchase order as a GRN — quantities, lots and landed cost recorded the moment they land. No mystery stock, no 'what did this cost us'.
Raise a purchase order, receive against it, and the GRN captures exactly what came in — including the landed cost that feeds your margins. Partial deliveries and over-receipts are handled explicitly, so the paperwork matches the pallet.
Order from vendors (who live in your CRM as the vendor role) with expected quantities and costs.
Receive against the PO; the system reconciles ordered vs received and flags the difference.
Freight, duty and handling folded into the real cost of stock — so margins reflect reality.
Short deliveries and extras handled explicitly, not fudged into the next count.
Every receipt links the vendor contact — purchase history beside everything else you know.
Scan to receive and scan to sell, so the busy counter keeps the ledger honest.
Weighted-average cost recomputes with every receipt, so the cost behind each sale is real — and so are the margins you price and discount against.
When new stock arrives at a different price, WAC blends it in immediately. Every sale records the true cost of what left the shelf, so your profit reports aren't built on a number someone typed last quarter.
Each receipt updates the weighted-average cost instantly. No stale standard cost lying to you.
Every sale books the real cost of goods sold — margin you can act on, not estimate.
See profit by item, category and period, computed from actual costs.
Discount knowing your real floor, not a guess. Promotions that don't quietly lose money.
Stock-on-hand value reflects what you actually paid, updated continuously.
See how an item's cost moved over time — supplier creep becomes visible early.
Batches, expiries and recalls — know exactly which lot is on which shelf and which customer got which batch. Essential the day a supplier issues a recall.
Receive into a lot, sell from a lot, trace a lot to every order it touched. When expiry matters or a recall lands, you're not guessing — you're querying. The difference between a tense afternoon and a closed business.
Stock carries its batch through receiving, storage and sale — never anonymous.
Know what's ageing before it's a write-off; sell oldest-first where it matters.
Trace a lot to every customer who received it — the query that protects your business.
First-expiry or first-in dispatch rules, enforced rather than hoped for.
For high-value goods, track individual units end to end.
Notifications before stock turns into loss — acted on, not discovered.
Counts, variances and adjustment postings run on a schedule. Closing the day is a report you read, not a shutdown you survive.
At day-end the system reconciles expected against counted, books variances forward with reasons, and posts the adjustments — automatically. Sell-ahead lets you oversell deliberately when stock is incoming, with limits, so it's always a decision and never a surprise.
Counts and postings on a timer — the close happens whether or not anyone remembers.
Differences post as dated adjustments with reasons. Tomorrow starts honest.
Oversell against incoming stock within limits you set — deliberate, never accidental.
Low-stock thresholds trigger alerts or purchase suggestions before you run out.
Full physical counts captured cleanly, variances explained, no shutdown required.
What moved, what's low, what varied — a morning briefing, not an investigation.
SK Inventory lives on the same customer record, the same events and the same rails as the rest of the suite.
Start free See the developer surface →