You are on page 1of 9

MANUFACTURING ACCOUNTING

This document is a technical description of how manufacturing accounting is handled by the


opentaps Financials module.
Change Log

November
22, 2006

Updated to use correct entity names and show a simple example

July 31, 2006 Updated about how to configure costs


May 1 2006

Updated for opentaps 0.9

2006 Open Source Strategies, Inc. All Rights Reserved.


Page 1 of 9

MANUFACTURING ACCOUNTING
Overview
The opentaps Financials module supports job order or activity-based accounting,
which accounts for the costs of each separate step or activity involved in
manufacturing a product. The high level process is essentially the following:
1. Raw materials inventory is issued to the production process
Debit WIP Inventory, Credit Raw Materials Inventory
2. With each step of the production process, direct and indirect costs are added
to the manufacturing:
Debit WIP Inventory, Credit (some kind of cost account)
3. When the items are manufactured and put into finished inventory
Debit Finished Goods Inventory, Credit WIP Inventory
Note that these accounting processes can also be used to support project
accounting of a services company.
Manufacturing Terminology
A product is manufactured by performing a pre-defined series of steps. A
"Routing," composed of a series of tasks or "Routing Tasks," is used to define the
steps necessary to manufacture a product. A "production run" is an actual run of
the production processes to produce a particular set of products. Thus, routing
and routing tasks can be thought of as templates for actual production runs and
production run tasks. In OFBiz, routings, routing tasks, production runs, and
production run tasks are all stored as WorkEffort with different workEffortTypeId.
Calculating Estimated or Standard Costs
Estimated or standard costs is an estimated or calculated cost for a product
based on its bill of materials (BOM) and fixed asset usage. The standard cost of
a product is the sum of its materials cost, or the standard cost of all the raw

2006 Open Source Strategies, Inc. All Rights Reserved.


Page 2 of 9

MANUFACTURING ACCOUNTING
materials in its BOM, and its fixed asset usage cost, which is currently configured
in the FixedAssetStdCost entity.
As an example, for the PROD_COST product, it has a bill of material (BOM)
which consists of 2 units of RAWMAT_A and 3 units of RAWMAT_B. The
standard costs of MAT_A_COST and MAT_B_COST are, respectively, $9 and $7.
Thus, the standard raw materials cost of PROD_COST is 2 * $9 + 3 * $7 = $39.
The routing associated with PROD_COST has a single task (TASK_COST) which
involves 10 minutes (600,000 milliseconds) of setup and 5 minutes (300,000
milliseconds) of unit run time. The fixed asset used for this production run step is
called Demo Workcenter..., and its FixedAssetStdCost, we have a $2 per hour
of set up charge and $8 per hour of usage, so the cost is $2 * 10/60 + $5 * 8/60 =
$1. (NOTE: This will be re-factored at some point to use the WorkEffortCostCalc
entity as below, which is based on a flat set up plus a per minute of usage
charge.)
Calculating Actual Production Costs
The calculation of actual production costs depends on the configuration of the
WorkEffortCostCalc entity, which in turns references the CostComponentCalc
entity. This CostComponentCalc entity defines the actual formulae for calculating
costs or references an external method for calculation. If there is a
customMethodId, it would call the referenced
CustomMethod.customMethodName and return its result. Otherwise, the cost
would be calculated as fixedCost + variableCost * (production run's declared time
in milliseconds / perMilliSecond). The costGlAccountTypeId is the
GlAccountType for looking up the GL account of the cost. The
offsettingGlAccountTypeId is for looking up the GL account to offset the cost,
which is usually the WIP Inventory account. If no offsettingGlAccountTypeId is
set, then "WIP_INVENTORY" will be used.
Each production run is the execution of a series of Routing Tasks. When each
routing task is completed, the cost of the routing task or work effort is calculated,

2006 Open Source Strategies, Inc. All Rights Reserved.


Page 3 of 9

MANUFACTURING ACCOUNTING
and the following GL transactions are posted:
Debit Offsetting GL Account,
Credit Cost GL Account
where the actual GL accounts are found based on the glAccountTypeId defined in
WorkEffortCostCalc and actual GlAccountTypeDefault definitions for the
organization.
It will then store both the total cost and the unitCost (total cost divided by units of
production) in CostComponent and associated with the production run through
the CostComponent.workEffortId field.
When some inventory is issued at any point in the production run, it is issued at
the sum of the unit costs from all the already completed tasks of the production
run plus unit cost for the declared time so far on this production run divided by
the unit of inventory issued. If the declared time so far is zero, it will be issued at
standard cost.
If some of the manufactured items are found defective, they are to be separately
written off with a physical variance, which will be posted to the ledger separately.
Handling of Indirect Costs
Indirect costs, such as energy usage, are handled by allocating a standard
amount for each indirect cost in the WorkEffortCostCalc entity. When the
products are manufactured, inventory is incremented and offset by the amount of
the indirect costs:
Debit WIP Inventory,
Credit (indirect cost account)
Later, when invoices for indirect costs are received, they can be booked as an
expense:

2006 Open Source Strategies, Inc. All Rights Reserved.


