A brief note about a new inventory accounting module

Today I uploaded a new module I think will be of interest to some: Inventory Accounting. It is currently in review.

Inventory management is a challenge for many small and medium sized businesses. For Dolibarr users, the challenge is compounded because there is no straightforward means of accounting for inventory and tracking cost of goods sold. This is important because:

              Income – Cost of Goods Sold = Gross Profit

Without Cost of Goods Sold, you are effectively flying blind as to a primary metric of success – product profitability.

Dolibarr relieves inventory in the products/services module when the sale is invoiced, but there is currently no mechanism for mapping inventory transactions into the accounting system (except for purchase receipts, which are processed as purchase journal entries).

The Inventory Accounting module addresses this problem by analyzing product movement activity of all types – which Dolibarr tracks very well in the Products/Services module. It then uses a snapshot of beginning inventory created by the Inventory Accounting system, stock movement history, and a standard accounting formula to calculate ending inventory values, as well as cost of goods sold, purchased price variance, production inputs and outputs, and inventory adjustments for the period. Then when validated, it creates a new snapshot for the next period and journal entries to bring all inventory related accounts up to date.

With improved inventory accounting, your accounting system can provide a clearer picture of inventory-related activity. As a result, you will have more insight into profitability and be positioned to make more informed decisions.

Want to know more? Email us at support@erpreimagined.com for a free white paper – and for the first ten requestors, a 10% discount coupon. You can also reply here if you have questions about it. Thanks.

hkwhitten

Gun Barrel City, Texas

Thanks for sharing this, @hkwhitten — good to see more tooling in the inventory accounting space.

A few questions that might help the community evaluate it: Does the module handle FIFO/WACC cost accounting for stock movements, or is it focused on the accounting journal side (mapping stock entries to chart of accounts)? And does it integrate with Dolibarr’s native Inventory Management module or does it operate independently?

The gap between Dolibarr’s physical stock tracking and its accounting representation (especially for multi-location setups) is one of the more common pain points I see with clients — so anything that bridges that cleanly is very welcome.

I’ve been working in a similar area (analytics and reporting on top of Dolibarr’s stock data), so curious to see how you’ve approached the accounting side.

— Ali — Dolibarr AI Consultant / SiliconBlaze.com

Hello, Mr.Ali - Thanks for writing. The app currently uses standard cost (the user defined cost_price field). It provides a utility program to set up those costs based on existing weighted average cost and other factors.

LIFO, FIFO and similar lot based approaches are a future addition. It currently costs all inventory at standard cost, lots or not. Weighted average costing is challenging for accounting purposes; for example historical comparisons, since it varies over time.

The Inventory Accounting module does integrate with Dolibarr’s native inventory module by tabulating all inventory movements for the period and providing journal entries to be applied at period close - the idea being, perpetual inventory is tracked in the Dolibarr inventory module, and summary transactions are created in the Inventory Accounting module to be posted at close to bring inventory adjustments, purchase price variance, production ins and outs, cost of goods sold, and of course inventory up to date at close.

Best wishes,

Holland Whitten

As an importer, we take possession of purchased goods when they are loaded onboard the ship overseas. For us, Landed Cost also includes ocean freight, duty and tariffs as well as domestic storage and handling States side.

I think these goods need to be posted to Inventory - goods in transit - on our balance sheet. When we deliver a shipment to the customer, accounting transactions relieve inventory accordingly.

Thinking this module may supply the necessary transactions.

Hello, HarveyM —

Thank you for the question. Based on the workflow you described, the Inventory Accounting module may help, but there are two separate pieces to consider: the Dolibarr stock movement and the accounting entry created from that movement.

For the stock movement, Dolibarr can be configured to increase inventory when a vendor invoice is validated. The setting is in the Stock/Warehouses module configuration: **“Increase real stocks on validation of vendor invoice/credit note.”**In an FOB shipping-point scenario, this can work if your operational practice is to enter and validate the vendor invoice at the point title passes — for example, when the goods are loaded onboard overseas. You would typically use a warehouse/location such as Goods in Transit so the quantity is visible separately from physically received domestic stock.

The Inventory Accounting module then uses Dolibarr’s stock movement history and standard cost to calculate inventory value, COGS, purchase price variance, and related period-close journal entries. The module currently uses standard cost via the product cost_price field, so landed cost can be represented by setting standard cost to include expected freight, duty, tariffs, and other normal import costs.

Where additional care is needed is actual landed-cost allocation. If ocean freight, tariffs, duties, demurrage, storage, or handling are billed separately from the original PO/product line, the current module would need an additional allocation step to associate those actual costs with the imported products or shipment. Otherwise, those differences would normally appear as variance rather than being automatically capitalized into the product cost.

For the outbound side, inventory can be relieved based on the Dolibarr workflow you choose — for example, on shipment validation or on customer invoice validation. If you are physically receiving and then shipping goods to customers, the shipment-based stock decrease may be the better operational match. If the goods are effectively sold without a separate shipment workflow, the customer-invoice stock decrease setting may be appropriate.

So the short answer is: yes, the module may support much of this workflow, provided the stock movement into a Goods in Transit warehouse is created at the title-transfer point and the standard cost reflects expected landed cost. If you need a separate balance-sheet account specifically for Inventory - Goods in Transit, we should confirm or configure the module’s account mapping for that warehouse/movement type. Separate actual landed-cost invoices would likely require an additional allocation process.

I appreciate your interest and hope this explanation is helpful to you.

Holland Whitten (holland@erpreimagined.com)