The stock ledger, product by product
For every product: the opening balance, each movement with its running balance, total receipts, total issues and the closing balance. The opening balance is the exact sum of every movement before the first day, so opening + receipts − issues = closing is checked and shown on every report.
Every filter you need
Today, this or last month, quarter, this or last year, 30 or 90 days, or free dates; warehouses with or without their sub-warehouses; product categories with or without sub-categories; products; lot or serial number. Group by product, product and warehouse, category or lot, and save the view as a report.
An Excel file that recalculates
The running balance of each line is a formula, product totals are SUBTOTALs, the grand total a SUBTOTAL of the whole column, the closing a SUM of the ending balances. Change a quantity in the workbook and everything follows. Coloured product cards, frozen title rows, auto-filter. PDF and CSV too.
Balance at any date, and its value
The stock of every product and warehouse at any date, replayed from the movements, valued at the weighted average cost, the last purchase price before that date or the price of each movement, with the gap to today's level. Freeze it as a dated snapshot.
Flows by family
Purchases, sales, production, transfers, inventories, returns, breakage: editable families and rules classify every movement the moment Dolibarr records it. A movement no rule recognises stays unclassified and listed — it is never forced into a family.
Closed periods stay closed
Monthly periods signed by the storekeeper, the logistics manager, the controller or management; closing freezes the balance. A movement dated in a closed period and recorded afterwards is caught at once — or refused, if you choose — and must be reviewed: justified, corrected or accepted.
The ledger checked against Dolibarr
For every product and warehouse, the sum of all movements is compared with the stock level Dolibarr keeps, and every gap gets its cause: level edited without a movement, stock with no movement behind it, deleted warehouse, rounding. Each gap is followed until corrected or accepted.
The life of every lot
Where a lot came from, the warehouses it went through, where it left to, its balance after each movement, what is left and its use-by date; lots in stock sorted by expiry.
Alerts that are raised once
Eight kinds of rules: negative stock, receipt without price, large adjustment (transfers are recognised and left out), dormant stock, late recording, reconciliation gap, below the alert threshold, expired lot. An alert is raised once; an ignored alert does not come back; a justification on the movement resolves it.
Reports sent on time, honestly
A saved report e-mailed every day, week, month, quarter or month-end, as Excel, PDF or CSV. When e-mail is off — in the module or in Dolibarr — the delivery is queued and never counted as sent. Every export is kept and downloads again byte for byte.
Dashboard, 52 reports, REST API
Nine watch tiles, stock level and value, the current month, twelve months of flows; 52 reports in eight families with chart, table and CSV; a Ledger button on Dolibarr's product and warehouse cards; warehouse groups; a 34-route REST API; five languages.
A demo a stock controller would believe
One click installs the stock of an industrial supplies distributor: 14 categories, a site with its sub-warehouses, 40 products, fourteen months of movements with lots used first-in first-out, transfers that always balance, production, inventories, returns and breakage — and only the gaps planted on purpose. One click removes exactly that, and nothing of yours.