Skip to end of metadata
Go to start of metadata

INTRODUCTION TO COSTING

To manage your costs effectively, you must understand the costs for all products you sell at a transaction level. These costs may also include non material costs such as freight, overhead, etc. This allows you to determine the actual cost associated with each product and therefore the profit that is recognized from its sale. It also allows you to accurately track the costs of those products you use internally.

Costing, when looked at removed from a real life business environment is straight forward. You order a product, receive it into your warehouse and get an invoice for it. There are no additional costs like freight or handling, and you do not receive any special discounts. Then you sell it. Real business life is somewhat different. You may sometimes receive the invoice for a product before you receive the product. The product may be sold before you have gotten the freight bill from the trucker. There may be special handling required and you want to include those costs. These and other factors can affect the accuracy of your costs.

The Costing functionality in Compiere is flexible and comprehensive. You can tailor it to meet your unique business needs. The detail and level of costs which you track is ultimately up to you. You can have multiple parallel costing methods. These can include Standard costs and Actual costs and they may be comprised of Material and non-Material costs.

An important issue to remember is that ultimately, the accuracy of any Costs will be due in great part to the time and effort spent capturing and allocating these costs. There may be instances where the effort to gather and allocate some costs (e.g. electricity usage) may outweigh the benefit of recording these costs.

COSTING INFRASTRUCTURE

To accurately associate Costs you must know for each product you received where it went. Compiere uses Product Attribute Instances to track these movements. Product Attributes were discussed in the Products Chapter. Using Product Attribute Instances like Serial Number and Lot Number, allows you to know which customer received which product. But all products do not require this type of explicit identification. For the purposes of Costing, Compiere creates and assigns an implicit Instance if no other one exists. When shipping products, if a specific instance is not selected (e.g. Lot or Serial Number) then an Instance is selected based on the Material Policy of LIFO (Last in first out) or FIFO (First in first out).

COSTING SETUP

As Costing can be defined on multiple levels and may encompass a number of automatically calculated and user assigned costs, it is best to plan what you will be tracking. However, like everything in Compiere, you can modify your costing definition at any time.

Cost Type

Cost Type allows you to distinguish different costs to track. These are user defined and may include Current, Future, History, etc. When defining your Accounting Schema(s) you will select a Cost Type.

To define a Cost Type open the Cost Type window from the Main Menu.


 
Enter a Name for this Cost Type.

Add a Description and Comment/Help if desired.

Select the Active check box to indicate that this Cost Type is Active.

Cost Element

Cost Elements allow you to define the different items that will comprise your costs. You can define any number of Cost Elements, keeping in mind that some will have to be manually maintained.

To define a Cost Element, open the Cost Element window from the Main Menu.


 
A number of Cost Elements are calculated by the system and should not be modified (other than to change the Name) once they are added. These include Average Invoice, Average PO, Last Invoice Price, Last PO Price, LIFO, and FIFO. Each has a Cost Element Type of Material (as it is associated with the movement of an item) and the associated Costing Method.

You can define any number of additional Cost Elements for tracking and associating costs such as overhead, resources, etc. To add a new Cost Element, click the 'Add New' button on the tool bar.

Enter a Name for this Cost Element.

Enter a Description if desired.

Select the Active check box to indicate that this Cost Element is active.

Select a Cost Element Type of Burden (M Overhead), Resource or Outside Planning to categorize this Cost Element.

Tenant

The Tenant defines the highest level of your Material Movement Policy. You may select a different method for a specific Product Category if necessary (this will be detailed later).

To modify a Tenant open the Tenant window from the Main Menu.


 
In the Material Policy field select either LIFO or FIFO.

Accounting Schema

In the Accounting Schema we previously defined the rules or parameters for posting documents and transactions. We will also define the Costing Method, Costing Type and Costing Level. Compiere will calculate all Material Cost Elements that you have defined but it is the Costing Method selected in the Accounting Schema that will be used when posting the accounting consequences for each document.

To modify an Accounting Schema open the Accounting Schema window from the Main Menu.


 
Select a Costing Method of LIFO, FIFO, Average Invoice, Average PO, Last Invoice Price, Last PO Price, or Standard. This can be different than the Material Policy selected in the Tenant window, but it must be compatible.

Select a Cost Type from those previously defined.

Select a Costing Level of Tenant, if costs should be maintained for the Tenant, Organization if separate costs should be maintained for each Organization or Batch/Lot if separate costs should be maintained for each unique Batch/Lot.

The remaining fields are discussed in the Performance Analysis Chapter.

Product Category

