1 Introduction

Analyzing multi-product inventory systems is an easy task as long as there exists no interaction between products’ demands. In case of independent demand processes for products, the inventory system can be studied by each product separately, and it becomes challenging when the demand processes are interlinked. Complementary products are a certain category of products whose demand processes are correlated, such that lack of one product can result in a full lost sales situation. By definition, two products are complementary when a change in one product’s demand has a direct impact on the other product’s demand. If products are complementary, then a positive correlation exists between the demands of these complementary products. Buying one of the complementary products requires or persuades the buying of the other to achieve the full utility of the products (Yue et al. 2006). The demand model for complementary products can be either in sets of one unit of each or jointly. The group of customers demanding complementary products jointly would leave the system if one of the complementary products is not available on the shelves. Therefore, ignoring correlation between products’ demands may result in unrealistic conclusions and misestimating the inventory cost of associated items.

Flashlights and batteries, mobile phone and memory card, tires and cars, milk and cereal, computer and software, camera and film are few examples of complementary products. It is important to inform customers about the existence of complementary products. For example, Amazon.com increases the joint demands by placing complementary products next to each other in product lists. This shopping advice stimulates customers to demand complementary products jointly and results in correlations among products’ demands. We can increase the joint demand not only in the online channels but also in brick-and-mortar retailers. For example, a strategy that increases joint demands in retail sectors is a side-by-side assortment, where the complementary products are located next to each other on the shelves. The correlation in demands of related products can also be found in Make-to-Order assembly-disassembly systems and Make-to-Stock assemble-to-order systems (Xu 1999).

In practice, managing the inventories of complementary products is a major concern. The interrelated demand phenomenon makes the track of stock levels complicated because the inventory levels of products are interlinked due to correlated demands. Therefore, developing an efficient control policy taking this interaction effect across complementary products into consideration is a challenge. The distinguishing feature of the multi-product inventory system under our consideration is the existence of correlated demands and joint replenishment costs across two complementary products.

Holding costs, stock-out costs, and set up costs (fixed ordering costs) are the main cost components in an inventory system. The inventory manager is posed with the problem of striking a balance between these cost components. Replenishment coordination is an effective practice in many inventory systems with multiple products (Liu and Yuan 2000). A joint replenishment occurs when a retailer orders a group of products from the same supplier. In case of high fixed ordering costs, using joint replenishment may lead to substantial cost savings in the system. Although several papers have analyzed the coordinated replenishment policies, the optimal coordinated replenishment policy class for multi-product inventory systems is still an open question (see, e.g., Silver (1965), Atkins and Iyogun (1988), Pirayesh and Poormoaied (2015), and Chen et al. (2019)).

We analyze, in this study, a periodic review policy with joint replenishment and lost sales. Orders with zero lead time arrive instantly and can be used in the following period. Customer demands are driven by a unit Poisson process. When demand occurs and the inventory system is out of stock, often the customer will not wait for the stock replenishment and thereby the demand is treated as a lost sale (Kang and Gershwin 2005; Thomopoulos 2004). By joint replenishment, the inventory system renews itself at replenishment instances which are regarded as regenerative points. It makes the analysis of the system easier. Having regenerative points in our stochastic inventory model, we can utilize the renewal reward theorem to derive the system characteristics. On top of that, we consider the joint ordering to exploit the advantage of the fixed joint replenishment costs across complementary products, which leads to significant cost savings in fixed replenishment costs. By contrast, relying on continuous review policies makes the analysis strictly complicated so that the renewal reward theorem is not applicable (Poormoaied and Atan 2020a). Besides, a huge amount of fixed ordering costs are incurred to the inventory system under a continuous replenishment policy. In view of this fact, we develop a periodic review policy that appears to be economically worthwhile. We also use a well-known continuous review can-order policy under a simulation study to assess the efficiency of our proposed periodic review policy.

In this article, a base-stock periodic review policy in the presence of correlated demand across two complementary products is considered. Products are jointly replenished at the beginning of the periods with length T up-to-level \(S_i\) (\(i=1,2\)) by a single supplier with a fixed ordering cost. This policy is proposed for the first time by Atkins and Iyogun (1988). Products are demanded in the sets of one unit of each or jointly. We consider this interaction effect phenomenon in deriving operating characteristics of the inventory system, and aim to determine the optimal base-stock levels \(S_i\) and period length T. Since the track of inventory levels over time due to the interaction effect is difficult, by estimating the demand rate we derive the operating characteristics of the system. Then, we develop an approximation algorithm based on ignoring the existing correlated demand across complementary products, which can be employed in models with more than two complementary products. By doing so, the system works with two independent demand processes so that we are able to derive the explicit expressions of the operating characteristics and find the near-optimal solution analytically. Finally, computational experiences are provided to capture the impact of demand correlation and to compare our proposed policy with existing policies proposed in the literature. The main finding is that ignoring the effect of demand correlation significantly affects the base-stock policy performance when the unit lost sales and unit holding costs are high, and the demand rate is low.

The main contributions of our paper are summarized as follows. We provide insight into how demand correlation affects the structure of the periodic review base-stock policy for inventory systems with two complementary products under joint replenishment. Different from the classical models, we charge time-dependent inventory holding costs. This cost is affected by the timing of depletion, we therefore need to take the time-dependent holding cost into account instead of accounting for them only at the end of the periods (Poormoaied et al. 2020a, b). We also construct an approximation algorithm based on neglecting the correlation between products’ demands. The approximation algorithm can be applied for systems with a large number of products. Estimating the demand rates by conditioning on the depletion time of complementary products, we derive the explicit expressions for operating characteristics of the inventory system. We analytically find the optimal policy parameters for the model with estimated demand and show that in some conditions, the approximation solutions are close to the optimal solutions.

The remainder of this paper is organized as follows. In Sect. 2, we provide a brief review of the related literature. We introduce the model description and the optimization problem in Sect. 3. In Sect. 4, we address an estimation approach for deriving the operating characteristics of the inventory system, and propose an approximation algorithm which solves our problem analytically. Our observations on behavior of the profit rate function and the solution approach are provided in Sect. 5. We evaluate the effect of demand correlation on performance of the base-stock policy and illustrate its efficiency compared to the other existing policies in Sect. 6. Finally, we provide concluding remarks and directions for future researches in Sect. 7.

2 Literature review

Joint replenishment and complementary products are the related research areas to this study. The joint replenishment problem has been considerably researched since the early work of Starr and Miller (1962) and Shu (1971). Goyal and Satir (1989) review inventory systems with various economic operating policies for jointly replenished items under deterministic and stochastic demands. Moreover, Khouja and Goyal (2008) review studies on the joint replenishment policies for multi-product inventory systems and proposed algorithms for this problem. The main insight of these papers is that the joint replenishment policy reduces the ordering costs substantially and as a whole can result in significant cost savings in a supply chain. Furthermore, the can-order policy, so-called the \((s_i,c_i,S_i)\) policy, has been widely used in these studies as an efficient policy for multi-product inventory systems. The can-order policy was proposed by Balintfy (1964) and works as follows: whenever the inventory level of item i drops the reorder point \(s_i\), a new order is placed to bring the inventory position to the level \(S_i\), and all items which hit their can-order level \(c_i\) are ordered jointly, where \(s_i \le c_i < S_i\). In all inventory systems considered in review papers of Goyal and Satir (1989) and Khouja and Goyal (2008), the demand processes are assumed to be independent, and the inventory control policy works based on that. In what follows, we review the literature on multi-product inventory systems with correlated demands.

Coughlan (1987) surveyed the model of pricing and marketing of the complementary products, where distribution costs exhibit economies of scale and scope, and customers value one-stop shopping. He developed an economics-based model with incorporating incentives for integration or non-integration of the distribution function. Hausman et al. (1998) analyzed a multi-product base-stock inventory system with correlated demand under budget and service level constraints, and obtained bounds for the response time distribution. Song (1998) studied a multi-item base-stock inventory model in which there are several types of customer orders with correlated demands. She used the order fill rate as a performance measure and derive an explicit expression for the order fill rate based on a series of convolutions of one-dimensional compound Poisson distributions. Cheung (1998) considered the (QS) policy for a two-item inventory system with dependent demands. The author obtained exact formulas for fill rates and proposed algorithms for single-item and joint-items optimization problems subject to a fill rate constraint. Liu and Yuan (2000) proposed a Markovian model for a two-product inventory system with correlated demands and joint replenishment under a can-order replenishment policy, and proposed a heuristic method for obtaining can-order replenishment policies. Gnanendran et al. (2003) addressed the problem of selecting a subset of items among a large set of potential complementary and substitutable items for rationalizing stock choice. They proposed a nonlinear integer programming model for maximizing the net revenue subject to the budget constraint. Agrawal and Smith (2003) studied a similar problem in which assortment selection decision in a multi-item retail inventory system with complementary products is considered.

Lee and Chew (2005) proposed a dynamic periodic review policy for the joint replenishment problem with auto-correlated demands. In their policy, the forecast of the future demand at every review point is updated by using an appropriate forecasting model by which the next review point, as well as the target inventory level of each product, are determined. Urban (2005) considered a periodic-review base-stock inventory model, where demand rates are dependent on the amount of inventory displayed to the customer and the amount of demand in the previous period (serially correlated demands).

