ANALISI DEL CHURN

Scoprire cosa predice il churn con i dati dei tuoi clienti

Quali attributi ed eventi raccogliere, come fare analisi per coorte e di rischio relativo, ed evitare falsi positivi e numeri inventati dall'IA.

Pubblicato il 9 min di lettura

Ogni business in abbonamento ha una teoria sul perché i clienti se ne vanno. «I clienti dalle campagne a pagamento fanno più churn.» «I team che non invitano un secondo utente non restano mai.» Alcune di queste teorie sono giuste. Molte no, e l’unico modo per saperlo è verificarle sui tuoi dati.

Questa guida spiega cosa raccogliere, come confrontare i gruppi con analisi per coorte e di rischio relativo, come evitare le trappole statistiche che fanno sembrare il rumore casuale un’intuizione, e come usare l’IA per spiegare i risultati senza lasciarle inventare numeri.

Passo 1: decidi cosa significa «churn»

Prima di qualsiasi analisi, metti per iscritto una definizione. Per esempio:

  • In churn: abbonamento disdetto o terminato per mancato pagamento, e non riattivato entro 30 giorni.
  • Finestra di osservazione: i primi 90 giorni del cliente, o un periodo di calendario.
  • Chi conta: solo i clienti paganti, o anche le prove (analizzale a parte; la conversione delle prove è un’altra domanda).

Separa il churn volontario (il cliente ha disdetto) da quello involontario (un pagamento è fallito e non è mai stato recuperato). Hanno cause diverse. Una carta prepagata e un utente deluso non sono lo stesso problema. Il nostro articolo sul churn involontario tratta il lato dei pagamenti.

Passo 2: raccogli gli attributi e gli eventi giusti

Ti servono dati che esistevano prima che il cliente facesse churn e su cui potresti agire. Un buon insieme di partenza:

Campo Tipo Valori d’esempio Perché conta
signup_date Attributo 2026-06-12 Coorti; stagionalità
signup_source Attributo google_ads, facebook_ads, organic, referral Qualità del canale, non solo volume
plan Attributo starter, team Adeguatezza tra piano e bisogno
seats Attributo 1, 5, 20 Gli account con una sola postazione spesso si comportano diversamente
company_size / country / industry Attributo 11-50, DE, agency Adeguatezza del segmento
trial_length_days Attributo 7, 14 Se le prove più lunghe aiutano
coupon_at_signup Attributo LAUNCH50, nessuno Clienti acquisiti con uno sconto
payment_method Attributo card_credit, card_prepaid, sepa, link Rischio di churn involontario
activated_at Evento / data 2026-06-14 Ha raggiunto il primo momento di valore?
last_active_at Attributo 2026-09-30 Quanto è recente l’utilizzo
key_feature_used Conteggio di eventi reports_created: 4 Profondità d’uso
support_tickets Conteggio 0, 3 Attrito
nps_score Attributo da 0 a 10 Soddisfazione dichiarata

Qualche nota per farlo bene:

  • Definisci l’attivazione in modo concreto. «Ha creato un primo progetto e invitato un collega entro 7 giorni» è misurabile. «Ha ottenuto valore» no.
  • Registra i valori a una data precisa. Se confronti il last_active_at dei clienti in churn con quello dei clienti attivi, il gruppo in churn sembrerà inattivo perché ha fatto churn. Non ti dice nulla. Usa un punto fisso, come l’attività nei primi 14 giorni.
  • Tieni le categorie larghe. Venti fonti di iscrizione con tre clienti ciascuna non si possono analizzare. Raggruppale (ricerca a pagamento, social a pagamento, organico, referral, altro).
  • Dati sul metodo di pagamento da Stripe. Gli oggetti carta in Stripe includono un campo funding (credit, debit, prepaid o unknown) (riferimento API di Stripe), che puoi usare senza gestire numeri di carta.
  • Attenzione alla privacy. Raccogli ciò che ti serve, documenta perché e rispetta la tua privacy policy e la legge locale.

Passo 3: costruisci le coorti e confronta i tassi di churn

L’analisi utile più semplice confronta i tassi di churn tra gruppi che differiscono per un solo attributo.

Prendi tutti gli iscritti in un periodo abbastanza lungo perché il churn emerga (per esempio, iscritti nel primo trimestre, osservati per 90 giorni). Per ogni valore di un attributo, conta i clienti e i clienti in churn.

