Understanding double-entry stock management¶
To illustrate this concept of stock management, see how stock moves are generated by the following operations:
- Receiving products from a supplier,
- Delivery to a customer,
- Inventory operation for lost materials,
- Manufacturing.
The structure of stock locations is shown by the figure Stores location structure when Open ERP has just been installed. Stocks are assumed to be totally empty and no operation is in progress nor planned.
If you order ‘30 bicycles’ from a supplier, Open ERP will then do the following operations after the receipt of the products:
| Location | Products |
|---|---|
| Partner Locations > Suppliers > Suppliers | -30 bicycles |
| Physical Locations > Tiny SPRL > Stock | +30 bicycles |
If you deliver 2 bicycles to a European customer you will get the following transactions for the delivery:
| Location | Products |
|---|---|
| Physical Locations > Tiny SPRL > Stock | -2 bicycles |
| Partner Locations > Customers > European Customers | +2 bicycles |
When the two operations are complete you’ll then get the following stock in each location:
| Location | Products |
|---|---|
| Partner Locations > Suppliers > Suppliers | -30 bicycles |
| Physical Locations > Tiny SPRL > Stock | +28 bicycles |
| Partner Locations > Customers > European Customers | +2 bicycles |
So you can see that the sum of the stocks of a product in all the locations in Open ERP is always zero. In accounting you’d say that the sum of the debits is equal to the sum of the credits.
Partner locations (customers and suppliers) aren’t located under your company in the hierarchical structure, so their contents are not considered as part of your own stock. So if you look just at the physical locations inside your own company those two bicycles are no longer in your company. They’re not in your own physical stock but it’s still very useful to see them in your customer’s stock because that helps when you carry out detailed stock management analysis.
Note
Accounts
In managing stock, a gap between the data in the software and real quantities in stock is difficult to avoid. Double-entry stock management gives twice as many opportunities to find an error. If you forget two items of stock this error will automatically be reflected in the counterpart’s location.
You can make a comparison with accounting, where you’ll easily find an error because you can look for an anomaly in an account or in the counterparts: if there’s not enough in a bank account then that’s probably because someone’s forgotten to enter a customer’s invoice payment. You always know that the sum of debits must equal the sum of the credits in both accounting and Open ERP’s stock management.
In accounting, all documents lead to accounting entries that form the basis of management accounting. If you create invoices or code in statements of account, for example, the results of the operations are accounting entries on accounts. And it’s the same for stock management in Open ERP. All stock operations are carried out as simple stock moves. Whether you pack items, or manufacture them, or carry out a stock inventory operation, stock moves are carried out every time.
You’ve seen a fairly simple example of goods receipt and product delivery, but some operations are less obvious – a stock inventory operation, for example. An inventory operation is carried out when you compare the stock shown in software with real stock numbers counted in the stores.
In Open ERP, with its double-entry stock management, you’d use stock moves for this inventory operation. That helps you manage your stock traceability. If there are 26 Bicycles in real stock but Open ERP shows 28 in the system. You then have to reduce the number in Open ERP to 26. This reduction of 2 units is considered as a loss or destruction of products and the correction is carried out as in the following operation:
| Location | Products |
|---|---|
| Physical Locations > Tiny SPRL > Stock | -2 bicycles |
| Virtual Locations > Inventory Loss | +2 bicycles |
The product stock under consideration then becomes:
| Location | Products |
|---|---|
| Partner Locations > Suppliers > Suppliers | -30 bicycles |
| Physical Locations > Tiny SPRL > Stock | +26 bicycles |
| Partner Locations > Customers > European Customers | +2 bicycles |
| Virtual Locations > Inventory Loss | +2 bicycles |
This example shows one of the great advantages of this approach in terms of performance analysis. After a few months, you can just make a stock valuation of the location Virtual Locations > Inventory Loss to give you the value of the company’s stock losses in the given period.
Now see how the following manufacturing operation is structured in Open ERP. To make a bicycle you need two wheels and a frame. This means that there should be a reduction of two wheels and a frame from real stock and the addition of a bicycle there. The consumption / production is formalized by moving products out of and into physical stock. The stock operations for this are as follows:
| Location | Products | Step |
|---|---|---|
| Virtual Locations > Default Production | +2 Wheels | Consumption of raw materials |
| Physical Locations > Tiny SPRL > Stock | -2 Wheels | Consumption of raw materials |
| Virtual Locations > Default Production | +1 Frame | Consumption of raw materials |
| Physical Locations > Tiny SPRL > Stock | -1 Frame | Consumption of raw materials |
| Virtual Locations > Default Production | -1 Bicycle | Manufacture of finished products |
| Physical Locations > Tiny SPRL > Stock | +1 Bicycle | Manufacture of finished products |
So you’ve now got the outcome you need from the consumption of raw materials and the manufacture of finished products.
Note
Assessing created value
You might already have noticed a useful effect of this approach: if you do a stock valuation in the Default Production location you get a statement of value created by your company (as a negative amount). Stock valuation in any given location is calculated by multiplying quantities of products in stock by their cost. In this case the raw material value is deducted from the finished product value.

