Skip to main content

Cost price methods

Since EVA knows all about your stock, including but not limited to, purchase order status, shipment status, sales status, and unit cost, EVA's able to conduct real-time stock valuations. A single source of truth that consists of all the ingredients needed for accurate stock valuations.

Using EVA, stock valuations and unit costs can be calculated and determined using four different methods:

  • Manual
  • Weighted Average Costs (WAC)
  • Last in First Out (LIFO)
  • First In First Out (FIFO) - see also FIFO

You can choose a cost price method via the Admin Suite Organizations module, Organizations chapter, Financial tab, and then under the Edit basic information card you can select the desired Cost price method.


The value of your stock is determined by the values contained in your price list of usage type “cost price”. The cost prices stated in that price list is what determines your stock value. A sort of hard coding your stock's unit cost.

This is the default method, find out more on how Eva recognizes prices and how to create Price lists.

Weighted average cost (WAC)

The value of your stock is determined by combing your existing cost price(s) with newer cost prices as new purchase orders are brought in, deriving a new cost price with each confirmed and shipped purchase order by means of a weighted average. Against all other existing and available (confirmed, shipped and in stock) purchase orders.

Below is an illustration of what a WAC stock valuation would look like:

  • Assume a warehouse with 90 units on hand for a given product, and we purchased those for €10 a piece.
  • The value of this stock is then €900 which is 90 x €10.
  • We buy 50 more for €15 a piece. The value is then €750
  • We now have 140 pieces in stock.
  • The WAC for the product will be (€900 + €750) / 140 = €11.79. The unit cost of the product will be updated to €11.79 which means that going forward, upon any future sales transaction for this product, the unit cost would be €11.79.
  • The “cost price” price list is now updated with the new derived WAC unit cost and the value of stock held by the organization unit(s) using that price list would automatically be re-evaluated based on the new unit cost.
  • In the above example, the old stock value was 90 x €10 = €900, and the new stock value will be 140 x €11.79 = €1650.60.

For in-transit stock (stock label Transit) the WAC of inventory will be revaluated once such in-transit stock is shipped.

Last In First Out (LIFO)

Selecting this method will take the latest known (last in) purchase order price of a product still in stock in the organization unit and accordingly update the unit cost of that product.

Once the available stock from that purchase order is fully consumed, the tagged unit cost price would then be derived from the next latest (next most recent) purchase order available (confirmed, shipped and in stock), and so forth.

First In First Out (FIFO)

Selecting this method will take the oldest available (first in) purchase order price of a product still in stock in the organization unit and accordingly update the unit cost of that product.

Once the available stock from that purchase order is fully consumed the tagged unit cost price would then be derived from the next oldest purchase order available (confirmed, shipped and in stock), and so forth.

Concepts for cost price methods

To put things into perspective, here we cover some concepts as to how EVA behaves when it comes to cost price methods and stock valuation.

Unit cost concept

No matter which “cost price method” you use, keep in mind that:

  • EVA determines the unit cost from the respective purchase order(s) during a sales transaction.
  • The unit cost updates take place on the “cost price” price list of an organization unit, meaning that the unit cost of a product is updated for every organization unit that uses that same “cost price” price list. For this reason, if you want automatic unit cost calculations to take place, then it would make sense to set the “cost price method” on the warehouse organization unit(s) as this is usually the organization unit initially receiving the stock from an external supplier.

Purchase order concept

Any purchase order in EVA involves four steps:

• Creation of a purchase order • Confirmation of the purchase order by the supplier • Shipment of the goods • Receiving the goods

All steps have financial consequences, except “Creation of a purchase order”.

Creation of the purchase order

When a purchase order is created, EVA expects a product, a quantity, and a purchase price. The purchase prices can be a manual user input, pushed in through an API, or fetched from a supplier's purchase price list. Next to that, EVA needs to know the involved organization units (a supplier and a receiving party). EVA further handles requested delivery dates to determine availability, supply and demand logic, order references, and product line references.

