Next Article in Journal
Vehicle-Integrated Photovoltaic (VIPV) for Sustainable Airports: A Flexible Framework for Performance Assessment
Previous Article in Journal
Sustainable Financial Performance Analysis of Logistics Companies Listed on Borsa Istanbul: An Integrated Multi-Criteria Decision-Making Approach
Previous Article in Special Issue
A Review of Systems Thinking Perspectives on Sustainability in Bioresource Waste Management and Circular Economy
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Reducing Waste in Retail: A Mixed Strategy, Cost Optimization Model for Sustainable Dead Stock Management

Department of Industrial and Systems Engineering, De La Salle University, Manila 1004, Philippines
*
Author to whom correspondence should be addressed.
Sustainability 2025, 17(20), 9242; https://doi.org/10.3390/su17209242
Submission received: 4 September 2025 / Revised: 29 September 2025 / Accepted: 9 October 2025 / Published: 17 October 2025

Abstract

The retail sector is the most demand-sensitive echelon in the supply chain, where non-moving items accumulate and become dead stock. Existing inventory management studies focus on fast-moving products and income generation. This paper focuses on dead stock management and proposes a mixed strategy solution using a pure integer non-linear programming model that minimizes the dead stock management cost of a retail chain operator. The number of products and volume of product-related data in a retail chain system require big data analysis to ensure sustainable inventory practices that reduce waste generated from dead stock inventory. Through hypothetical data sets, the 3-store, 10-product run showed that discount percentage, expected sales success probability of a product in a store location, and disposition of unsold products were the main drivers of the decisions made by the model. The most significant cost contributors arising from these decisions were the unrecovered product cost (UPC), disposed product cost (PC), and salvage value from the successful sale of dead stock. Inventory managers must balance the effect on these cost components when they choose the strategies to use in managing dead stock.

1. Introduction

The presence of dead stock has been an underrated and widely ignored problem in the retail industry. This term refers to non-moving items that lay in the stockroom or warehouses and accumulate over time [1]. These items are also considered obsolete and unsaleable [2]. Moreover, dead stock accumulates because of slow-moving items, damaged items, incorrect product specifications, highly perishable goods, and expired items. Literature has tackled this problem and has presented several causes as to why this problem persists.
Dead stock is prevalent in the general manufacturing and retail industries, where 20–40% of inventory is typically classified as non-moving or dead stock inventory. Some of the distinguished reasons why and how dead stock occurs in retail stores are errors in forecasting [3], ordering inconsistencies [4], defective goods [5], and overall loss of customer interest or changes in market preference [6]. These impact the retail industry in terms of financial loss in capital investment, additional storage costs, depreciation of seasonal products, risk of damage to unsold products, and impacts on business analytics, which make it difficult to make business decisions. While these causes have evidently contributed to the presence of dead stock, the most controllable aspect of this problem is for management to apply intervention strategies in a timely manner to keep these non-moving items from accumulating in the warehouse, and likewise keep the slow-moving items from turning into non-moving stock. When the dead stock problem is ignored or managed late, retail chain operators incur huge losses in the form of unproductive warehouse space utilization, leading to unnecessary holding and inventory management costs [7] that impact the cash flow of the business. The longer a business holds on to excess, non-moving, and slow-moving inventories, the less it can utilize its financial resources towards fast-moving and highly saleable items, which leads to a potential loss of profit [8].
To mitigate the negative effects of dead stock on business profitability, this paper shifts its focus from the priority management of fast-moving products to the management of dead stock. Commonly applied strategies in the literature include (1) disposal strategy [9]; (2) price discount strategy [10]; (3) product bundling strategy [11]; and (4) lateral transshipment strategy [12].
The disposal strategy has been used in the management of pharmaceutical products [13], and biotechnology and bioengineering [1], among others. The product bundling strategy has been investigated in the garment industry with the use of data analysis [14] and has been effective as a means of pushing out dead stock and reducing the effect of excess inventory [11]. In the case of price markdowns or discount pricing, wholesalers and retailers alike use this strategy to manage inventory, maximize revenue, and avoid unsold products from going to waste [15]. Finally, the lateral transshipment strategy also proved to increase customer service levels and reduce backorder and inventory holding costs [16].
Despite the availability of various strategies that can be used to manage and control the occurrence of dead stock, the problem continues to hound many retailers across many industries. A deeper analysis of the persisting dead stock problem reveals the need to have an integrative perspective in using these strategies to manage dead stock through a mixed strategy solution approach. This involves the simultaneous application of the strategies to take advantage of the benefits that each strategy provides towards minimizing inventory management costs and reducing dead stock in a chain store inventory system context.

2. Literature Review

One of the most important aspects of any business is its inventory. Inventory management, therefore, has a big impact on a company’s bottom line. Effective inventory management practices produce higher service levels that increase both profitability and customer satisfaction. Inventory management prioritizes the monitoring of demand and movement of goods for replenishment decisions [17]. Management priority is given to inventory items based on their contribution to total sales [18]. Hence, existing inventory management theory revolves around the management of fast-moving products. In the manufacturing level, fast-moving goods are often prioritized since they have fewer changeovers and are therefore more efficient to produce [19]. In the retail level, inventories that have a constantly high consumer demand are prioritized so that they are actively offered in the market [20]. Fast-moving products also represent a significant part of demand forecasts [18,21], actual order volumes [18,21], and total sales [18].
With inventory management focused on fast-moving and high-value products, many businesses are seeing a rise in dead stock. Dead stock can be a major problem for businesses, as it can impact both short and long-term profitability [8]. Once this dead stock is identified, a business must decide what to do with it.

2.1. The Presence of Dead Stock in the Retail Industry

Retailers attempt to forecast demand and use it to determine the most economical order quantities that would satisfy their customers’ needs. However, due to the unpredictable changes in customers’ expectations and preferences [6], including the introduction of new and more saleable products, forecasting and traditional inventory management models fail to systematically and effectively prevent or address the occurrence of the dead stock problem [10]. Inventories that become slow or non-moving due to sudden changes in demand patterns accumulate and become dead stock, especially when they are not given management attention [22].
The domain of dead stock management remains to be underdeveloped, with little to no advancement on how such types of inventories should be treated. Nonetheless, the general inventory management scale has touched on how slow-moving inventory items, like dead stock, can be managed. These strategies involving disposal, price discount, product bundling, and lateral transshipment are discussed in the section that follows.

2.2. General Dead Stock Inventory Management Strategies

Despite the emergence of data science, which paved the way for more efficient forecasting systems and stock replenishment policies, companies still find themselves in an overstock situation due to the inability of these tools to predict and adjust to the dynamic preferences of modern-day consumers, resulting in the eventual disposal of these excess unsaleable inventories known as dead stock. Before this happens, reactive strategies are employed to minimize losses during or after the unanticipated accumulation of excess stocks. Studies that focused on reactive strategies included lateral transshipment, disposal of dead stock through scrapping, price markdowns, and product bundling.

2.2.1. Disposal Strategy

Disposal is a strategy for dead stock management if no other action is suitable or feasible for the dead stock. The studies of Kakarlamudi [23] and Yan et al. [9] both adopted scrapping to dispose of the accumulated dead stock. In the study of Kakarlamudi [23], a checklist that considers all possible options regarding the use of dead stock must be assessed first, since scrapping is considered the last resort. Historical data regarding the product’s demand was reviewed to check for potential demand in the future. However, historical demand is not an accurate indicator of future demand due to the dynamics of consumer preferences in the retail industry, especially for products that are prone to obsolescence. If future demand does not take place as projected, this dead stock stays in the warehouse and accumulates unnecessary costs. On the other hand, Yan et al.’s study utilized scrapping and adjusting order levels as the options for dead stock management. They developed a periodic review inventory model that considered a chance constraint having specified probabilities of meeting different profit targets per period. The objective of their model was to maximize expected profit. It was one of the very few management-based studies that focused on the early identification of dead stock in the inventory to avoid overproduction and excess inventories. However, the focus was on managing dead stock by ordering less to meet target profits rather than disposing of the dead stock to prevent the accumulation of dead stock management costs.

2.2.2. Price Discount Strategy

One of the most common strategies utilized in managing dead stock is the discount pricing strategy, where wholesalers and retailers alike use this strategy to manage inventory, maximize revenue, and avoid unsold products from going to waste [15]. The product pricing strategy has been integral to marketing [24]. Since this strategy is considered revenue-generating, it involves marking down the prices of products with the goal of maximizing sales. This strategy has been applied in the reduction in potential fresh food waste from retailers, as explored by Buisman [25] and as an intervention to save near-expired foods from being thrown out by Zhang et al. [26]. Moreover, an article by Collart et al. [27] highlighted the profitability and sustainability of this strategy due to its effectiveness in pushing the near-expired foods out of the retailer’s inventory system. These studies all focused on using the discount strategy for highly perishable products. Non-perishable products and products with longer shelf lives may also benefit from the application of the discount strategy. Furthermore, other sales and non-sales strategies may simultaneously be used alongside the discount strategy to maximize sales and dead stock reduction.

2.2.3. Product Bundling Strategy

Product bundling is mostly used to maximize profit [12], where the effect of overproduction may be mitigated, market reach may be increased, and dead stock pushing may be promoted [28]. Product bundling is also a good proposition to reduce dead stock since slow or non-moving products are bundled with faster-moving products to increase profit or manage unwanted excess inventory [29]. What makes product bundling an attractive strategy is that product bundles are beneficial from the customer’s perspective since a bundle offers the products at a price discount, making it cheaper than the summed price of the individual products [30]. However, the literature on dead stock reduction through product bundling is sparse. What is available in the literature is the formulation of optimization models in the retailer or manufacturer perspective, where both the pricing and bundling decisions are determined not for the purpose of dead stock management but primarily to maximize profits or reduce lost opportunities [31]. Most of the bundling and pricing models just considered reservation prices of different consumer groups in making the bundling and pricing decisions. It is important to note that product bundling of perishable products is quite different from non-perishable products since the quality of perishable products is subject to degradation. This means that the customers’ willingness to pay varied as the quality of goods deteriorated, such that the bundling model must include a deterioration rate and a total life cycle period [31]. Although there were some bundling and pricing studies that included inventory management costs in their objective [32,33], these studies did not consider dead stock pushing in developing their respective decision rules for bundling and pricing.
The study of Sugumaran and Sukumaran [14] proposed a system that determined the stocks that are highly unlikely to move and separated these stocks from those that are likely to be sold. The first part of their study used a combination of two classifier models, namely ID3 and AdaBoost ensemble, which determined the classification of a garment. The second part of their study shifted to mathematical modeling that was used to search for an optimal solution in terms of maximizing the profit from selecting fast and non-moving items to put together and sell in a product bundle. It determined the optimal discount for the dead stock to be sold. However, their study only considered the fast-moving and dead stock in the inventory system and applied a single strategy to manage the dead stock within a single store context. The study by Sugumaran and Sukumaran [14] is a good baseline for single strategy intervention and optimization. However, it is limited to a single store and forecasting as a decision tool for dead stock management. In contrast, the proposed research aimed to cover dead stock management in the whole retail chain store system using multiple strategy interventions in determining optimal strategy mixes to be applied to the dead stock in the inventory system.

2.2.4. Lateral Transshipment Strategy

Lateral transshipment is more commonly used to take advantage of backorder opportunities in stockout situations [34]. Adhering to the lateral transshipment policy is especially beneficial for networks that involve multiple warehouses or multiple retail stores at different locations. Not only does it have a positive impact in terms of reducing excess and dead stock, but it also augments customer service levels because of minimizing occurrences of backorder costs and holding costs [34]. Transshipment allows the flow of slow and non-moving products from one node of the network with unsaleable product inventory to another node that requires stocks of the same product. This strategy aims to control excess inventory and the accumulation of slow and non-moving products in one node and stockout in another node, thereby maintaining inventory balance and reducing dead stock across multiple nodes through the distribution or redistribution of inventory across nodes and networks [11].
The study by Nakandala et al. [35] developed a transshipment model consisting of decision rules based on the minimization of the inventory costs. In their study, unrealistic assumptions and limitations compromised the effectiveness of the transshipment model. Assumptions include instantaneous delivery of transshipped items, and partial orders from multiple wholesalers are not allowed. Instantaneous delivery of transshipped items implies that distance and time are irrelevant factors in the total transshipment cost. This means that a transshipment decision may be made even if the distance separating two locations is far from ideal. Restricting the placement of transshipment orders from a single wholesaler, on the other hand, also influences the total transshipment cost of the system. Since the transshipment models use decision rules that are based on the minimization of inventory costs, the assumptions made affect the transshipment decisions made as well as the costs associated with the decisions.
Li and Yu [12] developed a lateral transshipment model that incorporated the decisions of balancing inventories across different locations to reduce the waste generated by perished products and consequently increase the retailer’s profitability. Like Li and Yu [11], Naderi et al. [34] developed a transshipment model that aimed to maximize the profit for the allied retailers. The effectiveness of the results was validated as the transshipment solutions yielded higher profits as compared to solutions without it. However, selling prices and holding costs were the only drivers of the transshipment decisions made in Naderi et al’s model. For lateral transshipment models to successfully solve the problem of dead stock among the allied retailers, policies or rules that drive transshipment decisions should not just be based on inventory holding costs and the cost of waste. Rather, the transshipment decisions should also be driven by the inventory classification (i.e., fast, slow, or non-moving), inventory levels in both source and destination stores, and the saleability of the transhipped product in the receiving store location. Assumptions that will have an impact on inventory and dead stock management costs should also be avoided.
The strategies highlighted in this section show that there are multiple ways by which retailers can manage and control dead stock. The use of a single strategy management system to solve a specific dead stock scenario is noticeable across the reviewed papers in this field of research. This research explored the simultaneous application of multiple dead stock management strategies in each store to minimize total network dead stock management cost and reduce the quantity of dead stock in the inventory system of the retail network. The application of multiple strategies considers resources and constraints inherent in each store and capitalizes on the synergy produced by the collaboration among stores to maximize the benefits of dead stock management. Retailers can leverage the unique benefits provided by each strategy to control the occurrence and persistence of the dead stock problem.

3. Methodology

To accomplish the research objectives, the study developed a pure integer non-linear programming model that yielded an optimal mixed strategy solution in managing dead stock in the retail chain store system. The study of Li et al. [36,37] highlighted the importance of timely recognition of dead stock (and recognizing even those that are likely to become dead stock, known as potential dead stock), through inventory classification and periodic monitoring of the transition in inventory classifications. According to Sebatjane and Adetunji [38], inventory classification and monitoring using decision rules and performance indicators were needed to objectively and accurately classify inventory. The proposed dead stock management process of Li et al. [22] consisted of two stages: (1) potential dead stock and dead stock identification through classification and monitoring, and (2) determination of the best dead stock intervention strategy mix that significantly reduced dead stock management costs through an optimization model. This study represents the second part of the two-phase approach suggested in the work of Li et al. [22], where the timely identification of potential dead stock and dead stock is a prerequisite in controlling the dead stock problem. The single-period, multi-product and multi-store mathematical model utilized the list of classified inventories from Li et al.’s [37] proposed classification method, expected sales success percentages associated with different discount levels, strategy-related costs, beginning inventories, and other product-specific details (e.g., weight, volume) as model inputs to yield the mixed strategy solution output that minimizes the total dead stock management cost of the system. The expected sales success percentages per location can be estimated based on the location of the stores and factoring in location-specific factors such as historical performance and distance [39].
In terms of implementation, the model can be run on a daily basis since planning and ordering are involved in terms of selling the products in the retail industry [40]. With this, the dead stock and potential dead stock items may be handled in a timely manner.
The model combined the application of lateral transshipment, individual price discounts, product bundle discounts, and disposal in each store to reduce the quantity of remaining dead stock in the chain store system. Figure 1 shows the flowchart for the inputs and outputs of the model.
The model considered a retailer that operates multiple stores in different locations within its network, where each store sells the same products that exhibit different consumption patterns across stores. Therefore, the same products in different store locations may be classified differently. Products in each store may fall under any one of the three classifications, namely fast-moving (i.e., non-dead stock or NDS), slow-moving (i.e., potential dead stock or PDS), or non-moving (i.e., unexpired dead stock or UDS). Expired dead stock (EDS) was automatically disposed of upon identification and was no longer included in the list of dead stock for management intervention.
In each store location, outbound transshipment decisions were made first. Only PDS and/or UDS with corresponding products classified as NDS in another store location may be transshipped out of any store. In transshipment, the sending store incurs strategy-related transportation cost (SRT) and operations cost (SRO) but generates savings in warehouse cost (SWC) due to the freed up space. The store receiving the transshipment generates savings in product purchase cost (SPC) and savings in ordering cost (SOC) because its NDS requirements were internally supplied and need not be purchased from an external supplier. The inventory level (IL) of each product in each store was then calculated by the model after the transshipment quantity decisions were made.
In each store location, the retailer has set a lower maintaining inventory level (LMIL), expected maintaining inventory level (EMIL), and upper maintaining inventory level (UMIL) for each product. In all store locations, each dead stock may be sold at a discount level that depends on its actual inventory level relative to LMIL, EMIL, and UMIL. The model provides four discount level options for all store locations. Each of the four discount level options has an associated expected sales success percentage that varies per store location according to the overall historical sales performance of the store. Successfully sold dead stock (i.e., PDS and UDS) generates revenue or salvage value (SV) but incurs unrecovered product purchase cost (UPC) for the chain store system. On the other hand, unsold PDS are kept in the warehouse for another period of management intervention, while unsold UDS are automatically collected at the end of the period and transported to the centralized disposal facility for proper disposal. Unsold PDS incurs warehouse cost (WC) for the entire period under consideration, while unsold UDS incurs both disposal cost (i.e., labor and overhead costs) and disposed product cost (PC). There is a disposal facility to receive the unexpired dead stock that is disposed of.

