Skip to content
teamsleek.ai

Module · Inventory and warehouse

Inventory management software: the process, flow by flow

The inventory module covers stock from the moment a supplier's delivery reaches the Tuas dock until it leaves on a delivery order or moves to the Ubi showroom. In between sit receiving against the PO, put-away to bins, reservations for confirmed orders, picking and packing, reorders, transfers, cycle counts and the cost each unit carries into the ledger. Every movement is a record with an item, a quantity, a location, a bin and a cost, so on hand, reserved, on order and free to sell are read from the records instead of worked out in a spreadsheet.

It usually breaks at the hand-offs. Receipts are keyed in later from the driver's delivery order, so short deliveries get paid in full. Sales promises stock from on hand when part of it is already reserved for another customer. Reorder points were set once and never revisited, counts are corrected at the shelf without a recount, and freight on imports is expensed instead of added to cost, which makes heavy, cheap items look more profitable than they are.

Process

The flows, step by step

Each step names who does it: a person, an agent, or the system applying a fixed rule. Agents draft and wait for approval. Payments, deletions and messages to customers or suppliers always stop at a person.

Agents in these flows: document intake agent and purchase order agent. Inventory and warehouse is one part of the AI ERP.

End to end

  1. System

    Delivery arrives

    Driver hands over DO-55871

  2. Agent prepares

    Goods receipt drafted

    Read from the DO photo

  3. Person decides

    Counts confirmed

    Storekeeper, bay B2

  4. System

    Stock updated

    33 boxes put away

  5. Agent prepares

    Short line flagged

    2 boxes still owed on PO-0418

Sample data. Harbourline Supplies Pte Ltd is not a real company.

Flow 01

Goods receipt and put-away

Receiving is where the company records what it now owns and what it has agreed to pay for. When receipts are keyed in later from the driver's paperwork, the PO is closed in full, a short delivery is paid in full and the stock figure is wrong from the first day.

Starts when
A supplier delivery reaches the Tuas dock with its delivery order, or a packing list arrives by email ahead of an import container.
Ends with
A posted goods receipt with counted quantities, bins and batches, and the original delivery order attached. PO lines show what was received and what is still open, and the receipt is ready for the supplier invoice match.
  1. 1.Person: Storekeeper

    Photographs the supplier's delivery order at the dock and uploads it to the receiving queue, or forwards the packing list that came by email.

    • A delivery order with the same supplier and DO number as one already received is blocked as a duplicate.
  2. 2.Agent: Document intake agent

    Reads the delivery order, matches the supplier and each line to an open PO, and drafts the goods receipt with the quantities the document states.

    • The PO number printed on the document is tried first. Without one, the agent lists the supplier's open POs that carry the same items, and the storekeeper picks one.
    • Supplier item codes are matched through the supplier's item cross-reference before any match on description.
    • Supplier units are converted with the item's pack size, so a carton of 10 boxes becomes 10 boxes.
    • A field it cannot read clearly is left blank and flagged. A line that is on no open PO is flagged and never added to the receipt.
  3. 3.Person: Storekeeper

    Counts each line on the pallet and enters the counted quantity, setting aside and photographing any damaged units.

    • The counted quantity is a separate field from the document quantity, so a DO that says 10 does not become 10 received by default.
    • Damaged units are entered as their own quantity, with a photo attached to the line.
  4. 4.System: System

    Compares the counted quantity with the delivery order and with the open PO quantity on each line, and marks the line full, short, over or damaged.

    • Counted below the PO open quantity: short, and the balance stays open on the PO.
    • Counted above the PO open quantity: received only up to the supplier's over-receipt tolerance (0% unless agreed), and the excess is held as not received.
    • Counted different from the delivery order: the storekeeper notes the difference on the driver's copy before the driver leaves, because the signed copy is the evidence for any claim.
  5. 5.Person: Storekeeper

    Enters the batch number and expiry date, or the serial numbers, for lines on items tracked that way.

    • Asked only for items flagged for batch, expiry or serial tracking. A box of screws asks for nothing.
    • An expiry date earlier than the receipt date plus the item's minimum shelf life (for example 180 days for sealant) holds the line for the purchasing lead.
  6. 6.System: System

    Posts the receipt into the Tuas receiving bay and suggests a put-away bin for each line.

    • Stock in the receiving bay counts as on hand, but no pick list sends a picker to it.
    • Bin suggestion order: the item's home bin, then an overflow bin in the same zone with space, then any empty bin.
    • An expiry-tracked item goes to a bin that holds no other batch of the same item, so picks can take the earliest expiry first.
  7. 7.Person: Storekeeper

    Scans the bin label at put-away, which moves the stock from the receiving bay into the bin.

    • A bin other than the suggested one is accepted if it exists at Tuas, and is logged as an override.
  8. 8.System: System

    Updates the received quantities on the PO lines as soon as the receipt is posted, without waiting for put-away, and releases the receipt for the supplier invoice match.

    • The receipt carries the PO price, so the invoice match compares the bill with what was received, line by line.
    • The log keeps the original document, what the agent read, what the storekeeper changed and who posted the receipt.

Exceptions

The delivery is short
The receipt records what arrived and the PO line keeps the balance open. The buyer decides whether to wait for the balance, cancel it or ask for a credit, and the supplier's invoice is matched to the quantity received.
The delivery is over the PO quantity
Within the supplier's tolerance, it is received. Beyond it, the excess stays in the receiving bay as not received until the buyer either amends the PO, which goes through purchasing approval, or arranges a return.
Units arrive damaged
Damaged units are received into a quarantine bin with the photos attached, so they are on record but not free to sell. The storekeeper raises the return against the receipt line, the buyer asks the supplier for a return authorisation, and the purchasing lead approves the remedy.
An item arrives that is on no open PO
The line is left off the receipt and flagged. The buyer decides whether it is a substitute to accept against a PO line or a wrong delivery to send back.
The photo is unreadable, or the DO has no PO number
The agent leaves the unclear fields blank and lists the supplier's open POs. The storekeeper picks the PO and keys the quantities from the count.

Worked example

GRN-0932 for PO-0418 from Meridian Fasteners

  • PO-0418: 25 boxes of M8 hex bolts at S$18.40 and 10 boxes of M8 nuts at S$21.00.
  • Delivery order DO-55871, read from a photo, lists 25 and 10. The storekeeper counts 25 and 8, and notes the 2 short on the driver's copy.
  • GRN-0932 posts 33 boxes into the receiving bay, and both lines are put away to bay B2.
  • Received value: 25 × S$18.40 = S$460.00 plus 8 × S$21.00 = S$168.00, so S$628.00 before GST and S$684.52 with GST.
  • PO-0418 keeps 2 boxes of nuts open. Meridian's invoice for S$730.30 is matched to the S$684.52 received, a difference of S$45.78.

Sample data. Harbourline Supplies Pte Ltd is not a real company.

Flow 02

Reservation, picking and packing

Sales needs to know how much can be promised, and on hand does not answer that. Without reservations, two orders confirmed on the same morning both see the same 150 pairs, and the second customer finds out at the dock.

Starts when
A sales order is confirmed for delivery from a location. Quoting and order confirmation are covered on the sales page.
Ends with
Reservations against each order line, a picked and packed delivery order, on hand and reserved reduced together, and the delivered quantities passed to invoicing.
  1. 1.System: System

    Reserves stock for each order line at the order's fulfilment location as soon as the order is confirmed.

    • Reserved quantity = the lower of the ordered quantity and free to sell at that location.
    • The remainder is marked awaiting stock and linked to the earliest approved PO or dispatched transfer for the item, whose due date shows on the order.
    • Quotes read free to sell but never reserve.
  2. 2.System: System

    Recalculates free to sell for the item at that location.

    • Free to sell = on hand − reserved − quantity in quarantine bins.
    • On order is shown beside it with its dates and is never added into free to sell.
  3. 3.System: System

    Releases pick lists at the 3pm cut-off for orders due for delivery the next working day.

    • Only reserved lines are released. An order set to deliver complete waits until every line is reserved.
    • Orders are released in delivery date order, then by the time they were confirmed.
  4. 4.System: System

    Assigns each pick line to bins and sorts the list in walking order through the warehouse.

    • Expiry-tracked items: the bin with the earliest expiry first.
    • Other items: the pick face before overflow, then the bin whose quantity covers the whole line, so each line is picked from as few bins as possible.
  5. 5.Person: Picker

    Scans each bin and item on the list and enters the quantity picked.

    • A scanned item that does not match the line is rejected.
    • The picked quantity cannot exceed the line quantity, and scanned batch numbers carry through to the delivery order.
  6. 6.Person: Packer

    Checks the picked goods against the delivery order, packs them and records the cartons and weight.

    • Lines above S$500 and any repacked item get a second count before the carton is sealed.
  7. 7.System: System

    Posts the delivery, reducing on hand and the reservation in the same transaction, and passes the delivered quantities to invoicing.

    • On hand and reserved fall together, so free to sell does not jump between picking and dispatch.
    • The invoice uses delivered quantities, not ordered ones.