The creation of an order doesn’t have any financial consequences.


Product lines can have different delivery dates within a single purchase order.

Confirmation of the purchase order

The confirmation of a purchase order is when product lines to be ordered is finalized and the quantity, price, and requested delivery date are set. After that, a purchase order can still be modified but only if a supplier can handle such updates and EVA exports the purchase order content again (via API). The purchase order confirmation will hold the unit price which EVA will then refer to when performing unit cost or stock valuation calculations.

Shipment of Goods

EVA expects a shipment confirmation once the supplier/warehouse sends the ordered product lines on their respective delivery dates. A confirmed shipment creates a packing slip in EVA, which is then used by the receiving party organization unit to record the goods in their books.

The moment shipment is done, EVA automatically assumes a transfer of ownership of the involved shipped product lines. Once ownership is transferred, EVA uses the unit prices of those product lines when conducting a valuation using the respective valuation method. An entry for the amount (quantity x unit price) on the receiving party organization unit side is booked as in-transit. The quantities also receive a transit stock label. From this process, EVA generates financial events, which are processed in the EVA cookbook and set up via recipes.

Over shipment

EVA will use the unit cost from the order confirmation to set the respective value in case of over shipment. This could also be accompanied by the proper financial events using cookbooks and recipes.

Under shipment

In case of under shipment, EVA will treat the received quantity as “sellable” stock clearing out the transit stock and raising the necessary financial event(s). The balance value (not shipped) will be treated as a correction to the stock value.

Receiving the goods

Once the goods are received, EVA booking converts the stock labels from Transit to Sellable stock. If set up in your cookbooks and recipes, this process could also trigger respective financial events and further stock mutation events (if any). One entry could be to clear out the transit accounts and another to increase assets (stocks) with a sellable label. EVA will hold the values of the stock received in a ledger per purchase order to determine the unit cost once a sales transaction is performed. The way unit costs are calculated will certainly differ based on the chosen cost price method.

Sales orders

With a sales transaction, under a FIFO method valuation (as an example), EVA will use the sold product line unit cost which is on the oldest (first in) non-consumed and confirmed purchase order. Further, EVA can generate the necessary financial events based on cookbook setup and underlying recipes. This will differ based on the chosen cost price method.

Invoices and disputes

When a supplier invoice is booked, EVA will match the invoices against the shipments of the related supplier. This will raise respective financial events for bookkeeping purposes. Regarding line disputes (price or quantity differences), EVA will automatically correct the values related to these shipments, accompanied by the necessary financial events (if set up). In scenarios where sales were already linked to this purchase order, EVA can then raise other necessary financial events to correct the respective accounts and/or stock mutations.

No known “cost price method”

A scenario can arise where a sellable stock exists with no linked value, i.e. it had no tagged purchase order at time of sales. If there are other known purchase orders, for the same organization unit which included the same product, a value would then be derived from that purchase order. If not, EVA will fall back to a value of zero.

Intercompany trade

In the case of intercompany trade, EVA uses the sales price of the selling party as the unit cost and stock value, thus the receiving organization unit calculates the stock value based on that unit cost. In this process, necessary financial events can be set up to account for the COGS and stock mutations on the selling party side, and the stock mutations and stock received events on the receiving party side.

Intercompany trade adheres to the same concepts of purchase order and shipment where goods will be booked in transit the moment the selling party ships the goods. Please refer to Shipment of Goods for more.

Currency conversion

If the goods are bought in a different currency, EVA does the currency conversion to calculate the stock value on the moment ownership is transferred (shipment is made).

Overwriting unit cost

If for any reason an incorrect cost price was picked up, you can use the service CorrectProductCostPriceLedgers to regularize such occurrences. The service requires a ID and a new UnitCost. The ID here refers to an ID from ListProductCostPriceLedger.


Running the service CorrectProductCostPriceLedgers would correct the unit cost for both sold and non-sold items with necessary financial events.