Vai al contenuto principale
Retention e analisi di coorte nel prodotto - immagine ufficiale della lezione su GinnyTech, creata da AD

Retention e analisi di coorte nel prodotto

Misurare e migliorare la retention con analisi di coorte, metriche di ritorno e curve di decadimento.

AD
Creato da Andrii Dyshkantiuk
Lezione 33 / 216 Livello: Avanzato Durata: 22 min Prerequisiti: 1

Cosa imparerai

  • Comprendere il problema analitico e il contesto decisionale
  • Applicare esempi, metriche e controlli a casi reali

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:

  1. 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.”
  2. 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.”
  3. 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:

  1. 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).
  2. Visualizzare i Risultati: Per comunicare efficacemente i vostri risultati, la visualizzazione è essenziale. Utilizzando Python con le librerie pandas e seaborn, è 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.

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

FaseCosa chiarireOutput
DomandaQuale scelta reale deve migliorare?Decisione da prendere
MisuraQuale segnale osservabile rappresenta il problema?Metrica o dato sorgente
ControlloQuale baseline rende il risultato interpretabile?Confronto credibile
AzioneChe 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.

ElementoSpecifica richiesta
Unità di analisiutente, coorte, evento prodotto, feature o journey
Segnale principaleactivation, retention, frequenza, conversione, churn e valore per coorte
BaselinePeriodo precedente, gruppo comparabile, benchmark o scenario controfattuale
Decisionediagnosi prodotto, esperimento, prioritizzazione o intervento UX
RischioScambiare 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 osservataLettura prudenteAzione consigliata
Il numero miglioraPotrebbe essere effetto reale o variazione normaleCercare confronto e segmento
Un segmento cambia più degli altriLa media aggregata nasconde una differenzaSeparare coorti o casi d’uso
Il costo cresce insieme al risultatoL’impatto va letto sul margineStimare 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

  1. Quale decisione concreta dovrebbe migliorare questa lezione?
  2. Quale unità di analisi rende il problema misurabile?
  3. Quale baseline useresti per evitare una lettura ingenua?
  4. Quale errore tipico potrebbe cambiare la conclusione?
  5. 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.