Retention e analisi di coorte nel prodotto
Misurare e migliorare la retention con analisi di coorte, metriche di ritorno e curve di decadimento.
Cosa imparerai
- Comprendere il problema analitico e il contesto decisionale
- Applicare esempi, metriche e controlli a casi reali
Collegamenti
Retention e analisi di coorte nel prodotto
Acquisire utenti è facile da celebrare; farli tornare perché trovano valore è la parte che decide la salute del prodotto. Retention e analisi di coorte nel prodotto mostra come leggere ritorno, frequenza e valore nel tempo senza farsi distrarre dalla crescita in ingresso.
Una scena da cui partire
Leggi questa lezione come base della crescita sostenibile. Retention non è una metrica unica: cambia per coorte, segmento, caso d’uso e momento del lifecycle.
- Contesto: Quale decisione rende utile il concetto?
- Metodo: Quale conflitto tra team o metriche devi anticipare?
- Applicazione: Quale frase useresti per spiegarlo in riunione?
Decostruire la Retention: Oltre la Metrica Grezza
Parlare di “retention” senza specificarne la metodologia di calcolo è come parlare di “velocità” senza indicare se si tratti di chilometri orari o metri al secondo. La scelta della metrica non è un dettaglio tecnico, ma una decisione strategica che modella la nostra comprensione del comportamento utente. Esistono tre paradigmi principali per misurare il ritorno degli utenti, ciascuno con i suoi punti di forza e i suoi contesti applicativi ideali.
La prima, e più rigida, è la Retention a Punto Fisso (Day N Retention). Questa metrica risponde a una domanda estremamente precisa: “L’utente è tornato attivo esattamente nel giorno N (o settimana N, o mese N) dopo la sua prima interazione?”. Se un utente si iscrive lunedì e torna mercoledì, la sua retention D1 sarà 0%, ma la D2 sarà 100%. Questa granularità la rende molto sensibile al “rumore” e inadatta per una visione d’insieme. Un utente di un’app di food delivery che ordina ogni due giorni potrebbe apparire come non-trattenuto nei giorni dispari. Tuttavia, la sua utilità emerge nell’analisi di prodotti con cicli di utilizzo prevedibili e rigidi. Un software di gestione delle buste paga, per esempio, si aspetta un’attività concentrata negli ultimi giorni del mese; analizzare la retention M1 in quel preciso intervallo può rivelare la salute del ciclo di business principale.
Il secondo approccio, oggi lo standard de facto per le dashboard strategiche, è la Retention Progressiva (Unbounded Retention). La domanda qui è più flessibile e orientata al business: “Dalla sua iscrizione, l’utente è tornato attivo almeno una volta entro il giorno N?”. Questa definizione cattura l’essenza della relazione con l’utente: è ancora “vivo” nel nostro ecosistema? Non importa se un abbonato a Spotify ascolta musica il martedì o il giovedì della sua prima settimana; ciò che conta è che abbia utilizzato il servizio. Questa metrica produce curve più stabili e interpretabili, ideali per comunicare la salute del prodotto a livello direzionale. Misura l’esistenza di un legame continuativo, per quanto sporadico, tra l’utente e il valore offerto.
Infine, la Retention a Finestra Mobile (Bounded Retention) offre un compromesso, analizzando l’attività in specifici intervalli di tempo successivi all’acquisizione. Per esempio, possiamo chiederci: “Quale percentuale di utenti è tornata attiva durante la loro seconda settimana (giorni 7-13)? E durante la terza (giorni 14-20)?”. Questo metodo è perfetto per prodotti i cui cicli di utilizzo non sono né giornalieri né completamente aperiodici. Un’app di fitness potrebbe voler misurare la retention settimanale per vedere se gli utenti stabiliscono una routine. Una piattaforma di e-commerce come Zalando potrebbe analizzare la retention trimestrale, allineandola con i cicli di acquisto stagionali. La scelta, quindi, non dipende da una presunta superiorità tecnica di un metodo, ma dalla domanda a cui si cerca di rispondere e dalla natura intrinseca del prodotto che si sta analizzando.
L’Anatomia di una Coorte: Dalla Teoria all’SQL
Un’analisi di coorte è, in essenza, un esperimento naturale. Raggruppiamo gli utenti in base a un attributo temporale condiviso, solitamente la data di iscrizione (es. “la coorte di Maggio 2024”). Questi utenti hanno vissuto la stessa versione del prodotto, la stessa campagna di marketing al momento del loro arrivo e le stesse condizioni di mercato iniziali. Confrontare la coorte di Maggio 2024 con quella di Maggio 2023 ci permette di isolare l’impatto dei cambiamenti che abbiamo introdotto nel prodotto o nella strategia in quell’anno. La visualizzazione classica di questa analisi è una matrice triangolare, o “heatmap”, dove ogni riga rappresenta una coorte e ogni colonna rappresenta un periodo di tempo trascorso dalla data di acquisizione (Settimana 0, Settimana 1, Settimana 2, etc.).
Per costruire questa matrice, partiamo dai dati grezzi: una tabella di utenti con la data di registrazione e una tabella di eventi con l’ID utente e il timestamp di ogni azione. L’obiettivo è calcolare, per ogni coorte e per ogni periodo successivo, quanti utenti unici di quella coorte sono rimasti attivi. Il seguente codice SQL, scritto per un dialetto come PostgreSQL o BigQuery, realizza precisamente questo calcolo.
-- Step 1: Definire le coorti basate sulla data di prima registrazione
WITH user_cohorts AS (
SELECT
user_id,
-- Tronca la data di registrazione all'inizio della settimana per definire la coorte settimanale
DATE_TRUNC('week', signup_date)::DATE AS cohort_week
FROM
users
),
-- Step 2: Associare ogni attività utente alla sua coorte e calcolare il periodo di attività
user_activity AS (
SELECT
uc.user_id,
uc.cohort_week,
-- Calcola la differenza in settimane tra l'attività e l'inizio della coorte
FLOOR(DATE_PART('day', e.event_timestamp - uc.cohort_week) / 7) AS week_number
FROM
user_cohorts uc
JOIN
events e ON uc.user_id = e.user_id
WHERE
e.event_timestamp >= uc.cohort_week -- Considera solo attività post-registrazione
),
-- Step 3: Contare gli utenti attivi unici per ogni coorte e periodo
cohort_activity AS (
SELECT
cohort_week,
week_number,
COUNT(DISTINCT user_id) AS active_users
FROM
user_activity
GROUP BY
1, 2
),
-- Step 4: Calcolare la dimensione iniziale di ogni coorte
cohort_size AS (
SELECT
cohort_week,
COUNT(DISTINCT user_id) AS total_users
FROM
user_cohorts
GROUP BY
1
)
-- Step 5: Unire i dati e calcolare la percentuale di retention
SELECT
ca.cohort_week,
cs.total_users,
ca.week_number,
ca.active_users,
-- Calcola la percentuale di retention con due decimali
ROUND((ca.active_users::NUMERIC / cs.total_users) * 100, 2) AS retention_percentage
FROM
cohort_activity ca
JOIN
cohort_size cs ON ca.cohort_week = cs.cohort_week
ORDER BY
ca.cohort_week DESC, ca.week_number ASC;
Il risultato di questa query è una tabella “lunga”, pronta per essere visualizzata. Per esempio, una riga potrebbe indicare che per la coorte del 2024-05-06, che aveva 10,000 utenti totali, alla week_number 4 sono stati registrati 2,500 utenti attivi, risultando in una retention_percentage del 25.00%. La lettura di questa matrice rivela pattern potenti: un miglioramento diagonale (colori più “caldi” nelle celle più recenti a parità di settimana) indica che le recenti modifiche al prodotto stanno avendo un impatto positivo. Un calo improvviso su una riga specifica può segnalare un’interruzione del servizio o una campagna di acquisizione di bassa qualità in quella settimana. Questa non è solo una tabella di numeri; è la biografia del vostro prodotto, scritta nel linguaggio dei dati.
La Curva di Retention e il “Sorriso” di Netflix
Ogni coorte genera una propria curva di retention, un grafico che mostra la percentuale di utenti attivi nel tempo. Tipicamente, questa curva presenta un decadimento iperbolico: un calo molto rapido nelle prime ore o giorni, seguito da una graduale stabilizzazione. Il calo iniziale rappresenta gli “esploratori”: utenti che provano il prodotto per curiosità ma non trovano un valore sufficiente per restare. La parte della curva che si appiattisce, il cosiddetto punto di stabilizzazione (flattening point), è molto più interessante. Rappresenta il nucleo di utenti fedeli, coloro per cui il prodotto ha risolto un problema reale o soddisfatto un bisogno ricorrente. Il livello a cui la curva si stabilizza, noto come Terminal Retention Rate, è un indicatore diretto del product-market fit. Un prodotto senza product-market fit vedrà la sua curva di retention tendere inesorabilmente verso lo zero. Un prodotto di successo, invece, si stabilizzerà a un livello positivo. Per un’app di social media, una terminal retention mensile del 20-30% può essere considerata un buon risultato; per un servizio SaaS B2B, ci si aspetta valori superiori al 70-80%.
Tuttavia, il modello di puro decadimento non è universale. Esistono prodotti la cui curva di retention, dopo un calo iniziale, inizia a risalire, formando quello che è noto come il “sorriso della retention”.
Caso Studio: Netflix e l’Aumento del Valore nel Tempo
Netflix è l’esempio paradigmatico di questo fenomeno. Un nuovo utente si iscrive, esplora il catalogo e magari guarda qualche film. Nei primi mesi, il rischio di abbandono (churn) è più alto. Ma con il passare del tempo, accadono diverse cose. L’algoritmo di raccomandazione impara i gusti dell’utente, proponendo contenuti sempre più pertinenti. L’utente costruisce una “watchlist”, un investimento personale nella piattaforma. Si abitua all’interfaccia e ai profili personalizzati per la famiglia. Il valore percepito del servizio non è statico, ma aumenta con l’uso. Di conseguenza, la probabilità che un utente del Mese 12 abbandoni il servizio è in realtà inferiore a quella di un utente del Mese 3. Analisi sulle coorti di Netflix del periodo 2016-2018 hanno mostrato che la retention a 12 mesi si attestava intorno al 91%, ma per le stesse coorti, la retention tra il 24° e il 36° mese saliva, indicando una probabilità di churn annuale che diminuiva nel tempo per gli utenti più longevi. Questo “sorriso” è il segnale di un prodotto con forti effetti di rete o di personalizzazione, dove il costo di cambiare piattaforma (switching cost) non è solo monetario ma anche funzionale e psicologico. L’obiettivo di un product manager non è solo appiattire la curva, ma, se possibile, farla sorridere.
Segmentazione Strategica: Il Caso Studio di Revolut
Una metrica di retention aggregata, per quanto calcolata con precisione, è un’astrazione pericolosa. Può nascondere realtà opposte e portare a decisioni errate. Immaginate che la retention complessiva sia stabile al 40%. Questo potrebbe essere il risultato di due segmenti: uno di utenti “power user” con una retention dell’80% in crescita, e uno di utenti “casual” con una retention del 20% in calo. La media del 40% non descrive nessuna delle due realtà e maschera sia un’opportunità (capitalizzare sui power user) sia una minaccia (l’emorragia di utenti casual). La segmentazione non è un’analisi opzionale; è il passaggio dalla diagnosi generica alla prescrizione chirurgica.
Le dimensioni di segmentazione più efficaci sono quelle che riflettono differenze nel comportamento o nell’intento dell’utente. Alcuni assi comuni includono:
- Canale di acquisizione: Gli utenti provenienti da un referral di un amico hanno spesso una retention più alta di quelli acquisiti tramite una campagna pubblicitaria su un social network.
- Geografia: Le abitudini di utilizzo e le alternative di mercato possono variare drasticamente tra paesi.
- Piattaforma (iOS vs. Android vs. Web): Spesso riflette differenze demografiche e di disponibilità a pagare.
- Comportamento iniziale: La segmentazione più potente è spesso quella basata sulle azioni compiute durante la prima sessione. Gli utenti che completano un “evento di attivazione” (es. aggiungere un amico su Facebook, creare una playlist su Spotify) mostrano tassi di retention da 3 a 5 volte superiori.
Caso Studio: Revolut e la Diversificazione del Valore
Revolut, la fintech globale, offre un esempio magistrale di come la segmentazione della retention possa guidare la strategia di prodotto. Nata principalmente come una carta per evitare le commissioni sul cambio valuta all’estero, l’azienda si è presto resa conto che questo caso d’uso, sebbene potente per l’acquisizione, generava una retention volatile. Un’analisi delle coorti del 2017-2018 avrebbe rivelato un quadro simile a questo:
- Coorte aggregata: Retention a 6 mesi del 55%.
- Segmento 1 (Solo cambio valuta): Utenti che si registravano, ordinavano una carta, la usavano per una vacanza di due settimane e poi diventavano inattivi. La loro retention a 6 mesi era drammaticamente bassa, intorno al 20%. Il prodotto era percepito come uno strumento monouso.
- Segmento 2 (Uso domestico): Utenti che, oltre al cambio valuta, iniziavano a usare Revolut per pagamenti peer-to-peer, split di bollette o per ricevere lo stipendio. La loro retention a 6 mesi schizzava oltre l’85%.
Questa analisi ha reso evidente la missione strategica: trasformare gli utenti del Segmento 1 in utenti del Segmento 2. L’intera evoluzione del prodotto Revolut può essere letta come una risposta a questa sfida. L’introduzione del trading di azioni e criptovalute, dei “Vaults” per il risparmio, delle carte per minorenni (Revolut <18) e dei conti business non erano semplici aggiunte di funzionalità. Erano tentativi deliberati di creare nuovi “ganci” per integrare Revolut nella vita finanziaria quotidiana dell’utente, aumentando la superficie di valore e, di conseguenza, la retention. Segmentare la retention ha permesso a Revolut di passare da un’ottima “travel card” a una vera e propria “super-app” finanziaria.
Laboratorio Pratico: Dalla Diagnosi all’Azione
La teoria e i casi studio forniscono la mappa, ma la vera competenza si costruisce mettendo le mani sui dati. In questa sezione, affronteremo tre esercizi progressivi che simulano il flusso di lavoro di un data analyst di prodotto, passando dal calcolo tecnico all’interpretazione strategica.
Esercizio 1: Calcolo della Matrice di Coorte (Diagnostico)
Dato un dataset events con colonne user_id, event_timestamp e un dataset users con user_id e signup_date, il vostro primo compito è calcolare la matrice di coorte mensile. Definite la coorte in base al mese di registrazione e calcolate la retention progressiva (unbounded) per i primi 6 mesi. Qual è la percentuale di retention al Mese 3 per la coorte che si è iscritta a Gennaio 2024? Questo esercizio verifica la vostra capacità di tradurre un requisito di business in una query SQL funzionante, simile a quella mostrata in precedenza ma adattata per una granularità mensile.
Esercizio 2: Formulazione di Ipotesi (Interpretativo) Analizzando la matrice prodotta, notate un dato anomalo: la coorte di Marzo 2024 mostra una retention al Mese 1 inferiore di 15 punti percentuali rispetto a tutte le coorti precedenti. La retention aggregata del prodotto ha subito un colpo. Il vostro compito è formulare tre ipotesi distinte, specifiche e verificabili che potrebbero spiegare questo calo. Esempi di ipotesi valide:
- Ipotesi di Prodotto: “Il rilascio della versione 3.5 dell’app a fine Febbraio ha introdotto un bug critico nel flusso di onboarding che ha impedito a una parte dei nuovi utenti di completare l’azione di attivazione.”
- Ipotesi di Marketing: “A Marzo è stata lanciata una nuova campagna di acquisizione su un canale (es. influencer marketing) che ha attratto un volume elevato di utenti a bassa intenzione, meno allineati con il nostro target.”
- Ipotesi Esterna: “Un nuovo concorrente ha lanciato un’offerta aggressiva a inizio Marzo, intercettando una quota dei nostri potenziali utenti più qualificati.” La qualità di un’analisi si misura non solo dalle risposte che fornisce, ma dalle domande che genera.
Esercizio 3: Validazione tramite Segmentazione e Visualizzazione (Sperimentale) Scegliete una delle vostre ipotesi (ad esempio, quella di marketing) e descrivete come la testereste. Il vostro compito è duplice:
- Descrivere la Query: Scrivete lo pseudo-codice o la logica di una query SQL che segmenti la coorte di Marzo 2024 per
acquisition_channel. L’obiettivo è confrontare la curva di retention degli utenti acquisiti tramite il “nuovo canale” rispetto a quelli provenienti da canali “storici” (es. ricerca organica). - Visualizzare i Risultati: Per comunicare efficacemente i vostri risultati, la visualizzazione è essenziale. Utilizzando Python con le librerie
pandaseseaborn, è possibile trasformare i dati di coorte in una heatmap intuitiva. Il codice seguente mostra come, partendo da un DataFrame con i dati di retention, si possa generare una visualizzazione chiara.
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# Simulare un DataFrame di output da una query SQL
# Colonne: cohort_month, month_number, retention_percentage
data = {
'cohort_month': ['2024-01', '2024-01', '2024-01', '2024-02', '2024-02', '2024-03'],
'month_number': [0, 1, 2, 0, 1, 0],
'retention_percentage': [100.0, 55.2, 45.8, 100.0, 56.1, 100.0]
}
retention_df = pd.DataFrame(data)
# Creare la matrice pivot per la heatmap
cohort_pivot = retention_df.pivot_table(
index='cohort_month',
columns='month_number',
values='retention_percentage'
)
# Configurare la visualizzazione
plt.figure(figsize=(12, 8))
sns.heatmap(
cohort_pivot,
annot=True,
fmt='.1f',
cmap='viridis',
linewidths=.5,
cbar_kws={'label': 'Retention (%)'}
)
plt.title('Matrice di Retention Mensile', fontsize=16)
plt.xlabel('Mesi dalla Registrazione', fontsize=12)
plt.ylabel('Coorte di Registrazione', fontsize=12)
plt.show()
Questo blocco di codice non solo produce un grafico, ma rappresenta il passo finale del ciclo analitico: trasformare dati complessi in una storia visiva comprensibile, che possa informare una decisione di business.
Riepilogo
Laboratorio ed esercizi
Metti in pratica quanto appreso con esercizi a difficoltà crescente. Lavora su un dataset reale — se non hai accesso al tuo data warehouse aziendale, usa dataset pubblici come Google Analytics Sample su BigQuery o il dataset E-Commerce di Kaggle.
Esercizio 1 — Implementazione base. Riproduci la query o il modello descritto nella lezione, adattandolo al tuo dataset. Verifica che i risultati siano coerenti con le metriche attese: se il totale non quadra con una query di controllo, c’è un problema di grain.
Esercizio 2 — Estensione. Aggiungi una dimensione di analisi non coperta nella lezione: segmenta per paese, per device, per fascia oraria o per coorte. Dove emergono pattern inattesi? Cosa implicano per le decisioni operative?
Esercizio 3 — Automazione. Trasforma la query in una vista o in un modello dbt con test di integrità (unique, not_null) e documenta le colonne. Se il tuo stack lo permette, configura un alert che notifichi quando la metrica esce da 2 deviazioni standard dalla media mobile.
Problema reale
Nel dominio di product analytics, Retention e analisi di coorte nel prodotto serve a risolvere questo problema: capire dove il prodotto crea valore reale e dove invece produce solo attività apparente. La lezione non va trattata come teoria isolata, ma come un modo per migliorare una scelta concreta con dati, assunzioni esplicite e controlli minimi.
Obiettivo operativo: Comprendere il problema analitico e il contesto decisionale; Applicare esempi, metriche e controlli a casi reali. Se alla fine non sai indicare quale decisione cambia, quale dato osservi e quale errore vuoi evitare, la lezione non è ancora diventata competenza applicata.
Modello concettuale
| Fase | Cosa chiarire | Output |
|---|---|---|
| Domanda | Quale scelta reale deve migliorare? | Decisione da prendere |
| Misura | Quale segnale osservabile rappresenta il problema? | Metrica o dato sorgente |
| Controllo | Quale baseline rende il risultato interpretabile? | Confronto credibile |
| Azione | Che cosa cambia dopo l’analisi? | Prossimo passo operativo |
Il modello concettuale è intenzionalmente semplice: decisione, dato, controllo, azione. Ogni approfondimento tecnico deve rafforzare almeno uno di questi quattro punti.
Formalizzazione rigorosa
Per rendere Retention e analisi di coorte nel prodotto analizzabile, definisci prima l’unità di lavoro: utente, coorte, evento prodotto, feature o journey. Poi collega questa unità a una metrica osservabile: activation, retention, frequenza, conversione, churn e valore per coorte. Infine dichiara la decisione attesa: diagnosi prodotto, esperimento, prioritizzazione o intervento UX.
| Elemento | Specifica richiesta |
|---|---|
| Unità di analisi | utente, coorte, evento prodotto, feature o journey |
| Segnale principale | activation, retention, frequenza, conversione, churn e valore per coorte |
| Baseline | Periodo precedente, gruppo comparabile, benchmark o scenario controfattuale |
| Decisione | diagnosi prodotto, esperimento, prioritizzazione o intervento UX |
| Rischio | Scambiare un numero disponibile per una prova sufficiente |
La formalizzazione e solida quando un altro analista può riprodurre la logica, criticare le assunzioni e ottenere la stessa decisione partendo dagli stessi dati.
Esempio o caso studio
La retention aggregata sembra stabile, ma le nuove coorti mobile decadono più velocemente delle coorti desktop storiche. Il caso mostra perché una media piatta può nascondere un problema emergente che merita priorità di prodotto.
| Evidenza osservata | Lettura prudente | Azione consigliata |
|---|---|---|
| Il numero migliora | Potrebbe essere effetto reale o variazione normale | Cercare confronto e segmento |
| Un segmento cambia più degli altri | La media aggregata nasconde una differenza | Separare coorti o casi d’uso |
| Il costo cresce insieme al risultato | L’impatto va letto sul margine | Stimare trade-off e sostenibilità |
Lab / esercizio
Livello base
Scrivi una scheda di una pagina per Retention e analisi di coorte nel prodotto: decisione da supportare, metrica primaria, baseline, rischio principale e azione se il segnale e confermato.
Livello intermedio
Costruisci una tabella con tre segmenti, periodi o scenari. Per ciascuno indica cosa cambia, quale spiegazione alternativa e plausibile e quale controllo useresti prima di raccomandare un azione.
Livello research-grade
Prepara un decision memo: ipotesi, dati richiesti, criteri di esclusione, controlli di qualità, soglia decisionale, rischio residuo e piano di monitoraggio dopo la decisione.
Dataset e materiali consigliati
Usa eventi prodotto, funnel, sessioni, survey, CRM, ticket supporto e esperimenti. Se non hai accesso a dati reali, crea un dataset sintetico con almeno 200 righe, una dimensione temporale, una dimensione segmento e una metrica di outcome.
Errore tipico da evitare
L’errore più comune e usare Retention e analisi di coorte nel prodotto come etichetta invece che come processo. Succede quando il team mostra un grafico senza decisione, una metrica senza baseline, o una conclusione senza indicare quale assunzione potrebbe invalidarla.
La domanda di controllo è: se questo risultato fosse instabile, quale scelta sbaglierei? Se la risposta non è concreta, manca ancora il collegamento tra analisi e azione.
Quiz o checkpoint
- Quale decisione concreta dovrebbe migliorare questa lezione?
- Quale unità di analisi rende il problema misurabile?
- Quale baseline useresti per evitare una lettura ingenua?
- Quale errore tipico potrebbe cambiare la conclusione?
- Quale output consegneresti a uno stakeholder non tecnico?
Riepilogo operativo
Retention e analisi di coorte nel prodotto diventa utile quando produce una decisione più chiara, non quando aggiunge terminologia. Usa il framework problema, modello, formalizzazione, esempio, lab e checkpoint per trasformare la lezione in pratica verificabile. Categoria: Decisione. Difficoltà: advanced. Tempo stimato: 22 min.
Percorso collegato
Lezioni da leggere insieme
Questi collegamenti portano la lezione dentro il resto del corso: basi da riprendere, passaggi successivi e connessioni tematiche tra moduli.