Every unit costed, every movement in the ledger, GL and stock reconciled
Multi-location perpetual inventory with four costing methods, cost-layer tracking, and every movement posting FX-correct entries to the ledger.
Everything Products & Inventory handles
Products and variants, your way
Full product CRUD with hierarchical categories, barcodes, and reorder points; each product sets its own costing method, and variants carry their own codes and stock — SKUs stored exactly as typed.
Multi-location, strategy-based costing
Stock tracks on-hand, reserved, allocated, and available per location, and a costing engine routes each movement to weighted-average, FIFO, standard (with variance), or specific costing.
Actual-cost COGS, posted atomically
Issuing stock consumes cost layers and posts the engine’s actual consumed cost — not an estimate — in one atomic unit, rolling back and restoring on-hand on any failure.
FX-correct with a fail-closed guard
Receipts translate to base currency at the receipt-date rate, and a foreign issue with no base-currency cost is refused rather than booked at a raw foreign amount.
Cost layers and landed cost
Every receipt creates an auditable cost layer; freight, customs, and insurance allocate by value, quantity, or weight with a double-count guard, and layer shortfalls surface as warnings.
Serial, batch, and reconciliation
Real serial-number and batch tracking, plus a reconciliation control that compares the GL inventory leg, the cost-layer subledger, and stock-level value and flags any drift.
From action to ledger, in four steps
- 1Receive
A goods receipt creates a cost layer at the base-currency cost, updates on-hand and average cost, and posts inventory against GR-IR clearing.
- 2Reserve
Sales orders reserve stock — persisted, so ship or cancel finds it later.
- 3Issue
Issuing consumes cost layers by the product’s method and computes actual COGS, posted atomically with a period guard.
- 4Reconcile
The reconciliation control checks GL inventory against the cost-layer subledger and stock value, surfacing any drift.
Real screens, real data
COGS that ties to the subledger
The inventory GL path was hardened through a dedicated audit — reservations persist, adjustments post, COGS is the actual consumed-layer cost, and a reconciliation control now guards any residual drift between the ledger and physical valuation.
What you get
- Inventory value in the GL reflects actual consumed cost, not estimates.
- Foreign-currency purchases and issues cost and post in base currency correctly.
- Drift between ledger and physical stock is detectable via a built-in control.
- Multi-location, serial, and batch tracking with cost layers gives a full audit trail.
- Failures fail closed rather than silently corrupting the books.
Frequently asked questions
Does LedgerQ compute COGS automatically?
Yes. Issuing stock consumes cost layers and posts the engine’s actual consumed cost — not an estimate — in one atomic unit, rolling back and restoring on-hand on any failure.
Which costing methods are supported?
Weighted-average, FIFO, standard (with variance), and specific costing. Each product sets its own method, and the costing engine routes every movement accordingly across locations.
How are foreign-currency purchases costed?
Receipts translate to base currency at the receipt-date rate, and a foreign issue with no base-currency cost is refused rather than booked at a raw foreign amount — it fails closed rather than corrupting the books.
How do I know the GL and physical stock agree?
A reconciliation control compares the GL inventory leg, the cost-layer subledger, and stock-level value, and flags any drift between the ledger and physical valuation.