As mentioned previously you can define a different Material Policy for a specific Product Category. You may have a Material Policy of LIFO defined for the Tenant; you can specify that a certain Product Category which encompasses perishable items use a Material Policy of FIFO.

To modify a Product Category open the Product Category window from the Main Menu.


 
In the Product Category window, the Material Policy is set to FIFO. If desired it can be changed to LIFO.

The remaining fields are discussed in the Products Chapter.

If desired you can over-ride the Costing Method selected for the Accounting Schema for a Product Category.

To define a different Costing Method, select the Accounting Tab.

Here you can select a Costing Method and Costing Level to be used by any Product in this Product Category. If the Costing Method and Costing Level are the same as defined on the Accounting Schema, these fields should be left blank.

ASSIGNING ADDITIONAL COSTS

There are a number of additional costs you may want to include for specific products. This can include, but are not limited to Handling, Overhead and Acquisition Costs. These costs may be a fixed amount or a percentage of other costs. To use additional costs, they must first be defined as Cost Element.

Note: If Standard Costing is being used, then no additional Costs will be included in the Cost calculation for COGS. Standard Costing assumes that all additional Costs are already included.

As discussed above, to define a Cost Element open the Cost Element window from the Main Menu.

In this example we want to assign an additional handling to each instance of an Elm Tree to cover the costs of receiving the Tree.

Enter a Name and Description for this Cost Element.

Select the Active check box to indicate this Cost Element is Active.

Select the appropriate Cost Element Type, in this case Burden (M. Overhead).

Next, add this Cost Element to the Product. To do this, open the Product Cost window from the Main Menu.

In this example, Plum Tree is selected. To add the Handling cost to the Product Cost, move to the Product Costs tab.


 
To add Costs, select the New Record button from the tool bar.

Update the default values for Accounting Schema and Cost Type is necessary.

Select the Cost Element of 'Handling fee' that was defined earlier.

Select the Active check box to indicate this Product Cost is Active.

Enter either a Current Cost Price or Percent to be used for the Handling fee Cost. If you enter a Current Cost Price that amount is added to the other Costs to determine the final cost for each unit. If a Percent is entered, it is multiplied by the sum of all other costs and added to the other costs to determine the final cost.

For example, assume that the Costing Method is Average Invoice. The Plum Tree has a Cost Element of Average Invoice = 65.00 and an Acquisition Cost Element of 6.00.

A Handling Fee Cost Element is added for 10.00. The final cost would be 65.00 + 6.00 + 10.00 = 81.00

If a Handling Fee Cost Element is added for 10 percent, the final cost would be (65.00 + 6.00) * 1.10 = 78.10.

All Cost Prices are added before the Percent is applied.

UPDATING PRODUCT COSTS

Product Costs are updated when the matching transactions (Purchase Order -> Material Receipt and Material Receipt -> Vendor Invoice) are posted. It is required that matching be done for the costs to be calculated. It is also required that the Accounting Processor be running to update the Product Costs.

For additional information on Matching, refer to the Purchasing Chapter.

The current Costs for a Product along with the material transactions can be viewed in the Product Costs window. Costs cannot be maintained here (with the exception of Standard Costs) as they are system calculated.

We will walk through an example.

For the Product Douglas Fir there are no prior transactions.

The Costing Method is Average Invoice.

A Purchase Order is completed for 4 Trees with a price of 20.00 USD each.

A Material Receipt is completed (lines created from the PO so it is automatically matched). The Material Receipt and the PO -> MM matching record are posted.

To view the Product Costs for the Douglas fir, open the Product Cost window from the Main Menu.

The information displayed in the Select Product tab is a sub-set of the information defined in the Product window, Product tab. This tab is read only. If any updates are required to this information, it should be done in the Product window.

For additional information on Products, refer to the Products Chapter.

Select the Product Costs tab to view the Costs for the Douglas fir tree.

You will notice there are 6 costs for this product. This is because there were 6 Cost Elements that are calculated that were defined for this Cost Method.

After posting the Purchase Order and Material Receipt and the associated Matching transaction, the Current Cost Prices are updated for Average PO and Last PO Price. These values cannot be updated manually as they are System Calculated based on the documents entered.

The Current Cost Prices for FIFO, Average Invoice and Last Invoice will be updated when the Invoice and associated Matching transactions are posted.

One Cost Element that may be updated is Standard Costing. Click the data toggle button on the tool bar to switch to single record view for Standard Costing.

You may update the Current Cost Price and the Future Cost Price. This should be done if Standard Costing is the Costing Method defined for this Accounting Schema or Product Category.

Note: The Current Quantity and Accumulated Qty are System maintained and will be updated when the Invoice and associated matching transactions are posted.

