Inventory costing methods

inventory costing methods

Which are the most used inventory costing methods? Which inventory costing method is supported in ERP/MRP software solution? Should you use FIFO, LIFO, Average or Specific costing method in your ERP?

In practice, after you sell anything from your inventory, the cost of goods sold must be included in the period the sale has been made.

There are four main types of inventory costing methods:
1. Weighted average method
2. FIFO (First In First Out)
3. LIFO (Last In First Out)
4. Specific identification

In one of our previous blogs, we explained the differences between Weighted average and FIFO costing methods:
In this blog, we will go over each method.

Weighted average method

This is the most commonly used costing method. With this method, the average cost is assigned to each inventory piece when it’s sold throughout the year.

The average cost is calculated after each purchase with the next formula:
Average cost (purchase price) = Old inventory value + landing cost / Old inventory quantity + landing cost
Where the inventory value = purchase price + landing cost

The average cost contains your purchase price plus the shipping, handling, etc. (landing cost)

Susan has a bike store. She uses the weighted average method to run her inventory costs. If she purchases a bike on the 1st of March for $70, with $10 shipping, her average purchase price for the bike will be $80. On 9th of March, she purchases a bike from a different supplier for $50 and $10 shipping, her stock price will now be $70.
Purchase cost balance = $80 + $60 = $140, divided by 2 pcs = $70

weighted average inventory cost method

Upon making the sale, the $70 cost will be assigned to the bike:

weighted average costing method

As the inventory purchase price changes over time, so will the stock price (average purchase price). 
ERPAG uses a perpetual inventory costing method in inventory transactions, which means that it updates the stock price (weighted average price) after each purchase.

FIFO (First In First Out)

The FIFO method means that the inventory that is first physically acquired will be charged to expenses account. Therefore, for this reason, the inventory items that were first bought they are sold first as well, and the remaining stock items at the end of the period are those that were last purchased or manufactured.

The FIFO inventory method is actually based on the physical flow of inputs or inventories without taking into account the price of these inventories and whether these inventories will be consumed in that order.

Karen also has a bike store, and she purchased 4 bikes on Monday at $70 each, and she purchased 2 bikes on Tuesday at $75 each (Jesus Karen, always buy in bulk when you find a great deal!). Mike comes in and purchases a bike. Even though he bought a bike that Karen paid $75, she will assign the cost of $70, because she is calculating her inventory costing by FIFO method. Her inventory stock amount will be $360.

FIFO costing method

The result that will arise by applying this method, expressed through the amount of expense and inventory at the end of the period, depends on whether or not the cost of inventories increases.

If it is assumed that it’s a sale of finished products, the effects of applying the FIFO method will affect the amount of cost sold and the value of the inventory that will be in stock at the end of the period.

LIFO (Last In First Out)

The LIFO inventory method means that the last purchased inventory item is sold first, and the remaining stock items at the end of the period are those items that were first purchased or manufactured.

Same as with the FIFO method, the LIFO inventory method is based on the physical flow, the input, ie the inventory, regardless of the price level of these inventories and regardless of whether the inventories are actually consumed in that order.

In this case, Karen will sell to Mike the bike that she purchased for $75.

The result that will occur by applying the LIFO method expressed through the level of costs or expense and inventory at the end of the period, will depend on whether the cost of inventories increases or decreases.

Specific identification

This method is used when you can track individual items of your inventory. Whether it’s through the serial number, or a barcode, or a QR tag. If you can distinguish each item in your inventory, you can track the cost of each and one of them through an accounting system, or even a simple XLS table. The point of the specific identification method is to track the cost of each item sold.

If Susan shifts to this costing method and purchases bikes in June for $65, and for $70 in July and puts QR codes on each one of them. Upon each sale, she will be able to identify the cost of the sold bike.

This sounds like the best option to track the cost of your inventory, but it’s also very time-consuming method, and it’s more suitable for items of high-value. And since Susan & Karen are super busy bike-shop owners, they need to rely on FIFO or weighted average, or, at the last spot – LIFO costing 
method, if they want the procurement, inventory stocking, sales, and cost assignment to be done asap.

ERPAG as one of the ERP and MRP business software solutions offers Weighted average and FIFO as inventory costing methods. Due to opinion collision, we incorporated the 2 most used costing methods, and we give you a full ability to choose by which method you will run the warehouse. Once you assign it to your warehouse and start creating documents, we are stripping down that ability from you and tying your hands and you won’t be able to change the costing method anymore. So make a wise choice. At least, with ERPAG, you have such a possibility.



Raw material management system

Do you know what are raw materials and how to manage them properly? Do you know why this is important? Could you define what is the real cost and the estimated cost of manufacturing? 

The first step for using good raw material management is to have clear concepts related to it.

These are the most important concepts of raw material management:

Raw material: it is the product (unprocessed or partially or totally transformed, and in the case of sub-assemblies, processed products that are used in the manufacturing process of another product) that we acquire to sell it to the customer, in the form of raw materials in some cases and as a final product in other cases. The raw material is one of the most important expenses, hence the good management of it is essential for the real viability of the business.

Stock: is the amount of raw material we have stored in warehouses and other various locations enabled for that purpose. But not only that. The stock is money, money that we have invested in the purchase of raw materials and that we must manage in detail to turn it into sales and, therefore, into profits. Erpag gives you the opportunity to maintain your stock levels both of the raw materials and finished items by using the qty below minimum option:

Bill Of Materials: it is a blueprint that lists all items that need to be used in the manufacturing process, collects important information about each item (such as cost) and it lists the quantities that need to be used. On the list, you will also see the work operations and the labor cost.

multilevel bom

Consumption: the consumption of raw material refers to the total input of raw material from the warehouse into the production process, to manufacture the products that you are selling to your customers. When we talk about consumption, we include all types of consumption: both the one that ends up in manufacturing and that is eventually sold, like the one that goes to waste, returns and mysterious disappearances... It is very important not to confuse the purchase of raw material with consumption. Raw material consumption evolves according to sales (the logic is that purchases also do so) and serves to measure the result of the decisions you make in your company. Consumption management reports in terms of the consumption value of a period and is analyzed from two perspectives: Real and Estimated.

Inventory: the inventory is the reflection of the current stock levels in your company, which corresponds to the specific moment in which you do the raw material count. Knowing the valued stock of the product in your company is essential to know the consumption and, at the same time, adjust the orders and manufacturing. The task of stocktakings must be periodic, in order to compare the data. You don’t always have to do stocktakings of your entire inventory, you can do it by a certain category of products, certain warehouse (if you have multiple locations), you might want to focus on the control of only a certain number of items and to the stocktakings only for them… and you can also choose a certain time period for this, for example monthly, with more frequent inventories, yearly for the total inventory, etc. To read more on how stocktakings work in Erpag, please go to the following link:

Cost: cost is the relationship between two variables. The real cost of manufacturing and the estimated cost of manufacturing.

The real cost is the amount of raw material that has been consumed in a given period and is calculated - as we have seen on more than one occasion - by means of the formula (Initial Inventory + Purchases - Final Inventory) / Sales. The Real Cost is what it has been while the Theoretical Cost is what it should have been. Therefore, the more the Real Cost of Theoretical Cost moves away, the less benefit you will get and the more you will have to work for the profitability to be established.

The estimated cost is the product cost that would be achieved if the bills of materials were followed strictly. It is calculated using the formula raw materials cost + (work operation cost per hour * hours of labor) = estimated cost. The difference between estimated Cost and Real Cost is money you stop earning. The estimated cost will change depending on how three variables change in the bill of materials change: what the product costs you, the work operations cost and the labor included. The real cost will aim to follow that, but the specific work orders will vary from case to case.

Erpag will give you both of these calculations automatically, and you will be able to compare them. This will enable you to identify when and why your manufacturing processes are costing more than it is foreseen so you will be able to address the problem and avoid similar loses in the future.

Raw material purchase management: every time that a customer orders a certain item, Erpag will automatically compare the demand to the stock levels and trigger the back-ordering option to let you know whether you need to go into production in order to fulfill the sales order, or you are lacking in raw materials, so you need to order them from your supplier. This will all be listed in separate fulfillment lists, and you will be able to create work orders/purchase orders in one click.  To read detailly about this option, refer to the following link:


QuickBooks Online & ERPAG Sync Errors 

quick books error

Which are the common error messages you get when you sync the documents from your ERP software with QBO? How to solve errors between MRP and QBO sync?

1. Introduction

The emergence of cloud computing and, in particular, the Application Programming Interface (API), has made great strides in linking diverse applications. Application users imagine that the process is simple and that only one "click" is enough and the data will be synchronized, something like receiving and sending an e-mail. But in practice, there are problems from the technical side that are completely incomprehensible and frustrating to the users.

Apart from the inaccessibility of the service, the most common problems are related to so-called "Dirty data". By "dirty data" we do not consider anything bad, the data from one system being sent to another system does not satisfy the logical control of the database entry.


In ERPAG, the "SKU" must be unique, while the item name can be repeated. When entering data in ERPAG, it will be allowed to enter it with the same name (eg SKU: 00155 Name: Small Bolt and SKU: 00156 Name: Small Bolt). From our point of system identification and functioning, the name of the product is not relevant.

With QuickBooks Online (QBO), the situation is different, as it will not allow the manual entry of a new item if the identical name is previously entered, so it will not allow even an API entry. From the point of view of QuickBooks Online, this is "dirty information".

In this text, we will describe the most common mistakes, problems with synchronization, and how to solve them.

In ERPAG by "clicking" on the info icon you can see the error message on each document.

QBO sync statuses

The solution depends solely on the error message description.

In this text we will focus on API errors, while the other QBO integration information can be viewed on the following links to our blog:

2. Online Status


Every online service has its own "downtime", a time when it is unavailable. The reasons for the unavailability of the service may vary, from some error through security to regular maintenance and system updates. In most cases, ERPAG initiates synchronization so that the operator does not know if the QuickBooks Online services are available, and only when synchronization is activated an error occurs.

Error Descriptions:

The service is temporarily unavailable.

An error occurred on the server while processing the request. Resubmit request once; if it persists, contact developer support.


Whether the QuickBooks services are available you can check on these two official Intuit links:

QBO website error

When the service is normalized and working, start the synchronization again.

3. The item name (description) already exists


In the introduction of this text, we provided an example of "dirty data". In ERPAG, the identification is SKU, while QuickBooks Online uses the item description (the reason is the most likely that QBO can function without SKU numbers). So there is no verification of duplicate names in ERPAG, while this verification is embedded in QBO.

Error Description:

The name supplied already exists. : Another product or service is already using this name. Please use a different name.


The primary solution would be to import the whole QBO codebook through an Excel file before the first synchronization, after exporting the product and service list from ERPAG.

QBO Product list

The system will then execute the logical control of the entered items.

If this is not possible, one of the solutions is to change the name in QBO (for example, add a suffix).

QBO product information

ERPAG connects an item according to the SKU data, during the next synchronization, it will be newly created with the "unique" name.

4. The customer and supplier (vendor) have the same name


QuickBooks Online does not allow the supplier, customer or employee to have the same name.
In practice, it happens that at some point the buyer is also our supplier. This is a fairly common case in some European countries, as national accounting standards require that when a customer returns goods, this transaction must be entered as a new input of goods, Instead of voiding sales orders, we need to make a purchase order.

Error Description:

Another customer, vendor or employee is already using this name. Please use a different name.


Since there is no code/key (as there is an SKU in the item) in the QBO list of the customers and suppliers, the search is done first via "Display name" and then through the "Company name", and if the data is not found, then a new customer or supplier is automatically created.

QBO partner information

In order to solve this problem, we need to manually open the Customer or Supplier (Vendor) in QBO, where "Display name as" will be unique (eg we can add a suffix) and such a name cannot exist in ERPAG. "Company" information must be identical to the one in ERPAG.

Example (top picture):

When we activate synchronization from ERPAG, the application will search first for the "Acme Ltd" in "Display name", and after it has not been found it will search through "Company", since this information is identical, the invoice will be created for this customer.


When ERPAG automatically opens a customer or supplier, the "Company" and "Display name as" data are identical.

5. The administrator locked the books


When the accounting period ends, administrators have a good practice to "close the books" with the appropriate date. This way, they prevent the documents from being accidentally inserted into the finished period.

Error Descriptions:

The account period has been closed.

The account period has been closed and account books can not be updated through the QBO Services API. Please use the QBO website to make these changes


The first question is whether this document should really be booked under that date?

If it doesn't need (and it will be posted under another given) in ERPAG, through the "bulk" action, we can change the status to "ignore"

ERPAG QBO sync statuses

While we create it manually in the QuickBooks Online with the wanted date.

If it is necessary to enter the documents into business books with that date (the administrator or accountant must decide), then it is necessary to "unlock" the books in QBO.

unlocking the books in QBO


"Closing the books" is probably done for a particular reason, so please always consult with your administrator or bookkeeper.

6. The transaction is made later of the date of inventory tracking


When manually opening a new item (or XLS import), a date is added which is later than the transaction date.

This can happen when the dates between the sales and purchase order are different (for example, we synchronized the purchase order one month after Sales order).

Example: An item is opened (as in the picture) where "As of date" is 13th of June 2019.

QBO Set product date

While we are trying to synchronize the document from 11th of June 2019.

QBO and ERPAG document sync

Error Description:

Transactions with inventory (QOH) products can’t be dated earlier than the Inventory Start Date for the product.


In QuickBooks Online, for that item, you need to set the proper date, like it's pictured below.

QBO Adjust starting value
QBO inventory starting value

7. Duplicate Document Number


When opening the QuickBooks Online database, there are already predefined values. One of the default values is a warning (ie a ban on the API call) if we try to enter a new document (for example, invoice) and there is already a document with an identical number in the database.

We will not go into the reasons why it was done in QBO, although ERPAGs document numbers are mostly unique as well. In case of Splitting, Voiding or Return of Goods, the newly created document retains a unique number. Then there is a problem with synchronization.

Error Description:

Duplicate Document Number Error: You must specify a different number. This number has already been used.


In QuickBooks Online, in the Company settings, turn off the parameters as shown in the pictures below.

duplicate number options in quick books
duplicate document number in quick books online

There is another solution considering the voided documents - to change the status to 'ignored' through the bulk action.

QBO and ERPAG sync voided documents

And then void the document in the QBO.

voiding documents in QBO

Note: Void options are a little bit advanced, so we advise to contact your Administrator or Accountant before proceeding with such action.

8. Business Validation Error


In order to work faster, data is often sent asynchronous, i.e. the order of sending data does not have to correspond to the order of receipt.


We sent a request to open a new supplier and then a Bill document related to that partner. Bill came first to the server (ie to the database). Since the data has not yet arrived (or it's not already entered in the database), the document is not valid because there is no supplier in the database.

Error Description:

BadRequest inner Validation Exception was thrown. Details: Business Validation Error: Error occurred when setting up Styles due to parallel requests.


Simply run the synchronization again in a few moments.