Cross-selling implies that “a customer who has purchased a particular product may also be willing to purchase a related product” (Shen and Su 2007). Cross-selling can be seen as a type of complementary pattern. Zhang et al. (2011) developed a deterministic two-item EOQ model with partial back-ordering in the presence of correlated demands arising from cross-selling. The proposed inventory system is comprised of major and minor items so that the demand of the minor item is partially correlated with that of the major item. Taleizadeh et al. (2020) considered both inventory and pricing decisions under bundle and mixed-bundle selling strategies in an EOQ model with two complementary items. They analyzed three different pricing-inventory models to determine optimal order quantities and selling prices of complementary products. McCardle et al. (2007) and Ferrer et al. (2010) are other researches surveyed the effects of bundling item on optimal order quantities and the system profit. They pointed out that product bundling is more beneficial than selling individually.

Another stream of researches on complementary products deals with the pricing decision for products. The demand of each complementary product depends on its own price and the prices of the other complementary products. Therefore, pricing strategy is an important factor influencing customer purchasing behavior. Wang (2006) considered the production and pricing decisions of multiple manufacturers who produce and sell a set of complementary products to a market. Each manufacturer faces the problem of determining the production quantity and the selling price for their individual products, where demand for sets of products is price sensitive and subject to uncertainty. Mukhopadhyay et al. (2011) proposed a Stackelberg model of pricing of complementary products in a leader-follower type move. They showed that sharing the private forecast information would benefit the leader firm but hurt the follower firm as well as the entire system. Wei et al. (2013) surveyed a supply chain problem with two manufacturers and one common retailer and explored the pricing problem for two complementary products. They employed five pricing models including the MS-Bertrand, MS-Stackelberg, RS-Bertrand, RS-Stackelberg, and NG models under different market power structures among channel members. Wang et al. (2017) addressed the pricing and service decisions of complementary products in a dual-channel supply chain, online channel, and the traditional retail channel. For more researches on pricing decision of complementary products see Edalatpour, M. A., & Al-e-Hashem, S. M. (2019) and references therein for details.

There exist a few number of studies in the literature which takes the control policy structure into account for complementary products in the presence of interrelated demands. Most studies concentrate on multi-item products without correlated and stochastic demands, and a few works studied multi-item inventory systems with correlated and deterministic demands. The work of Feng et al. (2015) is the only study which considers a can-order type policy, namely the (scdS) policy, which captures the interaction effect across complementary products under stochastic demand. This study is similar to ours in the sense that they aim to capture the effect of demand correlation on control policy performance. While this differs from our study in several aspects. First, they employ a continuous review type policy, whilst our proposed policy is a base-stock periodic review policy. Second, their goal is to minimize the expected discounted cost over time, whereas we utilize the renewal reward approach to elicit the profit rate function in the inventory system. Third, we rely on a time-dependent holding cost, while they consider the holding cost calculation only at some specific time epochs. We use the same demand model, similar to Feng et al. (2015), for representing the correlated demand across complementary products. Another research works dealing with the demand correlation effect are Mokhtari (2018) and Zhang et al. (2012), where they assumed a deterministic demand process and proposed a deterministic EOQ-based model with two complementary products, while we analyze an inventory system under stochastic demand.

3 Problem statement

We consider a periodic review stochastic inventory problem with two complementary products indexed by \(i=1,2\). The inventory system is comprised of a single retailer replenishing two complementary products from the same supplier. Time periods are indexed by n, where \(n=1,2,\ldots \) with period length of T over an infinite planning horizon. We apply an order-up-to-level policy, where the inventory level of product i at the beginning of each period raises to \(S_i\) with zero lead time. We call this policy as the \((S_i,T)\) policy. The demand follows a unit Poisson process with rate \(\lambda \). Products 1 and 2 are complementary. We have three types of customers (demand arrivals): A group of customers would buy only product 1 (is called a type-1 demand). Similarly, the second group of customers would buy only product 2 (is called a type-2 demand). The third group of customers would buy both products (is called a type-12 demand). Moreover, \(\alpha _1\), \(\alpha _2\), and \(\alpha _{12}\) represent, respectively, the fraction of customers of type-1, type-2, and type-12, where \(\alpha _1+\alpha _2+\alpha _{12}=1\). It is worth mentioning that since the demand follows the Poisson process, it is not possible that two types of demands appear simultaneously. Let \(X_j\) be the arrival time of j-th customer, which is measured from the beginning of each period. Since demand follows the Poisson process, \(X_j\) is an Erlang random variable with scale parameter \(\lambda \) and shape parameter j. Let \(f_{X_j}(x)\) and \(F_{X_j}(x)\) denote, respectively, the probability and cumulative density function of this random variable at point x. Particularly, \(X_{S_i}\) indicates a time period during which all \(S_i\) products are depleted by demand. That is, \(X_{S_i}\) is the arrival time of \(S_i\)-th demand, which is called the depletion time of product i. At the beginning of period n, \(R_i\) units of product i is replenished which is equal to \(S_i\) minus the inventory level of product i at the end of period \(n-1\). Products are ordered at the unit cost \(p_i\) and a fixed ordering cost K at the beginning of each period for both items, and are sold at price \(r_i\). The inventory carrying cost rate per unit of product i per unit time is \(h_i\). Demands are immediately satisfied if the warehouse has at least one item in stock, i.e., the inventory level is strictly positive, otherwise they are lost. The lost sales cost associated with demands of type-1, type-2, and type-12 are interpreted as cost of goodwill and are denoted by \(\pi _1\), \(\pi _2\), and \(\pi _{12}\), respectively. For ease of exposition, we denote each pair of parameters with a single notation as follows: \(\alpha =(\alpha _1,\alpha _2)\), \(p=(p_1,p_2)\), \(r=(r_1,r_2)\), \(h=(h_1,h_2)\), and \(\pi =(\pi _1,\pi _2,\pi _{12})\). We use the terms period and cycle interchangeably throughout the text.

Before proceeding with definition of state variables, we describe the order of events. At the beginning of the period, the retailer’s inventory position is \(S_i\). Demands occur throughout the period. At the end of the period, a replenishment order is placed such that the inventory position becomes \(S_i\). Finally, the profit is calculated at the end of the period. The state of the inventory system is defined as the inventory position (stock level + outstanding orders) of product 1 and product 2 at time t, denoted by \(\varvec{IP}(t) = (IP_1(t), IP_2(t))\), where \(IP_i(t)\) represents the inventory position of product i at time t. For abbreviation, let’s denote \(X_{S_1}\) and \(X_{S_2}\) by \(T_1\) and \(T_2\), respectively. To analyze the inventory system under consideration, we need to address three realizations (cases) in the inventory system based on the state of the system over time as follows. Case A: product 1 is depleted before the end of the period, i.e., \(T_1<T\), and product 1 is completely depleted before product 2, i.e., \(T_1 < T_2\). In this case, either some units of product 2 are left over at the end of the period, i.e., \(T_2>T\) (Case AI), or product 2 is completely depleted during the period, i.e., \(T_2<T\) (Case AII). Case B: The contrary of Case A happens, i.e., \(T_2<T\) and \(T_2 < T_1\). Similarly, we have Case BI where \(T_1>T\) and Case BII where \(T_1<T\). Case C: Some units of product 1 and some units of product 2 are left over at the end of the period, i.e., \(T_1>T\) and \(T_2>T\). Figure 1 represents a sample path of the inventory system under consideration, where Cycles 1, 2, and 3 illustrate Case A, Case B, and Case C, respectively. In this figure, the solid plot (the black one) and the dashed plot (the blue one) are the inventory positions of products 1 and 2, respectively.

To demonstrate the demand processes, we describe dynamics of three cases depicted in Fig. 1. Cycle 1 represents Case AI, where product 1 is completely depleted before product 2, and product 2 is not completely depleted during the period. Thus, the demand rates for product 1 and product 2, respectively, are \(\lambda _1=(\alpha _1+\alpha _{12}) \lambda \) and \(\lambda _2=(\alpha _2+\alpha _{12}) \lambda \) in the interval \([0,T_1]\), and the demand rates for product 1 and product 2, respectively, are \(\lambda _1=0\) and \(\lambda _2=\alpha _2 \lambda \) in the interval \([T_1, T]\). Cycle 2 illustrates Case BII, where product 2 is completely depleted before product 1, and product 1 is also completely depleted during the period. Thus, the demand rates for product 1 and product 2, respectively, are \(\lambda _1=(\alpha _1+\alpha _{12}) \lambda \) and \(\lambda _2=(\alpha _2+\alpha _{12}) \lambda \) in the interval \([0,T_2]\), \(\lambda _1=\alpha _1 \lambda \) and \(\lambda _2=0\) in the interval \([T_2, T_1]\), and both demand rates are zero in the interval \([T_1,T]\). Throughout the third period (Cycle 3), representing Case C, the demand rates of product 1 and 2 are \(\lambda _1=(\alpha _1+\alpha _{12}) \lambda \) and \(\lambda _2=(\alpha _2+\alpha _{12}) \lambda \), respectively.

Fig. 1
figure 1

Different cycle realizations of the inventory system for \(S_1=4\), \(S_2=5\), and specific T

In Fig. 1, in Cycle 1, during the interval \([T_1,T]\), demands of type-1 and type-12 are lost incurring lost sale costs \(\pi _1\) and \(\pi _{12}\) per unit lost, respectively. In Cycle 2, during the interval \([T_2,T_1]\) demands of type-2 and type-12, and during the interval \([T_1,T]\) all demand types are lost. During Cycle 3 no demand is lost. At the beginning of each period, we need to pay off the fixed ordering cost for both products. At the end of Cycle 1, we purchase 4 units of product 1 and also 4 units of product 2. At the end of Cycle 2, 4 units of product 1 and 5 units of product 2 are purchased; and at the end of Cycle 3, 3 units of product 1 and 4 units of product 2 are purchased. Note that the holding cost is incurred to the system over time. That is, we assume a time-dependent holding cost. To calculate holding costs in case of time-dependent holding costs, we need to find the time-weighted average inventory on hand. This calculation due to stochastic demand is quite complicated. That is the reason why we rely on demand estimation. By estimating the demand we can easily compute the time-weighted average inventory on hand as detailed in the next section.

4 Analysis

In this section, we first estimate demand rates of type-1, type-2, and type-12 in different cases. Second, given the estimated demand rates, the operating characteristics of the system are derived. Then, we use simulation analysis to capture the accuracy of the proposed model and validate our results. Finally, we consider special cases of the inventory system under consideration, where products are not complementary and demand processes are independent.

4.1 Expected demand rate estimation

We use the approach proposed by Moinzadeh and Nahmias (1988) to estimate the average profit rate in the system. In this approach, by conditioning on cycle realizations, we estimate the stock level over time. In what follows, we deal with how we exploit the estimated stock level in the inventory system under consideration. Recall that the period of time during which all \(S_i\) products are depleted by demand, \(X_{S_i}\), is a random variable with an Erlang density function:

$$\begin{aligned} f_{X_{S_i}}(x) \equiv f_{T_i}(x) = \lambda _i e^{- \lambda _i x} \frac{(\lambda _i x)^{S_i-1}}{(S_i-1)!}; \ x\ge 0, \ \text {for} \ i=1,2. \end{aligned}$$

Next, we determine the probability that a particular case occurs. The probability that product 1 is depleted before product 2 during a cycle (Case A), \(\mathbb {P}_a\), the probability that product 2 is depleted before product 1 during a cycle (Case B), \(\mathbb {P}_b\), and the probability that neither product 1 nor product 2 are depleted during a cycle (Case C), \(\mathbb {P}_c\), are given by

$$\begin{aligned} \begin{aligned}&\mathbb {P}_a = \int _{0}^{T}\int _{0}^{x_2} f_{T_1}(x_1) f_{T_2}(x_2) dx_1 dx_2 + \int _{T}^{\infty }\int _{0}^{T} f_{T_1}(x_1) f_{T_2}(x_2) dx_1 dx_2, \\ {}&\mathbb {P}_b = \int _{0}^{T}\int _{0}^{x_1} f_{T_2}(x_2) f_{T_1}(x_1) dx_2 dx_1 + \int _{T}^{\infty }\int _{0}^{T} f_{T_2}(x_2) f_{T_1}(x_1) dx_2 dx_1, \\ {}&\mathbb {P}_c = \int _{T}^{\infty }\int _{T}^{\infty } f_{T_1}(x_1) f_{T_2}(x_2) dx_1 dx_2. \end{aligned} \end{aligned}$$
(1)

Let denote the number of demands for product i during t units of time by \(D_t^i\) which follows a Poisson process with rate \(\lambda _i t\) (i.e., \(D_t^i \sim Poiss(\lambda _i t)\)). If both products 1 and 2 are in stock, then according to the decomposition property of the Poisson process (Ross et al. 1996) we have \(\lambda _1=(\alpha _1+\alpha _{12}) \lambda \) and \(\lambda _2=(\alpha _2+\alpha _{12}) \lambda \). Moreover, if product 1 is in stock but product 2 is out of stock, then \(\mu _1=\alpha _1 \lambda \), and if product 2 is in stock but product 1 is out of stock, then \(\mu _2=\alpha _2 \lambda \). Moreover, two random variables \(X_{S_1}\) and \(X_{S_2}\) are independent. Considering the notations above and cycle realizations for the system, we find an estimation for the demand rate in different cases as follows.

(i) Case A: Product 1 is completely depleted during a period, i.e., \(X_{S_1}<T\); and product 1 is depleted before complete depletion of product 2, i.e., \(X_{S_1}<X_{S_2}\). Thus, the estimated expected depletion time of product 1, \(T_1\), is obtained as follows:

$$\begin{aligned} \begin{aligned} T_1&= \mathbb {E}[X_{S_1}|X_{S_1}<X_{S_2}, X_{S_1}<T] \\&= \int _{0}^{T} \mathbb {E}[X_{S_1}|X_{S_1}<t_2] f_{T_2}(t_2)dt_2 + \int _{T}^{\infty } \mathbb {E}[X_{S_1}|X_{S_1}<T] f_{T_2}(t_2)dt_2 \\&= \int _{0}^{T} \frac{\int _{0}^{t_2} t_1 f_{T_1}(t_1)dt_1}{\int _{0}^{t_2} f_{T_1}(t_1)dt_1} f_{T_2}(t_2)dt_2 + \int _{T}^{\infty } \frac{\int _{0}^{T} t_1 f_{T_1}(t_1)dt_1}{\int _{0}^{T} f_{T_1}(t_1)dt_1} f_{T_2}(t_2)dt_2. \end{aligned} \end{aligned}$$
(2)

Obtaining \(T_1\) from expression above and given \(S_1\), we have \(\lambda _1^a=S_1/T_1\). Furthermore, in this case, product 2 is not completely depleted before the complete consumption of product 1 (i.e., some units of product 2 are left before the depletion time of product 1, \(D_{T_1}^2 \le S_2-1\)). Thus, the estimated expected demand rate for product 2 during \(T_1\) units of time, \(\lambda _2^a\), is given by

$$\begin{aligned} \lambda _2^a = \frac{1}{T_1} \times \mathbb {E}[D_{T_1}^2 | D_{T_1}^2 \le S_2-1] = \frac{1}{T_1} \times \frac{\sum _{j=0}^{S_2-1} j e^{-\lambda _2 T_1} (\lambda _2 T_1)^j/j!}{\sum _{j=0}^{S_2-1} e^{-\lambda _2 T_1} (\lambda _2 T_1)^j/j!}. \end{aligned}$$
(3)

After \(T_1\), product 2 is the only product in stock depleted by the demand rate of \(\mu _2=\alpha _2 \lambda \).

(ii) Case B: In this case, similar to Case A, we can easily verify that \(X_{S_2}<T\) and \(X_{S_2}<X_{S_1}\). Thus, the estimated expected depletion time of product 2, \(T_2\), is obtained as follows:

$$\begin{aligned} \begin{aligned} T_2&= \mathbb {E}[X_{S_2}|X_{S_2}<X_{S_1}, X_{S_2}<T] \\&= \int _{0}^{T} \mathbb {E}[X_{S_2}|X_{S_2}<t_1] f_{T_1}(t_1)dt_1 + \int _{T}^{\infty } \mathbb {E}[X_{S_2}|X_{S_2}<T] f_{T_1}(t_1)dt_1 \\&= \int _{0}^{T} \frac{\int _{0}^{t_1} t_2 f_{T_2}(t_2)dt_2}{\int _{0}^{t_1} f_{T_2}(t_2)dt_2} f_{T_1}(t_1)dt_1 + \int _{T}^{\infty } \frac{\int _{0}^{T} t_2 f_{T_2}(t_2)dt_2}{\int _{0}^{T} f_{T_2}(t_2)dt_2} f_{T_1}(t_1)dt_1. \end{aligned} \end{aligned}$$
(4)

Similar to Case A, we have \(\lambda _2^b=S_2/T_2\). Besides, the estimated expected demand rate for product 1 during \(T_2\) units of time, \(\lambda _1^b\), is given by

$$\begin{aligned} \lambda _1^b = \frac{1}{T_2} \times \mathbb {E}[D_{T_2}^1 | D_{T_2}^1 \le S_1-1] = \frac{1}{T_2} \times \frac{\sum _{j=0}^{S_1-1} j e^{-\lambda _1 T_2} (\lambda _1 T_2)^j/j!}{\sum _{j=0}^{S_1-1} e^{-\lambda _1 T_2} (\lambda _1 T_2)^j/j!}. \end{aligned}$$
(5)

After \(T_2\), product 1 is the only product in stock depleted by the demand rate of \(\mu _1=\alpha _1 \lambda \).

(iii) Case C: In this case, both product 1 and product 2 are left over at the end of a period, i.e., \(X_{S_1}>T\) (or equivalently \(D_T^1 \le S_1-1\)) and \(X_{S_2}>T\) (or equivalently \(D_T^2 \le S_2-1\)). Thus, the estimated expected demand rates of product 1, \(\lambda _1^c\), and product 2, \(\lambda _2^c\), are obtained as follows:

$$\begin{aligned} \begin{aligned}&\lambda _1^c = \frac{1}{T} \times \mathbb {E}[D_T^1 | D_T^1 \le S_1-1]= \frac{1}{T} \times \frac{\sum _{j=0}^{S_1-1} j e^{-\lambda _1 T} (\lambda _1 T)^j/j!}{\sum _{j=0}^{S_1-1} e^{-\lambda _1 T} (\lambda _1 T)^j/j!}. \\&\lambda _2^c = \frac{1}{T} \times \mathbb {E}[D_T^2 | D_T^2 \le S_2-1] = \frac{1}{T} \times \frac{\sum _{j=0}^{S_2-1} j e^{-\lambda _2 T} (\lambda _2 T)^j/j!}{\sum _{j=0}^{S_2-1} e^{-\lambda _2 T} (\lambda _2 T)^j/j!}. \end{aligned} \end{aligned}$$
(6)

We establish the estimated sample path of our inventory system as depicted in Figure 2. This figure illustrates the estimated inventory position presented in Figure 1. In Figure 2, one can see Cases A, B, and C with estimated demand rates in Cycles 1, 2, and 3, respectively.

Fig. 2
figure 2

Different cycle realizations of the system based on estimation approach

It should be noted that depending on the values of \(\mu _1\) and \(\mu _2\) two different cases may occur for the system. In Case A, if \(S_2-\lambda _2^a T_1 > \mu _2 (T-T_1)\), then some units of product 2 are left at the end of the period (is called as Case AI); otherwise, any unmet demand for product 2 is lost (is called as Case AII). Similarly, in Case B, if \(S_1-\lambda _1^b T_2 > \mu _1 (T-T_2)\), then some units of product 1 are left at the end of the period (is called as Case BI); otherwise, any unmet demand for product 1 is lost (is called as Case BII). Figure 3 demonstrates Case AI and Case AII; Case BI and Case BII can be depicted similarly.

Fig. 3
figure 3

Two different situations in Case A

It is worth mentioning that our model formulation does not violate the stochastic properties of the problem. By conditioning on the depletion time of two products, we estimate the demand rate which is not the same as the expectation of the Poisson process. Hence, the problem is not treated as a deterministic model and both interaction effect and stochastic properties are taken into account. Furthermore, \(\mathbb {P}_a\), \(\mathbb {P}_b\), and \(\mathbb {P}_c\) (the probability that Cases A, B, and C occur, respectively) are three key parameters affecting the operating characteristics of the system, which reflect the stochasticity of our model. In the following section, we derive explicit expressions of the operating characteristics based on the estimated inventory position described above. Moreover, we need to mention that in inventory systems including multiple complementary products, finding the depletion times, \(T_1\) or \(T_2\), would have technical difficulties. Therefore, we develop an approximation approach to analyze multi-product inventory systems as described in Sect. 4.5.

4.2 Operating characteristics

The expected revenue \(\mathbb {E}[R]\), expected inventory holding cost \(\mathbb {E}[I]\), expected lost sales cost \(\mathbb {E}[L]\), and expected cycle length \(\mathbb {E}[C]\), are operating characteristics of the inventory system under consideration. To elicit explicit expressions of the operating characteristics, we utilize the renewal reward theorem. To do so, we first define the regenerative points, which are instances at which the system is replenished to levels \(S_1\) and \(S_2\). We also define the cycle as the time interval between two consecutive regenerative points. Hence, the expected cycle length is equal to the period length, i.e., \(\mathbb {E}[C]=T\). According to the renewal theorem, the expected profit per unit time (reward rate), \(\mathbb {E}[\varPi _1(S_1,S_2,T)]\), is calculated as follows:

$$\begin{aligned} \mathbb {E}[\varPi _1(S_1,S_2,T)] = \frac{\mathbb {E}[R] - \mathbb {E}[I] - \mathbb {E}[L] - K}{\mathbb {E}[C]}. \end{aligned}$$
(7)

The goal is to maximize the expected profit rate, where \(S_1\), \(S_2\), and T are the decision variables. That is, we have the following optimization problem:

$$\begin{aligned} \text {(Model 1)}:&\max _{S_1,S_2,T} \mathbb {E}[\varPi _1(S_1,S_2,T)] \\ \text {subject to:}&S_1,S_2 \in \mathbb {I} \\&T \in \mathbb {D}, \end{aligned}$$

where \(\mathbb {I}\) and \(\mathbb {D}\) denote the set of non-negative integers and discrete numbers, respectively. We suppose that the order up-to-levels \(S_1\) and \(S_2\) take integer values since demand follows the Poisson process, and the period length T is a discrete parameter with increment size \(\varDelta \). We refer to the results obtained by Model 1 as analytical results.

Denting the operating characteristics of the system in Cases A, B, and C with indexes a, b, and c, respectively, we can compute them as follows:

(i) Case A:

If \(S_2 - \lambda _2^a T_1 > \mu _2 (T-T_1)\) (Case AI):

$$\begin{aligned} \begin{aligned}&\mathbb {E}[R_a] = (r_1-p_1) S_1 + (r_2-p_2)[\lambda _2^a T_1 + \mu _2 (T-T_1)]. \\&\mathbb {E}[I_a] = \frac{h_1}{2}S_1 T_1+ \frac{h_2}{2} \big [(2 S_2 - \lambda _2^a T_1)T_1 + [2S_2-2\lambda _2^a T_1 - \mu _2(T-T_1)](T-T_1) \big ]. \\&\mathbb {E}[L_a] = \pi _1 \alpha _1 \lambda (T-T_1) + \pi _{12} \alpha _{12} \lambda (T-T_1). \end{aligned} \end{aligned}$$
(8)

If \(S_2 - \lambda _2^a T_1 \le \mu _2 (T-T_1)\) (Case AII):

$$\begin{aligned} \begin{aligned}&\mathbb {E}[R_a] = (r_1-p_1) S_1 + (r_2-p_2) S_2. \\ {}&\mathbb {E}[I_a] = \frac{h_1}{2}S_1 T_1 + \frac{h_2}{2} \big [(2S_2 - \lambda _2^a T_1)T_1 + \frac{(S_2 - \lambda _2^a T_1)^2}{\mu _2} \big ]. \\ {}&\mathbb {E}[L_a] = \pi _1 \alpha _1 \lambda (T-T_1) + \pi _{12} \alpha _{12} \lambda (T-T_1) + \pi _2 \alpha _2 \lambda (T-T_1-\frac{S_2 - \lambda _2^a T_1}{\mu _2}). \end{aligned}\qquad \end{aligned}$$
(9)

(ii) Case B:

If \(S_1 - \lambda _1^b T_2 > \mu _1 (T-T_2)\) (Case BI):

$$\begin{aligned} \begin{aligned}&\mathbb {E}[R_b] = (r_1-p_1)\big [\lambda _1^b T_2 + \mu _1 (T-T_2)\big ] + (r_2-p_2) S_2. \\ {}&\mathbb {E}[I_b] = \frac{h_1}{2} \big [(2 S_1 - \lambda _1^b T_2)T_2 + [2S_1-2\lambda _1^b T_2 - \mu _1(T-T_2)](T-T_2) \big ] + \frac{h_2}{2}S_2 T_2. \\ {}&\mathbb {E}[L_b] = \pi _2 \alpha _2 \lambda (T-T_2) + \pi _{12} \alpha _{12} \lambda (T-T_2). \end{aligned} \end{aligned}$$
(10)

If \(S_1 - \lambda _1^b T_2 \le \mu _1 (T-T_2)\) (Case BII):

$$\begin{aligned} \begin{aligned}&\mathbb {E}[R_b] = (r_1-p_1) S_1 + (r_2-p_2) S_2. \\ {}&\mathbb {E}[I_b] = \frac{h_1}{2} \big [(2S_1 - \lambda _1^b T_2)T_2 + \frac{(S_1 - \lambda _1^b T_2)^2}{\mu _1} \big ] + \frac{h_2}{2}S_2 T_2. \\ {}&\mathbb {E}[L_b] = \pi _2 \alpha _2 \lambda (T-T_2) + \pi _{12} \alpha _{12} \lambda (T-T_2) + \pi _1 \alpha _1 \lambda (T-T_2-\frac{S_1 - \lambda _1^b T_2}{\mu _1}). \end{aligned}\qquad \end{aligned}$$
(11)

(iii) Case C:

$$\begin{aligned} \begin{aligned}&\mathbb {E}[R_c] =(r_1-p_1) \lambda _1^c T + (r_2-p_2) \lambda _2^c T. \\ {}&\mathbb {E}[I_c] = \frac{h_1}{2} \big [T(2S_1-\lambda _1^cT) \big ] + \frac{h_2}{2} \big [T(2S_2-\lambda _2^cT) \big ].\\ {}&\mathbb {E}[L_c] = 0. \end{aligned} \end{aligned}$$
(12)

Then, we can compute the operating characteristics as follows:

$$\begin{aligned} \begin{aligned}&\mathbb {E}[R] = \mathbb {E}[R_a] \times \mathbb {P}_a + \mathbb {E}[R_b] \times \mathbb {P}_b + \mathbb {E}[R_c] \times \mathbb {P}_c, \\ {}&\mathbb {E}[I] = \mathbb {E}[I_a] \times \mathbb {P}_a + \mathbb {E}[I_b] \times \mathbb {P}_b + \mathbb {E}[I_c] \times \mathbb {P}_c, \\ {}&\mathbb {E}[L] = \mathbb {E}[L_a] \times \mathbb {P}_a + \mathbb {E}[L_b] \times \mathbb {P}_b + \mathbb {E}[L_c] \times \mathbb {P}_c, \end{aligned} \end{aligned}$$
(13)

where \(\mathbb {P}_a\), \(\mathbb {P}_b\), and \(\mathbb {P}_c\) are provided in Equation (1), representing the probability that Cases A, B, and C occur, respectively.

4.3 Validation

In this subsection, we utilize a simulation model to validate the analytical results in Model 1. Validation has been conducted by simulation using Arena 14.5 with a replication length of one million cycles, a warm-up period of 1000 cycles and 10 replications. A set of given solutions are generated with various \(\alpha \) values and demand rates \(\lambda \), as shown in Table 1. In this setting, we provide high and low levels of complementarity (i.e., high and low \(\alpha _{12}\)), and low and high demand rates to capture the accuracy of Model 1 under different settings. Gap% represents the percentage deviation between the expected cost rates obtained by the simulation and analytical models, and \(\mathbb {E}[\varPi ]\) is the expected profit rate. Our numerical results in Table 1 show low Gap% values (generally less than 0.5%), implying that the proposed analytical model works extremely efficiently. Note that in most instances, the analytical model underestimates the simulation results, which is due to the estimated demand.

4.4 Special cases, \(\alpha _{12}=0\) and \(\alpha _{12}=1\)

In this subsection, we address two special cases in our inventory system:

(i) The system does not observe any joint demand, i.e., \(\alpha _{12}=0\). In this case, \(\lambda _1 = \alpha _1 \lambda \) and \(\lambda _2 = \alpha _2 \lambda \) and we are able to analyze the inventory system with two independent demand streams. Given that the inventory manager uses the base-stock policy of \((S_i,T)\) for product i, the operating characteristics of the system for product i are explicitly obtained as follows. \(\mathbb {E}[R^s_i]\), \(\mathbb {E}[I^s_i]\), and \(\mathbb {E}[L^s_i]\) denote, respectively, the expected order quantity at the end of each period, the expected inventory level, and the expected number of lost sales of product i, \(i=1,2\).

$$\begin{aligned} \mathbb {E}[R^s_i]= & {} \sum _{n=1}^{S_i} n e^{-\lambda _i T} \frac{(\lambda _i T)^n}{n!} + S_i \times \sum _{n=S_i+1}^{\infty } e^{-\lambda _i T} \frac{(\lambda _i T)^n}{n!}. \end{aligned}$$
(14)
$$\begin{aligned} \mathbb {E}[I^s_i]= & {} \sum _{n=0}^{S_i-1} (S_i - \frac{n}{2}) T \times e^{-\lambda _i T} \frac{(\lambda _i T)^n}{n!} + \frac{S_i(S_i+1)}{2 \lambda _i} F_{S_i+1} (T). \end{aligned}$$
(15)
$$\begin{aligned} \mathbb {E}[L^s_i]= & {} \big [ \lambda _i T - \sum _{n=1}^{S_i} n e^{-\lambda _i T} \frac{(\lambda _i T)^n}{n!} \big ] - S_i \big [1-\sum _{n=0}^{S_i} e^{-\lambda _i T} \frac{(\lambda _i T)^n}{n!} \big ]. \end{aligned}$$
(16)

The derivations of Equations (14)-(16) are provided in Appendix A. Moreover, the expected cycle length is equal to the period length, i.e., \(\mathbb {E}[C]=T\). Then, the expected profit rate is defined by

$$\begin{aligned} \mathbb {E}[\varPi _2(S_1,S_2,T)]=\frac{ \sum _{i=1}^{2} \big [ (r_i-p_i) \mathbb {E}[R^s_i] - h_i \mathbb {E}[I^s_i] - \pi _i \mathbb {E}[L^s_i] \big ] - K}{\mathbb {E}[C]}. \end{aligned}$$
(17)

(ii) All demand arrivals are of type-12 with joint demand, i.e., \(\alpha _{12}=1\). In this case, we can integrate the cost components of two products and regard the system as a single-item inventory system with the following system parameters \(p=p_1+p_2\), \(r=r_1+r_2\), \(h=h_1+h_2\), and \(\pi =\pi _{12}\) with a single order-up-to-level S and T as decision variables. That is, at the end of each period with length of T, the inventory positions of two products are raised to level S. The expected profit rate is defined by

$$\begin{aligned} \mathbb {E}[\varPi (S,T)]=\frac{(r-p) \mathbb {E}[R^s] - h \mathbb {E}[I^s] - \pi \mathbb {E}[L^s] - K}{\mathbb {E}[C]}, \end{aligned}$$
(18)

where \(\mathbb {E}[C]=T\) and \(\mathbb {E}[R^s]\), \(\mathbb {E}[I^s]\), \(\mathbb {E}[L^s]\) are found by Equations (14), (15), (16), respectively, with \(\lambda _i=\lambda \) and \(S_i=S\).

In the next section, we propose an approximation algorithm and derive some analytical results which can be used for finding the optimal solution in the aforementioned special cases.

4.5 Approximation algorithm

In this subsection, we propose an approximation algorithm for finding a near-optimal solution based on ignoring the interaction effect existing between two complementary products. If we ignore the interaction effect, the system works with two independent demand processes with rates \(\lambda _1=(\alpha _1+\alpha _{12}) \lambda \) and \(\lambda _2=(\alpha _2+\alpha _{12}) \lambda \) for product 1 and product 2, respectively. If this is the case, we can apply the following optimization problem to determine the near-optimal values of \(S_1\), \(S_2\), and T:

$$\begin{aligned} \text {(Model 2)}:&\max \ \mathbb {E}[\varPi _2(S_1,S_2,T)] = \frac{\sum _{i=1}^{2} \big [(r_i-p_i) \mathbb {E}[R^e_i] - h_i \mathbb {E}[I^e_i] - \pi _i \mathbb {E}[L^e_i] \big ]- K}{\mathbb {E}[C]}\\ \text {subject to:}&S_1,S_2 \in \mathbb {I} \\&T \in \mathbb {D}, \end{aligned}$$

where \(\mathbb {E}[R^e_i]\), \(\mathbb {E}[I^e_i]\), and \(\mathbb {E}[L^e_i]\) are obtained by Equations (14), (15), and (16), respectively, with \(\lambda _1=(\alpha _1+\alpha _{12}) \lambda \), \(\lambda _2=(\alpha _2+\alpha _{12}) \lambda \). We refer to the results obtained by Model 2 as approximation results. In Model 2, we have \(\mathbb {E}[\varPi _2(S_1,S_2,T)] = \mathbb {E}[\varPi _2(S_1,T)] + \mathbb {E}[\varPi _2(S_2,T)]\), where \(\mathbb {E}[\varPi _2(S_i,T)]\) are the long-run expected profit attained by selling product i, for \(i=1,2\). As demand processes of products 1 and 2 are assumed to be independent, the expected profit function can be separated to two independent profit functions. It is worth mentioning that when \(\alpha _{12}=0\), both Models 1 and 2 return the same optimal solution.

In what follows, we analyze the structure of the expected profit rate function in Model 2 and derive analytical results pertaining to the existence of the optimal solution. All proofs are provided in Appendix B.

Proposition 1

The expected profit rate function in Model 2, \(\mathbb {E}[\varPi _2(S_1,S_2,T)]\), is concave in \(S_i\) and T.

Figure 4 depicts the profit rate function for a particular data set when \(\alpha _{12}=0\).

Fig. 4
figure 4

The expected profit rate function w.r.t T with \(S_1=9\), \(S_2=7\), \(\lambda =10\), \(\alpha =(0.5,0.5)\), \(p=(10,15)\), \(r=(20,30)\), \(h=(1,1)\), \(\pi =(10,10,15)\), and \(K=10\)

We have the following corollaries as immediate consequences of Proposition 1, which construct the idea of the solution algorithm for finding the global optimal solution in Model 2; and also establish the idea of finding bounds for Model 1.

Corollary 1

In Model 2,

  1. (i)

    For a given period length T, the optimal base-stock level, \(S_i^*\), is the smallest \(S_i\) satisfying the following inequality

    $$\begin{aligned} (r_i-p_i - h_i \frac{S_i+1}{\lambda _i} + \pi _i + h_i T) \Big [1-\sum _{n=0}^{S_i} e^{-\lambda _i T} \frac{(\lambda _i T)^n}{n!} \Big ] - h_i T \Big [1- e^{-\lambda _i T} \frac{(\lambda _i T)^{S_i}}{S_i!} \Big ] \le 0. \end{aligned}$$
    (19)
  2. (ii)

    For a given stock level \(S_i\), the optimal period length, \(T^*\), is obtained by solving the following equality

    $$\begin{aligned} \begin{aligned}&\sum _{i=0}^{2} (r_i-p_i) \Big [\lambda _i T \sum _{n=0}^{S_i-1} e^{-\lambda _i T} \frac{(\lambda _i T)^n}{n!} - \mathbb {E}[R^e_i]\Big ] -\pi _i \Big [ \lambda _i T (1-\sum _{n=0}^{S_i-1} e^{-\lambda _i T} \frac{(\lambda _i T)^n}{n!}) -\mathbb {E}[L^e_i]\Big ]\\ {}&- h_i T \Big [ \sum _{n=0}^{S_i-2} (S_i -\frac{n}{2}-\frac{\lambda _i T}{2}) \ e^{-\lambda _i T} \frac{(\lambda _i T)^n}{n!} + (\frac{S_i+1}{2}) \ e^{-\lambda _i T} \frac{(\lambda _i T)^{S_i-1}}{(S_i-1)!} -\frac{1}{T} \mathbb {E}[I^e_i] \Big ]=0. \end{aligned} \end{aligned}$$
    (20)

