Monday, June 20, 2022

Scrap and Yield planning with an example using SAP ERP Manufacturing (PP)

Overview

Certain manufacturing processes are subject to partial yields by nature. It is common in chemicals and other process industries, and also in those involving detailed manual labor work or high tech product with quality standards such as medical device manufacture. 

In a process routing (or master recipe) where multiple operations/phases are involved, the yield rate progressively depletes the pass through quantity and final throughput.

For example:
 
Operation Start Quantity End Quantity Yield Rate
0010 100 90   90%
0020   90 72   80%
0030   72 72 100%
0040   72 72 100%

in this example, the overall throughput is 72 on a start quantity of 100, with the first two operations involving progressive yields of 90% and 80% which calculate on top of one another.
 
These scrap/yield rates are studied on floor and arrived at statistically by the work study/industrial engineering departments, typically.

The challenges at hand in setting this up in SAP:

1) How to plan for adequate order quantity to meet a given demand
2) How to plan for adequate capacity of different work centers involved
3) How to plan for components that are needed at different operations
4) How to estimate the cost accurately in this scenario
5) What happens when the reality on the shop floor differs from the estimates.


1) How to plan for adequate order quantity to meet a given demand


MRP order quantity for the product involving partial yield rates can be inflated by a parameter called "Assembly Scrap" in the MRP1 view of the SAP ERP and S/4 HANA. Going by the above example, 28 extra is needed for this order to make 72 which is computed as 38.88% assembly scrap. Note: In the traditional ERP product, SAP started with scrap as a percentage of final throughput (or yield) which they subsequently corrected in other products like APO and IBP. with this scrap parameter of 38.88% If a production order (or a planned order) is created with a target quantity of 72 EA, the start quantity will be inflated to 100. If a fixed lot size is set for the material, then it becomes default quantity to start, and the target quantity will be computed instead.

2) How to plan adequate capacity and scheduling of work centers

In order to indicate the progressively reducing throughput from one operation to next, the foillowing scrap rates need to be entered in to the routing at operation level:

operation1 - operation scrap 10%
operation2 - operation scrap 20%

Assuming each operation takes 1 hr to execute per piece, the resource capacity will be computed at 100 hr for 100 EA quantity of the order; whereas resource capacity of second operation will only need to be planned for 90hr in view of the reduced quantity by the time the order progresses to it. If there are more subsequent operations which have no further scrapping planned, they will be planned for a capacity to to meet 72 EA of the passthrough quantity that should result at that stage. Note: This setting (Routing operation scrap) can only influence the work center activity but not the component quantities in SAP.

3) How to plan for component requirements

Let us say this product needs two components, component1 in the first operation, component2 in the second operation, and perhaps another component3 in the 3rd or later operation. 

For simplicity, let us assume are these components are needed 1:1 for the product being produced.

In the above example, we would need 

100 EA of component1 (to meet operation1 start quantity)
90 EA of component2 (to meet the start quantity of opneration2 where it is needed).
72 EA of component3 (as by this operation, the throughput quantity stands reduced to this)

With the Assembly scrap described in (1) the order quantity will be inflated to 100 EA. 
As already discussed in (2) the routing operation scrap is not able to influence the component quantities. Therefore
If nothing else is done, this has the effect of planning both components to the tune of 100 EA to meet this order quantity.

This will result in the second and subsequent components being excess planned for this order. 
In order to finetune this, there are two different possible parameters at the BOM component level:
 
3.1) BOM operation scrap: when this parameter is filled in, the netID field must also be marked. The combined effect of these two fields will be to use the specified BOM Op Scrap% to override the assembly scrap% specified for the header. 

In our example the following settings are recommended: 

component1 (going to 1st operation) - no BOM Op scrap and no netID - therefore the header assembly scrap% will be used to plan this component. 

component2 (going to 2nd operation) - enter BOM operation scrap of 20% with netID marked (just like routing op scrap for that oper2) so that component2 is planned only for 20% extra on the target 72 (which is 90 EA) rather than 38.88% extra (100 EA) 

component3 (going to 3rd operation) - here no scrapping is intended, therefore planning should happen only for target 72 EA. In this case - enter no value (or zero) BOM operation scrap and mark the netID indicator.

3.2) Component scrap: This parameter is available at two levels - as part of BOM component attributes or as a general parameter at the material master level for the component. 
If both are entered, then the more specific BOM level value takes precedence 

SAP gives more flexibility with this field when used within BOM, by making it optional to mark the netID indicator (which is mandatory in case of BOM operation scrap). 

        If component scrap is entered and netID is marked - then the behavior is exactly similar to that of                 BOM op scrap (3.1) 

        If component scrap is entered but netID is NOT marked - then the scrap adds on top of the                         assembly scrap - instead of overriding. 

This field becomes meaningful in cases where the process is driven by assembly scrap (1) and routing operation scrap (2) but a certain component by nature needs to be planned for more scrapping in excess upfront. 

In our current example, as the scrap rates we enter in BOM should be to plan less than what assembly scrap refers to, the "add on top of" scrap is not applicable in concept. And to avoid the risk of not marking the netID indicator (which could lead to added up plan quantity instead of overriding with a lower value) - this field is not recommended to be used.

4) How to estimate the cost of the product accurately with different components and operation throughput rates

