1.
Details of the Terms of Reference of the "Company" Dynamic Distribution Model
2.
"Company": Dynamic Distribution Model
Project Approach:
Phase 1: Determining and Checking Desired Functionalities:
What are the overall business objectives "Company" wants to achieve?
What are the specific implications of these objectives for the distribution system?
These business objectives will define the KPI’s to be optimized by the developed mathematical models:
Minimizing the total cost structure: Inventory costs, transportation costs, transhipment costs (E.g. material handling costs in a warehouse.);
Maximizing the performance of the supply chain network in terms of delivery reliability: Designing a network architecture which has the ability to meet customer requests within a specified time window with a certain minimal probability;
Multi-Objective Optimization: Should these KPI’s be viewed in a hierarchical or simultaneous setting?
These business objectives will also imply potential constraints on the KPI’s:
Defining an upper bound on the total amount of inventory allowed in the entire supply chain, or subparts of it, at all times;
Defining a lower and/or upper bound on the delivery reliability percentages.
3.
"Company": Dynamic Distribution Model
Project Approach:
Phase 1: Determining and Checking Desired Functionalities:
How will (should) the realisations of these objectives influence the functioning of the distribution system at a strategic, tactical and operational level?
We want to develop supply chain optimization models which can be used both at a strategic and operational level. This will be done by influencing the granularity of the time dimension (The size of time buckets: Weeks versus hours.). The models should also allow ‘ What-If ’-analyses:
STRATEGIC decision making:
Involves making allocation decisions which determine the structure of your distribution system :
Determining the number and types of nodes (E.g. warehouses, vehicles) in the network, their interrelationships (E.g. which warehouse(s) replenish(es) which outlet(s) for which product(s).) and the required resource capacities;
When building the model three dimensions are defined: Time-Space-Product-matrix
Time: Using discrete time buckets with the required granularity (E.g. day, week, month …);
Space: Defining the different kinds of warehouses and outlets, their characteristics (E.g. number, physical location, cost behavior, additional resource requirements (E.g. people and equipment.), capacity available) and their interconnections (E.g. cost behavior, resource requirements (Number and type of vehicles.) , capacity available);
Product: Referring to the set of available SKU’s (E.g. defining their cost behavior and capacity utilization.).
4.
"Company": Dynamic Distribution Model
Project Approach:
Phase 1: Determining and Checking Desired Functionalities:
How will (should) the realisations of these objectives influence the functioning of the distribution system on a strategic, tactical and operational level?
STRATEGIC decision making:
For solving this allocation problem we use a linear programming model : Min Cost Flow-model:
Determining which warehouse will supply a lower level warehouse or outlet for which SKU;
Determining when these deliveries should be made, and in what quantities. The distribution lot sizes will be dynamically calculated by making a trade-off between fixed transportation costs and inventory costs given a specific demand pattern for a product. A forecasting engine on the level of the outlets needs to be available;
Determining the inventory levels (safety and cycle stock) and their evolution for each SKU at all levels of your supply chain. By determining the forecasting errors and the lead times required, the safety stock levels can be calculated;
Determining the types and number of vehicles required;
Determining the resulting values for the defined KPI’s (Min Cost);
A Min Cost Flow-model defines the supply chain in terms of nodes and connecting arcs.
5.
"Company": Dynamic Distribution Model
Project Approach:
Phase 1: Determining and Checking Desired Functionalities:
How will (should) the realisations of these objectives influence the functioning of the distribution system on a strategic, tactical and operational level?
OPERATIONAL decision making:
Once the structure of the supply chain network has been determined, the following considerations have to be taken into account:
Each ‘movement’ in the network is being regarded as a task to be scheduled;
Each task is being linked to a set of resources (E.g. vehicles, people, warehouses, …) on which a number of resource requirement constraints will be defined;
Each of these resources is being characterized by capacity constraints;
Taking into account the defined resource requirement constraints, these tasks have to be sequenced, so that an accurate calculation of start and end times can be performed;
On this level we can take into account non-linear aspects of the model;
Essentially we are building a SCHEDULING engine according to APS-principles using Constraint Programming ;
This scheduling engine communicates with the Min Cost Flow-engine, thus updating the parameters used by the Min Cost Flow-engine and also reducing the number of nodes and connections to be regarded by it, thus reducing solving time significantly;
It thus generates an accurate and detailed operational schedule.
Phase 2: Formulating the detailed mathematical model
Phase 3: Translation into a software solution
6.
"Company": Dynamic Distribution Model
Phase 2: Formulating the detailed mathematical model - Roadmap for Excellence:
INTRODUCTION: On the basis of previous analyses it should be clear that an implementation trajectory might be subdivided into two main layers of added value:
The Strategic Network Level (SNL) and the Tactical Dynamics Level (TDL).
The SNL is mainly concerned with defining an optimal structure for the "Company" Distribution System (DC / Hub / Branch) in a certain geographical market based on a trade-off between capacity-related costs and cashflows on the one hand, and transportation costs on the other hand over a certain long term decision horizon.
The TDL translates detailed demand and service level-profile requirements information into an optimized inventory position (cyclical and safety stock) across the nodes defined by the SNL.
7.
"Company": Dynamic Distribution Model
Phase 2: Formulating the detailed mathematical model - Roadmap for Excellence:
PHASE 2.1: Strategic Network Level (SNL):
Deliverables:
Determination of the structure of the optimal distribution network in terms of the number and the location of the different types of entities that compose the network (DC / Hub).
This can be enriched with decisions regarding the number and location of the different kinds of branches based on socio-demographic information for the relevant markets.
The analysis is focused on a trade-off between capacity-related costs and cashflows on the one hand, and transportation costs on the other hand, and this over a sufficiently long decision horizon. The model will use concepts of capital budgeting such as Net Present Value.
Definitions:
Activity driver : Refers to the variable that directly influences the degree of activity in the network. For the analysis of capacity-related costs we will use FLOW or THROUGHPUT . Here we define FLOW as the total number of units of a certain SKU, or segment of SKU’s or all SKU’s, that flow throughout the network during the decision scope;
Cost driver : Refers to the variable whose level directly influences the level of a specific type of costs incurred;
Cost driver rate : Cost incurred per unit of consumption of the cost driver;
Activity driver rate : Units of cost driver consumed per unit of activity driver;
8.
"Company": Dynamic Distribution Model
Phase 2: Formulating the detailed mathematical model - Roadmap for Excellence:
Requirements for the analysis:
CAPEX-profile: Capital expenditure required per type of entity (DC / Hub / Branch) as a function of THROUGHPUT. This will be modelled as a STEP-function CAPEX = F(THROUGHPUT). The step-function expresses the semi-fixed behaviour of CAPEX;
OPERC-profile: Operational costs per type of entity (DC / Hub / Branch) as a function of THROUGHPUT. This is the result of analyzing the different cost components involved. As activity driver we use THROUGHPUT . These costs behave semi-variably according to the following relationship: OPERC = Σ (activity driver) x (activity driver rate) x (cost driver rate);
DEMAND-profile: Linking the contribution to THROUGHPUT of the covered market. We divide the market up into segments (Granularity: Branch level) along a geographical dimension. We associate a set of coordinates to each market segment. For each market segment an estimation is given of its potential contribution to THROUGHPUT. The surface of such a market segment might be dependent on the sensitivity of potential consumers to distance (Possibly measured as time);
TRANSPC-profile:
As an activity driver we use THROUGHPUT x DISTANCE (versus THROUGHPUT as the only activity driver for network node infrastructure);
THROUGHPUT: Defines the frequency of interactions between the different nodes in the network. The interaction frequency will be determined by the number of SKU’s that potentially can be carried per interaction by the used modus of transport (Depends on the capacity characterisctics of the used modus of transport and the potential constraints that limit this capacity);
DISTANCE: Can be simply measured on the basis of a coordinate system or more accurately calculated via a sophisticated routeplanner;
Determine the transportation cost structure based on distance. These costs will be characterized by a step function due to for example regulatory limitations imposed on for example maximal driver time;
The cost structure has to be defined for the different modes of transportation (E.g. express shipments);
Define whether to use the hub-and-spoke model or the TSP-model based on the types of network nodes interacting;
9.
"Company": Dynamic Distribution Model
Phase 2: Formulating the detailed mathematical model - Roadmap for Excellence:
PHASE 2.2: Tactical Dynamics Level (TDL):
Deliverables:
On the basis of PHASE 2.1 results, the TDL translates detailed demand and service level-profile requirements information into an optimized inventory position (cyclical and safety stock) across the nodes in the network.
Additional requirements for the analysis:
Monetary value per unit of SKU for all SKU’s;
ICC (Inventory Carrying Charge): Incurred costs related to holding a monetary unit of inventory per unit of time (Interest rate defining the cost of working capital);
DETAILED DEMAND INFORMATION: For a sufficiently fine granularity of the time dimension (Time buckets of a week or a day), data concerning actual demand (per SKU or per segment) and linked requirements in terms of the desired service levels, should be available (Forecasted demand – Replenishment orders; Job-related orders – JIT);
Capacity constraints (E.g. maximal throughput per unit of time) for the different types of network entities (DC / Hub / Branches);
Lead time information with respect to suppliers and other network entities (DC / Hub);
Stochastic information with respect to demand (Forecast errors) and lead times (Suppliers, transportation);
10.
"Company": Dynamic Distribution Model
Causal Flow/Tree-Diagram:
NODE-Level:
Definitions of variables used:
Three categories of SKU: WS (70%), BG (25%), BL (5%);
FRC[SKU, t]: Fixed Replenishment Costs: These costs embed administrative overhead, material handling costs (internal, inbound, outbound), quality inspection on the one hand (OVERHC[SKU, t]), and TRANSPORTATION COSTS on the other hand (TRANSPC[SKU, t]);
r: Interest rate per period (Should take into account risk-elements such as obsolescence);
v[SKU]: Monetary value per unit of SKU;
DEMAND[SKU, t]: Demand pattern for SKU in units, based on actual availability figures (deducting manco’s);
SS[SKU, t]: Safety Stock for SKU in period t;
CS[SKU, t]: Cycle Stock for SKU in period t;
WCE[SKU, t]: Working Capital Employed for SKU in period t;
IC[SKU, t]: Inventory Costs for SKU;
SERVTIME[SKU, t]: Service Time (Reaction Time -- Delivery Time) for SKU in period t;
SERVREL[SKU, t]: Service Reliability (Service Level) for SKU in period t;
DISTLOTSIZE[SKU,t]: Distribution Lot Size for SKU in period t;
SS[SKU, t] Stochastic v[SKU] FRC[SKU, t] r CS[SKU, t] Deterministic DEMAND[SKU, t] Desired SERVTIME[SKU, t] SERVREL[SKU, t] Generated SERVTIME[SKU, t] SERVREL[SKU, t] SERVPOL WCE[SKU, t] IC[SKU, t] WCE[SKU, t] IC[SKU, t] OVERHC[SKU, t] TRANSPC[SKU, t] DISTLOTSIZE[SKU, t] TRANSPOL OBJECTIVE: Optimization based on a trade-off between the variables in the grey- shaded rectangles Demand Aggregation Process based on ‘netting’-logic similar to MRPII NETWORK
11.
"Company": Dynamic Distribution Model
Causal Flow/Tree-Diagram:
NETWORK-Model (NETWORK):
INPUT:
Planning Horizon -- Capital Budgeting Analysis;
Layers: Suppliers -- DC -- Hub -- Branches;
Granularity of the geographical dimension: On which level of detail should (potential) physical locations of Suppliers, Customers and intermediary nodes in the "Company" Distribution System (DC, Hub, Branches) be modelled;
Calculate: TRANSPC[SKU, Node FROM , Node TO ] (Calculated transport costs between Node FROM and Node TO for SKU) = F(
DISTANCE[Node FROM , Node TO ](Calculated distance between Node FROM and Node TO )
* UNITTRANSPC (Transport cost per unit of distance per unit of capacity for the modus of transport of choice -- Truck -- FTL -- Dedicated transport (No groupage) -- Floor capacity -- Stacking possibility)
* CAPUTILUNIT[SKU] (Capacity utilisation per unit of SKU to be transported -- Floor capacity used per crate -- Number of units of SKU per crate)
* FLOW[SKU , Node FROM , Node TO ] (Volume in units of SKU routed along this connection));
Definition and characteristics of types of nodes in the "Company" Distribution System (DC, Hub, Branches):
CAPEX (Capital Expenditure required for each additional DC or Hub) = F(THROUGHPUT (Measure for the required capacity of the DC or Hub -- Can be modeled as a step-function -- Semi-Fixed));
OPERC (Operating Costs linked to a DC or Hub) = F(THROUGHPUT (Determined by the flows throughout the DC or Hub and their linked usage of resources -- Semi-Variable));
OBJECTIVE:
Determining a feasible set of Location/Allocation decisions:
All flows between all Suppliers and All Branches for all SKU’s are covered;
Minimize = Σ TRANSPC[SKU, Node FROM , Node TO ] + Σ CAPEX + Σ OPERC
OUTPUT:
TransshipmentMatrix[SKU, Node TO , Node FROM ] (Determines from which node -- Node FROM -- a replenishment for a certain amount of SKU required by Node TO will be generated);
LocationMatrix: Determines the physical location of the different nodes in the "Company" Distribution System (DC, Hub);
12.
"Company": Dynamic Distribution Model
Causal Flow/Tree-Diagram:
TRANSPORTATION POLICY (TRANSPOL):
Linked to LOCATION/ALLOCATION decisions made on the NETWORK-Level (TransshipmentMatrix[SKU, Node TO , Node FROM ] – LocationMatrix );
TRANSPC[SKU, Node FROM , Node TO ] (Calculated transport costs between Node FROM and Node TO for SKU) = F(DISTANCE[Node FROM , Node TO ](Calculated distance between Node FROM and Node TO ) * UNITTRANSPC (Transport cost per unit of distance per unit of capacity for the modus of transport of choice -- Truck -- FTL -- Dedicated transport (No groupage) -- Floor capacity -- Stacking possibility) * CAPUTILUNIT[SKU] (Capacity utilisation per unit of SKU to be transported -- Floor capacity used per crate -- Number of units of SKU per crate) * FLOW[SKU , Node FROM , Node TO ] (Volume in units of SKU routed along this connection));
Logistics Policy: Hub & Spoke-model versus Travelling Salesman Problem (TSP -- Melkronde);
Transport Modus -- Cost Structure:
Minimum unit of transportation (Crates, boxes, pallets) -- Number of units of SKU per minimum unit of transportation;
Cost Drivers: Distance (Granularity used) -- Capacity utilisation of vehicle (FTL, LTL) (Can be dependent on the types of the supply and the recipient nodes (DC -- Hub versus Hub -- Branch);
Behaviour and characteristics of resources (E.g. drivers) required to operate the vehicle (Truck): Cost of drivers, requirement of mandatory breaks, maximum driving time of drivers);
Taking into account the cost structure of express deliveries;
TRANSPTIME[Node FROM , Node TO ] (Calculated transportation time between Node FROM and Node TO ) = DISTANCE[Node FROM , Node TO ](Calculated distance between Node FROM and Node TO ) / AVGSPEED[Node FROM , Node TO ](Calculated average speed between Node FROM and Node TO );
DISTLOTSIZE[SKU,t] (Distribution Lot Size) = F(TRANSPC[SKU, t] (Transport Cost));
CS[SKU,t] (Cycle Stock) and SS[SKU,t] (Safety Stock) = F(DISTLOTSIZE[SKU,t] (Distribution Lot Size));
REPLT[SKU, t] (Replenishment Lead Time) = F(TRANSPTIME[Node FROM , Node TO ] (Calculated transportation time between Node FROM and Node TO ));
SS[SKU,t] (Safety Stock) = F( σ (Statistical Standard Deviation of REPLT[SKU, t] (Replenishment Lead Time)));
SS[SKU,t] (Safety Stock) = F(REPLT[SKU, t] (Replenishment Lead Time));
NETWORK
13.
"Company": Dynamic Distribution Model
Causal Flow/Tree-Diagram:
SERVICE LEVEL POLICY (SERVPOL):
Desired / Generated Service Level Profile on Branch Level:
Service Level Profile: i = 1, …, N: N = Number of service offerings provided, c.q. desired by different customer groups or segments;
SERVTIME[SKU, t, i] (Service Time -- Reaction Time -- Delivery Time) = t ServiceProvidedDesired – t OrderIntake (E.g. 2 hours);
SERVREL[SKU, t, i] (Service Reliability -- Service Level) = P(t ServiceProvidedGenerated ≤ t ServiceProvidedDesired ) (Probability);
Responsibility for Marketing:
FRC[SKU] (Fixed Replenishment Costs for SKU – Includes transport costs);
IC[SKU] (Inventory Costs for SKU);
SERVTIME[SKU, t, i] (Service Time) = F(FRC[SKU] (Fixed Replenishment Costs for SKU) +IC[SKU] (Inventory Costs for SKU) via SS[SKU,t] (Safety Stock));
SERVREL[SKU, t, i] (Service Reliability) = F(FRC[SKU] (Fixed Replenishment Costs for SKU) +IC[SKU] (Inventory Costs for SKU) via SS[SKU,t] (Safety Stock));
PRICE[SKU, i] (Price the customers of segment i want to pay for corresponding service offering for SKU);
ELASTSLP[SKU, i] (Elasticity of PRICE[SKU, i] with respect to SERVREL[SKU, t, i] and SERVTIME[SKU, t, i]): This elasticity links the revenue aspects to the cost aspects of the model and enables the optimization of the distribution system in terms of profitability ;
Desired / Generated Service Level Profile on DC/Hub Level:
The service level for the node on the supplying level is the result of a trade-off between:
Factor1: FRC[SKU] (Fixed Replenishment Costs for SKU -- Includes transport costs) +IC[SKU] (Inventory Costs for SKU) aggregated on both levels (Supplying node and recipient nodes);
Factor2: The service level profile required by the nodes on recipient level (See above) result in a demand pattern per node on the recipient level to be aggregated over the nodes on the recipient level to be replenished by the suppying node based on the results of the LOCATION/ALLOCATION-model;
SS[SKU, t, Node From ] (Safety Stock for the supplying node) = F(Factor1, Factor2);
SERVTIME[SKU, t, Node From ] (Service Time) = F( SS[SKU, t, Node From ] (Safety Stock for the supplying node) );
SERVREL[SKU, t, Node From ] (Service Reliability) = F( SS[SKU, t, Node From ] (Safety Stock for the supplying node) );
14.
"Company": Dynamic Distribution Model
Potential Project Approach:
Phase 3: Translation into a software solution
Issues for a distribution model:
Services to be provided using ASP (Application Service Provider);
Enables parameter setting and output interpretation using Excel;
DRP as ‘inverse’ MRP: Defining ‘Bill of Distribution’ and linked data gathering;
Dynamic lot size determination: Calculating distribution lot sizes as the result of a trade-off between inventory costs and transportation / transhipment costs given a specific demand pattern for the product. This also takes into account ‘Risk Pooling’ aspects and gives an insight into the balance between ‘Pull’ and ‘Push’;
Risk Pooling refers to the fact of whether the demand patterns of the recipient nodes in the network are correlated. If the demand patterns are strongly positively correlated, then the system can experience significant demand peaks and lows, this is certainly the case when a PULL-JIT-philosophy is used. As a consequence of these demand peaks the capacity of the supply node has to be increased. This will result in periods of significant excess capacity and thus a lower average capacity utilisation performance. One can try to anticipate these demand peaks (using forecasting techniques) using a PUSH-philosophy (Average inventory position, average capacity utilisation will increase, and the average transport costs may decline. This is the result of using larger lot sizes, while reducing the number of nodes upstream in the supply chain while increasing their capacity);
Risk pooling results in a hybrid PUSH(Upstream)-PULL(Downstream)-strategy;
Following constraints can be imposed (e.g. in the context of a sensitivity analysis ):
Restricting the total amount of inventory (safety / cycle versus physical / value) for set of (All) SKU’s for a subpart of, or for the entire distribution system;
Defining lower and upper bounds for the service level for a set of (All) SKU’s (e.g.: 0.98 ≤ ServiceLevel[SKU] ≤ 0.999). By changing these bounds the impact on the total cost structure can be calculated ;
Changing the ‘capacity’ of a node in the network (Elimination: capacity = 0);
Defining the concept ‘capacity’ of a DC/Hub:
Capacity versus ‘Throughput’;
The capacity of a DC/Hub is determined by the capacity of its bottleneck resource (e.g. space);
Be the first to comment