4. Mathematical Model

A typical retail setting includes various products, dynamic transactions, and challenges such as perishability, limited shelf space, product lifecycles, and costs [41]. Products revolve around different categories that are either fast, slow, or non-moving. The typical retail setting has multiple stores, and there are regular operations; hence, there are regular replenishment practices, store capacity, and inter-store activities to manage inventory. The model developed was coded using Matlab version 23.2.0.2380103 (R2023b) Update 1 (see Appendix A for Matlab code). The following were the assumptions made in formulating the model:
  • Fast-moving items may not be transshipped to other stores in the chain store system. Only slow-moving (potential dead stock) and non-moving items (unexpired dead stock) are allowed to be transshipped from one store to another store if these items belong to the fast-moving product classification in the store that they will be transshipped to.
  • There are dedicated trucks for dead stock management. The number of trucks in the retail chain store system and the capacity per truck are enough to transport products from one store to another as needed.
  • Transportation cost is a function of a product’s store-to-store distance. It does not consider travel time, vehicle speed, and vehicle routing.
  • All fast-moving products for the given period are equally desirable for bundling. The success in selling the bundles is not dependent on the fast-moving product that a dead stock or potential dead stock is bundled with.
  • Product bundling strategy success is a function of bundle discount % level and sales throughput of the store.
  • Unlimited additional warehouse space is maintained for potential dead stock and unexpired dead stock.
  • Stockout costs of fast-moving products are not considered in the total inventory cost.

4.1. Decision Variables

The main decisions made by the model, together with the factors considered in making these decisions, are described and summarized in Table 1.
Decision VariableDefinitionFactors Considered by the Model in Deciding
Qpi(ts)quantity of product p in store location i to manage using transshipment (ts) strategyInventory Classification: Only slow (PDS) or non-moving (UDS) items in a store are allowed to be transshipped.
There should be at least one receiving store where the same product to be transshipped is classified as fast-moving (NDS).
QTSpijquantity of product p transshipped from store location i to store location jInventory level (IL) of NDS in the receiving store must not exceed its UMIL after transshipment.
Inventory classification of the product (PDS or UDS) to be transshipped from the sending store should be considered. The cost profile of the sending store should be considered.
Qpi(pd)quantity of product p in store location i to manage using price discount (pd) strategyIL, Discount %, Expected Sales Success % Inventory Classification: Unsold PDS are kept in the warehouse for another period, while unsold UDS are automatically disposed of.
The realizable salvage value factor of a product should be considered.
Qpi(pb)quantity of product p from store location i to manage using product bundling (pb) strategyIL, Discount %, Expected Sales Success %
Inventory Classification: Unsold PDS are kept in the warehouse for another period, while unsold UDS are automatically disposed of.
The realizable salvage value factor of a product should be considered.
PBQp ε p’i,p ε fi
PBQp ε dni,p ε fi
quantity of product p from set p’i to bundle with product p from set fi
quantity of product p from set dni to bundle with product p from set fi
IL of NDS should be higher than its EMIL.
The max. qty. of NDS that can be assigned for pairing is IL-EMIL.
Priority is given to the NDS with the highest % excess over its EMIL.
The complete list and definition of sets, indices, parameters, binary variables, and decision variables used in the model are enumerated as follows:
Sets

4.2. Objective Function

