Disclosed are embodiments related to estimating a customer lifetime value.
Customer lifetime value (CLV) (a.k.a., lifetime customer value (LCV) or lifetime value (LTV)) of a customer is a prediction of a net profit contributed to future relationship with the customer. It is a measure of customer profitability and customer loyalty. CLV is a forward-looking metric, which may be extremely important for making better business decisions.
Certain challenges presently exist.
A CLV of a customer of a service, a product, and or a company can be calculated based on a plurality of probability values each of which indicates a probability that the customer will churn (i.e., stopping to use a service or a product, or stopping from being a customer of a company) during a certain time interval in the future, and each of these probability values can be determined using a hazard function h(t) uniquely associated with the customer. For example, h(1) is a probability value indicating a probability that a customer will churn within the first month.
Good estimation of the hazard function h(t) for each one of many different customers, however, may be difficult.
Accordingly, in one aspect of this disclosure, there is provided a method of determining a customer lifetime value (CLV) of a customer. The method comprises determining a hazard function of the customer based on a baseline hazard function and a coefficient value associated with the customer and calculating the CLV of the customer based on the determined hazard function, wherein the determined hazard function is for calculating a probability that the customer will churn during a time interval.
In another aspect, there is provided a computer program comprising instructions which when executed by processing circuitry of an apparatus causes the apparatus to perform the method described above.
In a different aspect, there is provided an apparatus being configured to perform the method described above.
The embodiments of this disclosure provide an efficient way of determining the hazard function of each customer, thereby providing an efficient way of calculating the CLV of each customer.
The accompanying drawings, which are incorporated herein and form part of the specification, illustrate various embodiments.
There may be a situation where the credit card company wants to determine the CLV of the customer 302. For example, in case the customer 302 contacts an agent 304 of the credit card company to inform that the customer 302 wants to close his/her credit card account, the credit card company may decide, depending on the CLV of the customer 302, what promotion to offer to the customer 302 to dissuade him/her from closing the credit card account. If the CLV is high, the credit card company may offer to lower the interest rate by 3% while if the CLV is low, the credit card company may offer to lower the interest rate by just 1%.
Alternatively, depending on the CLV of the customer 302, the credit card company may decide which agent of the credit card company to speak to the customer 302 to persuade him/her to keep the credit card account. For example, if the CLV is high, the credit card company may pair the customer 302 with the best agent that is currently available while if the CLV is low, the credit card company may pair the customer 302 with any agent that becomes first available.
Mathematically, CLV may be expressed as:
As discussed above, Mt is the expected profit margin (i.e., revenue—costs) associated with a customer during month t. But, data on individual customer's costs may not be readily available. Thus, instead of using the expected profit margin, expected revenues can be used as Mt. Alternatively, the future profit margin can be calculated based on the assumption that the future profit margin is constant and equal to either the latest customer's margin or the latest customer's average margin over several most recent time periods.
In case Mt is not predicted and discounting r is not applied, the equation (1) above may be simplified to:
Another important parameter that is related to CLV metric is the remaining tenure (RT). The mathematical expectation of RT may be expressed as:
In the above expression of RT, if the time unit t is in month (as an example), the value E(RT) in the equation (3) above is a mean value of a probability distribution of remaining tenure in months (a.k.a., the mean expected remaining tenure in months). Using E(RT), the equation (2) can be rewritten as:
CLV=M×E(RT)
For simple explanation, the time unit (t) will be assumed to be in month but it can be any time interval such as 15 days, 2 months, 4 months, 1 year, etc. For practical reasons, RT is calculated up to a fixed number of months (instead of infinity as shown in the equations (1)-(3)).
Estimating pt lies in the scope of survival analysis (a.k.a., failure time analysis and event analysis), and two main functions in the survival analysis are hazard function and survival function. The hazard function—h(t)=P(T=t|T≥t)—is a function for determining the probability that an event (e.g., customer churn) will occur during a certain time interval t. The survival function—S(t)=P(T>t)—is a function for determining the probability that a particular customer will remain as a customer for a service, a product, and/or a company for the next t months (e.g., months, weeks, years, or any specified time periods) (meaning that S(t) is equal to pt described above).
Estimating only one of the survival function and the hazard function is sufficient to determine the CLV because one of them can be derived based on another of them. More specifically,
S(t)=S(t−1)×[1−h(t)] (4),
and thus, S(t)=[1−h(1)]×[1−h(2)]× . . . ×[1−h(t)] (5).
Churn models and CLV models are closely related in the same way the hazard and survival functions are related. However, churn models typically predict churn over a much shorter time period (and they are good at that) as compared to a length of time period over which CLV models predict survival. Some embodiments of this disclosure try to take advantage of the predictive power of churn models to sensibly extend their predictions to longer periods of time.
As explained above, determining the hazard function h(t) for each of many different customers may be cumbersome and may not be efficient. Accordingly, there is provided a proportional hazards model for estimating values of a hazard function. The proportional hazards model of the embodiments of this disclosure is different from the well-known Cox proportional hazards model (a.k.a., the Cox regression described in Cox, David R. “Regression Models and Life-Tables.” Journal of the Royal Statistical Society, Series B. 34 (2): 187-220, 1972).
h
i(t)=αi×h0(t) (6)
There are different ways of obtaining the baseline hazard function h0(t). In some embodiments, the baseline hazard function can be obtained by applying standard survival analysis technique(s) (e.g., the Kaplan-Meier method) to historical data in order to determine a survival function, and using the equation (4) above to obtain the baseline hazard function based on the determined survival function. In other embodiments, the baseline hazard function can be obtained by computing monthly churn rates of customers by tenure based on the historical data. More specifically, based on data indicating which customer churned during the last month and data indicating the tenure of each customer at the beginning of the last month, the churn rate of a different customer may be calculated, and the baseline hazard function can be determined based on the calculated churn rates.
The application of the Kaplan-Meier method requires historical data going back quite a distance in time. However, if a snapshot of data is taken as of at least a month ago, hazards (churn rates) can be computed by tenure. In fact, a snapshot is too strong of a word. All that is needed is customer tenures at some point in time and the churn status over a month after that point for each customer.
Estimates of the baseline hazard function beyond the scope of tenures in historical data may also be provided as going forward the existing customers' tenures will increase. Typically, the hazard function stabilizes beyond some point. To make sure this is the case, it is a good idea to plot the baseline hazard function to see such a point and compute the mean hazard/churn rate for tenures beyond that point. Then the hazard function values can be extrapolated using that mean for tenures higher than seen in historical data.
The customer proportionality value αi can be calculated based on hi(t0)/h0(t0) where t0 is the current tenure of customer i. For example,
In case
Note that it is theoretically possible that some values of hi(t) in the equation (7) are greater than 1. In some embodiments, those values of NO may be set to 1.
After obtaining the hazard function of customer i, the survival function of the customer i can be determined using the equation (5) above based on the obtained hazard function. More specifically, for each customer i and tenure t>t0 (once again, to is the current tenure),
Then, the mathematical expectation of remaining tenure of customer i may be expressed as:
Because Si(t0+j) becomes smaller as j increases (meaning that the survival function will converge), the sum's incremental values become increasingly smaller. Thus, in some embodiments, instead of performing the summing to infinity, the summing can be terminated when Si(t0+j) becomes sufficiently small.
Once E(RTi) of customer i is determined, the CLV of customer i can be determined using the equation—CLV=M×E(RT).
In some embodiments, there may be provided two separate churn models—one for voluntary churn and another one for involuntary churn. The involuntary churn model is for determining the probability that a customer will involuntarily churn (e.g., cutting a wireless phone service because the customer stopped paying the service fees). In case two separate churn models are used for predicting the churn probabilities, the overall probability of churn needs to be calculated.
One way to calculate the overall probability of churn is by summing up the two churn models' scores. Another way to calculate the overall probability of churn is to treat the voluntary churn and the involuntary churn—the two mutually exclusive events—as competing risks.
For example, two sub-hazard functions corresponding to the two different types of churn may be expressed as: hv(t)=P(Tv=t|T≥t) for voluntary churn and hinv(t)=P(Tinv=t|T≥t) for involuntary churn. The overall hazard function may be obtained as: h(t)=hv(t)+hinv(t).
In the equation (6), the hazard function of customer i is obtained by multiplying the baseline hazard function by a proportionality value αi. But there may be a scenario where the proportionality value needs to be changed. For example, let's assume that a customer of a wireless carrier calls a customer representative of the wireless carrier in order to terminate his/her current wireless service. Let's further assume that the customer representative makes an offer of upgrading the customer's wireless device for free in exchange for the customer keeping his/her wireless service for the next year or two years, and the customer accepts the offer.
In this scenario, the customer's churn model score may reflect this intervention (i.e., the customer keeping his/her wireless service in response to the offer), but it is likely that the effect of this intervention will not last forever. Rather, the effect may be temporary, meaning that the effect will decay over a period of time (e.g., within a few months). This means that the customer's hi(t0) (which is determined using the churn model score) becomes inaccurate, and thus the proportionality value αi (which is determined based on hi(t0)) becomes inaccurate.
Accordingly, in some embodiments, the CLV time horizon (jmax) that is used to predict the CLV is reduced to a shorter period (e.g., several months instead of several years).
Alternatively, in other embodiments, the above described temporary effects are factored into the baseline hazard function h0(t) by adding another argument z into the baseline hazard function such that the baseline hazard function becomes h0(t, z), where t is the customer's tenure and z is the number of months since the last intervention (e.g., offering a free wireless device upgrade) was made. If there was no intervention, z may be set to be a constant value (e.g., −1).
Then, for all t≥t0 and z≥z0, the hazard function of customer i may be expressed as:
In some embodiments, the coefficient value associated with the customer is determined based on a first probability value (e.g., h0(t0)) indicating that a group of customers will churn during a current tenure of the customer and a second probability value (e.g., hi(t0)) indicating that the customer will churn during the current tenure of the customer.
In some embodiments, the second probability value is generated using a churn model based on a current tenure value indicating the current tenure of the customer, and the churn model is configured to predict a probability that the customer will churn in a time interval.
In some embodiments, the coefficient value associated with the customer is determined based on the second probability value divided by the first probability value.
In some embodiments, the method comprises using the determined hazard function, determining a survival function of the customer. The survival function is for calculating a probability that the customer will remain as a customer during a time interval.
In some embodiments, S(t)=Πj=t
In some embodiments, calculating the CLV of the customer based on the determined hazard function comprises calculating the CLV of the customer based on the survival function.
In some embodiments, calculating the CLV of the customer based on the survival function comprises calculating the CLV based on Σj=0t
In some embodiments, CLV is calculated further based on an expected profit value or an expected revenue value associated with the customer.
In some embodiments, each of the hazard function and the baseline hazard function is a function of at least two variables including a first variable and a second variable, the first variable corresponds to a tenure value indicating a tenure of the customer, and the second variable corresponds to a length of time elapsed since an occurrence of an event.
As discussed above, in some exemplary embodiments, the CLV of a customer may be used for pairing a contact (e.g., a customer) with an agent (e.g., a customer representative). Accordingly, in some embodiments, a contact center system is provided. The contact center system may employ a pairing node that functions to assign contacts to agents available to handle those contacts. At times, the contact center may have agents available and waiting for assignment to inbound or outbound contacts (e.g., telephone calls, Internet chat sessions, email). At other times, the contact center may have contacts waiting in one or more queues for an agent to become available for assignment.
The central switch 110 may not be necessary such as if there is only one contact center, or if there is only one PBX/ACD routing component, in the communication system 100. If more than one contact center is part of the communication system 100, each contact center may include at least one contact center switch (e.g., contact center switches 120A and 120B). The contact center switches 120A and 120B may be communicatively coupled to the central switch 110. In embodiments, various topologies of routing and network components may be configured to implement the contact center system.
Each contact center switch for each contact center may be communicatively coupled to a plurality (or “pool”) of agents. Each contact center switch may support a certain number of agents (or “seats”) to be logged in at one time. At any given time, a logged-in agent may be available and waiting to be connected to a contact, or the logged-in agent may be unavailable for any of a number of reasons, such as being connected to another contact, performing certain post-call functions such as logging information about the call, or taking a break.
In the example of
The communication system 100A may also be communicatively coupled to an integrated service from, for example, a third party vendor. In the example of
A contact center may include multiple pairing nodes. In some embodiments, one or more pairing nodes may be components of pairing node 140 or one or more switches such as central switch 110 or contact center switches 120A and 120B. In some embodiments, a pairing node may determine which pairing node may handle pairing for a particular contact. For example, the pairing node may alternate between enabling pairing via a Behavioral Pairing (BP) strategy and enabling pairing with a First-in-First-out (FIFO) strategy. In other embodiments, one pairing node (e.g., the BP pairing node) may be configured to emulate other pairing strategies.
Each data center 180A, 180B includes web demilitarized zone equipment 171A and 171B, respectively, which is configured to receive the agent endpoints 151A, 151B and contact endpoints 152A, 152B, which are communicatively connecting to CCaaS via the Internet. Web demilitarized zone (DMZ) equipment 171A and 171B may operate outside a firewall to connect with the agent endpoints 151A, 151B and contact endpoints 152A, 152B while the rest of the components of data centers 180A, 180B may be within said firewall (besides the telephony DMZ equipment 172A, 172B, which may also be outside said firewall). Similarly, each data center 180A, 180B includes telephony DMZ equipment 172A and 172B, respectively, which is configured to receive agent endpoints 151A, 151B and contact endpoints 152A, 152B, which are communicatively connecting to CCaaS via the PSTN. Telephony DMZ equipment 172A and 172B may operate outside a firewall to connect with the agent endpoints 151A, 151B and contact endpoints 152A, 152B while the rest of the components of data centers 180A, 180B (excluding web DMZ equipment 171A, 171B) may be within said firewall.
Further, each data center 180A, 180B may include one or more nodes 173A, 173B, and 173C, 173D, respectively. All nodes 173A, 173B and 173C, 173D may communicate with web DMZ equipment 171A and 171B, respectively, and with telephony DMZ equipment 172A and 172B, respectively. In some embodiments, only one node in each data center 180A, 180B may be communicating with web DMZ equipment 171A, 171B and with telephony DMZ equipment 172A, 172B at a time.
Each node 173A, 173B, 173C, 173D may have one or more pairing modules 174A, 174B, 174C, 174D, respectively. Similar to pairing module 140 of communications system 100A of
Turning now to
In other embodiments, the system may be configured for a single tenant within a dedicated environment such as a private machine or private virtual machine.
Exemplary information about the contacts and/or agents that may be stored in memory 210 and is associated with the contact ID or agent ID includes: attributes, arrival time, hold time or other duration data, estimated wait time, historical contact-agent interaction data, agent percentiles, contact percentiles, a state (e.g., ‘available’ when a contact or agent is waiting for a pairing, ‘abandoned’ when a contact disconnects from the contact center, ‘connected’ when a contact is connected to an agent or an agent is connected to a contact, ‘completed’ when a contact has completed an interaction with an agent, ‘unavailable’ when an agent disconnects from the contact center) and patterns associated with the agents and/or contacts.
Pairing node 200 also includes several modules (software and/or hardware components) (e.g., microservices) including a contact detector 202 and an agent detector 204. Contact detector 202 is operable to detect an available contact (e.g., contact detector 202 may be in communication with a switch that signals contact detector 202 whenever a new contact calls the contact center) and, in immediate response to detecting the available contact, store in memory 210 at least a contact ID associated with the detected contact (the metadata described above may also be stored in association with the contact ID). Similarly, agent detector 204 is operable to detect when an agent becomes available and, in immediate response to detecting the agent becoming available, store in memory 210 at least an agent identifier uniquely associated with the detected agent (metadata pertaining to the identified agent may also be stored in association with the agent ID). In this way, as soon as a contact/agent becomes available, memory 210 will be updated to include the corresponding contact/agent identifier and state information indicating that the contact/agent is available. Hence, at any given point in time, memory 210 will contain a set of zero or more contact identifiers where each is associated with a different contact waiting to be connected to an agent, and a set of zero or more agent identifiers where each is associated with a different available agent.
Pairing node 200 further includes other modules (e.g., microservices) including: (i) a contact/agent (C/A) batch selector 220 that functions to identify (e.g., based on the state information) sets of available contacts and agents for pairing, and provide state updates (i.e., modify the state information) for contacts and agents once the contacts and agents are selected for pairing and (ii) a C/A pairing evaluator 221 that functions to evaluate information associated with available contacts and information associated with available agents in order to propose contact-agent pairings. As shown in
After the C/A pairing evaluator 221 receives a set of contact IDs and agent IDs from the C/A batch selector 220, the C/A pairing evaluator 221 may read from memory 210 further information about the received contact IDs and agent IDs. The C/A pairing evaluator 221 uses the read information in order to identify and propose agent-contact pairings for the received contact IDs and agent IDs based on a pairing strategy, which, depending on the pairing strategy used and the available contacts and agents, may result in no contact/agent pairings, a single contact/agent pairing, or a plurality of contact agent pairings.
Upon identifying contact/agent pairing(s), the C/A pairing evaluator 221 sends the set of contact/agent pairing(s) to the batch selector 220. The C/A batch selector 220 provides the set of contact/agent pairing(s) to a contact/agent connector 222 (e.g., if the contact associated with contact ID C12 is paired with the agent associated with the agent ID A7, then C/A batch selector 220 provides these contact/agent IDs to contact/agent connector 222). If the pairing process results in one or more contact/agent pairings, then, for each contact/agent pairing, C/A batch selector 220 will transmits an updated state associated with each contact ID and each agent ID in the one or more contact/agent pairings to memory 210, which is then associated with each contact ID and agent ID. Thereby, memory 210 retains the contact IDs and agent IDs for future analysis.
Contact/agent connector 222 functions to connect the identified agent with the paired identified contact. Further, C/A connector 222 transmits an updated state associated with each contact ID and each agent ID in the one or more contact/agent pairings to memory 210, which is then associated with each contact ID and agent ID.
Therefore, in one embodiment, pairing node 200 provides an asynchronous polling process where memory 210 provides a central repository that is read and updated by the contact detector 202, agent detector 204, C/A batch selector 220, C/A pairing evaluator 221, and C/A connector 222. Accordingly, the objects of each agent and contact do not move between the microservices of pairing node 200; instead identifiers associated with the objects are transmitted between the contact detector 202, agent detector 204, memory 210, C/A batch selector 220, C/A pairing evaluator 221, and C/A connector 222. This process conserves bandwidth, processing power, memory associated with each microservice, and is more expedient than conventional event-based pairing nodes.
As noted above, it is advantageous for a communication system, such as, for example, communication systems 100A, 100B, 100C, 100D, to achieve high availability. Accordingly, in the embodiments disclosed herein an active-standby redundant deployment model is employed.
In one exemplary scenario, a customer contacts a service/sales representative (a.k.a., “agent”) using customer device 750 (e.g., a laptop, a desktop, a mobile phone, a tablet, etc.), and an interaction (e.g., the customer buying a product/service, subscribing to a service, returning a product/service, or canceling a subscription) occurs between the customer and the representative. The interaction history is monitored and/or collected by customer event monitor 720 and is saved in customer database 730 by customer event monitor 720. Note that the data stored in customer database 730 may be associated with a particular customer identifier. Customer data evaluator 740 may retrieve data stored in customer database 730, and run analytics (e.g., calculating a CLV) on the retrieved data.
Based on the analysis, customer data evaluator 740 may output values (e.g., CLV, a discount offer) related to customer's interaction with a company/service/product. In some embodiments, customer data evaluator 704 may store the output values in customer database 730. Also customer data evaluator 704 may transmit to agent device 760 the output values (e.g., CLV, the discount offer, etc.). Agent device 760 may take an appropriate action (e.g., formulating based on the CLV it received from customer data evaluator 704 a counter-offer to a customer who contacted the agent to terminate a subscription service). In some embodiments, data related to the action taken by agent device 760 may also be stored in the database 730.
While some of the terminology in this disclosure is described in terms of VVC, the embodiments of this disclosure also apply to any existing or future codec, which may use a different, but equivalent terminology.
While various embodiments are described herein, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of this disclosure should not be limited by any of the above-described exemplary embodiments. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the disclosure unless otherwise indicated herein or otherwise clearly contradicted by context.
Additionally, while the processes described above and illustrated in the drawings are shown as a sequence of steps, this was done solely for the sake of illustration. Accordingly, it is contemplated that some steps may be added, some steps may be omitted, the order of the steps may be re-arranged, and some steps may be performed in parallel.
This application claims priority to U.S. Provisional Patent Application No. 63/389,393, filed Jul. 15, 2022.
Number | Date | Country | |
---|---|---|---|
63389393 | Jul 2022 | US |