Now an Invoice is created from the Material Receipt (again, matching is automatic). The Invoice amount is 76.00 (or 19.00 per tree). The Invoice and associated Matching Document are posted.

The Current Cost Price for Standard Costing has been set to the Average Invoice Current Cost Price. If a value had been entered (other than 0.00) the system would not update the Current Cost Price.

There are now Current Cost Prices for FIFO, Average Invoice and Last Invoice. These are different than the Current Cost Prices for Average PO and Last PO as the Invoice Price and PO prices were different.

A second PO has been created and posted for 3 more Douglas fir trees at 18.00 each.

A Material Receipt has been created from the PO and has been posted along with the associated Matching transaction.

A Vendor Invoice was generated from the Material Receipt for the 3 Douglas fir trees fro 18.00 each. The Vendor Invoice and associated Matching transactions have been posted.

The Current Cost Price for Standard Costing has not been updated.

The Current Cost Price for FIFO is 19.00 as the products first Invoiced at 19.00 each have not been shipped.

The Average PO Current Cost Price is 19.1429 ((20 * 4) + (18 * 3)/7).

The Average Invoice Current Cost Price is 19.5714 ((19 * 4) + (18 * 3)/7).

The Last Invoice and Last PO Current Cost Prices are 18.00.

Click on the Cost Details tab to see the records that are kept to calculate the Current Cost Prices.

Every Purchase Order and Invoice is listed along with the Price and Quantity. When the product is Shipped, Moved, Produced or Inventory is adjusted via Physical Inventory, these transactions will also be listed in this tab. All of them may have an impact on the Product Costing.

The Cost Queue tab displays the current Queue for a product in regards to LIFO or FIFO movement. To determine the Current Cost Price for a LIFO or Fifo Costing Method the movement must be tracked.

Click on the Cost Queue tab to see the current queue for the Douglas fir.

There are 2 records (corresponding to the 2 Vendor Invoices). If LIFO was also be used, there would be additional records.

In addition, notice the Current Quantity for the first Invoice (Attribute Set Instance 10000007) is now 2. That is because the Material Movement Policy is FIFO (First in first out). However, when the Shipment Posts the amount posted to COGS is 18.57 * 2 as the Costing Method is Average Invoice and the Average Invoice Current Cost Price is 18.57.

The Costing (old) tab is for reference only and will be eliminated in a future release.

Considerations for Costing at Batch/Lot Level

Compiere uses attributes set instances for costing. If one is not assigned by the user (via an attributes set) in the PO or Material Receipt one is assigned by the system. This will give the expected results if all products uses attribute set instances. If, however, you have a mixed inventory (some products tracked by lots or serial numbers and others not), each Material Receipt for products not assigned an attribute set instances will be assigned one and therefore have its own costing records created. If you have a mixed inventory as described an option is to define the Costing Level on the Accounting Schema as Tenant or Organization and set up a Product Category for those products which are using lot or serial number and assign a Costing Level of Lot/Batch for just that Product Category.

LANDED COSTS

There may be situation when you receive an Invoice for additional charges for Material Receipts which have already been invoiced. These may include Freight charges, Handling Charges or any other fees. If you want to allocate these additional costs to the Product or Products received then you would create a Landed Cost Invoice.

To enter a Landed Cost Invoice, open the Invoice (Vendor) window by clicking on Invoice (Vendor) from the Main Menu.

Enter values for the Business Partner (in this case the Freight Company), Date, Location etc. as described in detail in the Purchasing Chapter.

Click on the Invoice Line tab to add the necessary Line(s) for this Invoice.

Enter the appropriate Charge, Quantity, and Amount.

Save the Line.

Click on the Landed Costs tab to enter the Material Receipts, Lines, or Products to allocate this Invoice Line amount.

Select a Cost Distribution to define what basis will be for distributing this line amount. The choices are Costs, Quantity, Weight or Volume.

Select the Cost Element to be used for this Line. (Cost Element definition was discussed in a prior section of this chapter).

Enter Description if desired.

In the Reference area, select the Material Receipt that these Landed Costs should be allocated to. You can select Material Receipts for any Business Partner. It does not need to be the same Business Partner as defined on the Invoice Header.

If necessary you can select a specific Receipt Line or Product to further identify the products to allocate the costs to.

Save the record.

Click the New Record button if there are additional Receipts / Receipt Lines to which this Invoice Line should be allocated.

Here we are distributing the Freight Cost to 3 Lines of a Material Receipt.

When you have entered all of the desired Landed Cost records, click the Distribute Costs button to allocate the Cost.

A corresponding message box will display.

Click the OK button to distribute the costs.

When the process has completed, click on the Landed Cost Allocation tab to view the results.

