Job finish unit cost - Detailed explanation of calculation (Actual costing)



Solution ID = KB-69

Goal : Detailed description of the algorithm used to calculate the unit cost.

Module : SLMFG

Fact 1 : Actual Costing

Fact 2 : Standard Costing

Database : Progress, SQL

Cause







Fix



OVERVIEW

For an actual-costed item, the algorithm used for calculating the cost at which it is moved to inventory from a job depends on the following:

1) Whether or not the job is being closed via the job transaction.

2) Whether the SFC parameter "Cost Based on Complete" (CBC) is set to Oper or Job.

3) Which operations are complete at the time of the move.

The basic algorithm for calculating the unit cost is the following. A detailed description of each scenario is given below:

1) If the job is being closed using the job transaction's "Close Job" flag, the system uses the actual cost for the job minus the cost at which prior moves (if any) had been done.

2) If the job is not being closed and CBC is set to Job, the system uses the planned unit cost for the job.

3) If the job is not being closed and CBC is set to Oper, the system uses the actual cost from complete operations and planned cost for open operations.

This move-to-stock unit cost is referred to as "job finish cost" throughout this entry since the material transaction created when pieces are moved to inventory has a type of "Job Finish". This solution frequently refers to moving pieces from the job into inventory. It should be noted that this can be done via a job (R)un, ma(C)hine or (M)ove transaction. It is not implying that they must be moved via a (M)ove transaction in order for the costing functionality described here to occur.

Also, the information presented is true for all items which have an Item Master General screen Cost Type of (A)ctual regardless of whether the item's Cost Method is Average, LIFO, FIFO or Specific.


SOURCE OF THE COST DATA USED

The cost data used for the calculation comes from the following sources. Which are used depends on the which of the above scenarios is occurring.

1) Job WIP Total amounts

This is the total actual cost which has been posted against the job. These values can be seen on the Job Cost Detail screen and on the WIP Valuation report.

2) Job WIP Complete amounts

These are the total cost at which pieces have been previously been moved from the job into inventory. These figures can only be seen on the WIP Valuation report. They will be zero if no pieces have been moved to inventory.

3) Operation WIP amount

This is the total actual cost posted against the operation minus any amount pulled from the operation for prior moves to inventory. It is increased as transactions are posted against the operation (including issuing materials which are tied to the operation) and decreased when pieces are moved to inventory. This field (jobroute.wip-amount) does not appear on any screen or report. There are reports which show total actual cost posted against each operation but those values come from other cost fields in the operation which are not reduced when pieces are moved into inventory.

4) Operation planned unit cost

This is calculated using the rates and times from the operation as well as the materials tied to the operation. These values can be seen on any of the job costing reports which show planned costs by operation.


ALGORITHM USED FOR EACH SCENARIO

1) Closing the job via the job transaction.

When you post a transaction which moves pieces into inventory and closes the job, the system calculates the unit cost for the move using the job's WIP fields. Since the job is being closed, the pieces are being moved at the total of the WIP which still exists in the job.

Job Finish Cost = (WIP Total - WIP Complete) / qty being moved

If there have been no prior moves to inventory from the job, WIP Complete will be zero so the move will be done at the total actual cost which has been posted to the job. This is the simplest scenario: release the job, issue the material, move all pieces through each operation, and then post one transaction (run, machine or move) which moves them all from the last operation into inventory answering yes to the "Close Job" option. The pieces will be moved into inventory the total actual cost for the job and WIP is cleared.

If there have been previous moves, WIP Complete would have been posted with the cost of those moves as calculated by one of the other scenarios. Deducting WIP Complete from WIP Total for the job-closing move assures that the total cost moved into inventory for the job equals the total cost actual which had been posted to the job. That is, the prior moves would have been done at planned or a combination of planned and actual but the last move will be done at a cost which assures the total moved into inventory for all moves from the job will equal the total actual cost for the job.

This last move can actually be done at a negative unit cost if the total cost of the prior moves exceeds the total actual cost for the job. While this negative unit cost is commonly perceived to be incorrect when seen in inventory, it really is correct and should not be changed since prior moves were done at too high of a cost. When the job is closed, the system clears out WIP by setting WIP Complete equal to WIP Total and setting all operation WIP amounts to zero.

2) Not closing the job and "Cost Based on Complete" is set to Job.

In this scenario, the pieces are moved at the planned unit cost for the job. This is derived by adding up the planned unit cost for each operation which is calculated using the operation's setup, labor and machine hours and rates, overhead rates, and efficiencies as well as each material's planned cost, scrap factor and quantity per assembly.

Job finish cost = Sum of planned unit cost for each oper