Exceptions

The bin holds less than the pick list says
The picker enters what was found. The system offers another bin at the same location if one has stock; otherwise the line ships short or waits, according to the customer's part-delivery setting. A count of that bin is raised at once, and any difference goes through the count flow instead of being corrected at the shelf.
There is not enough free stock when the order is confirmed
What is free is reserved and the rest waits on the next approved PO or transfer. If nothing is on order, the line raises a purchase request tied to the order.
An urgent order needs stock reserved for another customer
Only the sales manager can move a reservation from one order to another, and a reason is required. Both orders show the change, and the log records who moved what.
The stock is at the other location
Reservations are made per location, so Ubi stock is shown on a Tuas order but not reserved for it. Sales raises a transfer linked to the order, and the stock is reserved at the receiving end when the transfer is confirmed.
The order is cancelled or reduced
The reservation is released at once. If the goods were already picked, a return-to-bin task is raised, and the stock is not free to sell until it is scanned back into a bin.
A reservation passes its delivery date undelivered
After 5 working days it is listed for the sales owner to reconfirm or release, so a stalled order does not hold stock indefinitely.

Worked example

450 mm drawer runners (RUN-450) on 7 Nov

  • On hand: 182 pairs, 150 at the Tuas warehouse in bay A4 and 32 at the Ubi showroom.
  • SO-1206 for Corallis Fit-Out has 60 reserved at Tuas, so free to sell is 90 at Tuas and 32 at Ubi, 122 in all.
  • SO-1209 for Northgate Joinery is confirmed for 100 pairs from Tuas: 90 are reserved and 10 are awaiting stock.
  • The only supply coming is PO-0420, still a draft, so SO-1209 shows no due date for the 10 until that PO is approved.
  • Tuas free to sell is now 0. Sales can wait for PO-0420 or transfer 10 of the 32 pairs from Ubi.
  • After SO-1206 is picked from bay A4 and delivered, Tuas has 90 on hand and 90 reserved.

Sample data. Harbourline Supplies Pte Ltd is not a real company.

Flow 03

Reorder points and replenishment

A reorder point is the stock level at which a new order must go out so that it arrives before the shelf is empty. Set by feel, it ends up too high on slow lines, which ties up cash, and too low on fast ones, which run out while the PO is still on its way.

Starts when
The 7am daily stock check, or a stock movement that takes an item's stock position below its reorder point.
Ends with
Updated demand figures and reorder point proposals, draft POs with their working shown, and approved POs counted as stock on order.
  1. 1.System: System

    Recalculates average daily demand for each item and location every night from the last 90 days of deliveries.

    • Lines that sales flagged as one-off project orders are left out, so a single large job does not raise the reorder point for the next quarter.
    • Transfers from Tuas to the Ubi showroom count as Tuas demand, because Tuas buys for both locations.
    • Items flagged as seasonal use the same weeks of last year instead of the last 90 days.
  2. 2.System: System

    Proposes a reorder point of average daily demand × supplier lead time + safety stock, and lists the items where the proposal differs from the current setting by more than 20%.

    • Lead time is the average number of days from PO sent to goods received over the supplier's last six POs for the item.
    • Safety stock is days of cover by value class (for example 5 days for class A) × average daily demand.
    • Items reviewed weekly use lead time plus 7 days as the demand window, or they can run out between reviews.
  3. 3.Person: Buyer

    Reviews the listed reorder point changes once a month and accepts, changes or rejects each one.

    • A reorder point changes only when a person accepts it. The purchase order agent reads reorder points and cannot edit them.
  4. 4.System: System

    Compares each item's stock position with its reorder point at the daily check.

    • Stock position = on hand − reserved + on order.
    • On order counts approved POs and dispatched transfers in. A draft PO is not counted as stock, but an item with an open draft gets no second draft.
    • Stock in quarantine bins is left out of on hand.
  5. 5.Agent: Purchase order agent

    Drafts a PO for each item below its reorder point, for the order-up-to level minus the stock position.

    • Order-up-to level = reorder point + the item's reorder cover (for example 30 days) × average daily demand.
    • The quantity is rounded up to the supplier's pack size, then raised to the supplier's minimum order if it is still below it.
    • Lines for the same supplier go on one PO, at the supplier's current price from the price list.
    • Items marked discontinued, made to order or under review are never drafted.
  6. 6.Agent: Purchase order agent

    Shows the working on each line: demand, lead time, safety stock, stock position and the rounding applied.

  7. 7.Person: Buyer

    Checks each line, adjusts the quantity or supplier where needed and submits the PO for approval, which follows the purchasing matrix.

    • A quantity above 3 times the item's normal reorder quantity needs a note before it can be submitted.
    • Each edit is logged against the draft with who made it.
  8. 8.System: System

    Records the approved PO as stock on order with its promised date, so the next check counts it.

