The optimizer only considers shelf life when the flag ‚Plng w/ shelf life„ is switched on in the product master and a shelf life is maintained (Attributes Tab). Additionally, the flag ‚Do Not Take Shelf Life into Account‟ must not be activated in the optimizer profile.
Shelf life violating costs in Input log: in table ET_LOCMAT:
WASFL: flag: shelf life penalty is active -> WASFL = 'X'
WASTE: shelf life: penalty for wasted quantity (same values as for procurement costs FCOST)
Restricted use of shelf life in SNP. Please check notes 574321 (SNP in general) and 579556 (SNP OPT).
Settings:
Do Not Take Shelf Life into Account: the optimizer does not take product shelf lives into
account during optimization, even if the corresponding master data are maintained.
Continue Using Expired Product: the optimizer takes into account the shelf life of
products that was specified in the product master. For expired products (those that have passed their shelf life expiry date), the optimizer plans for the continued use of this product, but calculates penalty costs for this continued use.
Dispose of Expired Product: the optimizer takes into account the shelf life of products that
was specified in the product master. 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.
Use Penalty Csts that are not Prod-Dep.: This indicator can be activated in connection
with either the Continue Using Expired Product indicator or the Dispose of Expired Product indicator. By default, the optimizer considers the location product procurement costs that were defined on the Procurement tab page in the product master. If you want to enter and define different costs that are not dependent on the product, you are able to do this in the
Penalty Costs: Not Product Dependent field. In this instance, you must also activate the Use Penalty Csts that are not Prod-Dep. indicator.
Only the ending inventory for the bucket accrues an inventory cost. If you use cost per bucket, it is harder to adjust the storage cost to balance with the safety stock penalty cost which is
calculated as a cost per day. In addition, using a storage cost per bucket does not account for planning in different buckets – e.g., weekly or monthly planning buckets.
For LPs, it is not necessary to maintain storage costs to get ‚JIT behavior„ of the optimal solution. It is ensured via an internal post processing in the optimizer that planned orders are generated as late as possible to satisfy the demand. This post processing is not active for discrete problems, i.e. storage costs have to be maintained to get this JIT result.
Cost Calculation:
Average Stock On Hand: the optimizer calculates the storage costs by multiplying the following values together:
Stock on hand at the end of the bucket (period)
Storage costs that have been defined for the location product in the product master (in the Procurement tab)
Number of days in the bucket
Stock on Hand at End of Period: the optimizer calculates the storage costs by multiplying the stock on hand at the end of the bucket (period) with the storage costs that were defined for the location product.
Storage costs in Input log: in table ET_LOCMAT
HCOST: storage costs
BUCFL: storage cost: multiply by bucket length = 'X' -> if setting Average Stock On Hand is chosen
Prerequisite in location product master:
maintained safety stock (target safety stock level)
safety stock planning method Take Period Length into Account:
the optimizer also takes the period length into account when calculating the penalty costs for falling below the safety stock, which means that it multiplies the product from an absolute value (or relative value) of the stock fallen below with both the penalty costs and the period length in days. In case of weekly buckets this would mean that the resulting penalty costs would be multiplied with 7 if this checkbox is activated.
If this setting is not active, then the optimizer does not consider the number of days in a bucket (in which inventory is below safety stock).
Safety stock penalty is calculated as:
Take a Relative Deviation from the Safety Stock into Account: the optimizer calculates penalty costs when the safety stock level is fallen below. To do this, it multiplies the percentage of the amount fallen below with the penalty costs that were defined in the product master (per day).
calculation:
safety stock penalty cost * [(target safety stock – inventory)/target safety stock] * (if required) period length in days (number of days that inventory is below safety stock)
Take an Absolute Deviation from Safety Stock into Account: the optimizer calculates penalty costs when the safety stock level is fallen below. It multiplies the absolute value of the amount fallen below with the penalty costs that were defined in the product master (per day).
calculation:
safety stock penalty cost * amount of stock below the desired safety stock * (if required) period length in days (number of days that inventory is below safety stock)
Take Period Length into Account: the optimizer also takes the period length into account when calculating the penalty costs for falling below the safety stock, which means that it multiplies the product from an absolute value (or relative value) of the stock fallen below with both the penalty costs and the period length in days. In case of the example above with weekly buckets this would mean that the resulting penalty costs would be multiplied with 7 if this checkbox is activated.
If this setting is not active, the optimizer takes into account the number of buckets in which inventory is below safety stock.
Safety stock penalty costs in Input log: in table ET_LOCMAT:
The penalty cost for not satisfying the demand is interpreted as cost per unit of demand not satisfied.
The penalty cost for delay is interpreted as cost per unit of demand per day of delay, e.g., if you are working in monthly buckets, then the cost is multiplied by the number of calendar days.
Late Delivery costs, maximum lateness and non delivery costs in Input log:
// ET_DEMCLTIM (Demand Class with Penalty for Delay/Not Delivering)
LAPEN: penalty for lateness
MAXLA: maximum lateness
NDPEN: penalty for not delivering
Demand data in Input log in table ET_DEMAND: DEMCL = demand classes:
1 – highest priority (customer demand)
2 – priority 2 (corr. forecasts)
Resource utilization cost is on the capacity variant 2 of the resource. Capacity variant 2 has to be specified as the active variant of the resource. This works for mixed and bucket resources. For mixed resources, you have access to the capacity variant only if you explicitly enter the bucketed capacities.
Resource utilization cost is interpreted as cost per unit of resource above the capacity variant 1. If you are only using capacity within capacity variant 1, then no costs are considered. In APO 3.x you have to use capacity variant 1 and 2.
Costs for capacity expansion in Input log:
// ET_RESFAMC (Resource Family Calendar)
INCRF: upper bound for increasing production resource
You have to maintain non-delivery or delay costs, otherwise there will be no production at all, since the ´do-nothing-at-all´ solution will lead to minimal costs (=0).
Storage and shipping calendar are only used if the corresponding resources are not maintained. If there is a storage resource, or a handling resources, respectively, then the calendar from this resource will be used by the optimizer.
The same is valid for production resources.
The stock category group from the SNP Tab is not used by the SNP optimizer, and the deployment settings are only used by the deployment optimizer.
The shelf life parameters are on the product master. Shelf life parameter is ‚product specific„ not product-location specific (e.g., the same shelf life at the plant or at the DC). The optimizer only considers shelf life when the flag ‚Plng w/ shelf life„ is switched on in the product master and a shelf life value is maintained (Attributes Tab). Additionally the corresponding setting in the optimizer profile has to be activated. Only the shelf life field is used by optimization, any of the other fields (maturity, min/max shelf life) are not used.
In SNP, only optimization recognizes shelf life. Other SNP solvers and the interactive planning tables do not recognize shelf life. It may be misleading to see stock in the interactive planning table that is no longer useable. Please check notes 574321 (SNP in general) and 579556 (SNP OPT) for more detailed explanations.
The shelf life costs occur in the bucket where the product has to be discarded due to exceeded shelf life.
Shelf life parameters in Input log: in table ET_LOCMAT:
WASFL: flag: shelf life penalty is active -> WASFL = 'X' WASTE: shelf life: penalty for wasted quantity
Production storage capacity is a product specific maximum stock level at this location (per bucket).
The maximum lot size from the product location master is not considered during the optimizer run, but it is taken into account for the creation of orders (in liveCache).
Example: maximum lot size in location-product master data = 500
optimizer creates an order of e.g. 2000 (also displayed in interactive planning table)
4 orders of 500 are shown in the detailed view / product view
Customizing change necessary; ta: SPRO -> APO Implementation Guide -> Advanced Planner and Optimizer -> Supply Chain Planning -> Supply Network Planning (SNP) -> Global Settings for SNP Optimizer: activate checkbox „create orders“, if more than one order should be created, if necessary by location-product master data settings (for details see consultancy note 503222) To consider rounding value as lot size, the flag ‚discretisation„ in the PPM has to be activated.
Additionally, the corresponding settings in the optimizer profile for discretization (min lot size, rounding value) and production storage capacity (general constraints/capacity restrictions: maximum product-specific quantity stored) have to be selected.
Lot Size parameters in Input log:
in table ET_PROMO:
LOTSZ: rounding value or fixed lot size from location product
PMINQ: minimum production lot size (from PPM or location product)
Note: 'PMAXQ' in table ET_PROMO: maximum production lot size (from PPM)
in table ET_LOCMAT:
MAXST: maximum stock
MAXFL: flag: Constraint active -> MAXFL = 'X' (Optimization Profile)
in table ET_LOCPROD:
Within the Production Horizon (in days) / Stock Transfer Horizon (in days) the optimizer does not plan production / transfers. That is, the optimizer does not create SNP planned orders /
distribution receipts within this horizon, but postpones production / distribution to the first day beyond the specified production / stock transfer horizon.
Forecast horizon (in days) defines a horizon in calendar days when the forecast is not considered as part of total demand. Actually, the optimizer does not respect the forecast horizon. If you want it, apply note 412551. Note 443012 has also to be applied, if you are lower than SP17.
Horizons in Input log: table ET_PRODBND for production horizon, table ET_TRANBND for
stock transfer horizon.
It may happen that there is an entry in the input log even if no production / stock transfer horizon is maintained: if you have e.g. weekly buckets, and you run the optimizer on the second day of the week, then no creation of production/distribution orders in this week is possible, i.e. the horizons are active. The same is true for table ET_PROCBND (see below).
Procurement parameters in Input log: in table ET_LOCMAT:
FPERF: procurement type
FCOST: linear procurement cost (variable) SSPEN: penalty for not covering safety stock HCOST: storage costs
in table ET_PROCCOS: procurement cost function
Maintenance in Product Location Master Data -> Procurement Tab, field: Procurement Type E = In-house Production
x = maintained - = not maintained
Maintenance in Product Location master data -> Procurement Tab, field: Procurement Type F = External Procurement
x = maintained - = not maintained
Maintenance in Product Location master data -> Procurement Tab, field: Procurement Type X = In-house Production or External Procurement
P = Procurement Planning: External x = maintained
- = not maintained
GR/GI parameters in Input log in table ET_LOCMAT: RECTI: goods receipt processing time
ISSTI: goods issue processing time
CONIN: consumption of input handling capacity (goods receipt) (if inbound handling resource is maintained in location master data: Resources Tab)
CONOU: consumption of output handling capacity (goods issue) (if outbound handling resource is maintained in location master data: Resources Tab)
CACON: storage capacity consumption (if storage resource is maintained in location master data: Resources Tab)
Example: If the handling resource can handle 1000 kg per day, and you define the handling capacity consumption as 10 kg per piece, the maximum rate is 100 pieces per day.
If you want to consider the GR time for in-house production, then go to APO customizing: supply chain planning -> SNP -> basic settings -> maintain global SNP settings: HEU: Planned Order GR = processing time.
Handling and storage resources in Input log: ET_LOC (Handling resources at a location)
LOCID: Location ID, RESIN: Handling resource ID for inbound
INPEN: Penalty for increasing the handling capacity
MAXIN: Flag: Hard + soft constr. active -> MAXIN = 'X'
RESOU: Handling resource ID for outbound
OUPEN: Penalty for increasing the handling capacity
MAXOU: Flag: Hard + soft constr. active -> MAXOU = 'X' ET_LOCC: Handling resource: normal capacity
MAXHA: handling capacity
ET_LOCUC: Handling resource: additional capacity INCHA: upper bound for increasing the handling capacity ET_SUBLOC (Storage resources of a sublocation)
SUBID: Sublocation ID
INPEN: Penalty for increasing the capacity
MAXFL: Flag: Hard + soft constr. active -> MAXFL = 'X' ET_SUBLOCC: Storage resource: normal capacity
MAXSL: storage capacity
ET_SUBLOCUC: Storage resource: additional capacity INCSL: upper bound for increasing the storage capacity
Over utilization, downtime settings, minimum utilization not recognized by SNP.
There is no cost associated with using the normal capacity. The cost assigned to the resource is the cost per unit of capacity used above the normal capacity (variant 2).
Details about Cross-Period Lot Sizing will follow later.
Production resource in Input log:
ET_RESOURCE (Elementary production resources) RESID, RFAID: Resource ID and resource family ID
UNIVO: Unitary volume (=1.0, redundant entry)
ET_RESFAM (Production resources of a resource family) RFAID: Resource family ID
INPEN: Penalty per unitary volume for increasing capacity
MAXFL: Flag: Hard + soft constr. active -> MAXFL = 'X' (finite capacity)
DISCR: Flag for using discrete increase of resource-family
ET_RESC: Production resource: normal capacity (variant 1 or standard capacity) MAXRE: production capacity
ET_RESFAMC: Production resource: additional capacity (variant 2) INCRF: upper bound for increasing the production capacity
From an economical viewpoint it is sometimes sensible to require a minimum resource utilization even if the demand is not sufficient. We use capacity variants to model the utilization, and the SNP optimizer then takes them into account. If the utilization is below the minimum then the optimizer considers costs, i.e. the minimum capacity is a soft constraint. The minimum, the normal and the maximum resource consumption are realized as capacity variants of a resource.
In the capacity view of SNP planning book three capacity variants are shown. The minimum resource capacity will be shown in the new key figure SUPVAR3. The minimum resource capacity is computed by macros according to the macros of the first two resource variants (SUPVAR1 and SUPVAR2).
The choice which product(s) are selected to load the resource up to the desired (minimum) capacity depends on the overall cost situation. The decision is made in the way that the total costs are minimized.
Calculation of costs
Non-utilization (minimum capacity)
(minimum capacity – used capacity) * costs for falling below minimum capacity = (8 – 6) * 100 = 200
Resource utilization
MIN(used capacity, normal capacity) * costs for used capacity = MIN(12,16) * 1 = 12
Increased utilization (maximum capacity)
(used capacity – normal capacity) * costs for increased capacity = (22 – 16) * 10 = 60
+ Resource utilization costs = 16
For further information refer to the PDS guide in the Manufacturing section of the service marketplace.
The PPM duration is important for the finish date of an activity. Together with the bucket offset, the PPM duration determines the material availability.
The optimizer takes the fixed resource consumption only in account when the corresponding setting in the optimization profile is activated (discrete constraints: fixed consumptions: fixed material and resource consumption).
The minimum lot size is always the minimum lot size per BUCKET. This is also true for minimum transportation lot sizes.
The lot size is always the lot size per BUCKET. This is also true for transportation lot sizes. The maximum lot size is always the maximum lot size per WORKING DAY. This is also true for maximum transportation lot sizes.
Note that both, minimum and maximum lot size in the PPM, refer to the unit of measure of the location product, not to the unit of measure of the output component in the PPM.
Note 503222 describes how order splitting can be activated. In APO 3.0, you have to use an copt10 parameter, in APO 3.1 and 4.0, you can customize this.
Note that SNP heuristic and CTM only use the min./max. lot size from the location product as min./max lot sizes. The min./max. lot size from the PPM only determines the validity of an order.
Example: if there is only one PPM (or one means of transportation) with a min. PPM (transportation) lot size of 5 and a max. PPM (transportation) lot size of 10 to produce
(transport) a specific product, and we have an order/demand of 2 or 20, respectively, then this order/demand cannot be satisfied, since no valid procurement source exist to produce/procure this product.
Note: Rounding value, fixed lot size and Lot-for-Lot are only considered with selected discretisation in PPM and corresponding setting in the optimization profile.
Minimum lot size is only considered if the corresponding setting in the optimization profile (discrete constraints) is selected.
Maximum lot size in location product master is only considered for the determination of the planned production order, i.e. the produced quantity is split in planned production orders in the size of the maximum lot size in the location product master (or less). In AP0 3.0 it is only done, if all PPM of the selection have no "fixed resource consumption". If you don't want this splitting in any case - it can be switched off (see note "503222 Info on Optimizer Production Order Splitting").
Recommendation for maximum PPM lot size: If you have no specific "maximal lot size" for your PPM, don't enter a value like 9999999999 in this field. This could lead to problems in the floating point precision during optimization, i.e. it could provoke bad results and a bad performance of the SNP optimizer. In this case we recommend a value that is around
10% - 20% higher than the maximum that could be produced in one day. If a rounding value is used, then the maximum lot size should be a multiple of the rounding
value. Using the rounding value requires that Lot-for-Lot in the location product master is activated.
Output quantity means the production (planned) as displayed in the interactive planning table. The planned production in the optimizer log file describes the number of PPM executions and it can be different.
Consulting Notes: 503294 (Info on Optimizer Production Lot Size), and 448986 (Info on Optimizer Lot Sizes, collection of related notes).
Note:
If fixed lot size is maintained in location product master, then it overwrites the minimum lot size from PPM, i.e. PMINQ.
In both cases, the minimum and maximum lot sizes are not relevant, e.g. PMINQ = 0, PMAQ = 1000.
Examples illustrates interpretation of rounding value and material consumption in PPM. Note that in the first case the output rate (OUTIN) displayed in the input log is still equal to 7, but