The planned unit cost for the entire job can be seen at the bottom of the Planned column on the Job Cost Variance report. The planned costs for each operation can be seen on the Job Cost Detail Status report. That report shows the total planned cost for the operation so you would need to divide that by the job Qty Released to arrive at the unit cost. When this transaction is posted, the job WIP Complete is increased by the cost of the move and each operation's WIP amount is decreased by the cost taken from that operation:

Job WIP Complete = Job WIP Complete + (job finish cost * qty being moved)

Oper WIP amount = Oper WIP amount - (oper planned unit cost * qty being moved)

If multiple moves are done to inventory, each will be done at the job's planned cost and the WIP Total buckets will hold total cost of all of the moves (job planned cost * total qty moved). If you then close the job as part of the final move, scenario 1's logic will be used.

If you do not close the job via the move and later close it by changing the status manually, the difference between WIP Total and WIP Complete will be written off to inventory adjustment account at that time. The cost at which pieces had been moved to inventory will not be adjusted. In that event, the total cost of pieces residing in inventory (and later issued out) will always be the planned cost for the job.

3) Not closing the job and "Cost Based on Complete" is set to Operation.

In this case, the system will calculate the job finish cost using the actual cost from complete operations and the planned cost from open operations. The "actual cost" used for a closed operation is based on what is in the operation's WIP amount. Therefore, it is really the amount of the actual cost posted against the operation which has not been taken out of the operation by prior moves which were done at planned due to the operation being open at the time of those moves. The planned cost calculation for open operation's is the same used by scenario 2. The job finish cost calculation, the reduction of the operation WIP amount and the increase of the job's WIP Complete are calculated as follows:

Job Finish Cost = sum of the operation unit costs:

if oper not complete,   
   Oper unit cost = oper planned unit cost

if oper complete,

if oper qty complete - job qty complete <> 0 then
     oper unit cost = oper WIP amount / (oper qty complete - job qty complete)
else
     oper unit cost = oper WIP amount / qty being moved

oper WIP amount =
         oper WIP amount - (oper unit cost * qty being moved)

job WIP Complete =
         job WIP Complete + (job finish cost * qty being moved)

In this calculation, the "job qty complete" is how many had been moved into inventory prior to the current transaction being posted. What the formula is basically doing is calculating an "actual" unit cost by spreading the operation's remaining WIP amount over the quantity completed at the operation which has not been "used" by a prior move into inventory. The operation's WIP amount is then being reduced by this unit cost multiplied by the quantity being moved. So, if fewer pieces are being moved into inventory than were completed at the operation, dollars will be left in the operation's WIP amount for subsequent moves.

For example, suppose you have a job for 100 pieces and 2 operations. You post $1000 of cost against operation 10 completing all 100 and closing the operation. If you then move 30 pieces from operation 20 into inventory, the cost pulled from operation 10 will be:

1000 / (100 - 0) = $10 per unit

and Operation 10's WIP amount will be reduced to $700 (1000 - (10 * 30)). If you then move the remaining 70 pieces without closing the job, the calculation would be:

700 / (100 - 30) = $10 per unit

A key point to note is that the unit cost for a closed operation is calculated by dividing the operation's WIP amount by the quantity completed at that operation, not the quantity being moved into inventory. The total move to stock unit cost can become very inflated if significant costs were reported against the operation but only a fraction of quantity completed was reported. In that case, when the operation's cost is divided by the operation's quantity complete, the resulting operation unit cost may be extremely large. The move-to-stock cost will be very inflated and will probably result in a huge hit to inventory adjustment when the job is closed.

So, if your CBC flag is Oper and you see a job finish at a much higher cost than expected, the under-reporting of pieces at an operation could be the reason. Therefore, it is important that you have accurate reporting of production if you are going to have the CBC flag set to Oper.


NEGATIVE JOB FINISH TRANSACTIONS

If you post a job transaction for a negative quantity, the system pulls the pieces from inventory back to the job. As with any movement out of inventory, the system pulls them back to the job at whatever cost is appropriate for the item based on its cost method. This cost may or may not be the cost at which the pieces were originally moved into inventory. For example, if the item is FIFO costed, the pieces will be taken from inventory and put back into the job using costs from the top of the FIFO stack (i.e. oldest records) for the item.

The total cost at which the pieces are pulled out of inventory can be found in the Total Posted column of the Material Transaction by Job report. When the pieces are pulled back to the job, this total cost is deducted from the job's WIP Complete since that holds the total cost at which pieces had been moved off of the job and into inventory.

An important aspect of negative moves to be aware of is that this total cost is also added to the WIP amount of the last operation. The system makes no attempt to somehow spread this cost over the WIP amounts of all of the job operations since it would have no way of knowing how much was pulled out of each operation when the positive moves were done.

Print Email

Send KB to this email: