Historical Standard Costs

I have a request to write a BAQ that someone can enter a date and get the standard costs that were active on that date. (ie. What were our standard costs on 12-31-2018?)

I have taken some looks at the CostPart and PartTran tables. PartTran seems most promising because it appears to track the Cost Adjustment transactions along with Cost Roll Postings (when costs change). However it also has Variance transactions (PO, Job, etc) as part of the ADJ-CST Trans Type and I am struggling to find a field that would filter out the Variances and just give me the Cost Roll and the Cost Adjust Transactions.

Thanks.

Which costing method do you use?

So… there is a little known trick.

  1. you can define multiple COST IDs in the Part Cost table
  2. so… you could create a new cost id for each year.
  3. each year, copy the year end cost from one cost ID to another using the costing workbench
    by doing this, you will have historical costs, one for each year (or you could do this monthly as well).
4 Likes

empty reason code

Standard Cost

image001.png

I like this for moving forward.

Do the system processes always use CostID=1, or is that set at the Company/Site Config levels?

Brian Kozic
fisher barton
ERP Functional Analyst
fisherbarton.com

image001.png

Thanks, I will give this a try.

Brian Kozic
fisher barton
ERP Functional Analyst
fisherbarton.com

image001.png

@timshuwy routinely makes me feel stupid. That is a brilliant idea.

No, it’s a site setting (sort of) and be aware that’s “1” and not an integer.

You will want to be careful with this. It’s a little complicated. Each plant can have a costID or they can share them.

Although the costID has a setting for “default plant” or something, the actual assignment is done through a process that creates a bunch of transactions. I made a mess of a test environment (thankfully) by not understanding that.

2 Likes

Hahaha… It was NEVER my intention to make @JasonMcD “feel stupid”…
in reality, the “trick” that I suggested here is really the “old school” method of doing cost rolls… back in the olden days (1980s) the system I worked on didn’t actually do cost adjustment transactions for each part change during the cost roll… the old procedure was:

  1. copy the cost table from 1988 table to 1989 table
  2. adjust all the costs in 1989
  3. when ready to activate the new table:
    3.1 run inventory report against 1988 table
    3.2 run inventory report against 1989 table
    3.3 MANUALLY calculate the total variance
    3.4 create a journal entry for the variance
    3.5 start using the 1989 table for inventory.

You actually can simulate this same type of function in Epicor (without the manual variance).
with E10, you can:

  1. copy the cost table from 2020 to a new 2021 table
  2. Adjust and roll the cost table in costing workbench… POST when done… BUT NOTE: since this cost ID is not associated to any active SITE id, the “POST” will not do any journal entries.
  3. When ready to activate the new 2021 table, you go into Site Maintenance, and change the cost ID from 2020 to 2021. Doing this will AUTOMATICALLY do all needed journal entries for any adjustments.
    Using this method, you can actually have all the rollup of BOMS completed weeks ahead of the actual implementation of the new cost table. You can run reports to see how inventory is theoretically affected by the new cost id…
1 Like

Tim,

I favorited this post last year knowing I would eventually come back to it.

Aside from storing the cost elements historically, were you also storing what the original method was for a cost roll?

In other words, since a standard cost is based off of the method, if you want to analyze variances at a detailed level (what materials caused the variance) you would need to compare against the bill of materials that the standard was based off of.

How do you do this? Is there a table somewhere that stores the bill at the time the standard was rolled/created?

Any ideas?

-Utah

Sorry in advance, as I don’t think this helps your question, @utaylor.

But to the original topic, I made a BAQ for historical std. costs a few weeks ago so I might as well share it.

Some caveats:

  • We use a reason code of STDADJ for setting a new std. cost, so you would need to change that for your business.
  • We don’t do cost roll ups; not sure how that affects other people that do.
  • You may want to check my logic on the Plant Cost ID. Explanation :point_down:

So, we have 2 sites. The newer one, it has its own cost ID that is set up in Site Config (or wherever) and that woks great. But the original site (MfgSys) has no “official” cost ID; it uses the old default of “1” and so I reflected that in the join on the PlantCost table.

ACC_StandardCostsAtAMoment.baq (77.2 KB)

Interesting… I am trying to follow what you are doing when you say you don’t do cost roll ups.

Do you use standard cost?

Yes standard.

We have never bothered to put labor standards on the parts, so rolling up BOMs would be false info. Instead they do it in Excel and calculate labor in the spreadsheet and manually cost-adjust the in-house parts.

There are better ways, yes I know. But that’s what we do today.

1 Like

Thanks for sharing.

Hi Jason,

I know this is a old post but I donwload the BAQ you posted ACC_StandardCostAtMoment and I tested but didn’t pull any information. I know I am missing something here.

Part Description Std Cost Then Std Cost Now Set Std Cost (same as now - used for validation) Then Now Site
1005-0000 1005-0000 shared tool 2 Cav 5/3/2024 11/22/2024 DNE
100718355003 Machine Tape 2 5/3/2024 11/22/2024 DNE

Any thoughts?

Wow, I feel like I could have made this a lot better today.

Anyway, like I said in 2021, there are some specific things you’ll need to change.

This is the big one - your company undoubtedly has a different reason code:

And then this… I don’t know what I was thinking here exactly…

EDIT: Ah, your table jogged my memory. It was this. Well that probably does not work for anyone else. But it’s left-joined so it shouldn’t break it - it’s just useless.

Thank you Jason.

I will work on this.