Supply Contract Allocation Gyana R. Parija Bala Ramachandran IBM T.J. Watson Research Center INFORMS Miami 2001
A Simple Supply Chain Risk management Uncertain customer demand Long supply lead time Fixed quantity supply contracts Newsvendor solution: Manufacturer covers the risk of uncertain demand Supply contracts with quantity flexibility Supplier and manufacturer share the risk Price premium required to cover supplier’s cost Profit sharing on upside demand potential
Business Issues in Managing Supply Contracts Buyer can manage a portfolio of supply contracts to hedge against uncertainty and manage procurement costs Different kinds of supply sources: - Contracts with different kinds of flexibility (quantity, time …) - Contracts with different Terms & Conditions - Spot Markets Trade-offs between flexibility to postpone purchase commitment due to demand variability, supplier quantity discounts etc. Possibility to mitigate inventory risk by optimizing contract quantities and purchasing excess requirements from spot market Negotiation of competitive prices with component suppliers and contract manufacturers
Drivers impacting Supply Contracts Demand Forecast and Volatility Supplier Price & Quantity Discounts Spot Market Price Volatility Inventory Carrying costs Price Decline costs & Salvage value Risk Tolerance Industry Supply Demand Balance Lead Times & Service levels Capacity Reservation for Multi-product contracts
Related Research Activities Research Issues –Analyzing the costs and benefits associated with supplier flexibility Manufacturer/buyer: determining the amount of flexibility needed Supplier: determining the price premium to be charged Channel coordination –Developing optimized procurement strategy utilize updated demand forecasts rolling horizon flexibility (e.g., buyer commits to purchase a certain quantity every period) –Capacity reservation allocation among multiple suppliers utilizing spot market Current work –Supplier-Manufacturer flexibility model –Procurement / inventory optimization model with supply flexibility
Strategic Sourcing – Allocation between Suppliers and Marketplaces Determines quantities for strategic supplier contracts Mitigates inventory risk by optimizing the contract quantity and purchasing excess requirements from spot market Minimize Q 1,x i Subject to: for i = 1,… I for i = 1,… I
Solution Methodology Normality assumptions for demand, spot market price Analytical expressions derived for expected cost, variance of cost, risk of exceeding budget Grid Search to identify optimum Reasonable approach for small number of contracts 1. Analytical Formulation with Grid Search 2. Stochastic Programming with OSL Stochastic Extensions Discretized probability distributions for demand, spot market price Linear, Mixed-integer Stochastic Programming Problem
Strategic Sourcing – Allocation between Suppliers and Marketplaces Eg. One strategic supplier, spot market, Budget constraint Supply sources – strategic supplier, spot market Determine contract quantity with strategic supplier such that the risk of the procurement cost exceeding budget is < 5% COST OPTIMAL SOLUTION Contract Quantity – 900 Expected spot purchase Expected cost - $ 1154 Budget Risk – 27% RISK OPTIMAL SOLUTION Contract Quantity Expected spot purchase - 17 Expected cost - $ 1163 Budget Risk – 3%
Contract Portfolio Management Determines quantities to be procured under different supply contracts, given supplier price schedules Trade-off between contract flexibility, quantity discounts, and spot market purchases Minimize: Q j,x ij Subject to: for j = 1, …, J for i = 1, …, I and j = 1, …, J
Contract Portfolio Management Contract Q< <= Q < <= Q < 1300Q>= 1300 Long Term Contract % Quantity Flexibility Contract Supplier Price Schedule Determine contract quantities with strategic supplier such that the risk of the procurement cost exceeding budget is < 20% COST OPTIMAL SOLUTION Fixed Quantity Contract – % Flexibility Contract - 0 Expected cost - $ 1203 Budget Risk – 22 % RISK OPTIMAL SOLUTION Fixed Quantity Contract – % Flexibility Contract Expected cost - $ 1253 Budget Risk – 14 %
Multi-product Contracts with Business Volume Discounts Aggregate Capacity Reservation for multiple products Supplier gives business volume discounts based on overall commitment Trade-off between business volume discounts, inventory liabilities Minimize: Q i Subject to: for j = 1, …, J
Strategic Sourcing – Determining Contract Reservation Prices Eg. One strategic supplier, spot market, Budget constraint = 1300 Contract Quantity = 900 Risk Tolerance = 25% Reservation Price = 1.04 Supply risk may be specified by a choice of contract quantity – Q 1 Determine contract price for which Q1 is optimal
Optimization Solutions and Library(OSL) Stochastic Extensions OSL Stochastic Extensions is a set of tools and functions used to obtain an optimal allocation decision To apply here, we linearize the function –Generate a list of representative scenarios along with their probabilities –Create input SMPS files readable by OSL Stochastic Extensions Solve using OSL Stochastic Extensions (C++ interface) Special structured linear MIP amenable to fast preprocessing techniques in OSLSE
1 Supplier, 1 price class Min Q E[Cost] = E[c.Q + ĉ.(D-Q) + – v.(Q-D) + ] Q 0 A nonlinear stochastic program in current state becomes: Min Q E[Cost] = E[c.Q + ĉ.P – v.S] Q + P – S = D Q, P, S 0 where P = (D-Q) + and S = (Q-D) +
Stochastic Programming Formulation- Single Sourcing Minimize Q j,x j Subject to: for j = 1,… J Single sourcing - Allocation between strategic supplier and spot market Quantity discounts from strategic supplier
Input Data Purchase price: $ 1.10/unit Surplus selling price $ 0.55/unit 1576 scenarios (demand, spot price) –Demand ~ normal (1000,200) –Spot price ~ normal (1.5,0.3)
Sample Input D c Probability of Pair
OSLSE Driver EKKContext *env=ekks_initializeContext(); EKKStoch *stoch=ekks_newStoch(env,"MyStoch",50000); int type=ekks_readSMPSData(stoch,"supp.core","supp.time","supp.stoch"); ekks_describeFullModel(stoch,1); ekks_bendersLSolve(stoch,0); int numints=ekks_markIntegers(stoch); EKKModel *model=ekkse_getCurrentModel(stoch); EKKIntegerPresolve *info=(EKKIntegerPresolve *) malloc(sizeof(EKKIntegerPresolve)); ekk_integerPresolve(model,info,0,0); ekk_branchAndCut(model,NULL,NULL,info,NULL,5,1); ekks_printNodeSolution(stoch,1,1,COLUMNS); ekks_printNodeSolution(stoch,1,2,COLUMNS); ekks_printObjectiveDistribution(stoch); ekks_deleteStoch(stoch); ekks_endContext(env);
Output Optimal Quantity: 1087 Expected Cost: $ 1229
j suppliers, k discount ranges Min Q E[Cost] = E[ j k c jk Q jk + ĉ.P–v.S] subject to k x jk = 1, all j a k min x jk Q jk a k max x jk jk Q jk + P – S = D Q jk, P, S, x jk 0, x jk is binary a k min,a k max discount range constants
Input Data 10 suppliers 5 discount types –(800,899), (900,999), …, (1200, 1299) 50 price combinations
Output Order Quantity = 1271 Supplier : 2 Discount Range : 5 ($0.89/unit) Surplus of 944 units (scenario 10) Optimal (Expected) Cost = $
Conclusions OSLSE Technology –Provides the right modeling environment for contract portfolio management problems –Optimization problem resolution in reasonable times Deployment – solution based on this industrial strength solver technology can be easily deployed in any commercially available e-commerce suite
Further Work Adding other realistic factors to the model such as –Budget constraints with allowable Risks Knapsack constraint in 0-1 variables in the SP formulation – increase in computational work –Contract terms and service levels and their effects on the allocation decision
Acknowledgements Steve Buckley – IBM Research Kendra Taylor – Georgia Tech Markus Ettl – IBM Research Gelonia Dent - IBM Research
Thank You !
Distribution of Pairs
Stochastic Programming Formulation – Multiple Sourcing Minimize Q ij,x ij Subject to: for i = 1,… I for i = 1,… I & j = 1, … J Multiple sourcing - Allocation between suppliers and spot market Quantity discounts from suppliers