Skip to content

Inventory Module

Inventory keeps the stock ledger, the running total each stock-moving document changes when finalised, and the applets that count, move, plan, pick and deliver against it. For the stock controller and the accountant who answer for a stock number, routes by job come first.

Start here

When stock looks wrong, start from what you see

Inventory in Depth’s symptom table gives ten, with cause and first check. “50 physical but 0 available” has its own page: Stock shows zero but there is stock.

How you know the stock is right, before the month is closed

Before Month End Processing: nothing in transit overdue, every accepted count adjusted, every adjustment journalled, purchases and sales agreeing with the ledger (Inventory in Depth’s four-step month-end check, with who checks each).

Applets in this module

Looking at stock

  • Stock Balance: quantity and cost per item, company and location. Read only.
  • Stock Availability: the balance plus the open documents that will change it, down to bin, serial and batch; it can exceed what is on the shelf.
  • Stock Report: thirteen reports, from movement and aging to batch expiry.
  • Stock Level Monitoring: e-mails people when stock is outside optimal or maximum levels; changes nothing.

Moving stock

Asking for stock, and planning it

  • Stock Requisition: a branch’s request, met by a transfer.
  • Stock Reservation: holds a quantity for a customer until a date.
  • Stock Replenishment: minimum and maximum levels become purchase orders or transfers; create them as drafts.
  • Pdg: display quantities per category and outlet type.

The warehouse floor

  • Warehouse Management System: layouts to bin level, containers, receiving, putaway, picking from sales orders, packing, then a draft delivery order or transfer.
  • Stock Take: counts by scan or by hand, compared with the system within a tolerance.
  • Barcode Generator: label sheets.

Getting it to the customer

Tracking is by serial, batch with expiry, or bin; bundles draw on their parts. Cost is moving and weighted average, plus FIFO where its job is on (costing).

Which documents actually move stock

    flowchart LR
  subgraph IN["Stock in (+1)"]
    PI["Purchase Invoice"]
    GRNSI["Purchase GRN <b>Stock In</b>"]
    SR["Sales Return"]
    SRN["Sales Refund Note"]
    TIN["Transfer In"]
    CGRN["Consignment GRN"]
    CCIN["Customer Consignment In"]
  end
  subgraph OUT["Stock out (−1)"]
    SI["Sales Invoice"]
    CB["Cash Bill"]
    GINSO["Sales GIN <b>Stock Out</b>"]
    PR["Purchase Return"]
    PRN["Purchase Refund Note"]
    TOUT["Transfer Out"]
    CGIN["Consignment GIN"]
    CCOUT["Customer Consignment Out"]
  end
  ADJ["Stock Adjustment<br/>direction from the line"]
  CONV["Stock Conversion<br/>direction from the tab"]
  IN --> LEDGER[["Stock ledger"]]
  OUT --> LEDGER
  ADJ --> LEDGER
  CONV -.->|"built, not yet switched on"| LEDGER
  LEDGER --> BAL["Stock balance<br/>item × company × location"]
  NONE["Sales Order · Purchase Order · Quotation<br/>Stock Requisition · Purchase Requisition · Delivery Order<br/>Goods Delivery Note · Packing Order · Jobsheet<br/>Credit Note · Debit Note<br/>plain GRN · plain GIN<br/>Invoice No Stock In / No Stock Out"] -.->|"no stock quantity"| NOTHING(["nothing reaches the ledger"])
  

Receive on one pair: a GRN then a Purchase Invoice (stock arrives on the invoice), or a GRN Stock In then a Purchase Invoice No Stock In. Mixing the pairs counts the stock twice, or not at all.

What the module does not do, and what to do instead

It does notInstead
Warehouse applet: move stock, wave-pick, check availability or reserve when a picking list is built, check a pallet against a shelf’s maximum weight, or run as a native handheld appStock moves on the finalised GRN Stock In or purchase invoice, outbound transfer or sales invoice; one picking list per order; check Stock Availability and reserve first; the person slotting checks the recorded maximum; a browser on phone, tablet or PC (what the floor team does instead)
Turn a stock take into an adjustmentOne Stock Adjustment per accepted variance, keyed or CSV-imported as drafts; the count’s Excel export needs re-laying out
Approve transfers or adjustmentsGive each stock applet only to those who may move or write off stock, and review the adjustments
Move stock on a Stock Conversion: not yet switched onTwo Stock Adjustments: components out, kit in, at your cost
Transfer between two companiesA sale from one, a purchase into the other
Check GL codes when an adjustment is finalisedMap the stock GL codes first; Missing Journal lists adjustments left without a journal
Post cost of sales on each saleMonth End Processing posts it, after the month-end check
Keep LIFO, manual or replacement costValue closing stock at moving average, weighted average or FIFO
Mark delivered on arrivalStatus is set when lines go on a trip; the driver’s proof of delivery confirms arrival (the web app’s photos and signature are not viewable in the office)

More in Inventory in Depth.

One transfer, two lorries: why moving stock takes two documents

Between Transfer Out and Transfer In the goods sit in the company’s stock-in-transit location, so a load can arrive in parts once the outbound-to-inbound document flow is set up (the two-lorry example).

What it touches elsewhere

What must exist first

Inventory items and locations from Core (a line with no inventory item never reaches the ledger), and stock GL codes from Financial Accounting (what must exist first).

What a stock movement sets off elsewhere

Adjustments post journals just after FINAL, cost of sales posts at month end, and marketplaces read this balance (what it sets off).

Which of two neighbours to use

Count with Stock Take, then change the balance with Stock Adjustment (four pairs).

Where to go next