◔ Analytics e misurazione

Analisi per coorti: misurare la retention senza farsi ingannare

Cos'è una coorte, come si legge una tabella di retention, perché le medie complessive ingannano e come usare le coorti per valutare un sito o un servizio.

Il numero di utenti attivi di un servizio online può crescere per mesi mentre il servizio, in realtà, peggiora. Basta che i nuovi iscritti arrivino più velocemente di quanto se ne vadano i vecchi. Le metriche complessive non mostrano questa dinamica. L'analisi per coorti sì, perché separa le persone in base al momento in cui sono arrivate e segue ciascun gruppo nel tempo.

Cos'è una coorte

Una coorte è un gruppo di utenti che condividono un evento iniziale nello stesso periodo. La coorte più comune è quella di acquisizione: tutti gli iscritti di gennaio, tutti quelli di febbraio, e così via. Per ogni coorte si misura quanti sono ancora attivi dopo una settimana, un mese, tre mesi.

L'evento iniziale e la definizione di «attivo» vanno scelti con cura:

  • per una newsletter, l'evento iniziale è l'iscrizione e «attivo» può significare aver aperto almeno un messaggio nel mese;
  • per un'applicazione web, l'evento iniziale è la registrazione e «attivo» l'aver svolto l'azione principale, non solo l'accesso;
  • per un negozio online, l'evento iniziale è il primo acquisto e «attivo» un acquisto successivo.

La tabella di retention

Il risultato si rappresenta in una tabella triangolare. Ogni riga è una coorte, ogni colonna un periodo dopo l'ingresso.

Coorte Iscritti Mese 1 Mese 2 Mese 3
Gennaio 500 42% 31% 27%
Febbraio 620 40% 29% 25%
Marzo 800 35% 24% —
Aprile 950 30% — —

La tabella si legge in tre direzioni:

  • lungo una riga: come cala nel tempo l'attività di una coorte. Di solito il calo è forte all'inizio e poi si stabilizza;
  • lungo una colonna: se le coorti più recenti trattengono meglio o peggio delle precedenti;
  • lungo una diagonale: gli effetti di un evento avvenuto in un mese preciso, che colpisce coorti diverse a distanze diverse.

Nell'esempio le iscrizioni crescono ogni mese, ma la retention al primo mese scende dal 42 al 30 per cento. Il totale degli attivi sale, eppure ogni nuova coorte è meno coinvolta della precedente. Forse le nuove campagne portano persone meno interessate, forse un cambiamento nel prodotto ha peggiorato l'esperienza iniziale.

La curva che si appiattisce

L'informazione più preziosa è dove la curva di una coorte si stabilizza. Se dopo tre mesi resta attivo un quarto degli iscritti e quel valore non scende più, il servizio ha un nucleo di persone che ne trovano valore. Se invece la curva continua a scendere verso zero, il servizio perde tutti col tempo e la crescita dipende interamente dalle nuove acquisizioni.

Coorti oltre l'acquisizione

Le coorti si possono costruire su altri criteri:

  • canale di provenienza: chi arriva da ricerca organica resta più a lungo di chi arriva da una promozione?
  • prima azione compiuta: chi completa il profilo il primo giorno torna più spesso?
  • versione del prodotto: chi si è iscritto dopo il nuovo onboarding si comporta diversamente?

Quest'ultimo uso è particolarmente utile: confrontare coorti prima e dopo una modifica è un modo semplice per osservarne gli effetti nel tempo, anche se non sostituisce un test controllato.

Cosa serve per farla

L'analisi per coorti richiede di riconoscere la stessa persona nel tempo. Per questo funziona bene con utenti registrati, iscritti a una lista o clienti con un identificativo interno, mentre è poco adatta agli analytics anonimi senza cookie, che per scelta non collegano le visite di giorni diversi.

Nel mio lavoro preferisco calcolarla direttamente sul database dell'applicazione, con una query che raggruppa gli utenti per mese di registrazione e conta le attività nei mesi successivi. In questo modo i dati non devono passare da uno strumento di terze parti e la definizione di «attivo» resta sotto controllo.

SELECT date_trunc('month', u.creato_il) AS coorte,
       date_trunc('month', a.data) AS mese_attivita,
       count(DISTINCT u.id) AS attivi
FROM utenti u
JOIN attivita a ON a.utente_id = u.id
GROUP BY 1, 2
ORDER BY 1, 2;

Errori da evitare

  • Coorti troppo piccole: con trenta persone per coorte, le percentuali oscillano molto per puro caso.
  • Periodi incompleti: l'ultimo mese non è ancora finito e mostra valori artificialmente bassi.
  • Definizione di attivo troppo larga: contare un semplice accesso automatico gonfia la retention.
  • Confondere crescita e salute: più utenti attivi in totale non significa che le persone restino più a lungo.

In sintesi

  • Una coorte raggruppa utenti con lo stesso evento iniziale nello stesso periodo.
  • La tabella di retention si legge per righe, per colonne e per diagonali.
  • Il punto in cui la curva si appiattisce indica se esiste un nucleo stabile di utenti.
  • Le coorti richiedono di riconoscere la stessa persona nel tempo, quindi utenti registrati o clienti.
  • Evita coorti troppo piccole, periodi incompleti e definizioni di attività troppo larghe.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche