Does the Costing Workbench play a direct role in Quote costing?

My understanding of the Costing Workbench is that it’s ultimately just a handy calculator. What really matters for costing calculations elsewhere in Epicor, such as in the Worksheet tab of Quote Entry, are the values that the Costing Workbench writes to the PartCost table. The tables used by Costing Workbench (which I think include CostPart and PlantCost) do not play a role beyond updating PartCost. And using Cost Adjustment to update PartCost for a raw material should have exactly the same effect on quoting the cost of that material (e.g., in a configured part) as updating it via Costing Workbench. Is this correct?

The Costing Workbench is used to establish Standard Costs. So if you’re using the standard costing methods on parts, then it is a foundational part of your accounting system.

The PartCost table contains several costs, including Standard, Last, Average, and Lot. If a PartPlant record isn’t marked Standard then the Costing Workbench really doesn’t do much with it since the WB is only used to establish standards AND adjust inventory when the standards change.

All of the other costs are based on activity and only get updated when items are moved into inventory and not drop shipments nor shipped from jobs.

The Cost Adjustment uses the costing method of the PartPlant record to retrieve the associated cost.

For companies that use only the Quote worksheet and ship from jobs, the PartCost record is never used.

I would recommend immersing yourself into the Job Costing Technical Reference manual which explains all:

K21 Job Costing Technical Reference Guide (epicor.com)

2 Likes

What I’ve observed:

  1. Saving a change in Cost Adjustment creates or updates the PartCost row. (And possibly other things.)
  2. If the PartPlant record is set to Standard, then the Quote Worksheet gets the same value as the standard cost in PartCost. (Though not necessarily from PartCost…)
  3. If there is no PartPlant record in the current site, then the Quote Worksheet gets zero cost regardless of what is in PartCost.

To better phrase my question, if the PartPlant record is set to Standard, then does the Quote Worksheet get the standard cost from PartCost and only PartCost?

The quote worksheet gets the costs from the manufacturing details on the quote. If you don’t populate that, you don’t get any cost.

It has details. The question is exactly where it gets the cost for raw materials listed in the details. Is it from PartCost via the PartPlant record for the current site?

I’m not sure. It should be a simple test to set up though. Set the costs differently in the various areas and see which one ends up in the quote.

Well, I know that the value that ends up in the worksheet is the same value that’s in PartCost. And I know that the worksheet doesn’t get any value if there’s no PartPlant in the current site. But this doesn’t prove that the worksheet actually gets the value from PartCost, or that there isn’t something else that can override PartCost. I’m hoping for some documentation or insider knowledge that this is the case. (Because a co-worker is telling me that it doesn’t come from PartCost, but in at least some circumstances comes from CostPart…)

Each plant can have its own cost for each part. Each part/plant can have a different cost type (Std, Avg, Last, Lot).

For raw parts, everything is dependent on the cost type and where the parts are received. If it’s a standard cost and goes to inventory, it goes in at standard. If it’s last cost then the PO Price is used at time of receipt. If it’s Avg cost then a weighted average of the is updated, and Lot Cost adds the PO Price to the Lot cost array.

If the part is not received into inventory, then the part cost record is not updated, which may be what your coworker is alluding to.

Timing is critical for all part costing types except standard. Doing transactions out of order, or backing out and adding transactions back to correct errors can mess up the calculation.

So there can be more than one cost of the same type (std, avg, etc.)? I didn’t think that was possible because PartCost doesn’t carry plant/site.

image

I think this is the site/plant.

Seriously, don’t put it off.

K21 Job Costing Technical Reference Guide (epicor.com)

Don’t let the title sway you, this is everything there is to know about costing in Epicor.

When you get to actual DR/CR, then Posting Rules enter the game.

Yes, but indirectly. Use Site Cost Maintenance to create an ID then assign it.

2 Likes

I don’t think so. The CostID for the only PartCost row for my part is “1”. No field of PartCost has a value that looks anything like our site IDs.

Does the Costing Workbench play a direct role in Quote costing? - Kinetic 2021 - Epicor User Help Forum (epiusers.help)

Okay, okay, I’ll read it! :laughing:

Oddly enough, Plant.PlantCostID seems to be uninvolved. The only PartCost for my part has CostID “1”, and all my sites have PlantCostID “1” except MfgSys which is blank.

I created a quote in a site that has CostID “1” but no PartPlant for the part. I added a quote line and the cost was zero. Then I added a PartPlant, added another quote line, and the cost matched the PartCost.

Then I did exactly the same thing in MfgSys, expecting to still get zero cost even after adding the PartPlant because there’s no link from the Plant to the PartCost. But I did get the correct cost after adding the PartPlant.

If I’m correct and Epicor is joining PartPlant directly to PartCost instead of going via Plant.PlantCostID, it could explain PRB0162435, which was opened in 2013 and closed without a fix when E9 went into sustaining support. There are a bunch of other issues related to ignoring or bypassing CostID, including PRB0230656, PRB0101862, PRB0122085 and PRB0154344.

the COSTID for the PLANT/SITE is listed on the plant maintenance.
image
sometimes - installations use the SAME value for COST ID and PLANT (it’s actually nice)

Yeah… I’m finding that the Quote Worksheet is pulling my cost from a PartCost record where the CostID does not match the CostID on the site. (If, again, PartCost is in fact where it gets the cost. That’s hinted at but not explicit.)

So the EstUnitCost for material on the Quote Assembly (manufacturing) is calculated roughly as follows.

When the Part is changed it uses an InvCost library to figure out the cost, it passes in the current plant (tied to the current session) along with the part number.

From there it gets the PlantCostID by querying the Plant table and looking at the Plant.CostID field (as @amaragni mentioned)

Then it gets the PartCost (table) by using Company, PartNum and the above acquired PlantCostID. So it is accounting for the PartCostID however its tied to the current session PartCostID and NOT the Manufacturing Site Part Cost ID.

They figure out the cost method based on the Part cost method (and override it with PartPlant.CostMethod (if one exists)

Based on the Cost Method if the cost is
A, S or L the cost is gotten directly from the respective Cost fields (Average, Standard, Last)

If the CostMethod is T or O then the cost is retrieved from the Invididual PartLot if found (FIFO or Lot depending on method)

If the CostMethod is F it retrieves the FIFOAvg cost from the PartCost record or just the Avg or Last if the first one isn’t available.

All this of course can be overwritten by the end user typing in an estimated material cost, which then gets Summed Up and multiplied by the Qty per and displayed on the Worksheet (included in the calculation is the QuoteQty multiplier and Supplier Price Lists (if any)

And if it is a purchased part and there is a vendor and a vendor price list then the cost is pulled from there instead.

The is complicated as hell (outlined in the PDF that mark referenced in excruciating detail)

But as a generalization the Estimated Unit cost comes from the Related PartCost for the Current Plant (if it exists)

3 Likes