Track every ONU, router, cable spool, and SFP from purchase order to customer premise. Multi-warehouse, vehicle stock, contract-linked reservations, AI-scanned supplier invoices. Where equipment goes, the ledger knows.
An ONU arrives at the warehouse. A technician collects it for a Tuesday installation. The customer cancels Monday morning. The technician doesn't know yet, drives out anyway, brings the ONU home, plans to return it Wednesday. Wednesday becomes Friday. Friday becomes "where's that ONU we received six weeks ago?" The supplier invoice for it is paid; the customer who would have used it never existed; the warehouse believes it's still on its shelf.
Multiply this across thousands of devices, multiple warehouses, vehicle stock, supplier invoices, RMA flows, and field returns. Generic ERPs treat inventory as a SKU count; ISP operations treat each ONU as a serial-numbered asset that may be in transit, on a shelf, in a vehicle, in a customer's house, or in a damaged-return queue. The difference between those states is whether you can bill, whether you owe a refund, whether you're committing fraud against the supplier.
Each layer corresponds to a real state an asset can be in. Confusing two of them caused the problem above.
Purchase orders flow through draft, approval, and receipt stages. Goods Received Notes (GRN) reconcile against the PO with discrepancy flagging. Aelita's Smart GRN scanner parses photographed supplier invoices and pre-fills the GRN, highlighting line-item mismatches. A three-way match holds purchase order, supplier invoice, and goods actually received against each other — so you never pay for more than you ordered, or more than physically arrived.
Multiple physical warehouses with bin-level location tracking. Vehicle stock for field crews; equipment carried on a truck is its own stock location with its own balance. Stock transfers between warehouses tracked with dispatch and receipt confirmation. Costing is moving average by default; where FIFO is selected in the settings, receipts become cost lots that issues consume oldest first.
Inventory opens on a Store Board built for the storeman: a large item search first, then the work waiting for the store. A manager can be limited to the stores their team runs, and then works only in their own store.
Each serial-numbered device has its own lifecycle: received, reserved, dispatched, installed, recovered, returned. The same serial cannot be in two places at once. Lost devices show up immediately because their last-known location stays on the dispatch record until reconciled.
Staff can reserve equipment from a specific warehouse against a contract, work order, quote or sales order, by serial number for tracked devices; a reservation is refused when the stock is not available. It holds the stock until it is fulfilled, released or expires. Confirming a sales order reserves its lines, and cancelling or completing it releases them; by default a reservation is fulfilled when matching stock is issued.
Damaged or faulty equipment enters an RMA queue. The supplier's warranty terms are tracked per device; eligible items are routed for replacement claims. Each RMA has its own lifecycle (raised, shipped, replacement received, closed) so the warehouse always knows whether a missing item is "lost" or "with the supplier."
Cyclic stocktake schedules per warehouse with variance reporting. Low-stock alerts per device class with configurable thresholds. Supplier-side reconciliation: the items the supplier shows as shipped vs the items we received and confirmed.
Reorder suggestions are generated on demand: a manager presses Generate and each stocked item at or below its reorder level gets a suggestion with the current quantity, a suggested order quantity, and a priority; days of stock remaining appears once daily usage has been recorded. Accept one and a draft purchase order is raised automatically; reject it if a delivery is already inbound.
Sell equipment to customers as a one-time hardware purchase — routers, mesh nodes, spare ONUs — without bending the recurring-billing model around it. A sales order moves from confirmed to picking to shipped, and at the picking stage the warehouse gets a guided picklist: what to pull, from which bin, in priority order, with serial numbers captured as each unit is picked.
Group items that always move together. An assembly consumes its components when built and becomes a single stocked unit; a bundle keeps components separate but sells as one line. For consumables and materials where the lot matters — cable reels, items with certificates or expiry dates — batch tracking records manufacture and expiry dates, quality status, and the supplier’s batch reference, with days left and an expiring-in-30-days filter on the batch list.
Every field technician carries their own virtual warehouse. Issuing stock to a crew is a handover the technician must confirm with two-factor verification before it counts as received — so a device is never “in the van” on trust alone. Going the other way, a collection request drives the retrieval of equipment from a customer at cancellation, upgrade, relocation, or fault, tracking the expected count against what actually came back.
Capture supplier invoices manually or let the AI invoice scanner read a photo or PDF — it extracts supplier, invoice number, date, line items, and totals with a confidence score, then suggests the matching purchase order. Record payments against each invoice, link bank transactions to mark bills paid automatically, and batch-tag invoice lines to the right accounting expense type. It is far more than OCR: the whole bill-to-payment trail lives in one place.
After goods are received, a guided putaway queue tells warehouse staff exactly where to store each item, using the preferred bins you configure per item. A barcode scanner identifies whatever it reads — serial number, MAC, item code, and status — so a device is recognised in seconds. And labels print one at a time or in bulk, so every serial and item leaves the dock tagged.
A manager who runs one store loads that store’s items and opening stock from a CSV file: the file is checked in full before anything is written, opening stock is booked once, and a file holds up to 300 rows. People who run every store can convert existing ERP products into trackable inventory items from the same import page.
Four exportable reports the warehouse and finance teams pull on demand instead of building their own spreadsheet. Stock on Hand shows current quantities as they stand right now; Inventory Valuation prices that stock out for the balance sheet; Movement History gives a full audit trail of everything that moved in or out and when; the Reorder Report lists exactly what needs buying before it runs out. Every one of them filters by warehouse, so a site manager can pull their own numbers without wading through the whole network's.
The module includes an approval engine: sign-off rules with a value threshold and one or more levels, approve, reject and escalate, a delegate while a manager is away, a history of every step, and a pending-approvals queue per manager. It is not connected to purchase orders, RMAs or sales orders, so nothing is routed to it; a purchase order is approved by the PO approval right alone.
The old way. End of month. Two warehouse staff with clipboards walk every aisle, count every device class, write the totals, then someone types them into a spreadsheet and reconciles against an export from the billing system. Variances are investigated by emailing the field teams to ask whether anyone took something out and forgot to log it. The whole exercise eats a full Friday and most of Saturday morning.
What ISPCQ does. The cyclic stocktake schedule runs Tuesday and Thursday for the high-turnover device classes (ONUs, splitters), Friday for the rest. Staff scan barcodes against the running expected list; variances surface in real time. Vehicle stock auto-includes whatever was last logged from each crew's mobile device. Supplier-side reconciliation flags any "received" GRN that hasn't been confirmed as physically present.
The result. Friday afternoon stocktake takes 90 minutes. Variances under 1% of stock value, and the variances that exist are explainable (almost always: a vehicle that was off-route during the count window). The first month-end after switching, finance reduced the inventory write-off by enough to cover six months of ISPCQ licensing.