Note: This tab is only visible if you have enabled the Advanced Tabs option in Preferences.

For additional information on Preferences, refer to the Common Functions and Commands Chapter.

Here, the 100.00 Cost was allocated to the 3 lines based on the Quantity. The calculation used for the first line is (2 / 7) * 100 = 28.57.

This process is done for each line and if necessary the largest amount is adjusted to account for rounding differences.

Landed Costs - Accounting Consequences

The following outlines the accounting transactions generated for a Vendor Invoice with Landed Costs. The account used for Cost Adjustment is defined in the Product window. The account used for Tax Credit is defined in the Tax Rate window. The account used for Vendor Liability is defined in the Business Partner, Vendor Accounting window.

Vendor Invoice

    DR: Cost Adjustment

           CR: Tax Credit

           CR: AP Trade

If you select the Explicit Cost Adjustment option in the Accounting Schema the following transactions result. The account used for the Charge (in our example Freight) is defined in the Charge window.

Vendor Invoice (with Explicit Cost Adjustment)

    DR: Charge Account

           CR: Charge Account

    DR: Cost Adjustment

           CR: Tax Credit

           CR: AP Trade

This option allows you to explicitly see the total charge amount that was allocated.

Note: Taxes are not allocated.

MISCELLANEOUS COSTING

Resource Costing

Generally, if a Shipment is created that contains a Resource, the COGS for that line is 0. With Costing you can, if desired, assign a Cost to a specific Resource. First define the Cost Element and then assign the Cost Element to the specific Resource Product.

As discussed above, to define a Cost Element open the Cost Element window from the Main Menu.

Enter a Name for this Cost Element.

Enter a Description if desired.

Select the Active check box to indicate this Cost Element is active

Select a Cost Element Type of Resource.

Note: That when the record is saved, the calculated check box is disabled, and not selected. This indicates that you must manually enter these costs as they will not be system calculated.

The next step is to assign this Cost Element to a Resource Product. To do this, open the Product Cost window from the Main Menu.

Here we have selected John Consultant. We can see that the Product Type is Resource.

To define the Product Cost for this Resource, move to the Product Cost tab.

The system has created this Resource Cost record automatically when the Product was added. If the Product was created before the Cost Element was defined, you would manually add the Product Cost record by selecting the New Record button on the tool bar.

Enter a Current Cost Price to define the amount that should be used for the COGS transaction amount when a shipment for this resource is created and posted.

If your want the COGS to be based on a percentage of other Cost(s) enter the Percent. It will summarize all other costs for this Product and multiply it by the Percent entered and adds the two amounts together to determine the final COGS value to be used.

The Accumulated Amt and Accumulated Qty are system maintained.

COSTING HINTS AND TIPS

In Version 2.5.3 you must have Beta Functionality enabled (Tenant window) to use the new Costing Methods (LIFO, FIFO, Average Invoice, Average PO, Last Invoice or Last PO).

Purchase Orders are not required for Costing is the Costing Method is Average Invoice, Last Invoice, FIFO or LIFO.

Matching of PO (if used) Material Receipt and Invoice are required for Costing Methods other than Standard Cost.

Compiere will track all calculated costs for each product.

Costs are calculated when 'Matching' records are posted.

Additional Costs, however area assigned manually and can be done at any time. If they are assigned after the system has created or updated the calculated costs they will be included the next time the system performs its calculations.

If the Current Cost Price is 0.00 (e.g. the first time a product is received into stock), when the Material Receipt is posted the following algorithm is used:

If Costing Method is PO based (Average PO or Last PO)

  • Standard Cost from the Product Cost window.
  • Price from a PO matched to the Material Receipt.
  • Price from a Vendor Invoice matched to the Material Receipt.
  • PO Price from the Product window, 'Purchasing' tab.

If the Costing Method is Invoice based (Average Invoice, Last Invoice, LIFO or FIFO)

  • Standard Cost from the Product Cost window.
  • Price from a Vendor Invoice matched to the Material Receipt.
  • Price from PO matched to the Material Receipt.
  • PO Price from the Product window, 'Purchasing' tab.

If no Cost is found that can be used, Posting will generate the error 'No Current Cost found'.

As Current Costs are maintained for all Costing Methods defined, you can change the Costing Method for the Tenant or Product Category at any time.

If Production, Inventory Move or Physical Inventory impacts the Current Cost, the Current Cost will be updated. (e.g. Costs being maintained at Organization level and Inventory Move is done between Organizations).

Compiere uses attributes set instances for costing. If one is not assigned by the user (via an attributes set) in the PO or Material Receipt one is assigned by the system.

Labels
  • None