The objective function of the model aimed to minimize the total system dead stock management cost. It is given by the equation:
M i n . Z = A 1 + B 1 + C 1 + D 1 + E 1 + A 2 + B 2 + C 2 + D 2 + E 2 + A 3 + B 3 F 1 F 2 C 3 D 3 E 3
C o s t o f P r o d u c t B u n d l i n g I n t e r v e n t i o n = A 1 + B 1 + C 1 + D 1 + E 1 F 1
C o s t o f P r i c e D i s c o u n t I n t e r v e n t i o n = A 2 + B 2 + C 2 + D 2 + E 2 F 2
C o s t o f T r a n s s h i p m e n t I n t e r v e n t i o n = A 3 + B 3 C 3 D 3 E 3
The objective function cost and “savings” components were organized into the cost and “savings” contributed by the product bundling strategy (A1 to F1), price discount strategy (A2 to F2), and lateral transshipment strategy (A3 to E3). The contribution of the disposal strategy to total dead stock management cost is embedded in the product bundling (C1 and D1) and price discount strategy costs (C2 and D2). The objective function components of each dead stock management strategy are defined and summarized in Table 2.
Equation (1) shows the total system dead stock management cost, where the negative terms (F1, F2, C3, D3, and E3) represent savings arising from strategy application that are deducted from the total dead stock management cost. Equations (2)–(4), on the other hand, show the contribution of each dead stock management strategy to the total system cost.
Referring to Table 2: For the product bundling and price discount strategies, respectively, Equations (5) and (11) represent the SRC while Equations (6) and (12) represent the UPC. Equations (7), (8), (13) and (14) represent the disposal costs of all unsold unexpired dead stock. The first term of Equations (7) and (13) represents DC, while the second term represents PC. Equations (8) and (14) represent the TC, Equations (9) and (15) represent the WC, while Equations (10) and (16) represent the SV of the product bundling and price discount strategies, respectively. For the transshipment strategy, Equation (17) represents the SRT, Equation (18) represents the SRO, Equation (19) represents the SPC, Equation (20) represents the SOC and Equation (21) represents the SWC. What each Equation computes for is defined in Table 2.
A 1 = p P i p b c i · Q p ( i ) ( p b ) + p P i p b c i · Q p ( i ) ( p b ) + p P i p b c f · S T p ( i ) ( p b ) + p P i p b c f · S T p ( i ) ( p b )
B 1 = i p p e i o l max ( p b d c o i · s p p ) ( s p p c p ) , · E ( p b s · ( B D L o , p , i ) · ( Q p ( i ) ( p b ) ) + i p e d n i o l max ( p b d c o i · s p p ) ( s p p c p ) , · E ( p b s · ( B D L o , p , i ) · ( Q p ( i ) ( p b ) )
C 1 = i p e d n i o l d i s p p i o l ( 1 E ( p b s · ( B D L o , p , i ) · ( Q p ( i ) ( p b ) ) + i p e d n i o l c p · ( 1 E ( p b s · ( B D L o , p , i ) · ( Q p ( i ) ( p b ) )
D 1 = i p e d n i t p i o l ( 1 E ( p b s · ( B D L o , p , i ) · ( Q p ( i ) ( p b ) )
E 1 = i p p e i o l W p o l ( 1 E ( p b s · ( B D L o , p , i ) · ( Q p ( i ) ( p b ) )
F 1 = i p p e i o l s p p o l ( 1 p b d c o i ) · E ( p b s · ( B D L o , p , i ) · ( Q p ( i ) ( p b ) ) + i p e d n i o l s p p o l ( 1 p b d c o i ) · E ( p b s · ( B D L o , p , i ) · ( Q p ( i ) ( p b ) )
A 2 = i p p e i p d c f i · S T p ( i ) ( p d ) + i p e d n i p d c f i · S T p ( i ) ( p d )
B 2 = i p p i o max ( d c o i s p p ) ( s p p c p ) , E ( p d s % o i ) ( D L o p i ) Q p ( i ) ( p d ) + i p d n i o max ( d c o i s p p ) ( s p p c p ) , E ( p d s % o i ) ( D L o p i ) Q p ( i ) ( p d )
C 2 = i p d n i d i s p p i o ( 1 E ( p d s % o i ) ) ( D L o p i ) ( Q p ( i ) ( p d ) ) + i p d n i o c p ( 1 E ( p d s % o i ) ) ( D L o p i ) ( Q p ( i ) ( p d ) )
D 2 = i p d n i t p i o ( 1 E ( p d s % o i ) ) ( D L o p i ) ( Q p ( i ) ( p d ) )
E 2 = i p p i W p i t o ( 1 E ( p d s % o i ) ) D L o p i Q p ( i ) ( p d )
F 2 = i p p i s p p t o ( 1 d c o i ) E ( p d s % o i ) D L o p i Q p ( i ) ( p d ) + i p d n i s p p t o ( 1 d c o i ) E ( p d s % o i ) D L o p i Q p ( i ) ( p d )
A 3 = j i i p p i t p i j Q T S p i j + j i i p d n i t p i j Q T S p i j
B 3 = j i i p p i t s p i Q T S p i j + j i i p d n i t s p i Q T S p i j
C 3 = j i i p p i f j p d n i f j c p Q T S p i j
D 3 = i p f i c o p i Y p i
E 3 = j i l p e p i f j p e d n i f j w p i Q T S p i j

4.3. Model Constraints

The constraints section of the model specifies the strategy and policy restrictions imposed on decision-making. For each dead stock management strategy, Table 3 identifies and describes each set of constraints formulated in the model.
I L p i = B L p i j i Q T S p i j p [ ( p i f j ) , ( d n i f j ) ] , i
I L p i = B L p i + j i p f i p j p f i d n j Q T S p j i p [ ( f i p j ) , ( f i d n j ) ] , i
j i p ( p j f i ) p ( d n j f i ) Q T S p j i ( U M I L p i B L p i ) Y p i p [ ( f i p j ) , ( f i d n j ) ] , i
Q p i ( t s ) = j i Q T S p i j p [ ( p i f j ) , ( d n i f j ) ] , i
Q T S p i j M T Q p i j p [ ( p i f j ) , ( d n i f j ) ] , i , j i
Q p i ( t s ) B L p i S T p ( i ) ( t s ) p [ ( p i f j ) , ( d n i f j ) ] , i
S T p ( i ) ( t s ) = 0 p f i , i
T Q p i j = 0 p f i , i , j
Q p ( i ) ( p b ) M S T p ( i ) ( p b ) p [ p i , d n i ] , i
Q p ( i ) ( p b ) I L p i p [ p i , d n i ] , i
I L p i E M I L p i M S T p ( i ) ( p b ) p f i , i
I L p i E M I L p i M [ 1 S T p ( i ) ( p b ) ] p f i , i
Q p ( i ) ( p b ) ( I L p i E M I L p i ) S T p ( i ) ( p b ) p f i , i
P B Q p e p i , p e f i M P B p e p i , p e f i p [ p i , f i ] , i
P B Q p e d n i , p e f i M P B p e d n i , p e f i p [ p i , f i ] , i
p f i P B Q p e p i , p e f i = Q p ( i ) ( p b ) p p i , i
p f i P B Q p e d n i , p e f i = Q p ( i ) ( p b ) p d n i , i
p f i P B Q p e p i , p e f i p e d n i P B Q p e d n i , p e f i = Q p ( i ) ( p b ) p f i , i
p e d n i Q p ( i ) ( p b ) = p f i Q p ( i ) ( p b ) i
I L l p i L M I L l p i M ( 1 B D L o = 1 , p , i ) p p l , i
I L l p i L M I L l p i M ( 1 B D L o = 2 , p , i ) p p l , i
I L l p i E M I L l p i M ( 1 B D L o = 2 , p , i ) p p l , i
I L l p i E M I L l p i M ( 1 B D L o = 3 , p , i ) p p l , i
I L l p i U M I L l p i M ( 1 B D L o = 3 , p , i ) p p l , i
I L l p i U M I L l p i M ( 1 B D L o = 4 , p , i ) p p l , i
o = 1 4 B D L o , p , i = 1 p p l , i
I L l p i L M I L l p i M ( 1 B D L o = 1 , p , i ) p d n l , i
I L l p i L M I L l p i M ( 1 B D L o = 2 , p , i ) p d n l , i
I L l p i E M I L l p i M ( 1 B D L o = 2 , p , i ) p d n l , i
I L l p i E M I L l p i M ( 1 B D L o = 3 , p , i ) p d n l , i
I L l p i U M I L l p i M ( 1 B D L o = 3 , p , i ) p d n l , i
I L l p i U M I L l p i M ( 1 B D L o = 4 , p , i ) p d n l , i
o = 1 4 B D L o , p , i = 1 p d n l , i
max [ I L p 2 ϵ f i E M I L p 1 ϵ f i ] , E M I L p 2 ϵ f i max [ I L p 1 ϵ f i E M I L p 2 ϵ f i ] , E M I L p 1 ϵ f i M P B S p 1 ϵ f i , p 2 ϵ f i p 1 f i , p 2 f i , p 1 p 2
max [ I L p 2 f i E M I L p 2 f i ] , E M I L p 2 f i max [ I L p 1 f i E M I L p 1 f i ] , E M I L p 1 f i M · ( 1 P B S p 1 f i , p 2 f i ) p 1 f i , p 2 f i , p 1 p 2
P B p p l , p 1 ϵ f i P B p ϵ p l , p 2 ϵ f i P B S p 1 ϵ f i , p 2 ϵ f i p p l , p 1 f i , p 2 f i , p 1 p 2
P B p ϵ p l , p 2 ϵ f i P B p ϵ p l , p 1 ϵ f i ( 1 P B S p 1 ϵ f i , p 2 ϵ f i ) p p l , p 1 f i , p 2 f i , p 1 p 2
P B p ϵ d n l , p 1 ϵ f i P B p ϵ d n l , p 2 ϵ f i P B S p 1 ϵ f i , p 2 ϵ f i p d n l , p 1 f i , p 2 f i , p 1 p 2
P B p 2 d n i , p 2 f i P B p 1 d n i , p 1 f i 1 P B S p 1 f i , p 2 f j p d n i , p 1 f i , p 2 f j , p 1 p 2
Q p ( i ) ( p d ) M S T p ( i ) ( p d ) p [ p i , d n i i ] , i
Q p ( i ) ( p d ) I L p i p [ p i , d n i i ] , i
I L p i L M I L p i M ( 1 D L o = 1 , p , i ) p p i , i
I L p i L M I L p i > M ( 1 D L o = 2 , p , i ) p p i , i
I L p i E M I L p i M ( 1 D L o = 2 , p , i ) p p i , i
I L p i E M I L p i > M ( 1 D L o = 3 , p , i ) p p i , i
I L p i U M I L p i M ( 1 D L o = 3 , p , i ) p p i , i
I L p i U M I L p i > M ( 1 D L o = 4 , p , i ) p p i , i
o = 1 4 D L o , p , i = 1 p p i , i
I L p i L M I L p i M ( 1 D L o = 1 , p , i ) p d n i , i
I L p i L M I L p i > M ( 1 D L o = 2 , p , i ) p d n i , i
I L p i E M I L p i M ( 1 D L o = 2 , p , i ) p d n i , i
I L p i E M I L p i > M ( 1 D L o = 3 , p , i ) p d n i , i
I L p i U M I L p i M ( 1 D L o = 3 , p , i ) p d n i , i
I L p i U M I L p i > M ( 1 D L o = 4 , p , i ) p d n i , i
o = 1 4 D L o , p , i = 1 p d n i , i
Q p ( i ) ( p b ) + Q p ( i ) ( p d ) = I L p i p [ p i , d n i i ] , i
Equations (22) to (29) represent the transshipment strategy constraints. Equations (22) and (23) represent the post-transshipment inventory level calculation constraints. Equation (24) represents the allowable outbound and inbound transshipment quantity constraint, while Equations (25) to (29) represent the general transshipment strategy activation and quantity constraints. Equations (30) to (60) represent the product bundling strategy constraints. Equations (30) to (31) represent the general product bundling strategy activation and quantity constraints. Equations (32) to (34) require that the inventory level of a fast-moving product exceeds its expected maintaining inventory level (EMIL) for it to be paired with a dead stock in a product bundle to accelerate turnover and ensure slower moving inventory move with the fast-moving inventory. Equations (35) to (40) represent the product bundle pairing activation and quantity constraints involving one fast-moving product and one dead stock. Equations (41) to (54) represent the bundling strategy discount level determination constraints. Equations (55) to (60) represent the fast-moving product (NDS) bundling sequence constraints.
Equations (61) to (76) represent the price discount strategy constraints. Equations (61) to (62) represent the general price discount strategy activation and quantity constraints. Equations (63) to (76) represent the price discount strategy discount level determination constraints. Lastly, Equation (77) represents the general constraint that all dead stock in each store should be managed using the available strategies.

4.4. Non-Negativity, Integer and Binary Constraints

The following constraints specify the non-negativity and integer requirements of the decision variables used in the formulation of the mathematical model.
Q p ( i ) ( t s ) 0 ; Q p ( i ) ( p b ) 0 ; Q p ( i ) ( p d ) 0
Q T S p i j 0 ; P B Q p p i , p f i 0 ; P B Q p d n i , p f i 0
Q p ( i ) ( t s ) ; Q p ( i ) ( p b ) ; Q p ( i ) ( p d ) are integers
Q T S p i j ; P B Q p p i , p f i ; P B Q p d n i , p f i are integers
The following constraints specify the integer requirement as well as the (0,1) requirement of the binary variables used in the formulation of the mathematical model.
S T π ( t s ) · S T π ( p b ) · S T π ( p d ) · T Q p i j · D L o p i · D L o p i · P D L o p i · P D L o p i · Y p i · P B p P i , p F i 0
S T π ( t s ) · S T π ( p b ) · S T π ( p d ) · T Q p i j · D L o p i · D L o p i · P D L o p i · P D L o p i · Y p i · P B p P i , p F i 1
S T π ( t s ) · S T π ( p b ) · S T π ( p d ) · T Q p i j · D L o p i · D L o p i · P D L o p i · P D L o p i · Y p i · P B p P i , p F i where P B p P i , p F i Z

5. Results

A hypothetical dataset that replicated a real-life retail chain store system was used to validate the logic and analyze the effectiveness of the model. The system that was analyzed was a chain store system having three store locations and 10 products. All the stores have the same products. The 10 products consist of fast-moving (NDS), slow-moving (PDS), and non-moving (UDS) items. Table 4 shows the complete inventory profile of the system that was analyzed in terms of the store and system quantity of each inventory classification and the quantity of each inventory classification as a percentage of total store and system inventory quantity.
The dead stock problem is characterized by the presence of PDS and UDS in each store. Table 4 shows that the total dead stock in the chain store system accounts for an average of 56.8% of total system inventory, broken down into 32.2% PDS and 24.6% UDS. This represents a good approximation of the current industry problem (Warchol, 2021). The PDS needs to be managed in each store to prevent it from becoming UDS, while UDS needs to be managed in each store to prevent it from becoming expired dead stock (EDS). The results of the mixed strategy model are shown in Table 5.
Based on Table 5, the mixed strategy model yielded the minimum system dead stock management cost of Php 144,498.08. There was a total of 1325 units of potential dead stock (PDS) and unexpired dead stock (UDS) across the three stores at the beginning of the period. The transshipment strategy alone reduced the total dead stock from 1325 units to 928 units, equivalent to a 30% reduction. These dead stock were further reduced to 320 units by the end of the period after applying the product bundling and price discount strategies. This 76% reduction in the dead stock quantity demonstrates the logic and potential of the proposed mixed strategy model.
The model decisions on the total quantity of PDS and total quantity of UDS transshipped, sold at a price discount, and sold as a product bundle in each store are shown in Table 6.
Referring to Table 5, store 2 was the largest contributor to total system dead stock management cost (i.e., 118,769.65), followed by store 1 (73,991.50) and then store 3 (−48,283.11). Table 6 shows that store 2 transshipped only 67 out of 529 dead stock, leaving it with the largest quantity (462 units) of dead stock for sales strategy management. The large quantity of dead stock meant more units sold compared to the other stores, which caused store 2 to have the highest unrecovered product cost (UPC) among the three stores. Store 2 also had the highest quantity of UDS, which were automatically disposed of when unsold, causing it to have the highest disposed product purchase cost (PC) among the three stores. In contrast, store 3 transshipped a large quantity of its dead stock, including all its UDS which resulted in zero disposed PC. The fewer dead stock in store 3 for sales management also resulted in a lower UPC. This explained why store 3 even had a negative cost contribution to the system cost.
Table 5 shows that the major contributors to total system cost are UPC and PC. An analysis of the results produced by the mixed strategy model shows that the selected sales discount level for both PDS and UDS was the main driver of UPC and PC. Table 7 summarizes the relationships between the different parameter drivers and major objective function cost components.
Relationship item number 1 to number 4 showed that lower discount % led to higher discounted UDS selling price and higher % of unsold UDS, resulting in higher PC. Relationship item number 5 to number 8, on the other hand, showed that lower discount % led to higher discounted dead stock selling price and higher % of unsold dead stock, resulting in lower UPC. PC and UPC therefore behave in opposite directions in terms of their contribution to the total system dead stock management cost. Moreover, the selected discount % is an important variable in minimizing the total dead stock management cost. The contrasting effects of discount % on the objective function cost components must be carefully considered and balanced by inventory managers to achieve minimum dead stock management cost. The quantity, location, and classification of dead stock managed using the product bundling or price discount strategy are important decision variables as they determine the magnitude of sold/unsold quantities, which consequently determine the magnitude of the objective function cost and “savings” components. An integrated mixed strategy model is therefore necessary to recommend strategy and quantity decisions that balance the impact of these cost components on total dead stock management cost. In addition, the application of big data analytics allows sustainable practices to be implemented.
Results in Table 5 showed that the proposed integrated mixed strategy model produced the lowest system dead stock management cost of Php144,498.04. Potential dead stock (PDS) and unexpired dead stock (UDS) that totaled 1325 units across the three stores at the beginning of the period were also reduced to just 320 units at the end of the period. This 76% reduction in system dead stock quantity was also the best when compared to the results of the two base models, namely the price-discount-strategy-only model and the product-bundling-strategy-only model (refer to Table 8). The superior performance of the integrated mixed strategy model proposed in this research was due to the presence of alternative dead stock management strategies that enabled decisions for maximizing total system salvage value while minimizing total system disposal cost of UDS and warehouse cost of PDS.

6. Discussion

In the case of the product bundling model, stores that did not have enough fast-moving (NDS) inventory were unable to pair their PDS and UDS with fast-moving products. In the absence of alternative dead stock management strategies, these unpaired PDS and UDS automatically incurred warehouse and disposal costs, respectively. Furthermore, Table 8 shows that if these unpaired PDS and UDS have high warehouse costs and high unit product costs, respectively, the salvage value obtained from sold product bundles will be outweighed by total warehouse and product disposal costs, which increase total net system dead stock management costs.
In the case of the price discount model, all PDS and UDS were constrained to be sold individually at a price discount regardless of discount percentage and expected sales success percentage in each store outlet. The absence of alternative strategies such as product bundling and transshipment hindered the model from trading off the major cost contributors in the different stores to minimize total system cost. In both the product bundling and price discount models, the store outlets also did not have the opportunity to push out and reduce the inventory level of their respective PDS and UDS through lateral transshipment. This took away the possibility of purchase cost savings in the receiving stores, which hindered the minimization of system dead stock management costs.
It is worth noting that between the two base models, the price discount model produced a lower system dead stock management cost of Php228,575.69 due to lower discount levels used in selling the dead stocks. It also produced a lower quantity of remaining dead stock of 375 units, which was equivalent to a 72% decrease from the initial quantity of dead stock. The comparison summary among the results of the integrated strategy mix model and the two base models is shown in Table 9, clearly suggesting the potential effectiveness of the integrated strategy mix model. In addition, carbon emissions can be prevented using the current integrated model wherein using the same data from the study of Li et al. [37], it will yield about 1,020,759.33 g of Carbon emissions prevented. This was computed based on the number of transitions for PDS and DS multiplied by the total weight and carbon emission per gram of a generic retail product. This implies that the integrated model not only potentially saves costs but also prevents carbon emissions.
Several practical insights were drawn from the analysis of the model results. Counter-intuitive decisions made by the model produced the most interesting insights.
(1) In choosing between two or more transshipment sources, lower transportation cost (TC) and higher savings in warehouse cost (SWC) are not always favored. Although it may seem counter-intuitive, the manager should opt for the transshipment source with higher TC and/or lower SWC because if dead stock is not pushed out from this source through transshipment, the lower historical sales performance of this source when sales strategies are applied results in more unsold dead stock in the system that increases total inventory management costs.
(2) It is also better to transship an unexpired dead stock (UDS) from a source with higher TC and lower SWC over a source that transships a potential dead stock (PDS) with lower TC and higher SWC. This counter-intuitive decision enables the inventory manager to avoid the higher disposed product cost (PC) contribution of unsold UDS while absorbing the lower additional warehouse cost of unsold PDS.
(3) The realizable salvage value factor represents the fraction of the dead stock selling price that is realizable as revenue when it is successfully sold. Results show that the sales strategy with the higher realizable salvage value factor is generally selected because it decreased the number of unsold PDS/UDS (increased SV), which consequently decreased PC, although it increased the UPC of sold dead stock. However, the inventory manager should choose the sales strategy with a lower realizable salvage value factor if the decrease in UPC outweighs the lower SV and higher PC, because this decision produced a net decrease in total dead stock management cost.
(4) Offering higher discount percentages typically increases inventory management costs. However, the model showed that offering larger discounts on high-margin, unexpired dead stocks did not raise costs. In fact, inventory management costs decreased when these dead stocks were managed in stores with stronger past sales performance.
(5) Higher percentage discounts should be offered in low-performing stores to increase the quantity and percentage of sold dead stock, but this also increases the total inventory management costs. However, the model showed surprising results: offering low-percentage discounts in low-performing stores where selling prices and purchase costs of dead stock are significantly lower than in other stores does not increase total inventory management costs.

6.1. Scalability of the Model

The number of stores and products affected the decisions made by the model. The consideration of only a few stores and products in the chain store system (i.e., 3 stores, 10 products) limited the transshipment, bundling, and discount quantity decisions that the model made, and this prevented the model from achieving its full potential in managing dead stock profitably. This analysis was performed to evaluate the performance (i.e., in terms of dead stock management cost) of the integrated mixed strategy model when it is applied to more realistic chain store systems (i.e., more stores and products).
Four separate runs of the integrated mixed strategy model were performed to determine the scalability of the proposed model. The four runs, each with a varying number of stores and products, also sought to determine the effect of bigger store systems on total dead stock management cost and percentage of unresolved dead stock. The first run of the integrated mixed strategy model involved 3 stores and 10 products. This was increased to 4 stores and 15 products in the second run. The third and fourth runs involved 5 stores and 20 products, and 7 stores and 30 products, respectively.
Table 10 shows the effect of increasing the number of stores and products on the total net dead stock management cost, quantity of remaining dead stock, and percentage of unresolved dead stock. It shows that as the quantity of remaining dead stock increased, the total dead stock management cost decreased, consistent with earlier results. Results also showed that as the available alternatives within (i.e., more products) and outside a store (i.e., more stores in the system) increased, the performance of the model improved in terms of total net dead stock management cost (refer to Figure 2) and percentage of unresolved dead stock.
Three types of variation in the dataset were also introduced to determine the effect of each variation on the scalability of the proposed integrated model. These variations included increasing the number of products in each store while holding the number of stores constant, increasing the number of stores in the chain store system while holding the number of products in each store constant, and increasing the number of stores and products simultaneously. Table 11 shows the effect of increasing the number of stores and products using the proposed integrated model across different scenarios, as well as the run times for each type of variation in the dataset. Table 12, on the other hand, shows the effect of increasing the number of stores and products on the different components of the objective function and their collective effect on the percentage of unresolved dead stocks in the system.
The effect of each type of dataset variation on the run time of the model is also shown in Figure 3, Figure 4 and Figure 5.

6.2. Practical Application

The retail system inventory managers then use the outputs of this research in the following manner:
  • Run the Inventory Classification Module of the ERP system and generate Inventory Classification Report per store.
  • Consolidate all store-level product classification results, product-related, and sales-strategy-related data into an Excel file with specific data formatting (i.e., separate sheet per parameter where rows represent products and columns represent stores) that an optimization software will read.
  • Run the mixed strategy cost optimization model code and generate the dead stock management decision report for each dead stock per store.
  • Examine the transshipment, price discount, and product bundling results per store and check for sudden operational, logistical, and resource constraints that need to be considered. Discount percentage levels selected by the model for each dead stock should also be checked against the most recent product demand patterns and forecasts, if available.
  • Finalize the dead stock management decision report per store.
At the beginning of the following period, the inventory managers should carry out the following:
  • Prepare the labor, material, marketing, logistical, and other operational resources needed per store in carrying out the dead stock management strategies prescribed by the optimization model.
  • Prepare a transshipment routing plan and perform the prescribed transshipment decisions in the final dead stock management decision report first.
  • Update and verify the inventory level of each product after transshipment to see if it matches the inventory level used by the model in making the sales strategy decisions.
  • Execute the sales strategy decisions in the final dead stock management decision report.
  • Monitor the sales performance of each dead stock during the period and adjust strategies to reduce dead stock management costs if necessary.
  • If possible, and with the help of people from the finance and accounting department, record and monitor actual costs and benefits of strategy implementation.
At the end of the period, the inventory managers should carry out the following:
  • Prepare the labor, material, logistical, and other operational resources needed per store to collect the unsold unexpired dead stock (UDS) from the store and return them to the warehouse.
  • Prepare the unsold UDS for disposal. Judgement should be exercised in deciding whether to dispose of the unsold UDS or not based on the actual sales strategy’s success during the period.
  • Consolidate the unsold UDS for disposal from each store and prepare a truck routing plan to transport these to the centralized disposal facility.
  • Prepare the labor and other operational resources needed per store to transfer the unsold PDS back to the warehouse.
  • If possible, and with the help of people from the finance and accounting department, record the actual disposal and warehouse costs for the period. Compute the total actual dead stock management costs and benefits incurred for the period, and compare this cost against the total cost computed by the optimization model.
  • The cycle repeats itself in the following period.

7. Conclusions

In the retail industry, dead stock accumulates due to management’s failure to control the accumulation of non-moving inventory. Priority attention given to the management of fast-moving products has resulted in the rise in dead stock costs that severely impacted the retailers’ profitability. Studies have considered single-strategy solutions to manage the dead stock problem, but mixed-strategy solutions remain unexplored in the literature. This research formulated a mixed strategy model that considered the simultaneous application of product bundling, price discount, and transshipment in minimizing total dead stock management cost and reducing the quantity of dead stock in the inventory system of the retail chain operator. Conclusions drawn from the results were as follows:
(1) Lateral transshipment was mostly used in the literature to proactively balance inventory levels and reactively respond to stockout situations in retail chain stores. This research showed that lateral transshipment is a “profitable” strategy in the management of dead stock of a retail chain store system.
(2) The profit of retail chain operators improves significantly (because of minimized dead stock management costs) by adopting a balanced inventory management approach that gives attention to the management and control of both fast-moving products and dead stock.
(3) For the sales strategies used in pushing out the dead stock, higher discount percentages generally increased dead stock management costs and decreased the quantity of remaining dead stock.
(4) The proposed optimization model is a better dead stock management tool compared to single strategy models because it provides strategy options for the decision maker in cases where internal or external constraints favor the selection of one strategy over another.

Limitations of the Proposed Integrated Mixed Strategy Model and Future Research

The mixed strategy model developed in this research may be used to manage dead stock in retail chain store contexts, including but not limited to fast-fashion, medicines, books, toys, electronic gadgets, etc., as long as economic and marketing parameters that determine highly stochastic demand functions accurately reflect the relationship between discount percentage and expected product sales success. The model also promoted the use of sustainable inventory management practices in the retail chain system through the reduction in dead stock waste. However, there are assumptions and limitations that may compromise some realities of the problem situation that is being modeled and affect the level of significance of the results. The limitations of the Proposed Integrated Mixed Strategy model include the following:
  • Discount levels are not treated as decision variables in the model. Hence, the selection of discount % is limited to only four possible values in all store locations.
  • Stockout cost of fast-moving products was not considered in the optimization model. The consideration of stockout cost can alter the product bundling decisions and total inventory management cost.
  • The single-period model formulated in this research was unable to show the effect of changes in product classifications on dead stock management. Consequently, it was unable to determine the degree of accumulation or elimination of dead stock over time.
  • The formulated model is limited to only three dead stock management strategies. Consideration of other strategies, such as return to vendor and donation of dead stock, provides an opportunity for management to consider tradeoffs between social and environmental costs.
  • The use of hypothetical data in determining the effectiveness of the results limited the realism and strength of validity of the stated results.
Since the discount percentage was found to be the main factor that drove the values of the major cost contributors to total dead stock management cost, future studies should focus on developing a model that uses discount percentage as a sales strategy decision variable. The mixed strategy model is also expected to produce better results for any chain store operator if more strategy options are considered in a multi-period setting. More strategy options potentially produce better results because of the increased trade-off opportunities for inventory management decision-making. Furthermore, a multi-period model can better demonstrate how the accumulation of dead stock can be prevented as product classifications that change over time are managed and pushed out of the system in a timely manner. The developed model will also benefit from using big data analysis in deriving a demand and obsolescence forecasting model that is able to accurately relate the product pricing and product sales success variables. Lastly, the result of this research is most useful if validation is carried out with real-world, anonymized data from a retail chain partner.

Author Contributions

Conceptualization, methodology, validation, formal analysis, writing—original draft preparation, writing—review and editing, R.L.; consultation and revision, A.C. and R.S. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Institutional Review Board Statement

Not applicable.

Informed Consent Statement

Not applicable.

Data Availability Statement

The original contributions presented in this study are included in the article. Further inquiries can be directed to the corresponding author.

Conflicts of Interest

The authors declare no conflicts of interest.

Appendix A. Matlab Code for Mixed Strategy Model

clear; clc; %tic; filename = "RCSS_parameters_3stores.xlsx"; % Sets % slow-moving products (pp) pp_data = readcell(filename, ’Sheet’, ’pp’,’Range’,’A2’); pp_sets = cell(1, size(pp_data, 2)); for i = 1:size(pp_data, 2) if ischar(pp_data{1, i}) || isstring(pp_data{1, i}) % If it’s a string (comma-separated) pp_sets{i} = str2num(pp_data{1, i}); % Convert text to number array else pp_sets{i} = pp_data{1, i}; % Already numeric end end
% dead stock (pp) pd_data = readcell(filename, ’Sheet’,’pd’,’Range’,’A2’); pd_sets = cell(1, size(pd_data, 2)); for i = 1:size(pd_data, 2) if ischar(pd_data{1, i}) || isstring(pd_data{1, i}) pd_sets{i} = str2num(pd_data{1, i}); else pd_sets{i} = pd_data{1, i}; end end
% fast-moving products (pf) pf_data = readcell(filename, ’Sheet’, ’pf’,’Range’,’A2’); pf_sets = cell(1, size(pf_data, 2)); for i = 1:size(pf_data, 2) if ischar(pf_data{1, i}) || isstring(pf_data{1, i}) pf_sets{i} = str2num(pf_data{1, i}); else pf_sets{i} = pf_data{1, i}; end end
% Combine pp and pd for slow and dead ppd_sets = cell(1, length(pp_sets)); for i = 1:length(pp_sets) ppd_sets{i} = [pp_sets{i}, pd_sets{i}]; end
%Indices i = readmatrix(filename,’Sheet’,’INDICES’,’Range’,’B2:B2’); j = readmatrix(filename,’Sheet’,’INDICES’,’Range’,’B3:B3’); p = readmatrix(filename,’Sheet’,’INDICES’, ’Range’,’B4:B4’); s = readmatrix(filename,’Sheet’,’INDICES’,’Range’,’B5:B5’); o = readmatrix(filename,’Sheet’,’INDICES’,’Range’,’B6:B6’); % i to j numSheets = j; i2j = zeros([size(readmatrix(filename, ’Sheet’, ’i to j (1)’, ’Range’, ’B4’)), numSheets]); for k = 1:numSheets sheetName = sprintf(’i to j (%d)’, k); % Create the sheet name dynamically i2j(:,:,k) = readmatrix(filename, ’Sheet’, sheetName, ’Range’, ’B4’); end
% Parameters M = 100000; BI = readmatrix(filename, ’Sheet’, ’BI(pi)’, ’Range’, ’B2’); LMIL = readmatrix(filename, ’Sheet’, ’LMIL(pi)’, ’Range’, ’B2’); EMIL = readmatrix(filename, ’Sheet’, ’EMIL(pi)’, ’Range’, ’B2’); UMIL = readmatrix(filename, ’Sheet’, ’UMIL(pi)’, ’Range’, ’B2’); % Objective Parameters t1 = readmatrix(filename, ’Sheet’, ’t(pij)’, ’Range’, ’B2’); ts = readmatrix(filename, ’Sheet’, ’ts(pi)’, ’Range’, ’B2’); co = readmatrix(filename, ’Sheet’, ’co(pi)’, ’Range’, ’B2’); pbc = readmatrix(filename, ’Sheet’, ’pbc(i)’, ’Range’, ’B2’); pbcf = readmatrix(filename, ’Sheet’, ’pbcf(i)’, ’Range’, ’B2’); pbdcp = readmatrix(filename, ’Sheet’, ’pbdc(o2i)’, ’Range’, ’B2’); pbdcd = readmatrix(filename, ’Sheet’, ’pbdc1(o3i)’, ’Range’, ’B2’); cp = readmatrix(filename, ’Sheet’, ’c(p)’, ’Range’, ’B2’); sp = readmatrix(filename, ’Sheet’, ’sp(p)’, ’Range’, ’B2’); Epbsp = readmatrix(filename, ’Sheet’, ’E(pbs%(o2))’, ’Range’, ’B2’); Epbsd = readmatrix(filename, ’Sheet’, ’E(pbs%1(o3))’, ’Range’, ’B2); disp = readmatrix(filename, ’Sheet’, ’disp(pi)’, ’Range’, ’B2’); t = readmatrix(filename, ’Sheet’, ’t(pi)’, ’Range’, ’B2’); w = readmatrix(filename, ’Sheet’, ’w(pi)’, ’Range’, ’B2’); pdcf = readmatrix(filename, ’Sheet’, ’pdcf(i)’, ’Range’, ’B2’); dcp = readmatrix(filename, ’Sheet’, ’dc(oi)’, ’Range’, ’B2’); dcd = readmatrix(filename, ’Sheet’, ’dc1(o1i)’, ’Range’, ’B2’); Epdsp = readmatrix(filename, ’Sheet’, ’E(pds%(o))’, ’Range’, ’B2’); Epdsd = readmatrix(filename, ’Sheet’, ’E(pds%1(o1))’, ’Range’, ’B2’);
%System Variable IL = optimvar(’IL’,p,i,’Type’,’integer’);
%Integer Variable Q = optimvar(’Q’, p, i, s, ’Type’, ’integer’,’LowerBound’, 0, ’UpperBound’, inf); QTS = optimvar(’QTS’, p, i, j, ’Type’, ’integer’,’LowerBound’, 0, ’UpperBound’, inf); PBQ = optimvar(’PBQ’, p, p, i, ’Type’, ’integer’,’LowerBound’, 0, ’UpperBound’, inf);
%Binary Variable TQ = optimvar(’TQ’, p, i, j, ’Type’, ’integer’,’LowerBound’, 0, ’UpperBound’, 1); Y = optimvar(’Y’, p, i, ’Type’, ’integer’,’LowerBound’, 0, ’UpperBound’, 1); ST = optimvar(’ST’, p, i, s, ’Type’, ’integer’,’LowerBound’, 0, ’UpperBound’, 1); PB = optimvar(’PB’, p, p, i, ’Type’, ’integer’,’LowerBound’, 0, ’UpperBound’, 1); PBS = optimvar(’PBS’, p, p, i, ’Type’, ’integer’,’LowerBound’, 0, ’UpperBound’, 1); BDLp = optimvar(’BDLp’, o, p, i, ’Type’, ’integer’,’LowerBound’, 0, ’UpperBound’, 1); BDLd = optimvar(’BDLd’, o, p, i, ’Type’, ’integer’,’LowerBound’, 0, ’UpperBound’, 1); DLp = optimvar(’DLp’, o, p, i, ’Type’, ’integer’,’LowerBound’, 0, ’UpperBound’, 1); DLd = optimvar(’DLd’, o, p, i, ’Type’, ’integer’,’LowerBound’, 0, ’UpperBound’, 1);
%Objective Variable A1 = optimvar(’A1’, ’Type’, ’continuous’); B1 = optimvar(’B1’, ’Type’, ’continuous’); C1 = optimvar(’C1’, ’Type’, ’continuous’); C1a = optimvar(’C1a’, ’Type’, ’continuous’); C1b = optimvar(’C1b’, ’Type’, ’continuous’); D1 = optimvar(’D1’, ’Type’, ’continuous’); E1 = optimvar(’E1’, ’Type’, ’continuous’); E1a = optimvar(’E1a’, ’Type’, ’continuous’); E1b = optimvar(’E1b’, ’Type’, ’continuous’); A2 = optimvar(’A2’, ’Type’, ’continuous’); B2 = optimvar(’B2’, ’Type’, ’continuous’); C2 = optimvar(’C2’, ’Type’, ’continuous’); C2a = optimvar(’C2a’, ’Type’, ’continuous’); C2b = optimvar(’C2b’, ’Type’, ’continuous’); D2 = optimvar(’D2’, ’Type’, ’continuous’); E2 = optimvar(’E2’, ’Type’, ’continuous’); E2a = optimvar(’E2a’, ’Type’, ’continuous’); E2b = optimvar(’E2b’, ’Type’, ’continuous’); F1 = optimvar(’F1’, ’Type’, ’continuous’); F2 = optimvar(’F2’, ’Type’, ’continuous’); A3 = optimvar(’A3’, ’Type’, ’continuous’); B3 = optimvar(’B3’, ’Type’, ’continuous’); C3 = optimvar(’C3’, ’Type’,’continuous’); D3 = optimvar(’D3’, ’Type’,’continuous’); E3 = optimvar(’E3’, ’Type’,’continuous’); Z = optimvar(’Z’, ’Type’, ’continuous’);
%Optimization Variable TSSAD = optimproblem;
%
%
%constraint 1,4,5,6 transstrat1 = optimconstr(p,i); transstrat4 = optimconstr(p,i); transstrat5 = optimconstr(p,i,j); transstrat6 = optimconstr(p,i); for k = 1:i ppd = ppd_sets{k}; for a = ppd transstrat1(a,k) = IL(a,k) == BI(a,k) - sum(QTS(a,k,:) .* i2j(a,k,:),3); transstrat4(a,k) = Q(a,k,1) == sum(QTS(a,k,:) .* i2j(a,k,:),3); for j = 1:j transstrat5(a,k,j) = QTS(a,k,j) .* i2j(a,k,j) <= M .* TQ(a,k,j); end transstrat6(a,k) = Q(a,k,1) <= BI(a,k) .* ST(a,k,1); end end
TSSAD.Constraints.transstrata = transstrat1; TSSAD.Constraints.transstratd = transstrat4; TSSAD.Constraints.transstrate = transstrat5; TSSAD.Constraints.transstratf = transstrat6;
%constraint 2 and 3 transstrat2 = optimconstr(p,i); transstrat3 = optimconstr(p,i); for k = 1:i pf = pf_sets{k}; for a = pf transstrat2(a,k) = IL(a,k) == BI(a,k) + sum(QTS(a,:,k) .* i2j(a,:,k),2); transstrat3(a,k) = sum(QTS(a,:,k) .* i2j(a,:,k),2) <= (UMIL(a,k) - BI(a,k)) .* Y(a,k); end end
TSSAD.Constraints.transstratb = transstrat2; TSSAD.Constraints.transstratc = transstrat3;
%constraint 7 and 8 transship01 = optimconstr(p,i); transship02 = optimconstr(p,i,j); for k = 1:i pf = pf_sets{k}; for c = pf transship01(c,k) = ST(c,k,1) == 0; for j = 1:j transship02(c,k,j) = TQ(c,k,j) == 0; end end end
TSSAD.Constraints.transship0a = transship01; TSSAD.Constraints.transship0b = transship02; i2jbruteforce = optimconstr(p,i,j); for i = 1:i i2jbruteforce(:,i,i) = QTS(:,i,i) == 0; end TSSAD.Constraints.i2jbruteforcea = i2jbruteforce;
%
%constraint 56 generalmodel = optimconstr(p,i); for k = 1:i ppd = ppd_sets{k}; for a = ppd generalmodel(a,k) = Q(a,k,3) + Q(a,k,2) == IL(a,k); end end TSSAD.Constraints. generalmodela = generalmodel;
%
%constraint 9 - 10 genprodbund1 = optimconstr(p,i); genprodbund2 = optimconstr(p,i); for k = 1:i ppd = ppd_sets{k}; for a = ppd genprodbund1(a,k) = Q(a,k,3) <= M .* ST(a,k,3); genprodbund2(a,k) = Q(a,k,3) <= IL(a,k); end end
TSSAD.Constraints.genprodbunda = genprodbund1; TSSAD.Constraints.genprodbundb = genprodbund2;
%linearization of IL*ST linILST = optimvar(’linILST’,p,i,’Type’,’integer’); TSSAD. Constraints.linILSTa = linILST <= M .* squeeze(ST(:,:,3)); TSSAD.Constraints.linILSTb = linILST <= IL; TSSAD.Constraints.linILSTc = linILST >= IL - M .* (1 - squeeze(ST(:,:,3))); TSSAD.Constraints.linILSTd = linILST >= 0;
%constraint 11 - 13 genprodbund3 = optimconstr(p,i); genprodbund4 = optimconstr(p,i); genprodbund5 = optimconstr(p,i); for k = 1:i pf = pf_sets{k}; for a = pf genprodbund3(a,k) = IL(a,k) - EMIL(a,k) <= M .* ST(a,k,3); genprodbund4(a,k) = IL(a,k) - EMIL(a,k) >= -M .* (1 - ST(a,k,3)); genprodbund5(a,k) = Q(a,k,3) <= linILST(a,k) - EMIL(a,k) .* ST(a,k,3); end end
TSSAD.Constraints.genprodbundc = genprodbund3; TSSAD.Constraints.genprodbundd = genprodbund4; TSSAD.Constraints.genprodbunde = genprodbund5;
%constraint 14 and 15 prodbundpair1 = optimconstr(p,p,i); prodbundpair2 = optimconstr(p,p,i); for k = 1:i pf = pf_sets{k}; for c = pf pp = pp_sets{k}; for a = pp prodbundpair1(a,c,k) = PBQ(a,c,k) <= M .* PB(a,c,k); end pd = pd_sets{k}; for b = pd prodbundpair2(b,c,k) = PBQ(b,c,k) <= M .* PB(b,c,k); end end end
TSSAD.Constraints.prodbundpaira = prodbundpair1; TSSAD.Constraints.prodbundpairb = prodbundpair2;
%constraint 16 and 17 prodbundpair3 = optimconstr(p,i); prodbundpair4 = optimconstr(p,i); for k = 1:i pf = pf_sets{k}; c = pf; pp = pp_sets{k}; for a = pp prodbundpair3(a,k) = sum(PBQ(a,c,k),2) == Q(a,k,3); end
pd = pd_sets{k}; for b = pd prodbundpair4(b,k) = sum(PBQ(b,c,k),2) == Q(b,k,3); end end
TSSAD.Constraints.prodbundpairc = prodbundpair3; TSSAD.Constraints.prodbundpaird = prodbundpair4;
%constraint 18 and 19 prodbundpair5 = optimconstr(p,i); prodbundpair6 = optimconstr(i); for k = 1:i pp = pp_sets{k}; pd = pd_sets{k}; a = pp; b = pd; pf = pf_sets{k}; for c = pf prodbundpair5(c,k) = sum(PBQ(a,c,k),1) + sum(PBQ(b,c,k),1) == Q(c,k,3); end
c = pf; prodbundpair6(k) = sum(Q([a,b],k,3),1) == sum(Q(c,k,3),1); end
TSSAD.Constraints.prodbundpaire = prodbundpair5; TSSAD.Constraints.prodbundpairf = prodbundpair6;
%constr 20 - 25 and 27 - 32 bunddisclvlp1 = optimconstr(p,i); bunddisclvlp2 = optimconstr(p,i); bunddisclvlp3 = optimconstr(p,i); bunddisclvlp4 = optimconstr(p,i); bunddisclvlp5 = optimconstr(p,i); bunddisclvlp6 = optimconstr(p,i); bunddisclvld1 = optimconstr(p,i); bunddisclvld2 = optimconstr(p,i); bunddisclvld3 = optimconstr(p,i); bunddisclvld4 = optimconstr(p,i); bunddisclvld5 = optimconstr(p,i); bunddisclvld6 = optimconstr(p,i); for k = 1:i pp = pp_sets{k}; for a = pp bunddisclvlp1(a,k) = IL(a,k) - LMIL(a,k) <= M .* (1 - BDLp(1,a,k)); bunddisclvlp2(a,k) = IL(a,k) - LMIL(a,k) >= -M .* (1 - BDLp(2,a,k)); bunddisclvlp3(a,k) = IL(a,k) - EMIL(a,k) <= M .* (1 - BDLp(2,a,k)); bunddisclvlp4(a,k) = IL(a,k) - EMIL(a,k) >= -M .* (1 - BDLp(3,a,k)); bunddisclvlp5(a,k) = IL(a,k) - UMIL(a,k) <= M .* (1 - BDLp(3,a,k)); bunddisclvlp6(a,k) = IL(a,k) - UMIL(a,k) >= -M .* (1 - BDLp(4,a,k)); end
pd = pd_sets{k}; for b = pd bunddisclvld1(b,k) = IL(b,k) - LMIL(b,k) <= M .* (1 - BDLd(1,b,k)); bunddisclvld2(b,k) = IL(b,k) - LMIL(b,k) >= -M .* (1 - BDLd(2,b,k)); bunddisclvld3(b,k) = IL(b,k) - EMIL(b,k) <= M .* (1 - BDLd(2,b,k)); bunddisclvld4(b,k) = IL(b,k) - EMIL(b,k) >= -M .* (1 - BDLd(3,b,k)); bunddisclvld5(b,k) = IL(b,k) - UMIL(b,k) <= M .* (1 - BDLd(3,b,k)); bunddisclvld6(b,k) = IL(b,k) - UMIL(b,k) >= -M .* (1 - BDLd(4,b,k)); end end
TSSAD.Constraints.bunddisclvlpa = bunddisclvlp1; TSSAD.Constraints.bunddisclvlpb = bunddisclvlp2; TSSAD.Constraints.bunddisclvlpc = bunddisclvlp3; TSSAD.Constraints. bunddisclvlpd = bunddisclvlp4; TSSAD.Constraints.bunddisclvlpe = bunddisclvlp5; TSSAD.Constraints.bunddisclvlpf = bunddisclvlp6; TSSAD.Constraints.bunddisclvlda = bunddisclvld1; TSSAD.Constraints.bunddisclvldb = bunddisclvld2;
TSSAD.Constraints.bunddisclvldc = bunddisclvld3;
TSSAD.Constraints.bunddisclvldd = bunddisclvld4;
TSSAD.Constraints.bunddisclvlde = bunddisclvld5;
TSSAD.Constraints.bunddisclvldf = bunddisclvld6;
%constraint 26 and 33
bunddisclvlpsum = optimconstr(p,i);
bunddisclvldsum = optimconstr(p,i);
for k = 1:i
pp = pp_sets{k};
for a = pp
bunddisclvlpsum(a,k) = sum(BDLp(:,a,k),1) == 1;
end
pd = pd_sets{k};
for b = pd
bunddisclvldsum(b,k) = sum(BDLd(:,b,k),1) == 1;
end
end
TSSAD.Constraints.bunddisclvlpsuma = bunddisclvlpsum;
TSSAD.Constraints.bunddisclvlpsumb = bunddisclvldsum;
%
%linearization of max(IL - EMIL)
linILEMILs = optimvar(’linILEMILs’, p, i, ’Type’,’integer’);
linILEMIL = optimvar(’linILEMIL’, p, i, ’Type’,’integer’);
linILEMILbin = optimvar(’linILEMILbin’, p, i, ’Type’,’integer’,’LowerBound’,0, ’UpperBound’,1);
TSSAD.Constraints.linearizeILEMILa = linILEMILs == IL - EMIL;
TSSAD.Constraints.linearizeILEMILb = linILEMIL >= linILEMILs;
TSSAD.Constraints.linearizeILEMILc = linILEMIL >= 0;
TSSAD.Constraints.linearizeILEMILd = linILEMIL <= linILEMILs + M .* (1 - linILEMILbin);
TSSAD.Constraints.linearizeILEMILe = linILEMIL <= M .* (linILEMILbin);
%constr 34 and 35
seqcons1 = optimconstr(p,p,i);
seqcons2 = optimconstr(p,p,i);
for k = 1:i
pf = pf_sets{k};
for a = pf
for b = pf
seqcons1(a,b,k) = (linILEMIL(a,k) ./ EMIL(a,k)) - (linILEMIL(b,k) ./ EMIL(b,k)) <= M .* PBS(a,b,k);
seqcons2(a,b,k) = (linILEMIL(b,k) ./ EMIL(b,k)) - (linILEMIL(a,k) ./ EMIL(a,k)) <= M .* (1 - PBS(a,b,k));
end
end
end
TSSAD.Constraints.seqconsa = seqcons1;
TSSAD.Constraints.seqconsb = seqcons2;
%p1 =/= p2
seqconsbruteforce = optimconstr(p,p,i);
for p = 1:p
seqconsbruteforce(p,p,:) = PBS(p,p,:) == 0;
end
TSSAD.Constraints.seqconsbruteforcea = seqconsbruteforce;
%constraint 36 - 39
linPBPBSp1 = optimvar(’linPBPBSp1’, p,p,p,i, ’Type’,’integer’,’LowerBound’,0, ’UpperBound’,1);
linPBPBSp2 = optimvar(’linPBPBSp2’, p,p,p,i, ’Type’,’integer’,’LowerBound’,0, ’UpperBound’,1);
linPBPBSd1 = optimvar(’linPBPBSd1’, p,p,p,i, ’Type’,’integer’,’LowerBound’,0, ’UpperBound’,1);
linPBPBSd2 = optimvar(’linPBPBSd2’, p,p,p,i, ’Type’,’integer’,’LowerBound’,0, ’UpperBound’,1);
seqcons3 = optimconstr(p,p,p,i);
seqcons4 = optimconstr(p,p,p,i);
seqcons5 = optimconstr(p,p,p,i);
seqcons6 = optimconstr(p,p,p,i);
linearPBPBSp1a = optimconstr(p,p,p,i);
linearPBPBSp1b = optimconstr(p,p,p,i);
linearPBPBSp1c = optimconstr(p,p,p,i);
linearPBPBSp2a = optimconstr(p,p,p,i);
linearPBPBSp2b = optimconstr(p,p,p,i);
linearPBPBSp2c = optimconstr(p,p,p,i);
linearPBPBSd1a = optimconstr(p,p,p,i);
linearPBPBSd1b = optimconstr(p,p,p,i);
linearPBPBSd1c = optimconstr(p,p,p,i);
linearPBPBSd2a = optimconstr(p,p,p,i);
linearPBPBSd2b = optimconstr(p,p,p,i);
linearPBPBSd2c = optimconstr(p,p,p,i);
for k = 1:i
pf = pf_sets{k};
for c = pf
for d = pf
pp = pp_sets{k};
for a = pp
seqcons3(a,c,d,k) = PB(a,c,k) >= PB(a,d,k) - linPBPBSp1(a,c,d,k);
seqcons4(a,c,d,k) = PB(a,d,k) >= linPBPBSp2(a,c,d,k);
linearPBPBSp1a(a,c,d,k) = linPBPBSp1(a,c,d,k) <= PB(a,d,k);
linearPBPBSp1b(a,c,d,k) = linPBPBSp1(a,c,d,k) <= PBS(c,d,k);
linearPBPBSp1c(a,c,d,k) = linPBPBSp1(a,c,d,k) >= PB(a,d,k) + PBS(c,d,k) - 1;
linearPBPBSp2a(a,c,d,k) = linPBPBSp2(a,c,d,k) <= PB(a,c,k);
linearPBPBSp2b(a,c,d,k) = linPBPBSp2(a,c,d,k) <= PBS(c,d,k);
linearPBPBSp2c(a,c,d,k) = linPBPBSp2(a,c,d,k) >= PB(a,c,k) + PBS(c,d,k) - 1;
end
pd = pd_sets{k};
for b = pd
seqcons5(b,c,d,k) = PB(b,c,k) >= PB(b,d,k) - linPBPBSd1(b,c,d,k);
seqcons6(b,c,d,k) = PB(b,d,k) >= linPBPBSd2(b,c,d,k);
linearPBPBSd1a(b,c,d,k) = linPBPBSd1(b,c,d,k) <= PB(b,d,k);
linearPBPBSd1b(b,c,d,k) = linPBPBSd1(b,c,d,k) <= PBS(c,d,k);
linearPBPBSd1c(b,c,d,k) = linPBPBSd1(b,c,d,k) >= PB(b,d,k) + PBS(c,d,k) - 1;
linearPBPBSd2a(b,c,d,k) = linPBPBSd2(b,c,d,k) <= PB(b,c,k);
linearPBPBSd2b(b,c,d,k) = linPBPBSd2(b,c,d,k) <= PBS(c,d,k);
linearPBPBSd2c(b,c,d,k) = linPBPBSd2(b,c,d,k) >= PB(b,c,k) + PBS(c,d,k) - 1;
end
end
end
end
TSSAD.Constraints.seqconsc = seqcons3;
TSSAD.Constraints.seqconsd = seqcons4;
TSSAD.Constraints.seqconse = seqcons5;
TSSAD.Constraints.seqconsf = seqcons6;
TSSAD.Constraints.linearPBPBSp1aa = linearPBPBSp1a;
TSSAD.Constraints.linearPBPBSp1ba = linearPBPBSp1b;
TSSAD.Constraints.linearPBPBSp1ca = linearPBPBSp1c;
TSSAD.Constraints.linearPBPBSp2aa = linearPBPBSp2a;
TSSAD.Constraints.linearPBPBSp2ba = linearPBPBSp2b;
TSSAD.Constraints.linearPBPBSp2ca = linearPBPBSp2c;
TSSAD.Constraints.linearPBPBSd1aa = linearPBPBSd1a;
TSSAD.Constraints.linearPBPBSd1ba = linearPBPBSd1b;
TSSAD.Constraints.linearPBPBSd1ca = linearPBPBSd1c;
TSSAD.Constraints.linearPBPBSd2aa = linearPBPBSd2a;
TSSAD.Constraints.linearPBPBSd2ba = linearPBPBSd2b;
TSSAD.Constraints.linearPBPBSd2ca = linearPBPBSd2c;
%
%constraint 40 - 41
genpricemark1 = optimconstr(p,i);
genpricemark2 = optimconstr(p,i);
for k = 1:i
ppd = ppd_sets{k};
for a = ppd
genpricemark1(a,k) = Q(a,k,2) <= M .* ST(a,k,2);
genpricemark2(a,k) = Q(a,k,2) <= IL(a,k);
end
end
TSSAD.Constraints.genpricemarka = genpricemark1;
TSSAD.Constraints.genpricemarkb = genpricemark2;
%constr 42-47 and 49-54
primarkdisclvlp1 = optimconstr(p,i); primarkdisclvlp2 = optimconstr(p,i); primarkdisclvlp3 = optimconstr(p,i); primarkdisclvlp4 = optimconstr(p,i); primarkdisclvlp5 = optimconstr(p,i); primarkdisclvlp6 = optimconstr(p,i); primarkdisclvld1 = optimconstr(p,i); primarkdisclvld2 = optimconstr(p,i); primarkdisclvld3 = optimconstr(p,i); primarkdisclvld4 = optimconstr(p,i); primarkdisclvld5 = optimconstr(p,i); primarkdisclvld6 = optimconstr(p,i); for k = 1:i pp = pp_sets{k}; for a = pp primarkdisclvlp1(a,k) = IL(a,k) - LMIL(a,k) <= M .* (1 - DLp(1,a,k)); primarkdisclvlp2(a,k) = IL(a,k) - LMIL(a,k) >= -M .* (1 - DLp(2,a,k)); primarkdisclvlp3(a,k) = IL(a,k) - EMIL(a,k) <= M .* (1 - DLp(2,a,k)); primarkdisclvlp4(a,k) = IL(a,k) - EMIL(a,k) >= -M .* (1 - DLp(3,a,k)); primarkdisclvlp5(a,k) = IL(a,k) - UMIL(a,k) <= M .* (1 - DLp(3,a,k)); primarkdisclvlp6(a,k) = IL(a,k) - UMIL(a,k) >= -M .* (1 - DLp(4,a,k)); end pd = pd_sets{k}; for b = pd primarkdisclvld1(b,k) = IL(b,k) - LMIL(b,k) <= M .* (1 - DLd(1,b,k)); primarkdisclvld2(b,k) = IL(b,k) - LMIL(b,k) >= -M .* (1 - DLd(2,b,k)); primarkdisclvld3(b,k) = IL(b,k) - EMIL(b,k) <= M .* (1 - DLd(2,b,k)); primarkdisclvld4(b,k) = IL(b,k) - EMIL(b,k) >= -M .* (1 - DLd(3,b,k)); primarkdisclvld5(b,k) = IL(b,k) - UMIL(b,k) <= M .* (1 - DLd(3,b,k)); primarkdisclvld6(b,k) = IL(b,k) - UMIL(b,k) >= -M .* (1 - DLd(4,b,k)); end end
TSSAD.Constraints.primarkdisclvlpa = primarkdisclvlp1;
TSSAD.Constraints.primarkdisclvlpb = primarkdisclvlp2;
TSSAD.Constraints.primarkdisclvlpc = primarkdisclvlp3;
TSSAD.Constraints.primarkdisclvlpd = primarkdisclvlp4;
TSSAD.Constraints.primarkdisclvlpe = primarkdisclvlp5;
TSSAD.Constraints.primarkdisclvlpf = primarkdisclvlp6;
TSSAD.Constraints.primarkdisclvlda = primarkdisclvld1;
TSSAD.Constraints.primarkdisclvldb = primarkdisclvld2;
TSSAD.Constraints.primarkdisclvldc = primarkdisclvld3;
TSSAD.Constraints.primarkdisclvldd = primarkdisclvld4;
TSSAD.Constraints.primarkdisclvlde = primarkdisclvld5;
TSSAD.Constraints.primarkdisclvldf = primarkdisclvld6;
%constraint 48 & 55
primarkdisclvlpsum = optimconstr(p,i);
primarkdisclvldsum = optimconstr(p,i);
for k = 1:i
pp = pp_sets{k};
for a = pp
primarkdisclvlpsum(a,k) = sum(DLp(:,a,k),1) == 1;
end
pd = pd_sets{k};
for b = pd
primarkdisclvldsum(b,k) = sum(DLd(:,b,k),1) == 1;
end
end
TSSAD.Constraints.primarkdisclvlpsuma = primarkdisclvlpsum;
TSSAD.Constraints.primarkdisclvlpsumb = primarkdisclvldsum;
%
%Linearize BDLp(o,p,i) * Q(p,i,3), BDLd(o,p,i) * Q(p,i,3), DLp(o,p,i) * Q(p,i,2), and DLd(o,p,i) * Q(p,i,2)
linBDLpQ = optimvar(’linBDLpQ’,o,p,i,’Type’,’integer’,’LowerBound’,0,’UpperBound’,M);
linBDLdQ = optimvar(’linBDLdQ’,o,p,i,’Type’,’integer’,’LowerBound’,0,’UpperBound’,M);
linDLpQ = optimvar(’linDLpQ’,o,p,i,’Type’,’integer’,’LowerBound’,0,’UpperBound’,M);
linDLdQ = optimvar(’linDLdQ’,o,p,i,’Type’,’integer’,’LowerBound’,0,’UpperBound’,M);
linearizeBDLpQ1 = optimconstr(o,p,i);
linearizeBDLpQ2 = optimconstr(o,p,i);
linearizeBDLpQ3 = optimconstr(o,p,i);
linearizeBDLpQ4 = optimconstr(o,p,i);
linearizeBDLdQ1 = optimconstr(o,p,i);
linearizeBDLdQ2 = optimconstr(o,p,i);
linearizeBDLdQ3 = optimconstr(o,p,i);
linearizeBDLdQ4 = optimconstr(o,p,i);
linearizeDLpQ1 = optimconstr(o,p,i);
linearizeDLpQ2 = optimconstr(o,p,i);
linearizeDLpQ3 = optimconstr(o,p,i);
linearizeDLpQ4 = optimconstr(o,p,i);
linearizeDLdQ1 = optimconstr(o,p,i);
linearizeDLdQ2 = optimconstr(o,p,i);
linearizeDLdQ3 = optimconstr(o,p,i);
linearizeDLdQ4 = optimconstr(o,p,i);
for i = 1:i
pp = pp_sets{i};
pd = pd_sets{i};
for o = 1:o
for a = pp
linearizeBDLpQ1(o,a,i) = linBDLpQ(o,a,i) <= M .* BDLp(o,a,i);
linearizeBDLpQ2(o,a,i) = linBDLpQ(o,a,i) <= Q(a,i,3);
linearizeBDLpQ3(o,a,i) = linBDLpQ(o,a,i) >= Q(a,i,3) - M .* (1 - BDLp(o,a,i));
linearizeBDLpQ4(o,a,i) = linBDLpQ(o,a,i) >= 0;
linearizeDLpQ1(o,a,i) = linDLpQ(o,a,i) <= M .* DLp(o,a,i);
linearizeDLpQ2(o,a,i) = linDLpQ(o,a,i) <= Q(a,i,2);
linearizeDLpQ3(o,a,i) = linDLpQ(o,a,i) >= Q(a,i,2) - M .* (1 - DLp(o,a,i));
linearizeDLpQ4(o,a,i) = linDLpQ(o,a,i) >= 0;
end
for b = pd
linearizeBDLdQ1(o,b,i) = linBDLdQ(o,b,i) <= M .* BDLd(o,b,i);
linearizeBDLdQ2(o,b,i) = linBDLdQ(o,b,i) <= Q(b,i,3);
linearizeBDLdQ3(o,b,i) = linBDLdQ(o,b,i) >= Q(b,i,3) - M .* (1 - BDLd(o,b,i));
linearizeBDLdQ4(o,b,i) = linBDLdQ(o,b,i) >= 0;
linearizeDLdQ1(o,b,i) = linDLdQ(o,b,i) <= M .* DLd(o,b,i);
linearizeDLdQ2(o,b,i) = linDLdQ(o,b,i) <= Q(b,i,2);
linearizeDLdQ3(o,b,i) = linDLdQ(o,b,i) >= Q(b,i,2) - M .* (1 - DLd(o,b,i));
linearizeDLdQ4(o,b,i) = linDLdQ(o,b,i) >= 0;
end
end
end
TSSAD.Constraints.linearBDLpQa = linearizeBDLpQ1;
TSSAD.Constraints.linearBDLpQb = linearizeBDLpQ2;
TSSAD.Constraints.linearBDLpQc = linearizeBDLpQ3;
TSSAD.Constraints.linearBDLpQd = linearizeBDLpQ4;
TSSAD.Constraints.linearBDLdQa = linearizeBDLdQ1;
TSSAD.Constraints.linearBDLdQb = linearizeBDLdQ2;
TSSAD.Constraints.linearBDLdQc = linearizeBDLdQ3;
TSSAD.Constraints.linearBDLdQd = linearizeBDLdQ4;
TSSAD.Constraints.linearDLpQa = linearizeDLpQ1;
TSSAD.Constraints.linearDLpQb = linearizeDLpQ2;
TSSAD.Constraints.linearDLpQc = linearizeDLpQ3;
TSSAD.Constraints.linearDLpQd = linearizeDLpQ4;
TSSAD.Constraints.linearDLdQa = linearizeDLdQ1;
TSSAD.Constraints.linearDLdQb = linearizeDLdQ2;
TSSAD.Constraints.linearDLdQc = linearizeDLdQ3;
TSSAD.Constraints.linearDLdQd = linearizeDLdQ4;
A1s = optimvar(’A1s’,i,’Type’,’continuous’);
B1s = optimvar(’B1s’,i,’Type’,’continuous’);
C1as = optimvar(’C1as’,i,’Type’,’continuous’);
C1bs = optimvar(’C1bs’,i,’Type’,’continuous’);
D1s = optimvar(’D1s’,i,’Type’,’continuous’);
E1s = optimvar(’E1s’,i,’Type’,’continuous’);
F1s = optimvar(’F1s’,i,’Type’,’continuous’);
A2s = optimvar(’A2s’,i,’Type’,’continuous’);
B2s = optimvar(’B2s’,i,’Type’,’continuous’);
C2as = optimvar(’C2as’,i,’Type’,’continuous’);
C2bs = optimvar(’C2bs’,i,’Type’,’continuous’);
D2s = optimvar(’D2s’,i,’Type’,’continuous’);
E2s = optimvar(’E2s’,i,’Type’,’continuous’);
F2s = optimvar(’F2s’,i,’Type’,’continuous’);
A3s = optimvar(’A3s’,i,’Type’,’continuous’);
B3s = optimvar(’B3s’,i,’Type’,’continuous’);
C3s = optimvar(’C3s’,i,’Type’,’continuous’);
D3s = optimvar(’D3s’,i,’Type’,’continuous’);
E3s = optimvar(’E3s’,i,’Type’,’continuous’);
a1stratrels = optimconstr(i);
for i = 1:i
pp = pp_sets{i};
pd = pd_sets{i};
a1stratrels(i) = A1s(i) == sum(pbc(i) .* Q(pp,i,3),’all’) + sum(pbcf(i) .* ST(pp,i,3),’all’)...
+ sum(pbc(i) .* Q(pd,i,3),’all’) + sum(pbcf(i) .* ST(pd,i,3),’all’);
end
TSSAD.Constraints.a1stratrelsa = a1stratrels;
TSSAD.Constraints.a1stratrel = A1 == sum(A1s,’all’);
b1bunddisccoss = optimconstr(i);
for i = 1:i
pp = pp_sets{i};
pd = pd_sets{i};
b1bunddisccoss(i) = B1s(i) == sum(max((repmat(pbdcp(:,i),[size(pp),1])’ .* repmat (sp(pp),[1,o])) - (repmat(sp(pp) - cp(pp),[1,o])),0) .* repmat(Epbsp(:,i),[size(pp),1])’ .* linBDLpQ(:,pp,i)’,’all’)...
+ sum(max((repmat(pbdcd(:,i),[size(pd),1])’ .* repmat(sp(pd),[1,o])) - (repmat(sp(pd) - cp(pd),[1,o])),0) .* repmat(Epbsd(:,i),[size(pd),1])’ .* linBDLdQ(:,pd,i)’,’all’);
end
TSSAD.Constraints.b1bunddisccosa = b1bunddisccoss;
TSSAD.Constraints.b1bunddisccos = B1 == sum(B1s,’all’);
c1adispcosts = optimconstr(i);
c1bdispcosts = optimconstr(i);
for i = 1:i
pd = pd_sets{i};
c1adispcosts(i) = C1as(i) == sum(disp(pd,i)’ .* sum((1 - repmat(Epbsd(:,i),[size(pd),1])) .* linBDLdQ(:,pd,i),1),’all’);
c1bdispcosts(i) = C1bs(i) == sum(sum(repmat(cp(pd),[1,o])’ .* (1 - repmat(Epbsd(:,i), [size(pd),1])) .* linBDLdQ(:,pd,i),1),’all’);
end
TSSAD.Constraints.c1adispcostsa = c1adispcosts;
TSSAD.Constraints.c1bdispcostsa = c1bdispcosts;
TSSAD.Constraints.c1adispcost = C1a == sum(C1as,’all’);
TSSAD.Constraints.c1bdispcost = C1b == sum(C1bs,’all’);
TSSAD.Constraints.c1dispcost = C1 == C1a + C1b;
d1transcosts = optimconstr(i);
for i = 1:i
pd = pd_sets{i};
d1transcosts(i) = D1s(i) == sum(t(pd,i)’ .* sum((1 - repmat(Epbsd(:,i),[size(pd),1])) .* linBDLdQ(:,pd,i),1),’all’);
end
TSSAD.Constraints.d1transcostsa = d1transcosts;
TSSAD.Constraints.d1transcost = D1 == sum(D1s,’all’);
e1whcosts = optimconstr(i);
for i = 1:i
pp = pp_sets{i};
e1whcosts(i) = E1s(i) == sum(w(pp,i)’ .* sum((1 - repmat(Epbsp(:,i),[size(pp),1])) .* linBDLpQ(:,pp,i),1),’all’);
end
TSSAD.Constraints.e1whcostsa = e1whcosts;
TSSAD.Constraints.e1whcost = E1 == sum(E1s,’all’);
f1revfromsales = optimconstr(i);
for i = 1:i
pp = pp_sets{i};
pd = pd_sets{i};
f1revfromsales(i) = F1s(i) == sum(sp(pp)’ .* sum((1 - repmat(pbdcp(:,i),[size(pp),1])) .* repmat(Epbsp(:,i),[size(pp),1]) .* linBDLpQ(:,pp,i),1),’all’)...
+ sum(sp(pd)’ .* sum((1 - repmat(pbdcd(:,i),[size(pd),1])) .* repmat(Epbsd(:,i),[size(pd),1]) .* linBDLdQ(:,pd,i),1),’all’);
end
TSSAD.Constraints.f1revfromsalesa = f1revfromsales;
TSSAD.Constraints.f1revfromsale = F1 == sum(F1s,’all’);
a2stratrels = optimconstr(i);
for i = 1:i
pp = pp_sets{i};
pd = pd_sets{i};
a2stratrels(i) = A2s(i) == sum(pdcf(i) .* ST(pp,i,2),’all’) + sum(pdcf(i) .* ST(pd,i,2),’all’);
end
TSSAD.Constraints.a2stratrelsa = a2stratrels;
TSSAD.Constraints.a2stratrel = A2 == sum(A2s,’all’);
b2bunddisccoss = optimconstr(i);
for i = 1:i
pp = pp_sets{i};
pd = pd_sets{i};
b2bunddisccoss(i) = B2s(i) == sum(max((repmat(dcp(:,i),[size(pp),1])’ .* repmat(sp(pp), [1,o])) - (repmat(sp(pp) - cp(pp),[1,o])),0) .* repmat(Epdsp(:,i),[size(pp),1])’ .* linDLpQ(:,pp,i)’, ’all’)...
+ sum(max((repmat(dcd(:,i),[size(pd),1])’ .* repmat(sp(pd),[1,o])) - (repmat(sp(pd) - cp(pd),[1,o])),0) .* repmat(Epdsd(:,i),[size(pd),1])’ .* linDLdQ(:,pd,i)’,’all’);
end
TSSAD.Constraints.b2bunddisccossa = b2bunddisccoss;
TSSAD.Constraints.b2bunddisccos = B2 == sum(B2s,’all’);
c2adispcosts = optimconstr(i);
c2bdispcosts = optimconstr(i);
for i = 1:i
pd = pd_sets{i};
c2adispcosts(i) = C2as(i) == sum(disp(pd,i)’ .* sum((1 - repmat(Epdsd(:,i),[size(pd),1])) .* linDLdQ(:,pd,i),1),"all");
c2bdispcosts(i) = C2bs(i) == sum(sum(repmat(cp(pd),[1,o])’ .* (1 - repmat(Epdsd(:,i), [size(pd),1])) .* linDLdQ(:,pd,i),1),’all’);
end
TSSAD.Constraints.c2adispcostsa = c2adispcosts;
TSSAD.Constraints.c2bdispcostsb = c2bdispcosts;
TSSAD.Constraints.c2adispcost = C2a == sum(C2as,’all’);
TSSAD.Constraints.c2bdispcost = C2b == sum(C2bs,’all’);
TSSAD.Constraints.c2dispcost = C2 == C2a + C2b;
d2transcosts = optimconstr(i);
for i = 1:i
pd = pd_sets{i};
d2transcosts(i) = D2s(i) == sum(t(pd,i)’ .* sum((1 - repmat(Epdsd(:,i),[size(pd),1])) .* linDLdQ(:,pd,i),1),"all");
end
TSSAD.Constraints.d2transcostsa = d2transcosts;
TSSAD.Constraints.d2transcost = D2 == sum(D2s,’all’);
e2whcosts = optimconstr(i);
for i = 1:i
pp = pp_sets{i};
e2whcosts(i) = E2s(i) == sum(w(pp,i)’ .* sum((1 - repmat(Epdsp(:,i),[size(pp),1])) .* linDLpQ(:,pp,i),1),"all");
end
TSSAD.Constraints.e2whcostsa = e2whcosts;
TSSAD.Constraints.e2whcost = E2 == sum(E2s,’all’);
f2revfromsales = optimconstr(i);
for i = 1:i
pp = pp_sets{i};
pd = pd_sets{i};
f2revfromsales(i) = F2s(i) == sum(sp(pp)’ .* sum((1 - repmat(dcp(:,i),[size(pp),1])) .* repmat(Epdsp(:,i),[size(pp),1]) .* linDLpQ(:,pp,i),1),’all’)...
+ sum(sp(pd)’ .* sum((1 - repmat(dcd(:,i),[size(pd),1])) .* repmat(Epdsd(:,i),[size(pd),1]) .* linDLdQ(:,pd,i),1),’all’);
end
TSSAD.Constraints.f2revfromsalesa = f2revfromsales;
TSSAD.Constraints.f2revfromsale = F2 == sum(F2s,’all’);
a3stratrels = optimconstr(i);
for i = 1:i
pp = pp_sets{i};
pd = pd_sets{i};
a3stratrels(i) = A3s(i) == sum(squeeze(repmat(t1(i,:),[1,size(pp)]))’ .* squeeze(QTS(pp,i,:)), ’all’)...
+ sum(squeeze(repmat(t1(i,:),[1,size(pd)]))’ .* squeeze(QTS(pd,i,:)),’all’);
end
TSSAD.Constraints.a3stratrelsa = a3stratrels;
TSSAD.Constraints.a3stratrel = A3 == sum(A3s,’all’);
b3stratrels = optimconstr(i);
for i = 1:i
pp = pp_sets{i};
pd = pd_sets{i};
b3stratrels(i) = B3s(i) == sum(repmat(ts(pp,i),[1,1,j]) .* QTS(pp,i,:),’all’)...
+ sum(repmat(ts(pd,i),[1,1,j]) .* QTS(pd,i,:),’all’);
end
TSSAD.Constraints.b3stratrelsa = b3stratrels;
TSSAD.Constraints.b3stratrel = B3 == sum(B3s,’all’);
c3saveprodpurchs = optimconstr(i);
for i = 1:i
ppd = ppd_sets{i};
c3saveprodpurchs(i) = C3s(i) == sum(repmat(cp(ppd),[1,j]) .* squeeze(QTS(ppd,i,:) .* i2j(ppd,i,:)),’all’);
end
TSSAD.Constraints.c3saveprodpurchsa = c3saveprodpurchs;
TSSAD.Constraints.c3saveprodpurch = C3 == sum(C3s,’all’);
d3fixcosts = optimconstr(i);
for i = 1:i
pf = pf_sets{i};
d3fixcosts(i) = D3s(i) == sum(co(pf,i) .* Y(pf,i),’all’);
end
TSSAD.Constraints.d3fixcostsa = d3fixcosts;
TSSAD.Constraints.d3fixcost = D3 == sum(D3s,’all’);
e3saves = optimconstr(i);
for i = 1:i
ppd = ppd_sets{i};
e3saves(i) = E3s(i) == sum(repmat(w(ppd,i),[1,j]) .* squeeze(QTS(ppd,i,:) .* i2j(ppd,i,:)), ’all’);
end
TSSAD.Constraints.e3savesa = e3saves;
TSSAD.Constraints.e3save = E3 == sum(E3s,’all’);
%
TSSAD.Constraints.overallobj = Z == A1 + B1 + C1 + D1 + E1 - F1 + A2 + B2 + C2 + D2 + E2 - F2 + A3 + B3 - C3 - D3 - E3;
TSSAD.ObjectiveSense = ’minimize’;
TSSAD.Objective.OBJ = Z;
[sol, fval, exitflag, output] = solve(TSSAD);
rem_pp_i = zeros(p,i);
for i = 1:i
for p = 1:p
rem_pp_i(p,i) = sum(sol.linBDLpQ(:,p,i) .* (1-Epbsp(:,i)),1)’ + sum(sol.linDLpQ(:,p,i) .* (1-Epdsp(:,i)),1)’;
end
end
rem_pp_st = sum(rem_pp_i,1);
sum_rem_pp = sum(rem_pp_st,’all’); runtime = toc; problem_struct = prob2struct (TSSAD); num_constraints = length(problem_struct.Aeq) + length(problem_struct.Aineq); num_variables = length(problem_struct.lb);
%show in excel instead of C3 in solC3 = zeros(i,1); for i = 1:i pf = pf_sets{i}; solC3(i) = sum((sol.IL(pf,i) - BI(pf,i)) .* cp(pf),’all’); end
sumsolC3 = sum(solC3,’all’);

References

  1. Kumar, P.; Shivabharathi, P. Dead stock reduction using association rule mining. In Proceedings of the 2022 7th International Conference on Communication and Electronics Systems (ICCES), Coimbatore, India, 22–24 June 2022. [Google Scholar] [CrossRef]
  2. Bazrafshan, F.; Emami, S.; Mashreghi, H. Inventory control and price discount policies for perishable products with age and price-dependent demand. Sci. Iran. 2022. [Google Scholar] [CrossRef]
  3. Lestari, N.F. Analysis of inventory management in order to reduce overstock (Case study of TVF footwear). Int. J. Curr. Sci. Res. Rev. 2022, 5. [Google Scholar] [CrossRef]
  4. Tariq Afridi, M.; Nieto-Isaza, S.; Ehm, H.; Ponsignon, T.; Hamed, A. A deep reinforcement learning approach for optimal replenishment policy in a Vendor Managed Inventory setting for semiconductors. In Proceedings of the 2020 Winter Simulation Conference (WSC), Orlando, FL, USA, 14–18 December 2020. [Google Scholar] [CrossRef]
  5. Saprudin, S.; Dewi, S.; Pratiwi, T.H. Analysis of sales return and economic order quantity to assess turn of goods inventory. Int. J. Inform. Econ. Manag. Sci. (IJIEMS) 2022, 1, 63–77. [Google Scholar] [CrossRef]
  6. Zighan, S. Managing the great bullwhip effects caused by COVID-19. J. Glob. Oper. Strateg. Sourc. 2021, 15, 28–47. [Google Scholar] [CrossRef]
  7. van de Hurk, L. An Inventory Model for Slow Moving Items Subject to Obsolescence with Limited Customer Patience. Bachelor’s Thesis, Erasmus University Rotterdam, Rotterdam, The Netherlands, 2019. [Google Scholar]
  8. Jauhar, S.K.; Jani, S.M.; Kamble, S.S.; Pratap, S.; Belhadi, A.; Gupta, S. How to use no-code artificial intelligence to predict and minimize the inventory distortions for resilient supply chains. Int. J. Prod. Res. 2023, 62, 5510–5534. [Google Scholar] [CrossRef]
  9. Yan, H.; Yano, C.A.; Zhang, H. Inventory management under periodic profit targets. Prod. Oper. Manag. 2019, 28, 1387–1406. [Google Scholar] [CrossRef]
  10. Zhou, L.; Gupta, S.M. Marketing research and life cycle pricing strategies for new and remanufactured products. J. Remanuf. 2018, 9, 29–50. [Google Scholar] [CrossRef]
  11. Ibrahim, A. Optimal customized bundle pricing. Int. J. Model. Optim. 2019, 9, 234–237. [Google Scholar] [CrossRef]
  12. Li, Q.; Yu, P. Reducing Waste of Perishables in Retailing Through Transshipment. 2018. Available online: http://www.bm.ust.hk/isom/files/OM/FacultyPublications/LiQing/Rotation_Clearance_Dec2018.pdf (accessed on 1 August 2022).
  13. Prasad, M.N.V.; Vithanage, M.; Kapley, A. (Eds.) Pharmaceuticals and Personal Care Products: Waste Management and Treatment Technology: Emerging Contaminants and Micro Pollutants; Heinemann: Butterworth, Malaysia, 2019. [Google Scholar]
  14. Sugumaran, P.; Sukumaran, V. Recommendations to improve dead stock management in garment industry using data analytics. Math. Biosci. Eng. 2019, 16, 8121–8133. [Google Scholar] [CrossRef]
  15. Yıldız, S.C.; Hekimoğlu, M. Markdown optimization in apparel retail sector. In Advances in National Brand and Private Label Marketing: Seventh International Conference; Springer International Publishing: Berlin/Heidelberg, Germany, 2020; pp. 50–57. [Google Scholar]
  16. Avci, M.G. Lateral transshipment and expedited shipping in disruption recovery: A mean-CVaR approach. Comput. Ind. Eng. 2019, 130, 35–49. [Google Scholar] [CrossRef]
  17. Teplická, K.; Čulková, K. Using of optimizing methods in inventory management of the company. Acta Logist. 2020, 7, 9–16. [Google Scholar] [CrossRef]
  18. López-Soto, D.; Yacout, S.; Ángel-Bello, F. Root cause analysis of familiarity biases in classification of inventory items based on logical patterns recognition. Comput. Ind. Eng. 2016, 93, 121–130. [Google Scholar] [CrossRef]
  19. Emar, W. Al-dulaime, W. Analysis of inventory management of laptops spare parts by using XYZ techniques and EOQ model—A case study. J. Electron. Syst. 2021, 10, 1. [Google Scholar]
  20. Pencheva, D. Fast Moving Consumer Goods Retail: Business Intelligence Approach in Retail Information Systems. Egypt. Comput. Sci. J. 2021, 45, 47–57. [Google Scholar]
  21. Chaowai, K.; Chutima, P. Demand Forecasting and Ordering Policy of Fast-Moving Consumer Goods with Promotional Sales in a Small Trading Firm. Eng. J. 2024, 28, 21–40. [Google Scholar] [CrossRef]
  22. Li, R.; Chiu, A.; Seva, R. A Process-Based Dead Stock Management Framework for Retail Chain Store Systems. RSF Conf. Ser. Bus. Manag. Soc. Sci. 2022, 2, 122–128. [Google Scholar]
  23. Kakarlamudi, S. Deadstock Inventory Identification and Disposition. Master’s Thesis, Pennsylvania State University, University Park, PA, USA, 2018. [Google Scholar]
  24. Borden, N.H. The concept of the marketing mix. J. Advert. Res. 1964, 4, 2–7. [Google Scholar]
  25. Buisman, M.E. Reduce and Re-Use: Studying Retailers’ Food Waste from an Operations Research Perspective. Doctoral Dissertation, Wageningen University and Research, Wageningen, The Netherlands, 2019. [Google Scholar]
  26. Zhang, M.; Yang, X.; Cheng, T.E.; Chang, C. Inventory management of perishable goods with Overconfident retailers. Mathematics 2022, 10, 1716. [Google Scholar] [CrossRef]
  27. Collart, A.J.; Interis, M.G.; Maples, J. The impacts of food waste information on consumer preferences for blemished produce and implications for food retailers. J. Agric. Appl. Econ. 2022, 54, 440–460. [Google Scholar] [CrossRef]
  28. Franco, C.; López-Santana, E.R.; Figueroa-García, J.C. Solving the interval green inventory routing problem using optimization and genetic algorithms. In Applied Computer Sciences in Engineering: 4th Workshop on Engineering Applications, WEA 2017, Cartagena, Colombia, 27–29 September 2017; Proceedings 4; Springer International Publishing: Berlin/Heidelberg, Germany, 2017; pp. 556–564. [Google Scholar]
  29. Bachman, T.C.; Williams, P.J.; Cheman, K.M.; Curtis, J.; Carroll, R. PNG: Effective inventory control for items with highly variable demand. Interfaces 2016, 46, 18–32. [Google Scholar] [CrossRef]
  30. Martins, P.; Rodrigues, P.; Martins, C.; Barros, T.; Duarte, N.; Dong, R.K.; Yue, X. Preference between individual products and bundles: Effects of complementary, price, and discount level in Portugal. J. Risk Financ. Manag. 2021, 14, 192. [Google Scholar] [CrossRef]
  31. Fang, Y.; Jiang, Y.; Han, X. Bundle pricing decisions for fresh products with quality deterioration. J. Food Qual. 2018, 2018, 1595807. [Google Scholar] [CrossRef]
  32. Barrios, P.S.C.; Cruz, D.E. A mixed integer programming optimization of bundling and pricing strategies for multiple product components with inventory allocation considerations. In Proceedings of the 2017 IEEE International Conference on Industrial Engineering and Engineering Management (IEEM), Singapore, 10–13 December 2017; pp. 16–20. [Google Scholar] [CrossRef]
  33. Bucarey, V.; Elloumi, S.; Labbé, M.; Plein, F. Models and algorithms for the product pricing with single-minded customers requesting bundles. Comput. Oper. Res. 2021, 127, 105139. [Google Scholar] [CrossRef]
  34. Naderi, S.; Kilic, K.; Dasci, A. A Deterministic Model for the Transshipment Problem of a Fast Fashion Retailer under Capacity Constraints. SSRN Electron. J. 2020, 227, 107687. [Google Scholar] [CrossRef]
  35. Nakandala, D.; Lau, H.; Zhang, J. Strategic hybrid lateral transshipment for cost-optimized inventory management. Ind. Manag. Data Syst. 2017, 117, 1632–1649. [Google Scholar] [CrossRef]
  36. Li, R.; Seva, R.; Chiu, A. A System-Based Classification and Prioritization Model to Prevent Dead Stock Occurrence in Retail Store Systems. In Industrial Engineering and Applications; IOS Press: Manila, Philippines, 2023; pp. 87–98. [Google Scholar]
  37. Li, R.; Chiu, A.S.; Seva, R. Reducing carbon footprint and promoting resource sustainability in the retail industry through the prevention of dead stocks. Clean. Responsible Consum. 2023, 11, 100150. [Google Scholar] [CrossRef]
  38. Sebatjane, M.; Adetunji, O. Optimal lot-sizing and shipment decisions in a three-Echelon supply chain for growing items with inventory level- and expiration date-dependent demand. Appl. Math. Model. 2021, 90, 1204–1225. [Google Scholar] [CrossRef]
  39. Yan, J.; Gong, M.; Sun, C.; Huang, J.; Chu, S.M. Sales pipeline win propensity prediction: A regression approach. In Proceedings of the 2015 IFIP/IEEE International Symposium on Integrated Network Management (IM), Ottawa, ON, Canada, 11–15 May 2015; pp. 854–857. [Google Scholar]
  40. Jonsson, P.; Mattsson, S.A. Inventory management practices and their implications on perceived planning performance. Int. J. Prod. Res. 2008, 46, 1787–1812. [Google Scholar] [CrossRef]
  41. Tripathi, V.; Kochhar, P. Determinants of Effective Inventory Management A Study of Consumer Durable Retailers. Bonfring Int. J. Ind. Eng. Manag. Sci. 2016, 6, 53. [Google Scholar] [CrossRef]
Figure 1. Input–output flowchart of the model.
Figure 1. Input–output flowchart of the model.
Sustainability 17 09242 g001
Figure 2. Effect of increasing number of stores and products on total dead stock management cost.
Figure 2. Effect of increasing number of stores and products on total dead stock management cost.
Sustainability 17 09242 g002
Figure 3. Effect of increasing number of products on run time of integrated model.
Figure 3. Effect of increasing number of products on run time of integrated model.
Sustainability 17 09242 g003
Figure 4. Effect of increasing number of stores on run time of integrated model.
Figure 4. Effect of increasing number of stores on run time of integrated model.
Sustainability 17 09242 g004
Figure 5. Effect of increasing number of products and stores on run time of integrated model.
Figure 5. Effect of increasing number of products and stores on run time of integrated model.
Sustainability 17 09242 g005
Table 1. System variables.
Table 1. System variables.
Pset of all products or item codes
p’iset of all potential dead stock (slow-moving items) in store location i
dniset of all unexpired dead stock (non-moving items) in store location i
fiset of all fast-moving stocks in store location i, where p’i ⊆ P; dni⊆ P; fi⊆ P
p’ifjset of all products classified as potential dead stock (slow-moving items) in store location i but classified as fast-moving stocks in store location j
dnifjset of all products classified as unexpired dead stock (non-moving items) in store location i but classified as fast-moving stocks in store location j
fifjset of all products classified as fast-moving stocks in store location i and also classified as fast-moving stocks in store location j
i,jindices of retail store location i, j = 0, 1, 2, …, M
pindex of retail store products p = 1, 2, …, N
sindex of retail store strategy s = 1, 2, …, S
oindex of product discount levels for p’ o = 1, 2, …, O
o’index of product discount levels for dn o’ = 1, 2, …, O’
o"index of product bundle discount levels for p’ and f bundle o” = 1, 2, …, O”
o’”index of product bundle discount levels for dn and f bundle o” ’ = 1, 2, …, O” ’
copifixed product ordering cost (paperwork and communications) in store location i
dcoidiscount factor level o of product p (belonging to product category set p’i) in store location i
dc’o’idiscount factor level o’ of product p (belonging to product category set dni) in store location i
disppidisposal cost (variable labor cost of collecting, unbundling and loading the unsold product into the truck for disposal) per unit of product p (belonging to product category set dni) in store location i
E(pbs%o”)expected product bundle discount success % based on discount level o” for product p (belonging to product category set p’i)
E(pbs%’o” ’)expected product bundle discount success % based on discount level o” ’ for product p (belonging to product category set dni)
E(pds%o)expected price discount success % based on discount level o for product p (belonging to product category set p’i)
E(pds%’o’)expected price discount success % based on discount level o’ for product p (belonging to product category set dni)
pbdco”iproduct bundle discount factor level o” of product p (belonging to product category set p’i) in store location i
pbdc’o” ’iproduct bundle discount factor level o” ’ of product p (belonging to product category set dni) in store location i
pbcivariable product bundling strategy cost (variable labor and supplies cost to bundle and reprice the bundled products) per bundled unit of product (belonging to product category sets p’i and dni) in store location i
pbcfifixed product bundling strategy cost (fixed cost of visual or print collaterals placed in both primary and secondary shelves plus system registration cost) per product (belonging to product category sets p’i and dni) in store location i
pdcficost (fixed cost of visual or print collaterals placed in both primary and secondary shelves plus system registration cost) of discount offer strategy per product belonging to product category sets p’i and dni in store location i
tp,i,jtransportation cost (truck operations and fuel cost) per unit of product p (belonging to product category sets p’i and dni) transshipped from store location i to store location j
tpitransportation cost (logistics provider cost) per unit of product p (belonging to product category set dni) from store location i to centralized disposal facility location
tspitransshipment cost (labor, material and overhead cost to retrieve and handle products from the warehouse, inspect and load them into the truck, and process necessary paperwork) per unit of product p (belonging to product category sets p’i and dni) in store location i
wpiwarehouse cost (labor cost and holding cost) per unit of product p in the warehouse of store location i
cptotal cost of purchasing and making each unit of product p available for sale in the retail store
spporiginal selling price per unit of product p
BIpibeginning inventory of product p (belonging to product category sets p’i, dni and fi) in store location i
LMILpilower maintaining inventory level for product p in store location i
EMILpiexpected maintaining inventory level for product p in store location i
UMILpiupper maintaining inventory level for product p in store location i
ILpiinventory level of product p (belonging to product category sets p’i, dni and fi) in store location i after transshipment to or from the store has been carried out at the beginning of the single period
Qpisquantity of product p from store location i to manage using strategy s
· Qpi(ts)—quantity of product p from store location i to manage using transshipment (ts) strategy
· Qpi(pd)—quantity of product p from store location i to manage using price discount (pd) strategy
· Qpi(pb)—quantity of product p from store location i to manage using product bundling (pb) strategy
QTSpij quantity of product p transshipped from store location i to store location j
PBQp ε p’i,p ε fiquantity of product p from set p’i to bundle with product p from set fi
PBQp ε dni,p ε fiquantity of product p from set dni to bundle with product p from set fi
STpis=1 if strategy s is selected for product p in store location i
=0 otherwise
· STpi(ts) = 1 if transshipment strategy is selected for product p in store location i where p ε {p’i, dni}
=0 otherwise
· STpi(pd) = 1 if price discount strategy is selected for product p in store location i where p ε {p’i, dni}
=0 otherwise
· STpi(pb) = 1 if product bundling strategy is selected for product p in store location i where p ε {p’i, dni, fi}
=0 otherwise
TQpij=1 if product p where p ε {p’i, dni} is transshipped from store location i to store location j
=0 otherwise
DLopi=1 if price discount level o is applied to product p in store location i where p ε p’i
=0 otherwise
DLo=1,p,i=1 if price discount level o = 1 is applied to product p in store location i where p ε p’i (i.e., ILpi-LMILpi ≤ 0)
=0 otherwise
DLo=2,p,i=1 if price discount level o = 2 is applied to product p in store location i where p ε p’i (i.e., LMILpi< ILpi ≤ EMILpi)
=0 otherwise
DLo=3,p,i=1 if price discount level o = 3 is applied to product p in store location i where p ε p’i (i.e., EMILpi< ILpi ≤ UMILpi)
=0 otherwise
DLo=4,p,i=1 if price discount level o = 4 is applied to product p in store location i where p ε p’i (i.e., ILpi-UMILpi > 0)
=0 otherwise
DL’o’pi=1 if price discount level o’ is applied to product p in store location i where p ε dni
=0 otherwise
DL’o’=1,p,i=1 if price discount level o’ = 1 is applied to product p in store location i where p ε dni (i.e., ILpi-LMILpi ≤ 0)
=0 otherwise
DL’o’=2,p,i=1 if price discount level o’ = 2 is applied to product p in store location i where p ε dni (i.e., LMILpi< ILpi ≤ EMILpi)
=0 otherwise
DL’o’=3,p,i=1 if price discount level o’ = 3 is applied to product p in store location i where p ε dni (i.e., EMILpi< ILpi ≤ UMILpi)
=0 otherwise
DL’o’=4,p,i=1 if price discount level o’ = 4 is applied to product p in store location i where p ε dni (i.e., ILpi-UMILpi > 0)
=0 otherwise
Ypi=1 if UMILpi –BIpi> 0 where p ε fi in store location i where product transshipment will be received
=0 if UMILpi –BIpi ≤ 0 where p ε fi in store location i where product transshipment will be received
PBp ε p’i,p ε fi=1 if product p ε p’i is bundled with product p ε fi
=0 otherwise
PBp ε dni,p ε fi=1 if product p ε dni is bundled with product p ε fi
=0 otherwise
PBSp1 ε fi,p2 ε fi=1 if p1 ε  fi is to be bundled ahead of p2 ε  fi in store location i where p1 ≠ p2
=0 if p2 ε  fi is to be bundled ahead of p1 ε  fi in store location i where p1 ≠ p2
BDLo”,p,i=1 if product bundle discount level o” is applied to product p bundle in store location i where p ε p’i
=0 otherwise
BDLo”=1,p,i=1 if product bundle discount level o” = 1 is applied to product p bundle in store location i where p ε p’i (i.e., ILpi-LMILpi ≤ 0)
=0 otherwise
BDLo”=2,p,i=1 if product bundle discount level o” = 2 is applied to product p bundle in store location i where p ε p’i (i.e., LMILpi< ILpi ≤ EMILpi)
=0 otherwise
BDLo”=3,p,i=1 if product bundle discount level o” = 3 is applied to product p bundle in store location i where p ε p’i (i.e., EMILpi< ILpi ≤ UMILpi)
=0 otherwise
BDLo”=4,p,i=1 if product bundle discount level o” = 4 is applied to product p bundle in store location i where p ε p’i (i.e., ILpi-UMILpi > 0)
=0 otherwise
BDL’o” ’, p,i=1 if product bundle discount level o” ’ is applied to product p bundle in store location i where p ε dni
=0 otherwise
BDL’o” ’=1,p,i=1 if product bundle discount level o” ’ = 1 is applied to product p bundle in store location i where p ε dni (i.e., ILpi-LMILpi ≤ 0)
BDL’o” ’=2,p,i=1 if product bundle discount level o” ’ = 2 is applied to product p bundle in store location i where p ε dni (i.e., LMILpi< ILpi ≤ EMILpi)
BDL’o” ’=3,p,i=1 if product bundle discount level o” ’ = 3 is applied to product p bundle in store location i where p ε dni (i.e., EMILpi< ILpi ≤ UMILpi)
BDL’o” ’=4,p,i=1 if product bundle discount level o” ’ = 4 is applied to product p bundle in store location i where p ε dni (i.e., ILpi-UMILpi > 0)
Table 2. Mathematical model objective function components.
Table 2. Mathematical model objective function components.
Dead Stock Management StrategyObjective Function ComponentDefinition
Product Bundling/Price DiscountA1/A2—Strategy Related Cost (SRC)Semi-fixed and variable costs that are incurred in carrying out the strategy
Product Bundling/Price DiscountB1/B2—Unrecovered Product Purchase Cost (UPC)Difference between the product cost and discounted selling price of successfully sold dead stock
Product Bundling/Price DiscountC1/C2—Disposal Cost (DC)Labor and other operational costs associated with product disposal
Product Bundling/Price DiscountC1/C2—Disposed Product Cost (PC)Totally unrecovered purchase cost of a disposed product
Product Bundling/Price DiscountD1/D2—Transport Cost (TC)Variable cost of transporting a disposed product to the disposal facility
Product Bundling/Price DiscountE1/E2—Warehouse Cost (WC)Cost of holding inventory for one full period including risk of obsolescence
Product Bundling/Price DiscountF1/F2—Salvage Value (SV)Revenue derived from the sale of discounted products
Lateral TransshipmentA3—Strategy Related Transportation Cost (SRT)Variable cost of transporting a product from one store to another store
Lateral TransshipmentB3—Strategy Related Operations Cost (SRO)Labor and other operational costs associated with product transshipment
Lateral TransshipmentC3—Savings in Purchase Cost (SPC)Purchase cost savings realized by the chain store system because the product requirement of the receiving store was internally supplied through transshipment
Lateral TransshipmentD3—Savings in Ordering Cost (SOC)Savings arising from not having to order the product with an external supplier
Lateral TransshipmentE3—Savings in Warehouse Cost (SWC)Savings in holding and obsolescence risk cost arising from the transshipment of the dead stock
Table 3. Mathematical model constraints.
Table 3. Mathematical model constraints.
Dead Stock Management StrategyConstraintsDescription
General constraintsInvolve the selection/activation of a strategy and the determination of inventory quantities in each store to be managed using a specific strategy
Binary and integer constraintsSpecify which decision variables are 0–1 variables and which variables are integers
Lateral TransshipmentPost-transshipment inventory level calculation constraintsCalculate the IL of all products in the sending and receiving stores after transshipment
Lateral TransshipmentAllowable outbound and inbound transshipment quantity constraintsEnsure that the quantities transshipped from the sending stores do not exceed the requirement of products in the receiving stores
Product BundlingProduct bundle pairing constraintsDetermine which NDS and how much of each NDS should be bundled with each dead stock
Product BundlingBundling strategy discount level determination constraintsDetermine the bundle discount % to offer based on the IL of the dead stock
Product BundlingNDS sequencing constraintsDetermine which among many NDS should be prioritized for bundle pairing based on the % by which an NDS exceeds its expected maintaining inventory level (EMIL)
Price DiscountPrice discount strategy discount level determination constraintsDetermine the price discount % to offer based on the IL of the dead stock
Table 4. Store and system quantity and percentage of each inventory classification.
Table 4. Store and system quantity and percentage of each inventory classification.
Inventory ClassificationStore 1 Qty.% of Store 1 Invty.Store 2 Qty.% of Store 2 Invty.Store 3 Qty.% of Store 3 Invty.System Total Qty.% of System Invty.
PDS941337541.128240.675132.2
UDS9613.315416.932446.757424.6
NDS53473.7384428812.7100643.2
Store Total Qty.7241009131006941002331100
Total Dead Stock (PDS + UDS)19026.35295860687.3132556.8
Table 5. Mixed strategy model results summary.
Table 5. Mixed strategy model results summary.
Obj. Function ComponentStore 1Store 2Store 3Total
Strategy Related Cost (SRC)-651.50111.00762.50
Unrecovered Product Cost (UPC)-6062.76-6062.76
Disposal Cost (DC)--68.7368.73
Product Cost (PC)--309.06309.06
Transportation Cost (TC)--46.2446.24
Warehouse Cost (WC)-563.83-563.83
Salvage Value (SV)-42,965.72296.9443,262.66
Total Net Product Bundling Strategy Cost-−35,687.63238.10−35,449.54
Strategy Related Cost (SRC)60.00120.00120.00300.00
Unrecovered Product Cost (UPC)73,570.56147,810.3047,526.89268,907.75
Disposal Cost (DC)426.95707.73-1134.69
Product Cost (PC)73,920.0083,545.00-157,465.00
Transportation Cost (TC)320.09378.10-698.20
Warehouse Cost (WC)643.172,481.431504.184628.77
Salvage Value (SV)24,299.5247,353.14103,549.74175,202.40
Total Net Price Discount Strategy Cost124,641.25187,689.42−54,398.68257,932.00
Strategy Related—Transpo (SRT)-2646.5010,861.0013,507.50
Strategy Related—Operations (SRO)-163.90461.73625.63
Savings in Purchase Cost (SPC)50,289.7533,804.55-84,094.30
Savings in Ordering Cost (SOC)360.00400.00-760.00
Savings in Warehouse Cost (SWC)-1817.995445.267263.25
Total Net Transshipment Strategy Cost−50,649.75−33,212.145877.47−77,984.42
Total System Dead Stock Management Cost73,991.50118,789.65−48,283.11144,498.04
Total Remaining Qty. of Dead Stock49.00133.00138.00320.00
Dead Stock as a % of Total Inventory6.7714.5719.8813.73
Table 6. Mixed strategy model decisions on transshipment, price discount and product bundling.
Table 6. Mixed strategy model decisions on transshipment, price discount and product bundling.
Integrated Model DecisionStore 1Store 2Store 3System Total Qty.
Qty. of PDS Transshipped0672188
Qty. of UDS Transshipped00309309
Total PDS + UDS Qty. Transshipped067330397
Qty. of PDS Discounted94217261572
Qty. of UDS Discounted961540250
Total PDS + UDS Qty. Discounted190371261822
Qty. of PDS Sold as a Bundle091091
Qty. of UDS Sold as a Bundle001515
Total PDS + UDS Qty. Sold as a Bundle09115106
Total Qty. of PDS + UDS Managed1905296061325
Table 7. Summary of relationships between parameter drivers and major objective function cost components.
Table 7. Summary of relationships between parameter drivers and major objective function cost components.
Relationship Item NumberCost of UDSDiscount Offer %Selling Price of UDS% of Unsold UDSSelling Price of Dead Stock% of Unsold Dead StockPCUPC
1
2
3
4
5
6
7
8
Table 8. Inventory cost breakdown of product bundling and price discount model results.
Table 8. Inventory cost breakdown of product bundling and price discount model results.
Inventory Cost ComponentProduct Bundling ModelPrice Discount Model
Strategy Related (SR)1512.70480.00
Unrecovered Product Cost (UPC)150,904.44284,518.44
Disposal Cost (DC)5571.243168.55
Product Cost (PC)321,515.70166,948.55
Transportation Cost (TC)3448.742066.60
Warehouse Cost (WC)12,775.476157.38
Salvage Value (SV)42,317.56234,763.81
Grand Total Cost for all Stores453,410.73228,575.70
Total Qty. of Remaining Potential Dead Stock for all Stores651.00375.00
Table 9. Comparative summary of model results.
Table 9. Comparative summary of model results.
Integrated ModelProduct Bundling OnlyPrice Discount Only
StoreCost (Php)Qty. of Remaining Dead Stock (Units)Cost (Php)Qty. of Remaining Dead Stock (Units)>Cost (Php)Qty. of Remaining Dead Stock (Units)
173,991.5048.88166,279.1730.08124,641.2548.88
2118,789.65133.02276,757.99363.78151,159.71173.65
3−48,283.11137.6910,373.58255.12−47,225.27151.98
Total System Cost (Php)144,498.04319.59453,410.74648.98228,575.69374.51
Table 10. Effect of increasing number of stores and products on integrated model performance.
Table 10. Effect of increasing number of stores and products on integrated model performance.
Total Dead Stock Management CostQty. of Remaining Dead Stock% of Unresolved Dead Stock
3 stores 10 products144,498.04320.0024%
4 stores 15 products125,702.02427.0024%
5 stores 20 products(472,046.94)782.0025%
7 stores 30 products(1,109,978.52)1448.0019%
Table 11. Effect of increasing number of stores and products on the scalability of the proposed integrated model.
Table 11. Effect of increasing number of stores and products on the scalability of the proposed integrated model.
ScenarioData SetRun Time (s)Number of VariablesNumber of Constraints
Increasing Number of Products3 stores 10 products20.7014,47966,919
3 stores 15 products95.0344,854214,414
3 stores 20 products1803.37102,679497,959
3 stores 30 products9453.62336,6791,653,199
Increasing Number of Stores3 stores 10 products20.7014,47966,919
4 stores 10 products37.5419,37889,338
5 stores 10 products119.5924,317111,817
7 stores 10 products270.8734,315156,955
Increasing Number of Stores and Number of Products3 stores 10 products20.7014,47966,919
4 stores 15 products161.3059,918286,058
5 stores 20 products7826.55171,517830,517
7 stores 30 products12,968.29787,2353,859,955
Table 12. Effect of increasing number of stores and products on the objective function component.
Table 12. Effect of increasing number of stores and products on the objective function component.
Total Net Dead Stock Management CostTotal Net Dead Stock Management CostTotal Net Dead Stock Management CostTotal Net Dead Stock Management Cost
Objective Function Components3 stores 10 products4 stores 15 products5 stores 20 products7 stores 30 products
Bundling Strategy Related Cost (BSRC)762.501879.003494.004785.00
Unrecovered Product Purchase Cost (UPC)6062.7633,244.87172,443.0428,307.48
Disposal Cost (DC)68.73616.641427.17239.07
Disposed Product Purchase Cost (PC)309.0637,119.04140,277.485189.00
Transportation Cost TC)46.24365.12848.45135.39
Warehouse Cost (WC)563.83874.28995.254288.68
Salvage Value (SV)43,262.6678,022.65202,689.2482,013.03
Total Bundling Management Cost(35,449.54)(3923.70)116,796.15(39,067.91)
Discount Strategy Related Cost (DSRC)300.00450.00630.001470.00
Unrecovered Product Purchase Cost (UPC)268,907.75293,260.7688,229.60284,505.24
Disposal Cost (DC)1134.691211.34238.803555.33
Disposed Product Purchase Cost (PC)157,465.00157,652.462144.68351,919.70
Transportation Cost TC)698.20743.58141.402157.02
Warehouse Cost (WC)4628.774798.1110,057.8922,139.92
Salvage Value (SV)175,202.40210,498.25213,891.86388,660.52
Total Discount Management Cost257,932.00247,617.99(112,449.51)277,086.68
Strategy Related-Transpo (SRT)13,507.5020,382.0036,329.50168,123.00
Strategy Related-Operations (SRO)625.631575.593126.2612,183.18
Savings in Purchase Cost (SPC)84,094.30126,819.90490,828.651,430,113.70
Savings in Ordering Cost (SOC)760.001920.003170.007490.00
Savings in Warehouse Cost (SWC)7263.2511,209.9621,850.7090,699.78
Total Transshipment Management Cost(77,984.42)(117,992.28)(476,393.58)(1,347,997.30)
Net Total Dead Stock Management Cost144,498.04125,702.02(472,046.94)(1,109,978.52)
Total Qty. of Potential Dead Stocks751.001354.002328.005589.00
Total Qty. of Unexpired Dead Stocks574.00437.00787.001891.00
Total Qty. of Dead Stocks1325.001791.003115.007480.00
Qty. of Remaining Potential Dead Stocks320.00427.00782.001448.00
Percentage of Unresolved Dead Stocks24%24%25%19%
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Li, R.; Seva, R.; Chiu, A. Reducing Waste in Retail: A Mixed Strategy, Cost Optimization Model for Sustainable Dead Stock Management. Sustainability 2025, 17, 9242. https://doi.org/10.3390/su17209242

AMA Style

Li R, Seva R, Chiu A. Reducing Waste in Retail: A Mixed Strategy, Cost Optimization Model for Sustainable Dead Stock Management. Sustainability. 2025; 17(20):9242. https://doi.org/10.3390/su17209242

Chicago/Turabian Style

Li, Richard, Rosemary Seva, and Anthony Chiu. 2025. "Reducing Waste in Retail: A Mixed Strategy, Cost Optimization Model for Sustainable Dead Stock Management" Sustainability 17, no. 20: 9242. https://doi.org/10.3390/su17209242

APA Style

Li, R., Seva, R., & Chiu, A. (2025). Reducing Waste in Retail: A Mixed Strategy, Cost Optimization Model for Sustainable Dead Stock Management. Sustainability, 17(20), 9242. https://doi.org/10.3390/su17209242

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop