Projects:Enhanced Inventory Accounting
This is a preliminary description of the enhanced inventory accounting made by Bonware. Current version of Openbravo ERP average costing does not take into account other costs than product price, and also the calculation of average cost is decoupled from the event that changes the average cost. The purpose of the additional functionality is to address these issues. In addition, this project specifies the needed posting entries to the ledgers. Actually, calculating the value of inventory and making the posting may be considered two separate functionalities.
There are two main reasons for this improvement. (1) law requires to keep track of the current assets (raw materials, semi-finished products, and finished products), (2) the firm is probably interested in knowing the value of its current assets.
Valuation priciples of current assets
According to law, many of the costs related to acquiring assets, are allowed to be included in the inventory value. These costs are usually purchase price of products, customs, and freight costs. One design aim of this functionality is to be able to handle easily all these kinds of costs.
The most used inventory valuation methods are FIFO, LIFO and average costing. This functionality implements only average costing, but makes it possible to add other valuation methods afterwards.
The average costing method goes as follows. Cost of product in inventory is changed only when a new shipments comes into the inventory. The new average cost is (quantity in inventory X previous average cost + incoming quantity X product costs) / (quantity in inventory + incoming quanntity). Every product is calculated separately.
Inventory cost calculation
Inputting the costs in Openbravo
First of all, the product settings specify which inventory valuation method is used for each product. This functionality only covers the method "average".
There are two types of costs that can be inputted in the system: fixed cost per order line, and cost percent of price. Fixed cost is inputted in currency and it the cost related to the purchase order line. This is usually ideal for setting freight costs.
Cost percent is inputted as a percentage value, and it specifies an additional cost as a percentage of the orderline amount. This is usually ideal for setting customs.
Added fields of this functionality are:
- Product category: Cost per order, Cost % of Price (screenshot 1)
- Product purchasing tab: Cost per order, Cost % of Price (screenshot 2)
- Purchase Order Line: Cost per order, Cost % of Price (screenshot 3)
When a new purchase order line is made, the two cost fields are automatically filled from the product purchasing tab. If the field is empty there, the value are got from product category. It is possible to change the values in purchase order line, or leave them as default values.
Calculated inventory costs
Also product costing tab has some adjustments (screenshot 4). The meaning of the fields are follow:
- Cost Type: the valuation method that is used in calculation of this line
- Starting and Ending Date: the time interval the values of this line are valid * Inbound Product Price: purchase price of the product
- Inbound Other Costs: all the other costs related to purchased goods (e.g. customs and freights)
- Outbound Product Price: price that is used when valuating products that are going out of the inventory. In the average costing method, this is the average cost value
- Outbound other costs: the other costs part are also calculated in the average costing method.
- Quantity: Quantity of products that came into the inventory.
- Total Movement Quantity: Total quantity of products in the inventory after this addition.
- Manual: User has manually inputted this line. This line is not destroyed, when doing the recalculation.
As in the current functionality, there will be a new line when products come into the inventory, because then the average cost value changes.
Calculating the inventory costs
When a purchase receipt is processed (= products are received in the inventory), the product costing tab is automatically updated, i.e. new line is added there.
Recalculating the inventory costs
A process can be launched in UI, which recalculates all the inventory costs from scratch. The process is applied to certain product or all the products.
Openbravo ERP may be introduced in an existing business, when there are products in the inventory. In that case a manual entry should be done in the product costing tab, to the Openbravo the beginning inventory valuation. If the costing entry is marked as manual, it is not removed in the recalculation process.
Additional modifications are needed for firms which convert products to others (use raw material to make finished products). This is because the raw materials disappear and the finished products appear through the production process - not in the material receipts and shipments. So the product costing calculation should be extended into production module.
Inventory value posting
The attached Excel documents sketches the posting in different situations. It is yet to determine, where the different accounts are stored (e.g. product or inventory settings, or accounting defaults).
Some addition description below:
As the material postings are done with estimates a difference account is used to follow the difference between the estimated and real cost.
- Incoming purchasing invoice can differ from already made postings based on purchasing order prices. Invoice may/may not contain freight costs.
- Purchase invoice do not have any effect into average unit costs.
- However possible differences between estimated purchase price and real one from purchase invoice have to be posted
- Management of material returns depends company policy. If returned items are changeable with units existing in inventory, posting can happen using current average cost.
- Often the case is that items are not changeable. Then process goes so, that first one have to create a new sales order for new item (like original, but used) and valuate the item accordingly. Then delivery will be made with negative quantities.
- Freight invoice can be independent and can contain several hauls. It means that freight costs are not possible to match directly to one purchasing event and product line. Using one account for freights it is possible to monitor differences between estimated freight costs and real ones in total.
Technical description of the functionality
- new function RECALCULATE_AVERAGE_COSTS: it deletes all the non-manual entries in the product costing tab, and fills them again by making the calculation from scratch. This function is applied for all the products or only one. Launched in the UI.
- new function CALCULATE_AVERAGE_COSTS: makes an incremental step in the calculation process: It calculates only one receipt line, and makes the needed insert in the product costing tab. This function is used by RECALCULATE_AVERAGE_COSTS.
- change in M_INOUT_POST function: a call to the CALCULATE_AVERAGE_COSTS is needed in the end to keep the product costing tab up to date.
- IFRS in Wikipedia
- Average costing in Wikipedia
- Modified version of GENERATE_AVERAGE_COSTS procedure 3465
- Issue 5084