Shelf-life expiration management is usually used in pharmaceutical industry and food industry. These raw materials need to be used before expiration date. APO SNP Optimizer also support shelf-life planning in a restricted way [NOTE 579556 – Taking shelf life into account with SNP optimizer]. I am currently involved in a Supply Planning project for a customer in High tech industry, and there is also similar requirement which is implemented with shelf-life planning in SNP Optimizer. So I’d like to share information about shelf-life planning with SNP optimizer.
Master data:
Enable shelf-life planning for location product and set shelf-life days for the product master data.
And the default shelf-life disposal cost is same as Procurement Cost. There is also possible to change the disposal cost with SNP BADI /SAPAPO/SDP_OPT_LOG change SNP optimizer input log.
SNP Optimizer Profile settings
Menu Path: Advanced Planning and Optimization-> Supply Network Planning-> Environment-> Current Settings-> Profiles-> S_AP9_75000102 – Define SNP Optimizer Profiles
There are three options for shelf-life planning
- Ignore Shelf-life: Disable shelf-life planning in optimizer
- Continue Using Expired Product: Optimizer would take into account shelf-life of product master data. If products have passed shelf life expire date, the optimizer still continue to use these product but calculate with penalty cost. For this option, you could find bSOFTSHELFLIFE = true in trace file of optimizer log.
- Dispose of Expired Product: Optimizer would take into account shelf-life of product master data. For expired products (those that have passed their shelf life expiry date), the optimizer plans for the disposal of this product, but calculates penalty costs for this disposal. For this option, you could find bSOFTSHELFLIFE = false in trace file of optimizer log.
Here are some testing scenarios for shelf-life planning with execute transaction /SAPAPO/SNPOP to run SNP optimizer.
Scenario 1: There is one material Part A with initial stock 100, shelf-life days for the part is 20 days, and the shelf-life disposal cost is set as 1. storage cost is also set as 1.
Run optimizer with Shelf-life option ” Continue Using Expired Product “.
After execution, check the SNP optimizer input log and output log with /SAPPAO/SNPOPLOG
The shelf-life enablement, shelf-life days and disposal cost for the product could be found in ET_LOCMAT table of input log.
Check Storage cost and shelf-life disposal penalty cost in Output log IT_LOCMAT.
The storage cost and material disposal cost is same 100 until bucket 36. But from bucket 37, storage cost is 700, and the material disposal cost is still 100. How the optimizer engine calculates these costs?
We have enabled storage cost per day for this material, and the bucket 37 have 7 days, so the storage cost is calculated as formula: days of bucket * stock quantity * storage cost per unit
For the material disposal cost, due to there is no demand for the initial stock in shelf-life days of future, so the system would view the whole quantity stock as expired. Cost formula: expired stock quantity * shelf-life cost per unit. In bucket 37, there is no demand for the stock in 20 days, so the system set material cost as 100 * 1 = 100.
If run optimizer with Shelf-life option ” Dispose of Expired Product “, the whole quantity stock would be regarded as wasted and not allowed to use in future.
Scenario 2: There is one material Part A with initial stock 100, shelf-life days and shelf cost is set as scenario 1. There is forecast demand for this part in 15 days later.
Run optimizer with Shelf-life option ” Continue Using Expired Product “.
Let’s check the input log and output log.
Forecast demand 80 is located at bucket 23.
The storage cost for the part is 100 initially and decreased to 20 until bucket 23 when demand is located.
The material disposal cost is 100 same as storage cost. But it is decrease to 20 from bucket 3. Because optimizer find the future demand 80 of bucket 23 is located in the shelf life period, and only 20 units is regarded as wasted.
Summary:
The material disposal (shelf-life) penalty cost is determined by the amount of unused material during shelf-life period. With such feature, we could control the speed of consume interchange parts with different shelf-life period or special supply category which need to be consumed first etc. Hope this share could help you to understand shelf-life planning cost calculation in SNP Optimizer. Any suggestion are welcomed.