Il tasso di rinnovo 2022 su 2023, considerando l’ abbandono del servizio anche per coloro che hanno chiesto un refound dopo un rinnovo, è pari al 70.08% . Per ricavarlo ho utilizzato la query:
WITH STATUS2CLIENT AS (
SELECT user_id,
COUNT(case when SUBSTRING(start_date,1,4) = '2023' AND refund_date= '' THEN 1 ELSE null END) AS Conta_2_Anni_No_Refound_Flag
FROM subscription
GROUP BY user_id
) SELECT ROUND(SUM (Conta_2_Anni_No_Refound_Flag)/ COUNT(user_id)*100, 2) AS Tasso_Rinnovo22_23 FROM STATUS2CLIENT
Considerando il rinnovo avvenuto anche per coloro che, in seguito, hanno chiesto il rimborso il tasso sale al 73.23%, ottenuto tramite:
WITH STATUS2CLIENT AS (
SELECT user_id,
COUNT(case when SUBSTRING(start_date,1,4) = '2023' THEN 1 ELSE null END) AS Conta_2_Anni_No_Refound_Flag
FROM subscription
GROUP BY user_id
) SELECT ROUND(SUM (Conta_2_Anni_No_Refound_Flag)/ COUNT(user_id)*100, 2) AS Tasso_Rinnovo22_23 FROM STATUS2CLIENT
Ricerca delle correlazioni significative tra il rinnovo e altri fattori tra i dati che hai a disposizione. Elenca tutte le dimensioni e metriche che ti vengono in mente. Scegli quali decidi di investigare e quali no e spiega le motivazioni della scelta. Effettua un’analisi statistica per dimostrare la presenza di una correlazione statisticamente significativa.
Di seguito sono elencate le metriche, per ogni dataset a disposizione, e le dimensioni che si ritiene possano avere un impatto sulla decisione degli utenti di rinnovare il servizio.
Quindi per ogni utente sono state poi calcolate le seguenti metriche. Sono state rimosse le chiamate future rispetto alla data in cui l’ utente deve decidere se rinnnovare il servizio in quanto non utili a spiegare la decisione di rinnovare e le chiamate intercorse prima del 2022.
Per quanta riguarda i dati del gruppo 1 non si ritene opportuno considerare le variabile relative agli importi, in quanto non sembrano contenere molta variabilità. Ogni utente paga circa la stessa cifra annua. Anche i delta sulle date non contengono informazioni significative in quanto i passaggi chiave del processo sono in qualche modo pre fissati e queste variabili contengono poca informazione. Il flag che segna il rinnovo automatico può essere utile in una fase successiva integrando con altre variabili. Il giorno della settimana può essere utile in quanto il rinnovo automatico, potenzialmente, può scattare con più probabilità anche in base al giorno della settimana, inoltre, da una prima analisi, sembra l’ unica informazione estraibile da questi dati di partenza.
I dati dei log delle chiamate offrono più spunti per poter costuire delle metriche da associare al rinnovo. Per ogni chiamata avendo il dettaglio fino al minuto e avendo variabilità nei valori sono stati estratti diversi “time components”. Per esempio, per ogni utente, è stata estratta la media del mese che può, indirettamente, suggerire in che periodo dell’ anno si concentra l’ attività legata alla gestione fiscale o ai rapporti con i consulenti. Mentre la media della durata e il conteggio delle chiamata ci offre un’ indicazione relativa al grado di utilizzo del servizio e/o al grado di urgenza rispetto agli adimpimenti. Le due medie legate all’ anticipo o al delay invece possono essere una proxy di quanto vengono rispettate o meno le scadenze e le disponibilità che ogni utente richiede. Il conteggio degli operatori puà essere un’ indicazione di quanto cambia il cliente i suoi consulente. L’ intervallo medio tra una chiamata e la sucessiva, come sopra, ci può descrivere una sorta di grado di utilizzo del servizio e o di urgenza. Mentre per legare effettivamente le chiamate ai dati sul rinnovo la variabile che descrive il delta temporale può esssere utile a discriminare la scelta del cliente a rinnovare. A livello logico non è detto che tante chiamate effettuate in un intorno temporale stretto del momento del rinnovo siano legate ad una prosecuzione del servizio.
Per quanto riguarda i dati sulle fatture, tenendo a mente il filtro temporale di cui sopra, sono stati calcolati l’ importo medio di fatturato e il conteggio delle fatture che indicano la solidità o meno del business del cliente. Infine potrebbere essere utile sapere mediamente quanti giorni prima della data rinnovo si concentrano le fatture associate a un utente.
Nella prossima fase si allenerà un modello di regressione lineare logistica per quantificare la significatività delle relazioni appena ipotizzate tra le variabili elencate e la variabile target e cioè il rinnovo (valore pari a 1) o il non rinnovo (valore pari a 0) del servizio per ogni utente.
Per effettuare un’ analisi statistica, data la natura della variabile di interesse, è opportuno utilizzare un modello di regressione logistica. Questo modello, rispetto alla regressione lineare classica, meglio si adatta alla stima di valori di una variabile binaria (1 o 0).
Per prima cosa, notiamo che per 4 clienti, che poi hanno rinnovato, non abbiamo telefonate registrate nei dati e per questo motivo non li considereremo nel training del modello. Inoltre ben 16 clienti non hanno registrato fatture. Di questi 16 solo 3 hanno rinnovato poi il servizio. In questo caso andrà valutato se imputare i loro dati mancanti opppure rimuoverli dai dati. Un’ ultima considerazione generale sui dati a disposizione è che si presenta una situazione moderata di squilibrio tra le due classi da prevedere. Infatti contiamo 38 utenti che non hanno rinnovato e 89 che lo hanno fatto.
Per esempio in ordine di elenco testiamo la significatività del giorno della settimana in cui è previsto il rinnovo, 1 è il Lunedì e 7 è la Domenica. Il Lunedì è la cosìdetta baseline dei dati. Quindi ogni stima dei parametri di regressione ci indicherà l’ effetto sulla variabile target (il rinnovo) a fronte di un cambiamento dal lunedì al rispetto giorno associato alla stima.
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | 1.38629436 | 1.118034 | 1.23993968 | 0.2149977 |
| Giorno_Rinnovo2 | -0.04255961 | 1.208364 | -0.03522085 | 0.9719036 |
| Giorno_Rinnovo3 | -1.01856958 | 1.159317 | -0.87859435 | 0.3796213 |
| Giorno_Rinnovo5 | -0.87546874 | 1.335415 | -0.65557813 | 0.5120956 |
| Giorno_Rinnovo6 | -0.23361485 | 1.212146 | -0.19272835 | 0.8471717 |
| Giorno_Rinnovo7 | -0.82667857 | 1.281740 | -0.64496607 | 0.5189492 |
In questo caso, però, i P- Value (ovvero l’ ultima colonna ) sono tutti superiori alla soglie standard (0.05, 0.1).Secondo il test di Wald quindi non c’è evidenza, in questo campione di dati, per rifiutare l’ ipotesi che questi coefficienti siano in realtà pari a 0 nella popolazione generale e quindi non avere alcun impatto sulla variabile target.
Ora indaghiamo la relazione con le varaibili relative ai dati sulle chiamate. Per quanto riguarda il conteggio delle chiamate, la media dei minuti in chiamata, e il tempo medio di delay rispetto alla date di disponibilità anche qui i modelli stimati non suggeriscono significatività delle relazioni.
Mentre, per quanto riguarda la varaibile che riporta la media temporale in giorni che passa tra una chiamata e la successiva del cliente, i risultati del modello di regresione univariata sono i seguenti:
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | 1.317966 | 0.284436 | 4.633611 | 0.000004 |
| Media_Intervallo_Chiamate | −0.009728 | 0.003755 | −2.590767 | 0.009576 |
Anche per l’ altro KPI calcolato che riporta la distanza tra le chiamate e il giorno del rinnovo otteniamo questi risultati:
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | −1.768028 | 0.748039 | −2.363550 | 0.018101 |
| Media_gg_chiamate_al_rinnovo | 0.008372 | 0.002374 | 3.526611 | 0.000421 |
In questi casi i valori dei P Values vicini allo zero indicano che è possibile rifiutare l’ ipotesi che i coefficienti non siano significativi e quindi si può confermare la validità di queste relazioni anche nella popolazione generale oltre che nel campione.
In generale un valore del coefficiente (colonna estimate) negativo indica una relazione negativa con l’ evento del rinnovo mentre un valore positivo è associato ad un aumento della probabilità di rinnovo.
A livello interpretativo, per esempio, il coefficiente legato alla media dei giorni intercorso tra una telefonata e il momento del rinnovo si può riscrivere, tramite \(\exp(0.008372)\), come 1.0084071 che coincide con l’ odds ratio(OR) del rinnovo (o fattore di rischio) tra coloro che hanno un incremento unitario sulla variabile considerata e l’ esito del rinnovo. Quindi un aumento di 1 giorno su questa variabile (si traduce in ottenere telefonate relativamente prima alla data di scadenza) comporta un aumento del OR pari 0.8% (\((\exp(0.008372)-1)*100\)) .Quindi, considerando l’ impatto di solo questa variabile, un anticipo di 10 giorni ha un effetto di aumento di circa il 10% sulla ragione di scommessa del rinnovo rispetto al non rinnovo.
Al contrario gli utenti che aumentano di un giorno l’intervallo tra una chiamata e la successiva hanno un fattore di rischio 0.9903192 e cioè, a questa variazione unitaria della variabile intervallo, è associata una diminuzione del rapporto tra ragioni di scommessa quasi del 1% a sfavore del rinnovo. In termine più discorsivi si può affermare che si è disposti a “scomettere meno” sul rinnovo rispetto al non rinnovo nella situazione in cui aumenta la variabile intervallo tra le chiamate.
Adesso analizziamo le dinamiche che intercorrono tra l’ evento rinnovo e i dati sulle fatture a disposizione. Ricordando che agisce un filtro temporale di fondo. Per quanto riguarda l’ importo medio delle fatture troviamo una significatività della relazione con associazione positiva, anche se lieve. I risultati del modello stimato di seguito:
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | 0.325752 | 0.243246 | 1.339186 | 0.180510 |
| Media_Fattura | 0.000795 | 0.000316 | 2.518008 | 0.011802 |
Per questa metrica il valore del fattore di rischio è pari a 1.0007953.In questo caso avendo nei dati clienti senza fatturato è possibile utlizzare al posto dell’ importo 4 categorie di clienti. Il confronto per ogni categoria è fatto sulla categoria dei clienti che non hanno registrato fatture nel periodo considerato (baseline). I risultati dei coefficienti stimata sono i seguenti:
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | −0.780159 | 0.364109 | −2.142649 | 0.032141 |
| categoria_fattFino_300 | 2.529358 | 0.652728 | 3.875057 | 0.000107 |
| categoria_fattDa_300_a_1100 | 2.123893 | 0.585423 | 3.627962 | 0.000286 |
| categoria_fattSopra_1100 | 2.689701 | 0.647774 | 4.152220 | 0.000033 |
Si noti, per prima cosa, l’ evidente significatività di tutti i coefficienti. Questo ci indica che, con i dati disponibili, più che la variazione del livello di fatturato influisce sul rinnovo il passaggio da non fatturare a fatturare, il che è, ovviamente, sensato a livello logico.
Per esempio, se consideriamo il coefficiente evidenziato, nel caso in cui un clienti passi dalla categoria Zero fatturato alla categoria di coloro che rientrano nella fascia 300-1100 di fatturato, il rapporto tra le ragioni di scommessa, aumenta a favore del rinnovo del 733%.
Anche per il conteggio delle fatture risulta significativa la relazione ed ogni fattura aggiuntiva comporta un incremento del odds ratio del 5.5%.
Infine valutiamo anche la media, per ogni cliente, dei giorni che passano tra le fatture e la data di rinnovo. Tutti i valori di questo indicatore sono negativi ( per via di come si ha impostato il filtro sulle date fatture), quindi si può intenderla come tempo medio di anticipo rispetto alla data di decisione sul rinnovo. Il modello ci indica:
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | −0.041624 | 0.304486 | −0.136702 | 0.891266 |
| Media_delta | −0.019326 | 0.005930 | −3.258956 | 0.001118 |
Il valore stiamto del coefficiente è significativo e con segno negativo indicandoci che un aumento medio di 1 giorno (avere fatture temporalemente piu vicine al momento del rinnovo ) comporta una diminuzione del rapporto tra odds del -2 %.
Per ognuna delle variabili analizzate sopra visualizziamo la loro distribuzione condizionata al gruppo di utenti che poi ha rinnovato l’ iscrizione (in verde) e al gruppo di utenti che non hanno poi rinnovato (in rosso):
Come si può notare questi grafici rispettano le associazioni positive o negativa trovate nei risultati precedenti. Per esempio, nel primo grafico vediamo che il gruppo di utenti che non hanno rinnovato in media ha dei giorni medi tra una chiamata e la successiva introno al 50 mentre coloro che rinnovano intorno ai 10 giorni, sintomo, forse, di un utilizzo maggiore del servizio.
Si nota inoltre, nel grafico D, che coloro che rinnovano in media emettono fattura nei 2 mesi precedenti al rinnovo (picco verde intorno al valore -60) mentre il gruppo rosso ha, in meida, fatture più ravvicinate alla data di scadenza dell’ abbonamento.
In queste sezione di analisi grafiche, anche se non completamente legata all’ analisi delle variabili fatta fino ad ora, si riporta una visualizzazione che permette di avere una panoramica globale delle comunicazione tra abbonati e consulenti:
Ogni nodo blu rappresenta un operatore, mentre i nodi identificati da un
numero sono i clienti che a loro volta vengono distinti con colore verde
se hanno rinnovato l’ abbonamento, altrimenti con colore rosso. Ogni
linea rappresenta un chiamata intercorsa tra l’ operatore e l’ utente.
Le dimensione di ciascun nodo dipendono da quante chiamate sono ad esso
collegate.
Da questo grafico risalta subito il notevole numero di chiamate dell’ operatore numero 70 e i diversi cliente che gestice.
Inoltre un vantaggio di questo tipo di visualizzazione è che operatori (e clienti) vicini a livello di spazio sono effettivamente “vicini” anche in termini di rete di chiamate intercorse. Per esempio l’ operatore 24 a livello di clienti raggiunti e quantità di chiamate è molto simile all’ operatore 70. Mentre, al contrario, l’ operatore 48 gestisce in autonomia il suo gruppo di clienti.
Da questa prima analisi il driver che sembra più legato alla decisione dell’ utente di rinnovare è legato al fatturato. In particolare coloro che rinnovano (si noti il grafico B sopra) hanno una distribuzione di fatture più stabile sia a livello di importo (la linea verde è meno oscillante) che una manifestazione finanziaria più antecedente alla data in cui devono decire se rinnovare. Sembra che quindi gestiscano un business più stabile e duraturo. Tutto ciò trova conferma anche nell’ associazione positiva emersa con il dato sul conteggio delle fatture.
Da questo punto di vista, seppure queste dinamiche non sono appannaggio esclusivo dei consulenti e/o di Operations, è possibile fornire un supporto extra ai clienti per la quale si stanno registrando dei livelli di fatturato basso o molto altalenante magari con riferimento al fatturato del’ anno precedente se era già cliente.
Per quanto riguarda le comunicazione tra consulenti e utenti, per prima cosa, l’ analisi svolta ci suggerisce che coloro che rinnovano hanno una frequenza temporale maggiore tra un telefonata e l’ altra. Compatibilmente con le esigenze del cliente, si potrebbe cercare di incentivare delle chiamate per utenti che non ne richiedono da un pò. Si potrebbe cercare di portare il livello dai 50 gg attuali medi verso i 15 gg che caratterizzano coloro che poi hanno rinnovato.In questo senso si potrebbe fare una promozione mirata per alcuni clienti con una consulenza gratuita. Per capire dove collocare queste telefonate l’ analisi ci suggerisce che fissarla troppo vicino alla data di decisione del rinnovo dell’ abbonamento non è associato ad una maggiore probabilità di rinnovo.
Se invece analizziamo il network plot Operations potrebbe indirizzare una più equa suddivisione delle chiamate per ciascun operatore. O meglio, potrebbe occupare operatori che gestiscono gli stessi clienti verso clienti più isolati e raggiunti meno da altri operatori. In generale sulla base di questo grafico si potrebeb predisporre un tracciamento temporale e ricavare dei KPI che descrivono le caratteristiche dei soggeti che partecipano in questa rete di relazioni.
Infine si è allenato un modello di previsione basato su questi dati e questi indicatori. Tale strumento, dopo un’ eventuale fase di fine tunining, può essere messo in produzione per offire a Operations uno strumento predittivo che fornisce una probabilità di rinnovo in base alla caratteristiche note di un utente. Potenzialmente anche da utilizzare in diversi momenti per capire la progressione di utente rispetto alla sua decisione futura di rinnovo.
Questo modello utilizza l’ algoritmo Random Forest che a sua volta si base sui Decision Trees. Questo perchè in fase di confronto ha mostrato migliori performance rispetto alla regressione logistica, utilizzata in precedenza per testare la significatività delle realazioni. L’ algoritmo random forest ,tipicamente, ha una migliore capacità di fare previsioni in presenza di outlier e/o distribuzione non simmetriche. Inoltre permette di catturare meglio relazioni non lineari con la variabile target e effetti di interazioni tra le variabili esplicative.
Per esempio se volessimo fare una stima per un utente che presenta queste caratteristiche:
| user_id | Giorno_Rinnovo | conta_chiamate | media_chiamata_minuti | media_after_avail_ore | conta_operatori | media_mese | Media_Intervallo_Chiamate | Media_Fattura | Conta_Fatture | Media_delta | Before_due_date | Media_gg_chiamate_al_rinnovo |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 999 | 2 | 10 | 25 | 3.5 | 2 | 2.4 | 15 | 1420 | 38 | -30 | 0 | 320 |
Il risultato del modello sarà:
| Probabilità_NON_Rinnovo | Probabilità Rinnovo |
|---|---|
| 0.07 | 0.93 |