Esempio illustrativo (dati non reali):

Fonte di iscrizione Clienti In churn entro 90 giorni Tasso di churn
Organico 400 60 15%
Social a pagamento 200 50 25%
Referral 100 10 10%

Rischio relativo

Il rischio relativo (RR) confronta il tasso di churn di ogni gruppo con una base di riferimento. Usando l’organico come riferimento:

  • Social a pagamento: 25% / 15% = RR 1,67. I clienti dai social a pagamento hanno fatto churn circa 1,7 volte più spesso.
  • Referral: 10% / 15% = RR 0,67. I clienti da referral hanno fatto churn circa un terzo in meno.

Il rischio relativo è facile da spiegare a chiunque in azienda, ed è il suo principale vantaggio rispetto a modelli più complessi. Vedi rischio relativo per la definizione formale.

Passo 4: verifica se la differenza è reale

Una differenza in una tabella non è automaticamente una scoperta. Con gruppi piccoli, il caso da solo produce grandi differenze.

Dimensione del campione

Guarda i conteggi, non solo le percentuali. Se i social a pagamento avessero avuto 20 clienti e 5 in churn, il loro tasso del 25% potrebbe facilmente essere 10% o 45% con un altro mese di iscrizioni. Una regola pratica: diffida di qualsiasi gruppo con meno di qualche decina di clienti o meno di circa dieci eventi di churn, e dichiaralo nel report.

Intervalli di confidenza

Riporta un intervallo, non solo un numero. Un intervallo di confidenza al 95% per un rischio relativo ti dice l’insieme di valori compatibili con i tuoi dati. Con la tabella illustrativa qui sopra, l’intervallo per i social a pagamento risulta circa da 1,2 a 2,3, quindi il rischio più alto è abbastanza chiaro. Se fosse da 0,8 a 3,4, non sapresti se i social a pagamento siano davvero peggiori. Il metodo standard usa il logaritmo del rischio relativo; la maggior parte delle librerie statistiche lo calcola per te.

Una versione rapida in Python, per un confronto:

import math

def relative_risk(a_churn, a_total, b_churn, b_total, z=1.96):
    rr = (a_churn / a_total) / (b_churn / b_total)
    se = math.sqrt(1/a_churn - 1/a_total + 1/b_churn - 1/b_total)
    low = math.exp(math.log(rr) - z * se)
    high = math.exp(math.log(rr) + z * se)
    return rr, low, high

# Paid social vs organic, illustrative numbers from the table above
print(relative_risk(50, 200, 60, 400))  # about (1.67, 1.19, 2.33)

Confronti multipli

È la trappola in cui cade la maggior parte delle dashboard. Se testi 40 attributi con un livello di significatività del 5%, devi aspettarti che circa 2 sembrino «significativi» per puro caso, anche se nessuno conta. Più tagli i dati, più scoperte false ottieni.

Come gestirlo:

  • Decidi prima una breve lista di ipotesi, e tratta tutto il resto come esplorazione.
  • Correggi per il numero di test. La correzione di Bonferroni (dividi la soglia di significatività per il numero di test) è semplice e severa. La procedura di Benjamini-Hochberg controlla il tasso di false scoperte ed è meno conservativa.
  • Conferma su dati nuovi. Trova uno schema negli iscritti del primo trimestre, poi verifica se vale per il secondo. Una scoperta che si replica merita un’azione.

Passo 5: correlazione, non causalità

Anche un rischio relativo solido e replicato ti dice che un attributo va insieme al churn. Non ti dice che l’attributo causa il churn.

Modi comuni in cui va storto:

  • Confondimento. I clienti dai social a pagamento potrebbero fare più churn perché sono soprattutto freelance che lavorano da soli, e i freelance da soli fanno più churn indipendentemente dal canale. Verifica la relazione all’interno dei segmenti (social a pagamento contro organico, solo tra gli account con una postazione).
  • Causalità inversa. I clienti che aprono molti ticket di supporto potrebbero fare più churn, oppure i clienti che già non riescono a ottenere valore aprono più ticket.
  • Selezione. I clienti che hanno scelto il piano annuale sono già più convinti. La fatturazione annuale potrebbe non causare la retention; potrebbero essere i clienti convinti a scegliere la fatturazione annuale.

Il modo per stabilire una causa è un esperimento: cambia una cosa per un gruppo casuale e confronta. Per esempio, se l’attivazione sembra predire la retention, testa una modifica dell’onboarding che aumenti l’attivazione per una metà casuale dei nuovi iscritti e guarda se la retention segue. La nostra guida al test delle offerte di retention applica la stessa logica del gruppo di controllo alle offerte del flusso di disdetta.

Passo 6: trasforma le scoperte in azioni

Scoperta (esempio) Azione possibile Come verificare
Gli iscritti dai social a pagamento fanno più churn Cambiare targeting o landing page; confrontare le coorti La coorte social a pagamento del trimestre successivo
Gli account con una postazione fanno più churn Invito ad aggiungere un collega durante l’onboarding A/B test dell’invito
Chi non è attivato entro il giorno 7 fa più churn Promemoria ai giorni 3 e 5, aiuto alla configurazione A/B test dei promemoria
Le carte prepagate falliscono di più ai rinnovi Chiedere un metodo di pagamento di riserva, promemoria anticipati Confrontare il tasso di rinnovi falliti
Un NPS basso precede la disdetta Ricontattare entro una settimana chi dà punteggi bassi Confrontare il churn tra ricontattati e non

Usare l’IA per spiegare i risultati, in sicurezza

I modelli linguistici sono bravi a trasformare una tabella di risultati in un riassunto chiaro e in una lista di idee. Sono pessimi in aritmetica e producono numeri plausibili ma sbagliati. La divisione sicura è:

  1. Calcola ogni numero nel codice. Tassi di churn, rischi relativi, intervalli, dimensioni dei campioni e p-value corretti vengono da uno script deterministico o da una query SQL.
  2. Dai al modello solo i risultati calcolati, come dati strutturati, e chiedigli di spiegarli.
  3. Vieta numeri nuovi. Istruisci il modello a usare solo cifre presenti nell’input, e controlla l’output: ogni numero nel riassunto deve corrispondere a un numero nei risultati.
  4. Richiedi le avvertenze. Chiedigli di segnalare campioni piccoli, intervalli ampi e che le scoperte sono correlazioni.
  5. Tieni una persona nel processo per tutto ciò che cambia prezzi, targeting o prodotto.

Una breve struttura di prompt che funziona:

You are given churn analysis results as JSON. Each row has an attribute,
a value, customers, churned, relative_risk, ci_low, ci_high and
adjusted_p. Explain the three strongest findings for a non-technical
founder. Use only numbers that appear in the JSON. Mention sample size
for each finding. Say these are correlations, not causes. Suggest one
experiment per finding.

Checklist

  • Churn definito per iscritto, volontario e involontario separati.
  • Attributi registrati a una data fissa.
  • Categorie raggruppate così che ognuna abbia abbastanza clienti.
  • Rischio relativo con intervalli di confidenza per ogni confronto.
  • Dimensioni dei campioni mostrate accanto a ogni risultato.
  • Correzione per confronti multipli, o risultati confermati su dati nuovi.
  • Fattori di confondimento verificati all’interno dei segmenti.
  • I riassunti dell’IA usano solo numeri calcolati.
  • Le scoperte principali trasformate in esperimenti.

Come aiuta NoChurn

Con i dati personalizzati di NoChurn, invii qualsiasi attributo cliente o evento di utilizzo tramite l’API, in batch, via CSV o con l’SDK. NoChurn calcola le statistiche nel codice (rischio relativo, dimensione del campione e confidenza) per trovare quali attributi vanno insieme al churn, poi usa l’IA per spiegare i risultati e suggerire azioni, indicate come correlazione, non causa. Gli stessi dati, insieme a metodo di pagamento e fonte di iscrizione, alimentano il churn score assegnato a ogni cliente all’iscrizione. Vedi il riferimento API e i prezzi.

PROMPT

Read https://www.nochurn.sh/llms.txt,
then follow https://www.nochurn.sh/docs/quickstart/
to add NoChurn to this app. Use a test key
(nc_test_…) until I say we go live.

Smetti di perdere ricavi.

  • Gratis fino a $300 MRR
  • Nessuna carta richiesta
  • Attivo in 10 minuti
  • Mai una quota di ciò che recuperiamo