The number of unique banks is a metric that represents how many different banks has customer. This feature shows how many notifications subscriber receives from each bank to a phone number, that bounds a customer to the financial institutions. This feature plays a significant role in subscriber churn prediction.
Interaction with banks and other financial institutions is an integral part of our everyday life. We call our banks, we use apps, and we get SMS from a bank about our account balance, charges, etc. That's why a sudden absence of SMS from the bank can be used as a signal of customer behavior change. It is highly unlikely that subscriber stops using such essential services as bank services, it rather indicates subscriber uses another phone number to connect them and stay updated. Using SMS from banks as a connection between bank and subscriber provides us insight into how many unique banks communicate with a subscriber on a regular basis and how many stopped communicating with them.
This is Alex, for the last five years he has used Bank A and Bank B and recently decided to change the operator. For better security, he transfers two-factor authentication for the Bank B to another phone number. He will recieve all the notifications to his new phone number. In this case, the absence of incoming SMS from bank indicates about second SIM, which probably one day will become a primary since the connection to banking services are an important part of Alex's everyday life.
Incoming SMS from a bank is used as a feature in a machine-learning model to predict customer churn. As mentioned above, in a case subscriber connects essential services such as bank services to another phone number, his likelihood to churn increases significantly. This is also can be considered as a risk that competitor number becomes a primary.
The number of unique SMS from a bank can also have an impact on customer lifetime value. A consistent number of unique SMS from banks indicates that the bank is actively communicating with its customers via SMS, which means that the current SIM card is used by the subscriber as a primary.
The unique banks count is represented by a number of variables, called "SMS_BANK_CNTD_PERIOD". This feature can be calculated by counting distinct alf-numerical sender names associated with bank category. You would need dimension / dictionary table to identify if sender name can be identified as bank.
Hint: You need to adjust dictionary table to always be up to date. As well gathering such information for each country / region you provide service, because banks may vary. In the telecommunication industry patterns appear starting from at least week periods because daily is biased a lot. That's why we recommend using mostly monthly and weekly trends, not daily. In some cases, we will explicitly point to the use of daily data. Anyway, you can try what fits your task the most.
Here is he example of SQL code to create SMS_BANK_CNTD_W1
SELECT MSISDN,
COUNT(distinct sender) FILTER(
WHERE
sender_type = 'bank'
AND DATE_DIFF(snapshot_date, event_date, day) BETWEEN -7
AND -1) AS SMS_BANK_CNTD_W1
FROM
sms_messages
GROUP BY 1We used the following variables
# sms_bank_cntd_w1
# sms_bank_cntd_w2
# sms_bank_cntd_w3
# sms_bank_cntd_w4
# sms_bank_cntd_4wAn example of data source in the telecom industry that could be used to calculate the number of SMS messages sent by the bank would be the SMS gateway logs and dimension table, either combined or stored separately.
Subscriber ID SMS messages: the sender's number, and the recipient's number. Sender information: This would include the sender's name or phone number, which you would use to filter the SMS messages sent by the bank. Time sent: This would include the date and time the SMS was sent, which you could use to filter messages by a specific time range. Additional information: This may include information such as the message's unique identifier, the sender's IP address, and the protocol used to send the message.
Subscriber ID - this is your customer id to generate scoring
event_date - this is used to adjust time ranges for aggregation
sender - this is alfa-numerical name of a sender / recepient of SMS
sender_type - this is category, can be calculated by dimension or dictionary table for sender names in your country
| Subscriber ID | event_date | sender | Sender_type |
|---|---|---|---|
| 12345 | 2023-01-24 | sabadell | bank |
| 12345 | 2023-01-24 | 954491726 | personal |
| 12345 | 2023-01-23 | santander | bank |
| 12345 | 2023-01-22 | 9172616382 | personal |
| 12345 | 2023-01-22 | aliexpress | e-com |
Overall usage of this kind of dimension tables to determine sender type appeared when big data become popular, so data scientists started to search for extra information in raw data rather than generic aggregations.