Difference in Unit Costs of a material in Stock Report and Part Tracker

We were trying to verify the customised Stock Status report with a defaultStock Report and have realised that the unit cost of a few items are different. We have used the PartCost table for the unit cost in the customised Stock Report. For example, the Part cost of an item is 21.84107 in PartCost table but in the Stock Status report it is 36.23. This is causing a lot of difference in the report. Can you please help us understand where does the Stock Report take the UnitCost from?


How many costing methods do you have for that part? Can you confirm there is only one?

We only have one, FIFO.

You confirmed that in the database? Also, Is your part cost calculation taking into account the 5 costing fields? Can’t remember them all off the top of my head. MatCost, Burden, SubCon, and then two others

Yes, we are using FIFO. Our UnitCost is Calculated as below:
FIFOAvgBurdenCost + FIFOAvgLaborCost + FIFOAvgMaterialCost + FIFOAvgMtlBurCost + FIFOAvgSubContCost

Okay good. Have you checked part transaction history tracker to look for any rogue transactions throwing it off? I’ve found acouple other threads on the forum of people having problems. Might have to IlSpy the report dll to try and see what that field is doing behind the scenes

I couldn’t find any wrong transactions. This issue is only with a few Parts, the unit cost of other parts are taken correctly from the PartCost table.

Can you please explain the above ?


IlSpy is a tool you can use to decompile DLLs. It’s free to download. I think there is a report dll in the client folder you might be able to un pack and see how your field is calculated

Thank you.
I downloaded the software. There are many report dll files in the folder. Can you please mention which one should I inspect? Is it the CrystalDecisions.ReportSource.dll ?


A few important things:

  • FIFO uses weighted average to calculate the avg cost of the part
  • the cost you see in Part Tracker or PartCost table is the cost as it is NOW
  • the cost you see in Stock Status report was the cost at the TIME OF TRANSACTION
  • when you consume/use/sale/etc. the part, Epicor will use the FIFO layers in the same order as they were added (hence FIFO - first in first out)
  • all of the above will lead to differences between Stock Status and Part Cost/Tracker if you manufacture/buy the part at different prices and those FIFO layers with different prices are used when you sale/consume the part