From the corollary above, one can infer that the expected profit function is a unimodal function in T. To find the optimal cycle length by Equation (20), we apply the successive parabolic interpolation algorithm (Jarratt 1967), which is an efficient algorithm for finding the global optimal solution in unimodal functions. In this algorithm, we do not need to take derivatives and only function values are used.

Corollary 2

In both Models 1 and 2, an upper bound for \(S_i\), \(\overline{S}_i\), is the smallest \(S_i\) satisfying the following inequality

$$\begin{aligned} (r_i-p_i - h_i \frac{S_i+1}{\lambda _i} + \pi _i + h_i \overline{T}) \Big [1-\sum _{n=0}^{S_i} e^{-\lambda _i \overline{T}} \frac{(\lambda _i \overline{T})^n}{n!} \Big ] - h_i \overline{T} \Big [1- e^{-\lambda _i \overline{T}} \frac{(\lambda _i \overline{T})^{S_i}}{S_i!} \Big ] \le 0, \end{aligned}$$
(21)

where \(\overline{T}\) is an upper bound for the cycle length, and \(\lambda _i = (\alpha _i+\alpha _{12}) \lambda \) for \(i=1,2\).

Conjecture 1

In Model 2, the smallest \(S_i\) that satisfies the following inequality determines optimal \(S_i\) together with optimal T

$$\begin{aligned} \mathbb {E}[\varPi _2(S_i+1, T^*(S_i+1))] - \mathbb {E}[\varPi _2(S_i,T^*(S_i))] \le 0, \end{aligned}$$

where \(T^*(S_i)\) is the optimal T obtained by Equation (20) as a function of the base-stock level \(S_i\).

Figure 5 illustrates the concavity of the optimal expected profit with respect to \(S_1\), where according to Conjecture 1 the optimal base-stock level is \(S_1=9\).

Fig. 5
figure 5

\(\mathbb {E}[\varPi _2(S_1,S_2,T)]\) w.r.t \(S_1\) (\(S_2=12\), \(\lambda =5\), \(\alpha _1=0.25\), \(p_1=20\), \(r_1=30\), \(h_1=1\), \(\pi _1=20\), and \(K=10\))

It should be noted that we can use the results of Proposition 1 for special cases \(\alpha _{12}=0\) and \(\alpha _{12}=1\) as well.

5 Solution approach

The optimization problems provided in Models 1 and 2 are mixed-integer non-linear programs. The structures of the profit rate functions provided in these models appear to be complicated w.r.t decision variables \(S_1\), \(S_2\), and T. However, due to independent processes that exist in Model 2, the analysis of this model seems to be simpler than Model 1. In what follows, we first prove the existence of the optimal solution in both Models 1 and 2 through the following proposition. Then, we evolve the solution approach for Model 1 and then for Model 2.

Proposition 2

As long as the cycle length is finite, there exists an optimal solution for both Models 1 and 2.

Suppose that the period length is bounded above and can take a maximum value of \(\overline{T}\), which can be imposed by the inventory manager. A lower bound for the period length, \(\underline{T}\), can be determined exogenously by inventory manager as well; however, we can set a small value as a lower bound. As proved in Proposition 2, for a given cycle length, the optimal base-stock levels are bounded above. Moreover, we provide upper bounds for the base-stock levels in Corollary 2 assuming that \(\overline{T}\) is predetermined.

Given an upper bound for the cycle length, \(\overline{T}\), we can specify the upper bounds for \(S_1\) and \(S_2\) by Corollary 2. Next, using the upper bounds for decision variables, we propose the following exhaustive search algorithm (Algorithm 1) to find the optimal solution of Model 1, where all possible solutions in the search space \([1,\overline{S}_1] \times [1,\overline{S}_2] \times [\underline{T},\overline{T}]\) are evaluated. Recall that \(S_i\)’s are assumed to be non-negative integers. We consider all discrete points in the interval \([\underline{T},\overline{T}]\) with an increment size \(\varDelta \). Therefore, for a particular data set, we need to evaluate \(\overline{S}_1 \times \overline{S}_2 \times \overline{T} / \varDelta \) solutions in total.

figure a

To verify the exhaustive search algorithm results and check the accuracy of our analytical results, we utilize the simulation-optimization approach. Our numerical results confirm that both the exhaustive search algorithm and simulation-optimization provide the same optimal solutions. It demonstrates the validity of our analytical results and shows that the estimation approach employed for estimating the products’ depletion time is extremely accurate.

Next, we develop a solution approach for Model 2 which has a simpler structure compared to Model 1. In Model 2, we are not able to provide explicit expressions for optimal solutions of base-stock levels and the cycle length. However, we can find the global optimal cycle length with given base-stock levels by Corollary 1 part (ii). Hence, we can implement an exhaustive search over variables \(S_1\) and \(S_2\), by which for particular \(S_1\) and \(S_2\) the optimal cycle length is attained. We propose the following exhaustive search algorithm (Algorithm 2) for finding the global optimal solution of Model 2, where all possible solutions in the search space \([1,\overline{S}_1] \times [1,\overline{S}_2]\) are evaluated. Therefore, for a particular data set, we need to evaluate \(\overline{S}_1 \times \overline{S}_2\) solutions in total.

figure b

To verify the validity of Conjecture 1, we select some randomly selected instances in our numerical studies and see that the optimal solution obtained by Conjecture 1 is the same as that of Algorithm 2. It certifies the validity of Conjecture 1, i.e., the optimal profit values construct a concave function w.r.t \(S_i\), \(i=1,2\).

In the following, we address the structure of the expected profit rate function based on our observations from numerical experiences. Our numerical experiences show that the expected profit rate function is concave in T for given \(S_1\) and \(S_2\). We are not able to prove this property analytically, but we can verify it intuitively. As T gets small values, Case C happens with high probability (\(\mathbb {P}_c\) is high). In this case, no sale is lost but ordering cost is incurred to the system frequently. Therefore, the expected profit per unit time tends to a small value as T approaches zero. On the other hand, if T takes a large value, Case A and Case B happen with high probabilities (\(\mathbb {P}_a\) and \(\mathbb {P}_b\) are high). In this case, the holding costs are almost identical in each period but the lost sales cost gets a large value because the system is out of stock for a long time. Therefore, the expected profit per unit time tends to a small value as T becomes large. Considering two extreme situations stated above, we deduce that optimal T should be at some point in between (Weierstrass theorem; see, e.g., Clarke (1990)). Hence, we have the following result.

Conjecture 2

The expected profit rate function in Model 1, \(\mathbb {E}[\varPi _1(S_1,S_2,T)]\), is unimodal in T for given \(S_1\) and \(S_2\).

Figure 6 illustrates the expected profit rate function with respect to T with given order-up-to-levels for a particular set of data.

Fig. 6
figure 6

Expected profit rate function w.r.t T for \(\varDelta =0.01\), \(S_1=9\), \(S_2=7\), \(\lambda =10\), \(\alpha =(0.25,0.5)\), \(p=(10,15)\), \(r=(20,30)\), \(h=(1,1)\), \(\pi =(10,10,15)\), and \(K=10\)

We can investigate the profit rate function behavior w.r.t order up-to-levels as well. Intuitively, when \(S_1\) and \(S_2\) get small values the system observes low holding and large lost sales, and when \(S_1\) and \(S_2\) are large, a high holding and small lost sales costs are incurred to the system. So, we deduce that the optimal \(S_1\) and \(S_2\) should be at some point in between. Hence, we have the following result.

Conjecture 3

The expected profit rate function in Model 1, \(\mathbb {E}[\varPi _1(S_1,S_2,T)]\), is concave in both \(S_1\) and \(S_2\) for given T.

Figure 7 illustrates the expected profit rate function with respect to \(S_1\) and \(S_2\) with \(T=1\) for a particular data set.

Fig. 7
figure 7

Expected profit rate function w.r.t \(S_1\) and \(S_2\) for \(\lambda =10\), \(\alpha =(0.4,0.4)\), \(p=(10,15)\), \(r=(20,30)\), \(h=(10,10)\), \(\pi =(10,10,15)\), and \(K=10\)

Form Conjectures 2 and 3, we can deduce that the structure of the expected rate function in Model 1 is identical to that of Model 2. That is, \(\mathbb {E}[\varPi _1(S_1,S_2,T)]\) is concave in \(S_i\) and it is unimodal in T. Hence, we can develop an algorithm similar to Algorithm 2 to find the optimal solution of Model 1. That is, for given \(S_1\) and \(S_2\), we find the optimal cycle length by equalizing the first derivative of the expected profit rate function in Equation (7) to zero. Since deriving the explicit expression for the first derivative of the expected profit rate function is not easy, we again apply the successive parabolic interpolation algorithm for finding the global optimal solution in Model 1. We examined this approach and observed that the optimal solution obtained by this approach is the same as that of Algorithm 1. It implies that the results of Conjectures 2 and 3 are valid.

6 Numerical analysis

The goal of this section is to capture the effect of demand correlation on performance of a periodic review base-stock policy. We also show how unit lost sale costs and demand rate influence this interaction effect. Moreover, we demonstrate performance of the approximation algorithm through various settings.

In our numerical analysis, we use Algorithm 1 to find the optimal solution of Model 1, and Algorithm 2 to find the optimal solution of Model 2. We set \(\varDelta =0.1\) in Algorithm 1. We set 0.1 as a lower bound and 7 as an upper bound for the cycle length in our numerical analysis (i.e., \(\underline{T}=0.1\) and \(\overline{T}=7\)). To verify the optimization results of Algorithm 1, we found the optimal solution by simulation optimization in some randomly selected instances. The results indicate that the optimal solutions obtained by both methods are the same. Hence, we can conclude that our proposed model is accurate and it guarantees global optimality.

We base our analysis on the following base data set: \(\lambda \) is fixed at 10, \(p=(20,10)\), \(r=(30,15)\), \(h=(1,1)\), \(\pi =(10,10,15)\), \(K=10\), and \(\alpha _1\) and \(\alpha _2\) are varied. Numerical results are provided in Tables 2 to 5 in Appendix C. In all tables, “Deg. Compl” in the first column represents degree of complementarity existing between two products. We compute the optimal policy parameters including the base stock levels \(S_1\), \(S_2\), and period length T, and the corresponding expected profit per unit time. \((S_1,S_2,T)_1\) and \(\mathbb {E}[\varPi ^*_1]\) show the optimal policy parameters and the profit per unit time obtained from analytical results (Model 1), respectively. Similarly, \((S_1,S_2,T)_2\) and \(\mathbb {E}[\varPi ^*_2]\) show the optimal policy parameters and the profit per unit time obtained from the approximation algorithm (Model 2), respectively. We also compute \(E[\varPi _3]\) which is obtained by substituting \((S_1, S_2, T)_2\) into \(E[\varPi _1(S_1, S_2, T)]\) defined in Equation (7). Gap\(_{2}\)% is the percentage deviation between analytical and approximation results, which is defined as \(\frac{\mathbb {E}[\varPi ^*_2]-\mathbb {E}[\varPi ^*_1]}{\mathbb {E}[\varPi ^*_1]} \times 100\), and Gap\(_{3}\)% is the percentage deviation between the expected profits yielded by applying solutions of Model 1 and Model 2, which is defined as \(\frac{\mathbb {E}[\varPi _3]-\mathbb {E}[\varPi ^*_1]}{\mathbb {E}[\varPi ^*_1]} \times 100\). Recall that when \(\alpha _{12}=0\) or 1, we use the analytical results provided in subsection 4.4, where the results of the analytical and approximation approaches are the same.

Regarding the execution time, Algorithm 2 is much faster than Algorithm 1 because in the former case we implement exhaustive search over variables \(S_1\) and \(S_2\), whereas in the latter case the exhaustive search is done over all decision variables \(S_1\), \(S_2\), and T. We can save time for finding the optimal solution of analytical results (Model 1) by using the results of the approximation model (Model 2). Our numerical experiences indicate that in some conditions, the approximated solution obtained by the approximation algorithm (Algorithm 2) is very close to that of the real optimal solution obtained by Algorithm 1. Therefore, we can select the solution of the approximation algorithm as an initial solution and implement a local search around that solution. To do so, we execute an exhaustive search in ranges \(S_i \in [S^e_i-5, S^e_i+5]\) for \(i=1,2\) and \(T \in [T^e-1, T^e+1]\), where \((S_1^e, S_2^e, T^e)\) is the optimal solution of the approximation algorithm. We examined this method for finding the optimal solution of Model 1 and observed that we obtain the same optimal solution as that of Algorithm 1. Note that whenever we hit the boundaries in ranges above, we extend those bounds till no boundary is hit.

In what follows, we investigate the effect of demand correlation and capture when neglecting the interaction effect may cause substantial losses in the inventory system. Moreover, we compare our proposed policy with the can-order policy which is widely used in the literature.

6.1 Degree of complementarity

To quantify the effect of degree of complementarity on the expected profit, a comparison is done for various values of \(\alpha _1\) and \(\alpha _2\) as shown in Table 2. For each degree of complementarity, we also provide the approximation algorithm results, that accounts for capturing the correlation effect between demand processes. We observe that, as the proportion of type-12 demand increases, the profit yielded becomes larger. For a fixed degree of complementarity (i.e., for a fixed \(\alpha _{12}\)) as the proportion of demand type with higher marginal profit increases, the total expected profit per unit time increases. For instance, in Table 2, where the marginal profit of product 1 is 10 and the marginal profit of product 2 is 5, when \(\alpha _{12}=0.5\), for \(\alpha _1=0\) and \(\alpha _2=0.5\) the expected profit is 69.6879, for \(\alpha _1=0.25\) and \(\alpha _2=0.25\) the expected profit is 82.0216, and for \(\alpha _1=0.5\) and \(\alpha _2=0\) the expected profit is 94.5780. Furthermore, the higher degree of complementarity requires a higher stock level in the system on average. It should be also noted that, as the proportion of one demand-type increases, the base-stock level increases. An increase in base-stock levels raises inventory levels of two products and also increases holding costs. To compensate surplus holding costs incurred to the system due to higher base-stock levels, the inventory manager decides to increase the period length to reduce the holding costs per period. That is the reason why we observe the longer cycle length for the higher \(\alpha _{12}\) (see Table 2).

Therefore, we deduce that the increase in only one demand-type does not increase the profit in the system. For instance, let us consider numerical results of the base data set (Table 2). For \(\alpha _1=0.25\), the expected profits for \(\alpha _2=0, 0.25, 0.5,\) and 0.75 are 104.7428, 82.0216, 59.8357, and 38.3326, respectively. Similarly, for \(\alpha _2=0.25\), the expected profits for \(\alpha _1=0, 0.25, 0.5,\) and 0.75 are 92.2974, 82.0216, 72.1880, and 63.1262, respectively. The higher profit is obtained if we can stimulate the potential customers to purchase products jointly instead of one unit of each. Bundling, mixed bundling, and tying are some policies that persuade customers for complementary purchasing. Retailers can focus on interlinking demands of different products, by which they can achieve substantial benefits. Our results suggest that in the marketing of different products, our focus should be the development of ingenious strategies for establishing joint demands among customers. For instance, in online retailing systems, customers can be convinced to buy items together by seeing information such as “frequently bought together”, “more items to explore”, and “customers who bought this item also bought”.

Regarding the purchasing behavior of customers, we should point out that not all type-12 customers are so picky. Among them, some might purchase only when both products are in stock and others might end up buying the only available product. In this case, we cannot estimate the fraction of customer types \(\alpha _1\), \(\alpha _2\), and \(\alpha _{12}\) solely from sales because a fraction of type-12 customers are counted as type-1 or type-2 customers. Hence, we suggest a demand estimation method taking unobservable lost sales into account. Providing an accurate estimation for fraction of customer types, the inventory manager would be able to reap considerable profits. For instance, let us consider the base data set (Table 2) and suppose that the fraction of customer types are estimated as \(\alpha _{1}=0.25\) and \(\alpha _{2}=0.25\), where \((S_1, S_2, T)_1=(12, 12, 0.9)\) and the expected profit is 82.0216. If further investigation reveals that the actual \(\alpha _{1}\) and \(\alpha _{2}\) are 0.25 and 0, respectively (i.e., 25% of type-12 customers changed their decisions and bought only product 2 when both products are not available), then \((S_1, S_2, T)_1=(15, 12, 0.9)\) and the expected profit would be 104.7428. Thus, an accurate estimation of demand types will result in 22.7212 surplus profits.

6.2 Demand correlation effect

The approximation algorithm is established based on ignoring the interaction effect between demand processes. Therefore, comparing the results obtained by analytical and approximation models one can capture the impact of demand correlation. Comparing \(\mathbb {E}[\varPi ^*_1]\) and \(\mathbb {E}[\varPi ^*_2]\) values in Table 2 we conclude that Model 1 and Model 2 provide different optimal solutions, and the control policy under Model 2 yields the higher profit for the system due to its structure (i.e., Gap\(_{2}\)% is always non-negative). Moreover, comparing \(\mathbb {E}[\varPi ^*_1]\) and \(\mathbb {E}[\varPi _3]\) values in Table 2 one can see that the solution obtained by approximation algorithm is not optimal; however, it is close enough to the real optimal solution. The profits yielded by the approximation algorithm is also less than that gained from analytical results since the interaction effect between demands is ignored (i.e., Gap\(_{3}\)% is always non-positive). Therefore, by ignoring the interaction effect between demand processes we will lose a proportion of market sales due to the non-optimal base-stock levels and replenishment period.