With all these parameters in place, the cost estimate will compute as follows 
for a costing lot size of 72 
component1 - 100 EA (based on assembly scrap (1) 
component2 - 90 EA (based on BOM op scrap (3.1) 
component3 - 72 EA (based on BOM op scrap (3.1) 
operation1 - 100 EA for activity pricing based on order start quantity (1) 
operation2 - 90 EA for activity pricing based on operation1 routing scrap (2) 
operation3 - 72 EA for activity pricing based on operation2 routing scrap (2)

In a nutshell, 

Component quantities are driven by either BOM operation scrap (3.1), Component scrap (3.2) both of which can override or add on top of the Assembly scrap specified for the header material. Routing operation scrap if specified can override the original operation quantities driven by Assembly scrap again.


5) Actual Execution

The production scheduling profile of the header material has a setting to re-compute actual quantities when completion confirmations are for various operations. If this setting (checkbox) is turned off, then the initial quantities in the order computed on the basis of (1), (2), (3) do not change when the actual confirmation is posted for higher or lower quantities. While this is a simpler setting to understand, the result is not desirable as we would want to readjust component quantities based on progressive execution especially for orders that span across multiple days or even weeks.
 
As an example, Instead of yield of 90 on the first operation if we post a yield of only 75 - then whether to re-compute the component quantities based on that or not, is influenced by this checkbox.
 
The recomputation logic is quite complex, with end users sometimes unable to explain the results, especially if the settings are not made consistently between (1), (2) an d (3) above. For example, if assembly scrap (1) and BOM operation scrap (3) are entered in master data but not Routing scrap (2) is setup. 

In this case,
order starts with 100 EA - so 
component1 reservation quantity will be computed 100 EA
component2 is computed to 90EA based on 20% BOM op scrap adding 18 on top of planned target 72.
operation1 is final confirmed for 75
At this stage, for component2 going into operation2 the reservation quantity is recomputed (assuming profile configuration is active)
= 75 * 72/100 + 20% = 65 EA (because actual projected according to expected yield)

As this component is needed 1:1 for the product, it will be counter intuitive to say 65 needed when 75 EA of product is passed through to the operation2. This effect becomes more pronounced with more operations and each of the component having its own scrap rate overriding in the BOMs. Suffice to say that with this checkbox on. Therefore it is very important to start with the right and compatible master data in the first place.

Saturday, May 22, 2021

Sterilization at a Vendor

Process Details

Physical flow of goods is to pool up the proceeds of a number of production orders into one Sterile Load and send it for the last operation (sterilization) from the manufacturing plant to a vendor, who returns them to a different plant for warehousing purpose. On arrival, further inspection and waiting may be required, resulting either in acceptance, rejection, or re-processing of the sterilization operation by the vendor.

Requirements

Vendors are paid by the Sterile Load, which may include a varying number of production orders from time to time.

​Each order should get a charge of per unit standard cost setup for the sterilization, with the variances tracked. 

​After the Sterile Load is sent from one physical plant (manufacturing plant) and received back at another (warehouse) there is a waiting period possible during which further destructive sampling and subsequent accept/reject may happen. 

SAP Design

​Demand will be entered at the target warehousing plant, which is setup with Production in Alternate Plant special procurement. All but the last two operations are completed in production plant after which physically goods are sent to the vendor. On receipt of sterilized load at vendor, an full confirmation is posted for the penultimate operation to charge the order with the standard per piece cost for sterilization. Subsequently final operation is confirmed - possibly  Post-Sterile Sampling (partial scrap confirmations with a reason code) and/or Final Quality Release (final confirmation of balance yield) may happen. 

​The Purchase order to the vendor for sterilization may comprise various possible line items, and is entirely absorbed into the same cost center that is setup to charge orders included in the load with the standard price by operation confirmation on receipt of the load as mentioned above. Any under/over absorption of costs for sterilization vs charges to the orders will be analyzed periodically to revise the standard price of this activity.  


Enhancement

An enhancement program has been designed to provide ease of automation at 3 stages of the cycle:

1) Preselection of multiple production orders into a Sterile Load number tracked in a custom table, with possibility to modify as needed before the load is shipped to the vendor. 

​2) Creation of a cost center ​PO  per Sterile Load with  all possible charge lines (setup as a BOM to give flexibility to users) - a specific PO may contain some but not all these charges, which the user will amend accordingly. 

​3) To automate the penultimate (sterilization) operation for a load for all the production orders included in the Sterile Load to indicate the physical receipt of load back from the vendor to the target plant. 

Thursday, September 23, 2010

PP: MRP and Production order scheduling

SAP scheduling in MRP and Production orders explained below:


For MRP (Planned orders):
Available for Planning Date = Requirement Date
Order Finish Date = Avail. for Planning Date minus GR processing time
Order start date = Order finish date minus In house production time from Mat Master
Opening date = Order start date minus Opening Period from schedule margin key


When manually creating planned order, user enter the order finish date. Available for planning date is then obtained by adding the GR processing time to it.


For Production orders:
Scheduled finish Date = requirement date minus GR processing time minus float after prd.
scheduled start date = scheduled finish minus sum total of operation execution times - float before prod.
release date = scheduled start minus release period from schedule margin key.

Wednesday, September 15, 2010

CO: Order Confirmations link to controlling

Task: Link between a confirmation posting done in a PP or CS order with controlling.

Tables: AFRU and COBK

Explanation: Confirmation number (RUECK) is a unique number identifying "a" confirmation transaction, and this can be a bit confusing. A confirmation number is assigned at the time of order creation, to each operation of an order that is confirmable (well, if you are using operation-wise confirmation, I guess!) and therefore exists even before any single confirmation is posted for the order.

To identify a single confirmation transaction that happened for an operation, it is necessary to know both the confirmation number (RUECK) and the confirmation counter (RMZHL).

When it comes to the CO documents for confirmation, these are held in tables COBK and COEP.

The links between the confirmation postings in logistics (CS/PP) and controlling are:


COBK-REFBN = AFRU-RUECK
COBK-AWORG = AFRU-RMZHL