Calculate Manufacturing Lead Times

19-NOV-2024

Keywords: Mfg Fixed Lead Time, Mfg Variable Lead Time

Some quick facts:

  • It looks at the Primary Routing for each made item.
  • It does not explode the BOM and calculate the TOTAL lead time to make a top-level item as-if all of the subassemblies need to be made.
  • It updates the two lead times fields on each Item-Site where the replenishment method is NOT “buy”.
  • When calculating all items it uses the Item Engineering table.  If an item is not in the table it will not be updated.

To see the total lead time to make an item, look at WilloWare’s Lead Time Inquiry in MFG PowerPack. Lead Time Inquiry calculates the total time needed to make an item and can include (or not) usage of available inventory of both make and buy items.  If available inventory is excluded the lead time includes purchasing all buy items in the assembly and making all subassemblies.

The calculation performed by the Manufacturing Lead Times window is provided below.  The first few sections describe where the data is coming from, the calculations are at the end.

ITEM ENGINEERING: Average Quantity.  If the field has a value other than zero it uses that value, otherwise it uses 1.  If you calculate all items the utility runs through all records in the Item Engineering table, which means if you have incomplete setup (i.e a missing record in Item Engineering) the item will not be updated by the utility.

AvgQty = Average Quantity

ROUTING: It gets the routing sequences for the item’s Primary Routing.  For clarity we are leaving out information about how it handles parallel routing sequences, suffice to say the calculations below are applied (see note at the end about parallel routing sequences).

QNS = Qty Next Start

PNS = Percent Next Start

QT = Queue Time

ST = Setup Time

CT = Cycle Time

MT = Move Time

WORK CENTER: It gets the Work Center record using the Work Center ID and the first record with an Effective Date <= User Date.  Note that the User Date can be set to a date that is not the current date and that could cause the lead times to be updated using previous Work Center setup.

HPS = Hours Per Shift

NS = Number of Shifts

THE CALCULATIONS

PctComplete = 1

IF: QNS > 0 THEN PctComplete = PNS/AVGQty

ELSE IF: PNS > 0 and PNS < 1000.0 THEN PctComplete = PNS/1000.0

* Dividing by 1000 is correct, it has to do with how GP stores the data

If QNS and PNS are zero, PctComplete stays 1. PctComplete is used later in the calculations below.  NOTE: the calculation when QNS > 0 is incorrect, this is a bug.  It should be:

IF: QNS > 0 THEN PctComplete = QNS/AVGQty

ELSE IF: PNS > 0 and PNS < 1000.0 THEN PctComplete = PNS/1000.0

As it is, if you use Quantity Next Start the PctComplete value will always be zero, and the Variable Lead Time calculation will always result in zero.  We have fixed this in MFG PowerPack’s Lead Time Utility.

WCHours = HPS * NS

SetupAndQueue = (QT + ST) / WCHours

MoveAndCycle = (CT + MT) / WCHours

VARLeadTimeLine = MoveAndCycle * PctComplete

FixedLeadTime = FixedLeadTime + SetupAndQueue, rounded to 2 decimals

VariableLeadTime = VariableLeadTime + VarLeadTimeLine, rounded to 4 decimals

The calculations above are repeated for each routing sequence and the last two values (FixedLeadTime and VariableLeadTime) accumulate the total as each routing sequence is processed.  These values are used to update the two lead time fields in Item Quantities Maintenance.  All Item-Site combinations where the Replenishment Method is not BUY will be updated.  This means you cannot have Site-Specific Lead Times.

Note the rounding could cause a slightly smaller lead time, which could impact planning.  This is not technically a bug, but it would be preferable if it always rounded UP so that you would allow more time in the schedule rather than less.

Parallel Routing Sequences: the Calculate Manufacturing Lead Times window does not correctly handle routings with parallel sequences.  When the routine looks for parallel sequences it does so only by the Routing Sequence Number, so it retrieves all routing sequences from all routings that have a sequence running parallel to, for example, sequence 100. If you use parallel routing sequences on SOME but not ALL routings, this will cause the routings without parallel sequences to have incorrect lead times. (zeros). 

WilloWare has just release our own Lead Time Utility that not only addresses the two bugs described above, but also offers important key improvements:

  • It is significantly faster because it runs completely in SQL and only updates items if there are changes
  • It provides a report at the end of the process showing which items changes along with the before and after values
  • It has a lead time history table where it tracks the date of each change, the user who made the change, and the before/after values with each change.