View source | Discuss this page | Page history | Printable version   

Costing Server

Back button.png   Back to Common Concepts & Processes



This document describes how the costing server process calculates the cost of the transactions booked in Openbravo.

The "Costing Server" process is the new "Costing Engine" process in charge of calculating the cost of the material transactions.

This process is used by the Costing Background Process as it searches for material or goods transactions such as "Goods Receipts" or "Goods Movements" for which its cost has not been calculated yet and get it calculated by using the "Costing Server" process.

Upgrading from previous releases

The Costing Server process is included in Openbravo 3 starting from MP13 as part of the new Openbravo costing engine.

Instances that upgrade from previous Openbravo releases can migrate their costs to the new costing engine. Costing migration is not mandatory but it is highly recommended.

You can find detailed information about the migration process in the Costing Migration Process document.

Costs Calculation

A cost is calculated for each material transaction by taking into account:

Note that costs are calculated in the Organization's currency.

The costing algorithm and the costing dimensions to use for calculating the cost of the products can be configured in a Costing Rule which needs to be assigned to a "legal entity" type organization.

It is possible to use different Costing Algorithms while calculating the cost:

Bulbgraph.png   Manufacturing cost calculation through the Costing Server process is not fully implemented yet. The cost of the products set to be used in production are always calculated using the "Average" costing algorithm, besides the cost is calculated at client level. All of that regardless the Costing Rule in use.

Since Openbravo 3.0 MP20 the Standard Algorithm has been modified to better support the Manufacturing Costs and it is not overwritten to use the Average algorithm, although there are some shortcomings yet to be resolved

Cost Calculation Methods

A default method is used to calculate the cost of a transaction which can be overwritten by the costing algorithm used.

Overall there are two methods of calculating costs, the first one applies to "input" transactions such as a "Goods Receipt" and the second one applies to "output" transactions such as a "Goods Shipment".

Input transactions

Input transactions can be cost calculated

The Default Cost method is used in those cases when it is not possible to get the price of a transaction for which its cost needs to be calculated.
This method takes into account:

  • If both values are available this method uses the newer one.
  • If none is available a "Not possible to calculate cost" error is thrown.
  • In case of calculating product costs by using an "Average" costing rule:
    • the average algorithm overrides the behavior of the "Default Cost" method prioritizing the use of the current "Average Cost" if any
      instead of using the product's price list or the standard cost of the product.

Input transactions are:

Output transactions

Output transactions are cost calculated depending on the costing algorithm used.
For instance:

Output transactions are:

Costs Review

Once costs are calculated are stored in the corresponding material transaction with the organization's currency and the costing algorithm used.
That cost is used by the Accounting Server and other processes and reports that uses the costs as a source of data.

There are several reports and windows where cost can be checked or can be used:

Retrieved from ""

This page has been accessed 23,669 times. This page was last modified on 29 September 2015, at 08:19. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.