Page 4 of 9

MANUFACTURING ACCOUNTING

Debit Indirect Cost,


Credit Accounts Payable
Ownership of the Inventory and Costs
The organizationPartyId which will own the inventory and be responsible for the
costs will be the organizationPartyId of the Facility where the manufacturing is
taking place. If the raw materials inventory has a different ownerPartyId, then the
system will generate an error. To use another party's inventory, transfer it to the
owner of the Facility first, or create a manufacturing Facility for the organization
on behalf of whom you are manufacturing.
Special Use Case: Outsourced or Contracted Manufacturing
Several people have asked about what to do when portions or all of the
manufacturing process is outsourced to a contractor. The answer is that you
would set it up as any other manufacturing process but create special accounts
which are later offset against invoices from your contractors.
The first step is to create a Facility associated with your organizationPartyId.
Even outsourced or contracted manufacturing needs to take place in this Facility,
so that the costs can be billed to your organizationPartyId's GL accounts.
Then, for each step, you would set up the cost calculation and GL accounts.
Essentially, you're trying to replicate this:
Debit WIP Inventory,
Credit Contractor Expense Account
If you do not know the actual invoiced costs from your contractor, use a standard
cost.
Later, when you receive your invoices, offset them with

2006 Open Source Strategies, Inc. All Rights Reserved.


Page 5 of 9

MANUFACTURING ACCOUNTING

Debit Contractor Expense Account,


Debit Expense Variance Account,
Credit Accounts Payable
This can be done through the Invoicing features of the Accounting application.
Configuring Manufacturing Accounting
Manufacturing cost accounting can be configured in the Manufacturing
application. The first step is to click on the [Costs] tab and create a cost
component calculation:

This cost component calculation defines the cost and offsetting GL account types
and the fixed and variable (per milli second) amounts for a given currency. The
GL account types can then be associated with actual GL accounts in your
organizations chart of accounts (see documentation for the Financials
application.)

2006 Open Source Strategies, Inc. All Rights Reserved.


Page 6 of 9

MANUFACTURING ACCOUNTING
The next step is to associate cost component calculations with actual production
steps. This can be done by clicking on the [Routing Task Costs] tab for a
particular step of your routing task:

Here you would associate a cost component calculation (as defined above) with a
particular type of cost (raw materials, labor, etc. etc.)
A Simple Example
In the default installation of opentaps, you will find a product called
PROD_COST which has a manufacturing BOM of 2 MAT_A_COST and 3
MAT_B_COST.
Initially, we purchased 50 units of MAT_A_COST and 75 units MAT_B_COST for
$9 and $7 each, respectively, on a purchase order from DemoSupplier. When we
received the purchase order, they are added to Raw Materials Inventory at those
unit costs.
Now, we start a production run in the job shop to produce 3 units of the product
PROD_COST. After weve confirmed the production run and started the run, we
would issue the required raw material, which would be 6 units of MAT_A_COST
2006 Open Source Strategies, Inc. All Rights Reserved.
Page 7 of 9

MANUFACTURING ACCOUNTING
and 9 units of MAT_B_COST. The value of the raw materials inventory would be
6*$9 + 9*$7 = $117. Upon issuance of the raw material, they are removed from
the raw material account and added to the work-in-progress account:
DR Work In Progress Inventory, $117
CR Raw Material Inventory, $117
Next, we would declare the time in the production run. The production run only
has one step for assembly. For this example, we assume that the setup for this
step took 15 minutes (900,000 milliseconds) and the actual run was an additional
9 minutes (540,000 milliseconds), which we can declare during the production
run.
Once we mark this production run completed, the system will add the run-time
costs to the work-in-progress inventory account. The costs of this production run
step is defined as the EXAMPLE_COST, whose fixed cost is $50 and the
variable cost is $10 per 1 minute (60,000 milliseconds.) For our production run,
then the cost would be $50 + (15 + 9) * $10 = $290. EXAMPLE_COST has a
defined offsetting GL account type of OPERATING EXPENSES, which in the
sample data is account 600000. Thus, after the production run is completed, the
following transactions are posted:
DR Work In Progress, $290
CR Operating Expense, $290
Now the cumulative work in progress inventory for this production run is $407.
When you click on [Complete] to finish your production run and issue the 3 units
of PROD_COST to inventory, a final set of ledger postings take place:
DR Finished Goods Inventory, $407
CR Work In Progress, $407
Further, 3 units of inventory are received into the warehouse for a total of $407, or

2006 Open Source Strategies, Inc. All Rights Reserved.


Page 8 of 9

MANUFACTURING ACCOUNTING
407/3 = $135.67 per unit.
Once the inventory is issued, the production run has no further accounting
consequences. Closing the production run does not cause further postings to the
ledger and is merely a step for managing the manufacturing process.
When you sell the item for the default price of $455.99, you can later run the
Sales, Inventory, and Profitability Analysis report and see that the sale price is
$455.99, the COGS is $135.67, and the gross profit is $320.32 per unit sold.

2006 Open Source Strategies, Inc. All Rights Reserved.


Page 9 of 9

You might also like