Exceptions

The supplier's minimum order is larger than the shortfall
The draft orders the minimum and shows how many extra days of cover that buys. The buyer accepts it, or switches to another approved supplier if the extra stock is not worth holding.
The item is seasonal
Demand comes from the same weeks last year, scaled by the ratio of this year's last 90 days to the same 90 days last year. Harbourline's own history shows runners and hinges peaking in the eight weeks before Chinese New Year, so their seasonal profile raises the reorder point one lead time before the peak, and the buyer approves the profile once a year.
A new item has no sales history
No reorder point is proposed until it has 60 days of deliveries. The buyer sets one by hand, and the item is listed for review when the 60 days are up.
A supplier's lead time is slipping
When the last three receipts for an item average more than 20% above its lead time, the item is flagged to the buyer. The nightly proposal picks up the longer lead time, and the buyer accepts it like any other change.
The Ubi showroom runs low while Tuas has stock
Ubi is replenished from Tuas, so a transfer is drafted instead of a PO, and only Tuas stock triggers purchasing.

Worked example

M10 hex bolts, box of 200, at the Tuas warehouse

  • Delivered from Tuas in the last 90 days: 270 boxes, so average daily demand is 3 boxes.
  • Lead time: 7 days, the average from PO sent to goods received on Meridian Fasteners' last six POs for the item.
  • Safety stock: 5 days of cover for a class A item, 3 × 5 = 15 boxes.
  • Reorder point: 3 × 7 + 15 = 36 boxes.
  • Stock position at the 7am check: 40 on hand − 12 reserved + 0 on order = 28 boxes, below 36.
  • Order-up-to level: 36 + 30 days × 3 = 126 boxes. 126 − 28 = 98, rounded up to Meridian's carton of 10, so 100 boxes.
  • Draft PO-0422: 100 boxes at S$26.50 = S$2,650.00, GST 9% S$238.50, total S$2,888.50, waiting for the buyer.

Sample data. Harbourline Supplies Pte Ltd is not a real company.

Flow 04

Transfers between locations

A transfer moves stock between the Tuas warehouse and the Ubi showroom without changing what the company owns. Posted as a single step, a loss on the van or at the showroom door never shows up; kept on paper, the stock gets counted at both ends or at neither.

Starts when
The Ubi showroom falls below its minimum on an item, an order at one location needs stock held at the other, or a supervisor asks for a move.
Ends with
A closed transfer with dispatched and received quantities, stock moved from Tuas to Ubi at the same unit cost, and any difference either found or drafted as an adjustment.
  1. 1.System: System

    Drafts a replenishment transfer from Tuas for each item at Ubi below its minimum, for the maximum minus on hand.

    • Ubi uses a minimum and maximum per item instead of a reorder point, because its supplier is Tuas and its lead time is the next van run.
  2. 2.Person: Tuas storekeeper

    Releases the transfer, which reserves the quantity at Tuas so it cannot be sold while it waits to be picked.

    • Only stock free to sell at Tuas can be released. Anything short stays on the transfer as awaiting stock.
  3. 3.Person: Tuas storekeeper

    Picks the transfer by bin and posts the dispatch.

    • Dispatch moves the quantity from Tuas on hand to in transit, with the person, the time and the vehicle recorded.
  4. 4.System: System

    Holds the stock in transit until the receiving location confirms it.

    • Stock in transit counts in the company's total stock and stock value, but is free to sell at neither location.
    • The stock travels at its unit cost, and the transfer does not change that cost.
  5. 5.Person: Ubi showroom lead

    Counts the goods on arrival and confirms the quantity received.

    • The count is entered before the dispatched quantity is shown, so the quantity confirmed comes from counting the goods.
  6. 6.System: System

    Moves the confirmed quantity from in transit to Ubi on hand, and closes the transfer when nothing is left in transit.

    • Any difference between dispatched and confirmed stays in transit and is flagged to both locations.

Exceptions