To emphasize the impact of demand correlation, we increase the unit lost sales cost of type-12 demands. In this regard, we increase \(\pi _{12}\) from 15 to 45 and report the results in Table 3. The results reveal that, as the unit lost sales cost of type-12 demands increases, neglecting the interrelated demand between demands processes results in a higher loss in profits due to exercising a non-optimal policy, especially when degree of complementarity is high (see Gap\(_3\%\) in Table 3). This is an expected result because neglecting the interaction effect leads to non-optimal base-stock levels. That is, we have either over-stocking or under-stocking which both result in losses (high holding costs and high lost sales, respectively) in the inventory system. Hence, our model suggests the retailers to focus more on the replenishment sizes and replenishment cycle when they have a high loss of goodwill in the market. For instance, in pharmaceutical and surgery industries where products are generally complementary, a lack of inventories may cause irrecoverable effects and deteriorate system performance (Poormoaied and Atan 2020b). In these circumstances, employing a smart control policy taking the demand correlation into account is a requirement.

It is worth noting that in cases with high loss of goodwill costs, the approximation algorithm may provide a solution which is not too close to the one obtained by analytical results. For instance, in Table 3, when \(\alpha _1=0\) and \(\alpha _2=0.25\), the optimal solutions of analytical and approximation models are (13, 16, 0.9) and (11, 14, 0.9), respectively; and when \(\alpha _1=0.75\) and \(\alpha _2=0\), those are (16, 6, 1.0) and (17, 5, 1.1), respectively. In these cases, the solution of the approximation algorithm cannot be considered as a good starting point for a local search in order to find the optimal solution of the analytical model. Hence, a wide search space should be explored to find it.

We also investigate the effect of the demand rate by reducing it from 10 to 5 units per unit time. The results are summarized in Table 4. Obviously, by a lower demand rate, the expected profit yielded and base-stock levels decrease. Our numerical experiences show that when the demand rate is low, ignoring the interaction effect causes a higher loss in profits (higher Gap\(_3\%\)). This is due to the fact that with a lower demand rate the base-stock levels are smaller and hence the inventory system experiences stock-out periods with higher probability in case of stochastic demands. Stock-out periods are time intervals during which we need to monitor the impact of demand correlation. If this effect is ignored, a large deviation in real demand rates may be observed. Therefore, frequent long stock-out periods will result in a reduction in the long-run expected profit because the system is optimized by inaccurate demand rates.

An interesting result is that as demand rate increases the period length decreases. This is due to the higher uncertainty in inventory systems with higher demand. Since demand follows the Poisson process, a higher demand rate results in higher uncertainty. Hence, the retailer decides to reduce the cycle length in order to prevent imminent shortages at the end of periods that arise from demand uncertainty.

We investigate the effect of the unit holding cost on our policy performance in Table 5, where we increase h from (1, 1) to (5, 5). As expected, the base-stock levels and the cycle length decrease, which implies that we hold a fewer amount of inventories as the unit holding cost increases. Although a fewer amount of products are stocked in cases with higher holding costs, the interaction effect influences policy performance significantly. For instance, consider the case with \(\alpha _1=0\) and \(\alpha _2=0.5\), where we observe 8.48% cost savings by taking the interaction effect into account. We believe that this cost saving is due to the time-dependent holding cost. Neglecting the interaction effect influences the depletion times of products in our analysis (\(T_1\) or \(T_2\) in Figure 1). Since a time-weighted holding cost calculation is taken into account, the small deviation in base-stock levels arising from ignoring demand correlation may result in a high deviation in holding costs. Therefore, any inaccuracy in estimation of depletion times may significantly influence cost savings. Therefore, pay no attention to interaction effect between demand processes can result in substantial losses in profits, especially when unit lost sale costs and unit holding costs are large and the products are slow-moving.

Higher demand rates, higher unit lost sale costs, and lower unit holding costs generally lead to more inventories on hand, which can result in shorter stock-out periods and consequently slight interaction effects between demand processes. In this case, the approximated demand rates \(\lambda _1=(\alpha _1+\alpha _{12}) \lambda \) and \(\lambda _2=(\alpha _2+\alpha _{12}) \lambda \) become very close to the real demand rates with interaction effect consideration. It is worth mentioning that if complementary products are perishable, the stock on hand may drop dangerously to zero and hance the inventory system experiences stock-out periods more frequently (Poormoaied et al. 2020c; Berk et al. 2020). In such systems, interaction effect between demand processes plays an important role in characterizing the control policy structure.

6.3 Comparison to other policies

In this subsection, we compare the proposed \((S_i,T)\) policy with other policies analyzed in the literature. We consider the can-order policy proposed by Balintfy (1964). Silver (1974) and Federgruen et al. (1984) proposed some heuristic algorithms for finding the sub-optimal can-order policies. The can-order policy, so-called the \((s_i,c_i,S_i)\) policy, works as follows: whenever the inventory level of item i drops the reorder point \(s_i\) a new order is placed to bring the inventory position to level \(S_i\), and all items which hit their can-order level \(c_i\) are ordered jointly, where \(s_i \le c_i < S_i\). This policy is different from our policy, in the sense that it is a continuous review policy, whilst our policy is a periodic review policy. Since we have multiple products, the can-order level \(c_i\) is reserved to join replenishments, if needed, to combine some orders and reduce the fixed replenishment costs in the \((s_i,c_i,S_i)\) policy.

We use the same base data set presented at the beginning of this section to compare the proposed \((S_i,T)\) policy with the \((s_i,c_i,S_i)\) policy in the presence of demand correlation. The numerical results are summarized in Table 6, where Gap\(_4\%\) is defined as \(\frac{\mathbb {E}[\varPi ^*_1]-\mathbb {E}[\varPi ^*_4]}{\mathbb {E}[\varPi ^*_4]} \times 100\). A simulation optimization is used to find the optimal solution of the can-order policy, and analytical results (Model 1) is used to report the optimal solution of the \((S_i,T)\) policy. Simulation is conducted based on replication length of 10 million time units, a warm-up period of 10,000 units and 10 replications. Moreover, in simulation optimization, all solutions in a large search space are evaluated by an exhaustive search algorithm.

The results show that the proposed \((S_i,T)\) policy dominates the can-order policy. It is expected that as the fixed ordering cost decreases, the can-order policy would be able to dominate the proposed \((S_i,T)\) policy. By doing so, we observed that these two policies provide almost the same profit values, implying that the \((S_i,T)\) policy performs very well even if the fixed ordering cost is low, and as the fixed replenishment cost increases, the proposed \((S_i,T)\) policy significantly outperforms the can-order policy. Our numerical experiences reveal that the average stock level in the can-order policy is higher than that of the \((S_i,T)\) policy. It implies that as the unit holding cost increases, \((S_i,T)\) policy dominates the can-order policy significantly. Our numerical analysis confirms this fact (results are not reported here).

7 Concluding remarks

In this paper, we consider the impact of demand correlation across two complementary products in a periodic review base-stock policy, namely \((S_i,T)\) policy, with joint replenishment. In this policy, the inventory position of product i is raised to level \(S_i\) at the beginning of each period with length T. The demands are in sets of one unit of each or jointly. In case of joint demand, the whole demand is lost if one of the complementary products is not available in stock. The aim is to determine the base-stock levels and period length such that the expected total profit per unit time is maximized.

Different from the other studies on multi-product inventory systems with periodic review policies, we analyze a periodic review base-stock policy under demand correlation consideration and capture its effect. Since tracking the inventory levels of two complementary products due to interrelated demand is difficult, we estimate demand rates of two complementary products by conditioning on their depletion times. Then, the explicit expressions of the operating characteristics of the inventory system are derived by the renewal reward theorem (Model 1). We also proposed an approximation algorithm which is based on neglecting the interaction effect between demand processes. Using the approximation algorithm we derive operating characteristic expressions and solve the problem with a large number of complementary products (Model 2). Using the approximation algorithm, we derive upper bounds for decision variables in Model 1, and then through an exhaustive search over decision variables the global optimal solution is attained.

We capture the impact of demand correlation and compare the proposed policy to other policies through numerical analysis. Our results show that as degree of complementarity increases the expected profit raises. Furthermore, correlation in demand can result in substantial losses, especially when the unit lost sales and unit holding costs are large and the demand rate is low. Moreover, given a fixed degree of complementarity, we would prefer to increase the demand rate of products whose marginal profit is high. We also showed the efficiency of the proposed base-stock policy by comparing this policy with the can-order type policy. The results reveal that the \((S_i,T)\) policy dominates the can-order policy in all instances. As the fixed replenishment cost decreases, these two policies perform almost the same; and as the unit fixed replenishment cost and unit holding cost increase, the base-stock policy outperforms the can-order policy significantly.

Our derivations are based on the assumption of zero lead-time. Extending this work to positive lead-times would be challenging, yet interesting. Due to the interaction effect between demand processes, deriving analytical results for an inventory system with more than two complementary products is complicated. Developing a heuristic algorithm for a system with more than two complementary products would be interesting. Analyzing our model under compound Poisson process would be a further challenging setting for extension.