Ubi confirms fewer than were dispatched
The difference stays in transit while both sides check: Tuas looks in the dispatch bay and the van, Ubi rechecks the delivery. If it is not found within 2 working days, it becomes a draft adjustment under the matrix: the warehouse supervisor up to S$200 at cost, the operations manager above.
Ubi confirms more than were dispatched
Ubi records what it counted, and a count of the item's bins at Tuas is raised, because the Tuas figure is the likely error.
Nothing is confirmed by the next working day
The transfer is listed as overdue for the warehouse supervisor.
The transfer is for a customer order
The transfer is linked to the sales order, and the reservation is made at the receiving location when the stock is confirmed there.
A dispatched transfer has to be cancelled
It cannot be deleted. The stock is received back at Tuas on a return transfer, so the record shows both movements.
The item is batch-tracked
Batch numbers travel on the transfer and must match at receipt. A mismatch holds the line for the warehouse supervisor.

Worked example

Replenishment transfer TRF-0087, cabinet handle 128 mm

  • Ubi showroom: minimum 20, maximum 60, on hand 14 after the weekend.
  • Drafted for 60 − 14 = 46 handles and released by the Tuas storekeeper, which reserves 46 at Tuas.
  • Dispatched at 10:00: Tuas on hand down 46 and in transit up 46, at S$4.30 average cost, so S$197.80.
  • Ubi counts 44 and confirms 44. S$189.20 moves to Ubi, and 2 handles (S$8.60) stay in transit, flagged to both locations.
  • Tuas finds the 2 handles in the dispatch bay and sends them on the next van run. Ubi confirms them, and TRF-0087 closes with no adjustment.

Sample data. Harbourline Supplies Pte Ltd is not a real company.

Flow 05

Cycle counts and stock adjustments

Counting a few items every day keeps stock right without closing the warehouse for a stocktake. What makes a count useful is what happens to the difference: corrected at the shelf, it hides the receiving or picking error that caused it, and the same error comes back next month.

Starts when
The daily count list, or a count raised by a short pick, a transfer difference or a bin that should be empty and is not.
Ends with
Confirmed bins with new count dates, approved adjustments posted to stock and the ledger, and a record of every count, recount and approver.
  1. 1.System: System

    Classifies items each quarter by the cost value of stock moved over the last 12 months.

    • Class A: the items that make up the first 80% of value. Class B: the next 15%. Class C: the last 5%.
  2. 2.System: System

    Builds each day's count list so that class A items are counted monthly, class B quarterly and class C twice a year.

    • Counts are spread evenly over the working days, and counts raised by exceptions are added on top.
    • A bin with put-away pending is skipped and moved to the next day's list.
  3. 3.Person: Storekeeper

    Scans each bin and item on the list and enters the quantity counted, without seeing the system quantity.

    • The count screen never shows the expected quantity, so the counter cannot confirm a number instead of counting.
  4. 4.System: System

    Compares the count with the system quantity at the moment the bin was scanned, and values any difference at cost.

    • Using the quantity at scan time means picks posted between printing the list and reaching the bin are not reported as differences.
    • A count that matches confirms the bin and resets its count date.
  5. 5.Person: Second storekeeper

    Recounts, blind, any bin where the difference is above 2% of the system quantity or above S$50 at cost.

    • Recount matches the system: no adjustment. Recount matches the first count: the count stands. Recount matches neither: the warehouse supervisor counts.
  6. 6.System: System

    Checks the item for unposted receipts, open picks and transfers in transit before any adjustment is drafted.

    • A difference explained by a pending transaction is cleared by posting that transaction, without an adjustment.
    • A difference found in another bin of the same item is fixed with a bin-to-bin move, which leaves stock value unchanged.
  7. 7.System: System

    Drafts the stock adjustment with a reason code and its value at cost, and routes it under the approval matrix.

    • Up to S$200 at cost: warehouse supervisor. Above S$200: operations manager.
    • Write-offs of expired or damaged stock, any amount: finance manager.
  8. 8.Person: Approver

    Approves or rejects the draft adjustment, with a note if it is rejected.

  9. 9.System: System

    Posts the approved adjustment to stock and to the stock adjustment account in the ledger.

    • The posting keeps the count, the recount, the approver and the reason code with it.

Exceptions

Expired or damaged stock is found during the count
It is moved to a quarantine bin at once and drafted as a write-off for the finance manager, whatever the amount, with the batch and expiry date recorded.
The counter finds none of an item the system says is there
The item's other bins and the receiving bay are searched before any adjustment is drafted, because a zero count is more often a put-away error than a loss.
A pick would take a bin below zero
The pick stops and a count of the bin is raised. Negative stock is blocked at bin level, because a negative bin hides which receipt or pick was wrong.
The same item shows a difference in the same direction three counts running
It is flagged to the operations manager as a process problem, for example a unit of measure set up wrongly or a pick face that is easy to take from.

Worked example

October cycle counts at the Tuas warehouse

  • M8 nut, box of 500, bay B2: system 50, blind count 46. The difference of 4 boxes at S$21.00 average cost is S$84.00, over both the 2% and the S$50 recount thresholds.
  • A second storekeeper recounts 46. No receipts, picks or transfers are open for the item, so a draft adjustment of S$84.00 down goes to the warehouse supervisor.
  • Sealant: 12 tubes past their expiry date at S$7.20 a tube, drafted as an S$86.40 write-off for the finance manager.
  • Five smaller adjustments, each under S$200, come to S$44.20 down net and go to the warehouse supervisor.
  • October total: seven adjustments, S$214.60 down at cost (S$84.00 + S$86.40 + S$44.20).

Sample data. Harbourline Supplies Pte Ltd is not a real company.

Flow 06

Stock valuation and landed cost

Every unit in stock carries a cost, and that cost sets the gross margin on each sale and the stock value on the balance sheet. When freight and clearance on imports are expensed instead of added to the goods, heavy, low-value items look more profitable than they are, and prices get set from the wrong number.

Starts when
A goods receipt is posted, a freight, insurance, duty or forwarder bill is linked to a receipt, or a supplier bill is approved at a price different from the PO.
Ends with
A landed unit cost on each receipt line, an updated average or a new FIFO layer, a list of margins below the floor for the sales manager, and stock value posted to the ledger.
  1. 1.Person: Finance head

    Chooses the cost method with the company's accountant before the build: moving weighted average or FIFO.

    • The method applies to the whole company and changes only at a financial year end, with a revaluation journal, because a switch mid-year restates margins already reported.
  2. 2.System: System

    Values each goods receipt at the PO price, converted at the exchange rate on the receipt date for a foreign-currency PO.

    • A later payment at a different rate goes to exchange gain or loss, never back into stock cost.
  3. 3.Person: Finance executive

    Links each freight, insurance, duty and forwarder bill to the import receipt it belongs to.

    • A bill that covers several receipts is split by receipt first, then by line.
    • Import GST is not linked as a cost: it is paid to Singapore Customs, and a GST-registered importer named on the import permit claims it back as input tax.
  4. 4.System: System

    Allocates each charge across the receipt lines on the basis set for its charge type.

    • Freight and insurance: by weight, or by volume for bulky, light goods. Forwarder fees: by value. Customs duty: only to the lines it was assessed on.
    • A line whose item has no weight blocks the allocation until someone enters it, instead of being skipped.
  5. 5.System: System

    Recomputes the unit cost under the chosen method.

    • Weighted average: (quantity on hand × current average + quantity received × landed unit cost) ÷ total quantity.
    • FIFO: each receipt is a cost layer, and deliveries use the oldest layer first.
  6. 6.System: System

    Splits a charge that arrives after part of the receipt has been sold between stock on hand and cost of sales.

    • Weighted average: the share for units already delivered goes to cost of sales, and the rest raises the average of the stock on hand.
    • FIFO: the charge follows its layer, so only the units still in that layer take their share.
  7. 7.System: System

    Lists items whose unit cost moved by more than 5%, with the account price lists and open quotes whose margin now falls below the margin floor.

    • Prices are never changed automatically. The list goes to the sales manager, who decides any price change in the sales module.
  8. 8.System: System

    Posts stock value movements to the ledger and reconciles the stock valuation report with the inventory control account at month end.

    • Receipts, deliveries, adjustments and landed cost each post with their source record, so a month-end difference can be traced to a document.

Exceptions

A supplier bill's price differs from the PO
The invoice match in finance holds it for approval. Once approved, the difference adjusts the cost of the stock still on hand, and the share already sold goes to cost of sales, the same way as a late freight bill.
A line falls into a dutiable category
Singapore Customs charges duty on four categories: intoxicating liquors, tobacco products, motor vehicles, and petroleum products and biodiesel blends. Hardware and fittings are outside them, so Harbourline's duty line is usually zero. Where duty is charged, it is allocated only to the lines it was assessed on.
A supplier sends goods free of charge
Bonus stock is received at zero cost, which lowers the average, so the receipt is flagged for the finance manager to confirm before it posts.
Stock may be worth less than its cost
At year end, items with no sales in 12 months, or selling below cost, are listed for the finance manager to decide on a write-down. The system does not write stock down on its own.

Worked example

Landed cost on import PO-0426, received as GRN-0941 at Tuas

  • Supplier invoice: US$10,000.00 at the receipt-date rate of 1.3000 = S$13,000.00, for 2,000 soft-close hinges (S$7,800.00) and 800 pairs of 450 mm drawer runners (S$5,200.00).
  • Sea freight and insurance, S$1,500.00, split by weight: hinges 300 kg and runners 1,200 kg, so S$300.00 and S$1,200.00.
  • Forwarder fees for the permit, port handling and trucking to Tuas, S$500.00, split by value 60:40, so S$300.00 and S$200.00.
  • Customs duty: S$0.00, as hinges and drawer runners are not in a dutiable category.
  • Landed cost S$15,000.00: hinges S$8,400.00, or S$4.20 each, and runners S$6,600.00, or S$8.25 a pair.
  • Import GST: 9% of the S$14,500.00 CIF value on the permit = S$1,305.00, paid to Singapore Customs and claimed as input tax, so it stays out of stock cost.
  • Split by value alone, runners would cost S$7.50 a pair and show a 34.8% margin at a selling price of S$11.50, against 28.3% on the landed cost.
  • Hinges at weighted average: 500 on hand at S$4.60 (S$2,300.00) plus 2,000 at S$4.20 (S$8,400.00) = S$10,700.00 for 2,500, or S$4.28 each. At S$6.80, the margin moves from 32.4% to 37.1%.
  • Under FIFO instead, the next 500 hinges delivered would still cost S$4.60 each before the S$4.20 layer is used.

Sample data. Harbourline Supplies Pte Ltd is not a real company.

Design decisions

Why the flows work this way

The choices behind the order of the steps and the checks, and what each one trades off.
  • Stock is reserved when the order is confirmed, and quotes only read free stock

    Reserving at quote would hold stock for quotes that never convert, and free to sell would drift down until sales stopped trusting it. The trade-off is that a customer who accepts a quote late may find the stock gone, so the quote shows free stock when it is drafted and the order shows it again at confirmation. Where a few large quotes do need holding, a short hold with an expiry date can be added for named customers.

  • Receipts land in a receiving bay before they reach a bin

    The goods count as on hand as soon as the receipt is posted, so the PO and the invoice match can move on, but no picker is sent to a bin until the put-away scan puts stock there. Without the bay, the system shows stock in bay B2 while it is still on a pallet at the dock, and short picks follow. The cost is one extra scan per pallet.

  • Reorder points are set by people, and the purchase order agent only reads them

    The agent decides when to draft and how much, so letting it change its own trigger would let its behaviour drift without anyone noticing. The system proposes new reorder points from demand and lead time each night and lists only those that moved by more than 20%, which keeps the monthly review to a short list instead of the whole item file.

  • A draft PO blocks a second draft but does not count as stock on order

    Counting drafts as on order would make the stock position look healthier than it is whenever a draft sits unapproved for a week. Ignoring drafts completely would produce a new draft for the same item every morning. Blocking a second draft while leaving the stock position as it is keeps the 7am list short and still shows the real shortfall.

  • A count difference becomes an adjustment only after a recount and a check of open transactions

    A count difference often comes from timing, such as a receipt not yet put away or a pick not yet posted, or from stock sitting in the wrong bin. Posting the difference at the shelf corrects the number and loses the cause. The recount costs a few minutes per flagged bin, and only bins over 2% or S$50 at cost get one.

  • Stock is costed per company, so a transfer never changes unit cost

    Harbourline's two locations belong to one company and buy from the same suppliers, so one average per item keeps margins comparable between Tuas and Ubi and lets a transfer move stock without a cost entry. Costing per location makes sense when locations are separate companies or carry different landed costs, for example a branch that imports its own stock. The choice is made at scoping, because changing it later means revaluing stock at every location.

Scoping

Settings we agree with you before the build

Each of these changes how the flows behave. We settle them on the scoping call and write them into the phase plan.
Cost method
OptionsMoving weighted average or FIFO
Usual startMoving weighted average, because late freight bills and price differences spread over the stock on hand in one step, and fittings from different receipts are interchangeable.
Landed cost allocation
OptionsBy value, weight, volume or quantity, set per charge type
Usual startFreight and insurance by weight, forwarder fees by value and duty to the lines it was assessed on, so heavy, low-value items carry their real freight.
Locations and bins
OptionsStock by location only, or by location and bin
Usual startBins at the main warehouse and location-only stock for a showroom or van, where a bin scan adds work without catching errors.
Batch, serial and expiry tracking
OptionsOff, batch, batch with expiry, or serial, set per item
Usual startBatch with expiry for sealants and adhesives, serial numbers for power tools, and off for everything else.
Receiving count
OptionsBlind, or shown against the delivery order quantity
Usual startAgainst the delivery order with the counted quantity entered separately, and blind for suppliers with a record of short deliveries.
Reorder method
OptionsReorder point with an order-up-to level, minimum and maximum, or periodic review by supplier
Usual startReorder point checked daily for class A and B items, and a weekly review by supplier for class C, so small lines are grouped to reach minimum orders.
Safety stock
OptionsDays of cover by value class, or calculated from demand variability and a target service level
Usual startDays of cover by class until there are 12 months of clean demand history, because a statistical method on patchy history gives precise-looking wrong numbers.
Cycle count frequency
OptionsBy value class, by location, or a full stocktake once or twice a year
Usual startClass A monthly, class B quarterly and class C twice a year, with a recount above 2% or S$50 at cost.

Key records

The records it holds

Each record lives once in the shared database, so other modules and agents read the same version.
  • Item

    • Item code
    • Unit of measure
    • Reorder point
    • Cost
  • Location

    • Warehouse or outlet
    • Bins
    • Stock on hand
  • Goods receipt

    • PO reference
    • Quantity received
    • Bin
  • Stock transfer

    • From
    • To
    • Quantity
    • Status
  • Stock count

    • Counted
    • System
    • Difference
  • Adjustment

    • Reason
    • Value at cost
    • Approved by

Approvals

Who approves what, and above which amount

Agent drafts and staff drafts follow the same rules. The matrix is built to your roles and limits.
SampleApproval matrix for inventory and warehouse
Goods receipt with short or extra itemsWhenAny amountWho approvesStorekeeper, then the buyer
Stock adjustmentWhenUp to S$200 at costWho approvesWarehouse supervisor
Stock adjustmentWhenAbove S$200 at costWho approvesOperations manager
Write-off, expired or damagedWhenAny amountWho approvesFinance manager
Transfer between locationsWhenAny quantityWho approvesReceiving location confirms

A sample matrix for a distributor with two locations. Yours follows your own roles and limits.

Sample data. Harbourline Supplies Pte Ltd is not a real company.

Connects to

What it shares with the other modules

The records below are read and written by both modules, so nothing is typed twice.

Planning

Which phase it usually ships in

Usually in the first phase

Stock is the record most other modules lean on, so it tends to arrive early, with purchasing or sales. If counts and missing stock are the main pain, inventory alone can be the first phase.

Planning guidance from how we usually scope, not a rule. Your written phase plan sets the actual scope, price and go-live date before you sign.

Price bands

  • Quick build

    2 to 3 days of build

    From S$15k

    One workflow or one agent, on your data.

  • Build

    4 to 5 days of build

    S$30k to S$40k

    A set of modules and agents around one part of the business.

  • Enterprise programme

    Months, in phases

    Around S$150k

    A full ERP programme, delivered phase by phase.

No per-user licence fees. You own the full source code of what we build.

Industries

Industries that use it

Industry pages bundle this module with the others each trade usually starts with. See all industries.

FAQ

Inventory and warehouse questions

Can it track stock across several warehouses, outlets or vans?

+
Yes. Every item has stock by location, with reserved, on order and free to sell shown separately. Transfers move stock between locations with a confirmation at the receiving end.

Do you handle batch numbers, serial numbers or expiry dates?

+
Where your items need it, yes. We build tracking for the items that need it and keep everything else simple, so staff are not asked for a batch number on a box of screws.

Our suppliers' delivery orders are on paper. How does receiving work?

+
Take a photo of the delivery order. The document intake agent reads it, matches it to the open PO and drafts the goods receipt with any short or extra items flagged. The storekeeper confirms the counts.

Can the agent move or adjust stock on its own?

+
No. By default, agents draft and a person approves. Transfers, adjustments and write-offs follow your approval matrix.

How are stock counts handled?

+
Cycle counts let you count a few items at a time. Differences become draft adjustments, and those above your limit go to the person you name before stock changes.

Which stock valuation method do you use?

+
The one your accountant works with, agreed in the phase plan before we build. Stock value and approved adjustments then post to finance, or to the accounting system you keep.

Can we start with inventory alone?

+
Yes. If missing stock or long counts are the pain, inventory can be the first phase. Purchasing and sales then join on the same records.

Add this to your first phase

Bring the inventory workflow that hurts most. In 30 minutes we show how it would run as an approval queue on sample data, and what a first phase would cost.