Unsubscribe-ul nu e momentul in care pierzi clientul. E momentul in care iti dai seama ca l-ai pierdut.
Pe Otter Distribution avem 4 branduri, peste 500.000 de clienti, 1,3 milioane de comenzi in ultimii 4 ani. Doar 11% dintre clienti revin in primele 30 de zile. Si 4 din 5 dintre cei care au cumparat repetat n-au mai comandat de peste 60 de zile.
Mai jos e un framework pe 6 segmente cu care vezi churn-ul cu 60 de zile inainte sa-ti dai seama ca exista. Si playbook-ul de 90 de zile care il opreste.
Ce e churn-ul silentios si de ce nu il vezi
Daca te-ai recunoscut in hook, problema nu e ca nu ai date. Le ai. Sunt in Magento, Shopify, Gomag, in Klaviyo, Mailchinm, The Marketer, in GA4. Problema e ca niciun tool din stack-ul tau nu iti arata ce se intampla cu un client individual in fereastra de 30 pana la 90 de zile, inainte sa dispara.
Definitie operationala. Churn-ul silentios nu e un client care da unsubscribe sau care se plange. E un client care comanda mai rar, inainte ca sistemul tau sa ridice vreun semnal. Il definesc strict: scaderea frecventei de achizitie in fereastra 30 pana la 90 de zile, masurabila prin migratia scorului RFM intre doua perioade consecutive. Un client care era Champions luna trecuta si e At Risk luna asta n-a disparut. A incetinit. CRM-ul tau iti arata ca exista. Nu iti arata ca se indeparteaza. Diferenta dintre stare si traiectorie e ce conteaza in retention.
De ce tool-urile standard nu il prind. Klaviyo si Mailchimp masoara engagement pe email: open rate, click rate, unsubscribe. Nu comportament de achizitie. Un client poate deschide fiecare email si sa nu comande de 80 de zile, iar Klaviyo il marcheaza ca activ. Magento iti arata vanzari agregate, nu traiectoria individuala. Nu stie ca ID-ul 48231 a cumparat de 4 ori in 2023 si de 0 ori in ultimele 90 de zile. GA vede sesiuni si conversii, atat. ROAS pe 7 zile e orb la ce se intampla in luna 2 si luna 3 dupa prima comanda. Fiecare tool iti arata o bucata reala din realitate. Niciunul nu iti arata clientul individual care incetineste chiar acum.
Costul real. Pe portofoliul nostru de 4 branduri, 20% dintre clienti sunt in At Risk acum. Genereaza 15% din revenue. Daca nu intervin in fereastra 60 pana la 90 de zile, intre 60 si 80% ajung Lost in urmatoarele 12 luni. Cifra vine din analiza migratiei RFM pe ~545.000 de tranzitii observate in ultimii 4 ani. Tradus: o bucata serioasa din revenue anual sta in fiecare saptamana pe care o lasi sa treaca fara actiune. Nu la nivel abstract. La nivel de clienti identificabili, cu id in baza, pe care ii poti contacta azi.
Ce gasesti in articol. Framework-ul Retention Radar, o matrice cu 6 segmente si 5 coloane. Trei semnale de dashboard pe care le citesc luni dimineata. Un playbook de 90 de zile cu actiuni concrete la zilele 0, 30, 60 si 90. Si 3 greseli pe care le-am facut eu inainte sa inteleg ce functioneaza.
Cele 3 semnale
Fiecare semnal in parte te minte. Iti arata o bucata din realitate si o ascunde pe cealalta. Citite impreuna, cele 3 iti dau harta: ce s-a intamplat istoric (cohorte), unde esti acum (RFM), si ce se misca chiar azi (frecventa).
Semnal 1: Cohortele lunare
Cohortele imi arata cat din fiecare val de clienti noi supravietuieste in timp. Definitie: retention rate pe cohorta e procentul din clientii care au cumparat prima oara in luna M si au mai cumparat cel putin o data in M+1, M+3, M+6 sau M+12.
Pe portofoliu: 11% revin in primele 30 de zile, 15% in primele 90, 20% in 180, 26% la 12 luni. 74% dintre clienti nu fac niciodata a doua comanda in primul an. Nu e estimare. E ce vad in datele celor 1,3 milioane de comenzi procesate din 2022.
Cohorta individuala lunara oscileaza intre 3% si 10% la L1. Variatia asta iti spune daca in luna respectiva ai adus clienti cu intentie reala de revenire sau cumparatori de campanie. La L12, fiecare cohorta se stabilizeaza intre 2% si 4%. Platoul long-tail al clientilor care raman orice ai face.
Insight-ul care conteaza: fiecare client cu semnale ignorate in fereastra 30 pana la 90 de zile e unul din cei 26% care te-ar face profitabil pe termen lung. Nu e volum abstract. Sunt clienti identificabili, cu comenzi in baza, pe care ii contactezi azi.
Capcana cohortelor e ca sunt lente prin constructie. Ce citesc azi reflecta decizii luate acum 6 pana la 12 luni. Daca un canal de achizitie ti-a adus clienti de calitate slaba in Q3, cohorta confirma asta in Q1, cand ai cheltuit deja bugetul pentru Q4. Cohortele singure nu ajung.

Heatmap cohorta (ilustrativ). Fiecare rand e o luna de prim-achizitie, fiecare coloana e o luna ulterioara. Verdele mai intens inseamna retentie mai mare. Majoritatea cohortelor au L1 intre 3 si 10% si L12 intre 2 si 4%.
Semnal 2: Migratia RFM intre perioade
Migratia RFM e tranzitia unui client dintr-un segment in altul de la o saptamana la alta. Un client care era Champions saptamana trecuta si e Loyal Customers azi a migrat in jos. Diferenta fata de cohorte e fundamentala: cohortele iti arata trecutul, migratia iti arata directia actuala.
Mecanismul: calculez scorul RFM saptamanal, compar cu saptamana anterioara, inregistrez tranzitiile. Pe ~545.000 de tranzitii observate in ultimii 4 ani, 170.740 au fost degradari. 31,4%, aproape 1 din 3 clienti migreaza in jos intr-o fereastra data. Nu e anomalie. E entropia naturala a unui portofoliu fara interventie activa.
Implementarea are un singur filtru critic: alerta automata pe orice tranzitie (Champions | Loyal Customers | Potential Loyalists) → (At Risk | Hibernating | Lost). Tranzitiile se detecteaza in momentul calculului saptamanal, nu la 30 de zile dupa. Pentru clienti cu CLV peste mediana brandului, alerta ajunge pe Slack si email direct la operatorul de brand. Nu ingropata intr-un raport.
Cohortele si migratia se citesc impreuna, nu alternativ. Cohortele dau contextul istoric, adica ce retentie am construit in ultimele 12 luni. Migratia da starea activa, adica cine se indeparteaza chiar acum. Cu ambele, am si istoria si directia.
Semnal 3: Funnel-ul de recency
Al treilea semnal e cel mai simplu de citit si cel mai dur de acceptat. Iau toti clientii cu 2+ comenzi si ii distribui pe 6 ferestre de recency: Activi (0-30 zile), Atentie (30-60), Risc (60-90), Risc Mare (90-180), Aproape Pierduti (180-365) si Pierduti (365+).
Pe portofoliul nostru, distributia arata asa:
Segment | Recency | % din clienti repetitivi |
|---|---|---|
Activi | 0-30 zile | 9,0% |
Atentie | 30-60 zile | 11,1% |
Risc | 60-90 zile | 4,7% |
Risc Mare | 90-180 zile | 10,7% |
Aproape Pierduti | 180-365 zile | 20,1% |
Pierduti | 365+ zile | 44,5% |
Funnel-ul e inversat. 9% sunt activi in ultimele 30 de zile. 44,5% n-au comandat de peste un an.

Funnel de recency (portofoliu multi-brand DTC). Bara pentru "Pierduti (365+)" depaseste de 4 ori bara pentru "Activi (0-30)". Asta e baza reala de clienti. Nu cea din CRM.
Inversiunea asta nu e problema de retentie. E problema de identitate a businessului. Daca ai mai multi clienti in Pierduti decat in Activi, nu ai business de retention. Ai business de re-achizitie. Si asta e legitim. Exista branduri construite complet pe achizitie repetata cu interval lung. Dar daca nu stii ca asta e modelul tau, cheltui bugetul de retention pe clienti care, statistic, nu se mai intorc. Funnel-ul face distinctia vizibila in 30 de secunde.
Capcana semnalului asta e ca e agregat. Nu iti spune ce SKU, canal sau campanie a generat concentrarea in Pierduti. Pentru cauzalitate, combini funnel-ul cu cohorte pe canal de achizitie. Vezi daca Meta aduce disproportionat clienti cu recency 365+. Funnel-ul iti spune amploarea. Cohorta iti spune originea.
Impreuna formeaza harta
Cohortele imi spun ce s-a intamplat (ce retentie am construit in ultimele 12 sau 24 de luni). Migratia imi spune ce se intampla acum (cine se indeparteaza in saptamana asta). Funnel-ul imi spune la ce amploare (care e proportia reala de clienti activi fata de cei deja pierduti).
Daca am doua din trei, sunt orb pe o directie. Daca le am pe toate, pot naviga. Si navigarea concreta (framework-ul Retention Radar, playbook-ul de 90 de zile, segmentele actionabile) e ce urmeaza mai jos.
Retention Radar: matricea operationala
Cele 6 segmente si 5 coloane
Retention Radar ruleaza pe 4 branduri, Otter, Tezyo, Gryxx, Aldo, saptamanal, cu actiuni directe in Klaviyo. Fiecare celula din matricea de mai jos a fost testata in operatiune. Cifrele vin din 1,3 milioane de comenzi procesate din 2022.
Cea mai comuna greseala la branduri care fac retention serios e ca aplica acelasi playbook pe toate cele 6 segmente. Champions primesc acelasi tratament ca Hibernating: discount de 15%, subiect emotional, deadline 7 zile. Asta nu e campanie de retention. E campanie de email. Champions au CLV 2.012 RON si 6,4 comenzi in medie. Hibernating au 184 RON si 1 comanda. Acelasi email nu face nimic util pentru amandoi.

Distributia segmentelor pe doua axe: marime baza versus contributie la revenue. Champions sunt 19% din clienti dar aduc 49% din revenue. At Risk sunt cel mai mare segment (20%) cu 15% contributie activa la revenue. Nu sunt Lost. Sunt pe drum.
Segment | Definitie (per brand) | Semnalul in dashboard | Cauza probabila | Interventia (fereastra) |
|---|---|---|---|---|
🟢 Champions | R≥4, F≥4, M≥4 | 19% clienti, 49% revenue | Saturare naturala | VIP, early access, fara discount |
🟢 Loyal | R≥3, F≥3, M≥3 | 15% clienti, 18% revenue | Dependenta de categorie | Cross-sell cross-brand, ziua 14 |
🟡 Potential Loyalists | R≥4, F≤3, M≤3 | 14% clienti, 5% revenue | N-au facut comanda 2 | Post-purchase 3 touchpoints, fereastra = median second-order/brand |
🟠 At Risk | R 2-3, F≥2, M≥2 | 20% clienti, 15% revenue | OOS, competitor sau life event | Stratificat: 0, 14, 30, 45, 60 zile |
🟠 Hibernating | R≤2, F≤2, M≤2 | 13% clienti, 3% revenue | One-and-done | Un sweep 20%, apoi scoate din lista |
🔴 Lost | R=1 | 11% clienti, 8% istoric | Pleaca oricum | Winback 25%, decizie ROI |
Champions (R≥4, F≥4, M≥4)
19,3% din clienti, 48,7% din revenue. CLV mediu 2.012 RON, frecventa medie 6,4 comenzi. Astia finanteaza tot restul businessului.
Semnalul care conteaza nu e ca sunt in Champions. E daca raman. Champions → Loyal e o tranzitie normala: frecventa scade dupa un peak, eventual revine. Champions → At Risk direct e problema structurala: pret, disponibilitate, schimbare in category mix. Cand vad tranzitia asta pe mai mult de 3 sau 4% din segment intr-o luna, nu caut o solutie de email. Caut ce s-a schimbat in oferta.
Interventia pentru Champions e contraintuitiva: nu le dai discount. Un discount pentru un client cu CLV 2.000 RON si 6 comenzi reduce marja pe achizitii pe care le-ar face oricum. Si antreneaza asteptarea de promotie. VIP functioneaza altfel: early access la colectii noi, invitatii la evenimente, produse premium inainte de listarea publica.
Masor AOV per comanda, nu frecventa. Frecventa Champions e deja la plafon. Greu de crescut semnificativ. Dar AOV are spatiu: un Champion care cumpara 300 RON/comanda si ajunge la 380 RON/comanda inseamna +27% pe acelasi profil, fara cost de achizitie.
Metrica-cheie: procentul din segmentul Champions care pastreaza statusul 90 de zile consecutive. Sub 70% inseamna ca s-a miscat ceva structural. Nu semnal de email. Semnal de produs sau pret.
Loyal Customers (R≥3, F≥3, M≥3)
14,9% din clienti, 17,8% din revenue. CLV mediu 950 RON, frecventa 3 comenzi. Sanatosi, cu obicei de cumparare format, dar atasati de o categorie sau de un SKU specific.
Vulnerabilitatea Loyal e concentrarea. Un client cu 3 comenzi din aceeasi categorie e dependent de disponibilitatea acelei linii. Daca SKU-ul preferat iese din stoc sau categoria intra in declin, frecventa scade. Segmentul arata sanatos in dashboard pana nu mai arata.
Interventia e cross-sell, nu retention clasic. Obiectiv: +1 categorie in 90 de zile. La multi-brand, cross-brand e cel mai puternic vehicul. Un client Loyal pe Otter care descopera Tezyo nu schimba brandul. Adauga un context de cumparare. Diversifica dependenta de o singura categorie. Recomandarile le trimit ziua 14 post-comanda. Imediat dupa comanda e momentul de satisfactie, nu de explorare. Ziua 14 e fereastra in care clientul e receptiv la ce urmeaza.
Metrica-cheie: procentul din Loyal care cumpara din cel putin 2 categorii in 180 de zile. Sub 20% inseamna ca cross-sell-ul nu functioneaza. Sau ca n-am comunicare suficient de bine directionata pe categorii secundare.
Potential Loyalists (R≥4, F≤3, M≤3)
13,8% din clienti, 4,6% din revenue. CLV mediu 264 RON, frecventa 1 comanda. Costul de achizitie al clientilor astia nu s-a amortizat inca.
Fereastra e critica si e brand-specifica. Pe portofoliu, mediana pentru a doua comanda variaza: Aldo 18 zile, Gryxx 63 zile, Otter 77 zile, Tezyo 95 zile. Daca aplic acelasi calendar pe toate 4 brandurile, trimit email de re-engagement in ziua 14 unui client Tezyo care statistic face a doua comanda in ziua 95. Il ating in momentul gresit, cu mesajul gresit.
Interventia e comanda 2. Nu cross-sell, nu upsell. Flow-ul post-purchase: ziua 3 multumire plus content de utilizare pentru produsul cumparat; ziua 14 recomandare din aceeasi categorie; ziua 30 sau 45 (calibrat per brand) a doua recomandare, mai personalizata. Fara discount in primele doua touchpoints. Discountul prematur antreneaza asteptarea reducerii. A treia atingere poate include o oferta modesta daca clientul n-a convertit.
At Risk (R 2-3, F≥2, M≥2)
Asta e segmentul care conteaza cel mai mult pe termen scurt.
20,2% din clienti, 15% din revenue. CLV mediu 594 RON, frecventa 1,8 comenzi. Dar cei 1,8 ascund ceva: clientii din At Risk aveau 3, 4, 7 comenzi, iar acum frecventa a scazut. F si M raman ridicate (obiceiul e format), R scade (n-au mai cumparat recent). Asta e churn-ul silentios in forma lui cea mai actionabila.
Cauza determina interventia. Si cauzele nu sunt egale:
1. Out-of-stock pe SKU preferat. Verific in tabela stock_churn daca SKU-urile cumparate repetat au fost indisponibile in ultimele 60 de zile. Niciun flow Klaviyo nu salveaza un client al carui produs preferat a fost refuzat de 3 ori. Solutia e notificarea de restock, nu emailul de winback.
2. Competitor wave. Campanie agresiva de la concurenta sau shift sezonier. Semnalul indirect: At Risk creste ca segment in aceeasi perioada in care un competitor raporteaza crestere. Interventia e pe produs si comunicare. Arat ce e distinctiv, nu discount de paritate.
3. Life event. Necomercial. Clientul a trecut printr-un eveniment care a schimbat comportamentul de cumparare: mutare, nastere, schimbare de venit. Accept ca pierzi o parte din cauza asta. Nu e problema de retention, e demografica.
Interventia stratificata:
Ziua 0 (la 60 de zile fara comanda): email "Ne e dor" cu zero discount. Ton personal, fara urgenta artificiala, cu recomandare bazata pe istoricul de cumparare.
Ziua 14: recomandare personalizata pe SKU din ultimele comenzi plus content relevant.
Ziua 30: discount de 15% cu deadline 7 zile, dupa ce clientul a vazut ca nu il fortezi.
Ziua 45: SMS scurt daca n-a deschis niciun email din serie. Un singur SMS.
Ziua 60: stop. Clientul intra in Hibernating sau Lost.
Hibernating (R≤2, F≤2, M≤2)
12,9% din clienti, 3% din revenue. CLV mediu 184 RON, frecventa 1 comanda. One-and-done, fara obicei de cumparare format.
Nu exista flow de retention cu ROI pozitiv pentru Hibernating la scara. Interventia e un singur sweep: un email cu 20% discount, deadline 10 zile, subiect direct fara artificii emotionale. Daca nu convertesc, ies din lista activa.
Regula operationala: costul ESP per profil inactiv e real. La circa €0,005 per profil pe luna, 65.000 de profile Hibernating costa €325 pe luna doar pentru stocare si trimiteri. Plus timpul operatorului pe un segment cu rata de conversie sub 2%. Formula: cost_per_profile_year > avg_revenue × recovery_rate inseamna scoti profilul din lista activa.
Lost (R=1)
11,4% din clienti, 8% din revenue istoric. Recent aproape zero. CLV mediu 564 RON, frecventa 1,6 comenzi.
Pe portofoliu, un client Lost care nu raspunde la winback agresiv are rata de recovery sub 3% pe orice fereastra ulterioara. Interventia: winback o data la 6 luni, 25% discount sau free shipping pe categoria preferata, fara constructie emotionala. Daca nu convertesc, ies din lista activa. Re-achizitia prin paid e mai ieftina decat intretinerea unui profil Lost in ESP. Exceptie: sezonul puternic (Black Friday, colectie majora), atunci reintroduc Lost cu oferta punctuala.
Ce e thought leadership aici
Patru lucruri din matrice lipsesc din orice ghid standard de retention. Din documentatia Klaviyo, din cursurile de email marketing, din articolele despre reducerea churn-ului.
Unu: prioritizarea cauzelor la At Risk. Majoritatea ghidurilor trateaza At Risk ca pe o cutie de marketing. De fapt e o triada in care 2 din 3 cauze n-au raspuns de marketing. OOS e problema de supply chain. Life event e demografic. Daca nu separi cauzele inainte de interventie, trimiti email de re-engagement clientilor care au revenit deja si discount clientilor care s-au mutat din tara.
Doi: interventie stratificata fara discount la primul touch. Standardul pe piata e discount in primul email. Discountul la primul touch antreneaza comportamentul gresit. Clientul amana pana vine discountul urmator. Discountul la ziua 30, dupa doua touchpoints non-tranzactionale, produce recovery mai bun si marja mai buna per tranzactie recuperata.
Trei: regula economica pentru Hibernating si Lost. Nu sentimental. Matematic. cost_per_profile_year > avg_revenue × recovery_rate inseamna scoti profilul din lista activa. Brandurile pastreaza profile inactive din inertie sau din teama ca pierd o "relatie". Nu exista o relatie cu un client care n-a cumparat de 2 ani. Exista un cost lunar pentru iluzia acelei relatii.
Patru: a doua comanda ca metrica centrala la Potential Loyalists, cu fereastra calibrata per brand. Aldo are mediana 18 zile, Tezyo 95 zile. Acelasi calendar pe ambele branduri e gresit structural. Fereastra corecta nu se ghiceste. Se calculeaza din datele de comenzi istorice, per brand, si se recalibreaza trimestrial.
Cum calibrezi scoring-ul RFM pentru brandul tau
NTILE(5) per brand versus praguri absolute. Primul reflex cand configurezi RFM e sa stabilesti praguri fixe: F≥4 comenzi inseamna segment superior, R≤30 zile inseamna activ. Functioneaza pe un singur brand omogen. Esueaza pe un portofoliu eterogen. Aldo are mediana second-order la 18 zile, Tezyo la 95 zile. Raport de 5 ori in comportamentul de revenire. Un client cu 4 comenzi la Tezyo e comportamental un Champions. Acelasi client cu 4 comenzi la Aldo poate fi Loyal sau mai jos, daca restul portofoliului Aldo cumpara de 10 ori pe an. Pragul absolut "F≥4" pune in aceeasi cutie oameni cu densitati incomparabile. NTILE(5) rezolva asta: calculez quintile separat pe fiecare brand, astfel incat scorul 5 pe F inseamna "top 20% din cumparatorii frecventi ai brandului X", nu "om cu cel putin N comenzi absolute".
De ce scoring-ul global falsifica operational. Daca poolez toti clientii din portofoliu intr-un singur calcul RFM fara partitionare pe brand, top-decila Aldo dispare. Aldo are volum mare si AOV mic. Contribuie cu masa principala de tranzactii frecvente, dar la valori unitare mai mici. Tezyo are volum mic si AOV mare. Un scoring global favorizeaza profilul Tezyo si ineaca profilul Aldo in mijlocul distributiei. Consecinta concreta: campaniile de tip "Champions" ajung disproportionat la clientii Tezyo, care sunt deja loiali oricum, si rateaza clientii Aldo din top-decila, care sunt multi si sensibili la comunicare personalizata. Unitatea de decizie in retention e brandul, nu portofoliul.
Snippet SQL pe care il poti rula saptamanal. Calculul ruleaza in productie pe tabela unified_customers, cu partitie pe first_brand. NTILE(5) se calculeaza separat pe recency, frecventa si monetar. Clauza CASE mapeaza combinatiile de scoruri pe segmente. Champions are prioritate fata de Loyal Customers daca toate trei scorurile sunt ≥4. Lost prinde orice profil cu R=1. Orice profil care a migrat segment fata de saptamana anterioara intra in coada de revizuit.
SELECT
uc.id,
uc.first_brand,
NTILE(5) OVER (PARTITION BY uc.first_brand ORDER BY (CURRENT_DATE - uc.last_order_date) DESC) AS r_score,
NTILE(5) OVER (PARTITION BY uc.first_brand ORDER BY uc.total_orders ASC) AS f_score,
NTILE(5) OVER (PARTITION BY uc.first_brand ORDER BY uc.total_revenue ASC) AS m_score,
CASE
WHEN r_score >= 4 AND f_score >= 4 AND m_score >= 4 THEN 'Champions'
WHEN r_score >= 3 AND f_score >= 3 AND m_score >= 3 THEN 'Loyal Customers'
WHEN r_score >= 4 AND f_score <= 3 AND m_score <= 3 THEN 'Potential Loyalists'
WHEN r_score BETWEEN 2 AND 3 AND f_score >= 2 AND m_score >= 2 THEN 'At Risk'
WHEN r_score <= 2 AND f_score <= 2 AND m_score <= 2 THEN 'Hibernating'
WHEN r_score = 1 THEN 'Lost'
ELSE 'Other'
END AS segment
FROM unified_customers uc
WHERE uc.total_orders > 0;
Playbook in 90 de zile
Ce urmeaza e planul implementat pe fiecare din cele 4 branduri. Calibrat pentru o echipa de 2 pana la 5 oameni. O decizie-cheie pe saptamana, fara paralelism care ineaca echipele mici.
Saptamanile 1-2: Instrumentezi
Conectezi Magento, Klaviyo si tabela de inventory intr-un Postgres central. Rulezi primul calcul RFM: NTILE(5) per brand, partitionat separat per brand, conform SQL-ului din sectiunea de calibrare. La finalul saptamanii 2 ai baseline-ul: distributia segmentelor, numar de clienti si revenue per segment, per brand.
Decizia-cheie la finalul sapt. 2: daca Champions reprezinta sub 10% din baza de clienti, e eroare de configurare sau de calitate a datelor. Rezolv inainte sa continui.
Saptamana 3: Stabilesti pragurile de alerta
Configurezi 3 alerte automate. Nu rapoarte care se citesc cand e timp, ci notificari care ajung pe Slack in ziua in care pragul e depasit.
Alerta 1. Orice tranzitie (Champions | Loyal | Potential Loyalists) → (At Risk | Hibernating | Lost) pentru profile cu CLV peste mediana brandului. Notificare in 7 zile de la detectare.
Alerta 2. Export saptamanal: toti clientii intrati in At Risk in fereastra 60 pana la 90 de zile cu CLV peste mediana brandului. Lista asta e intrarea pentru interventia din saptamanile 6-8.
Alerta 3. Daca segmentul Atentie (30-60 zile) creste cu peste 10% WoW, declansezi investigatie. Nu campanie automata. Cresterea brusca inseamna OOS pe SKU major, problema de livrare sau cohorta de calitate slaba din achizitie.
Saptamanile 4-5: Prima interventie, Potential Loyalists
Incep cu Potential Loyalists, nu cu At Risk, desi At Risk e mai urgent financiar. Motivul: ~14% din baza de clienti, conversia la comanda 2 e sensibila la timing, costul e minim (un flow post-purchase, nu o campanie de recovery cu discount).
Flow-ul: 3 touchpoints in primele 45 de zile, calibrate pe mediana second-order per brand. Aldo 18 zile, Gryxx 63, Otter 77, Tezyo 95. Fiecare brand cu calendarul lui. Primele doua touchpoints fara discount. Al treilea cu oferta modesta daca clientul n-a convertit.
Target: +2 puncte procentuale rata second-order per brand fata de baseline. Verificabil la 60 de zile de la lansare.
Saptamanile 6-8: Interventia At Risk
Cu flow-ul Potential Loyalists activ, treci la At Risk. 20% din clienti, 15% din revenue, fereastra de interventie 60 de zile. Folosesti lista din Alerta 2: sync Klaviyo ca segment dinamic, flow stratificat la intrarea in segment.
5 touchpoints in 60 de zile: ziua 0 email personal fara discount; ziua 14 recomandare pe SKU-uri; ziua 30 discount 15% deadline 7 zile; ziua 45 SMS daca n-a deschis niciun email; ziua 60 stop.
Pentru CLV peste mediana brandului, SMS ruleaza si la ziua 0. Daca recovery_rate × CLV_mediu > cost_SMS + discount_oferit atunci SMS de la primul touchpoint.
Target: recovery 10 pana la 15% in 90 de zile. Daca recovery-ul costa mai mult decat CAC pentru un client nou echivalent, opresti campania.
Saptamanile 9-10: Champions plus Hibernating/Lost
Champions. Program VIP: early access la colectii cu 48 de ore inainte de publicarea generala, invitatii exclusive, priority support. Nu discount. Masori AOV per comanda. Un Champion care creste de la 300 la 380 RON/comanda aduce +27% revenue fara cost de achizitie.
Hibernating si Lost. Un singur sweep. Hibernating 20% discount deadline 10 zile, Lost 25% sau free shipping pe categoria preferata. Daca nu convertesc, ies din lista activa. La 65.000 de profile Hibernating, eliminarea salveaza €300+ pe luna in costuri ESP.
Saptamanile 11-12: Masori si rebalansezi
Compari distributia segmentelor cu baseline-ul din saptamana 2. Doua metrici principale: Migration Health Ratio si Recovery Rate per segment (detaliate in sectiunea de KPI-uri).
Iei trei decizii: ce opresti (cost per recovery peste CAC), ce intensifici (recovery rate peste target), ce recalibrezi (ferestre si praguri). Intri in ciclu continuu. Matricea se recalculeaza saptamanal, segmentele se actualizeaza prin sync automat in Klaviyo. Playbook-ul de 90 de zile nu e un proiect cu data de final.
Cele 3 KPI-uri pe care le urmaresti
1. Migration Health Ratio
Formula: # migrari ascendente / # migrari descendente pe saptamana.
Ascendente inseamna orice tranzitie spre un segment mai valoros: Atentie → Activ, At Risk → Loyal, Hibernating → Potential Loyalist. Descendente, inversul.
La noi, baseline-ul calculat pe ~545.000 de tranzitii arata ~170.000 degradari fata de ~374.000 tranzactii stabile sau ascendente. Raportul rezultat: 0,69. Sub pragul sanatos de 1,0, dar controlabil. Sub 0,5 e semnal de problema structurala: verifici calitatea achizitiei din ultimele 90 de zile, cauti cauzele la nivel de portofoliu. OOS pe SKU-uri de volum, preturi necompetitive, degradare in experienta post-livrare.
Migration Health Ratio nu iti spune ce sa faci. Iti spune daca miscarea bazei e in directia buna sau in cea gresita, saptamana dupa saptamana, inainte sa devina vizibila in revenue.

Matrice de migratie saptamanala. Randurile sunt segmentul de plecare, coloanele segmentul de sosire. Celulele portocalii si rosii sunt degradari. La noi, ~31% din tranzitiile non-stationare sunt descendente. Raportul sta pe 0,69.
2. Recovery Rate per Segment
Formula: # clienti reveniti cu comanda in 60 de zile dupa interventie / # clienti din lista la lansarea campaniei
Calculat separat per segment. Nu agregat, pentru ca benchmarkurile difera semnificativ. Pe datele operationale validate: At Risk 10 pana la 15%, Hibernating 3 pana la 5%, Lost 2 pana la 3%.
Daca esti sub 5% pe At Risk, nu intensifici campania. Triezi cauza: OOS pe SKU-urile preferate? Oferta necompetitiva? Discount agresiv trimis prea devreme? Lista contaminata cu profile de calitate slaba?
Benchmarkurile externe sunt umflate sistematic. Intreaba ce considera sursa drept "recovery": o deschidere de email? un click? o comanda finalizata? Definitiile diferite produc comparatii inutile.
3. Cost of Inaction
Formula: Σ (CLV mediu × P(churn la 180 zile)) per fereastra neactionata
Asta e KPI-ul pentru CFO, nu pentru dashboard-ul de retentie.
Exemplul concret: 25.000 de clienti in segmentul Atentie (30-60 zile fara comanda), CLV mediu 1.912 RON. Din datele istorice, ~70% dintre clientii din segmentul asta fara nicio interventie ajung in Lost in 180 de zile. Cost of Inaction = 25.000 × 1.912 × 0,70 = ~33,5 milioane RON revenue-at-risk pe trimestru.
Nu mai negociezi buget de retention versus buget de ads. Arati cat costa absenta deciziei. Calcul conservator bazat pe rata istorica de degradare. Cifra asta muta conversatia din registrul costurilor in registrul riscului. Diferenta de cadraj schimba cum se aloca bugetul in meeting-ul cu CFO-ul.
3 greseli care pierd clienti (pe care le vad la 9 din 10 branduri)
1. "Trimitem 15% discount tuturor At Risk imediat"
Clientul care primeste discount la primul semn de risc invata un tipar: ignora comunicarile normale, asteapta oferta. La a doua fereastra At Risk, deschiderea email-urilor de reminder scade. Nu contin cupon. Transformi un client de marja plina in unul de marja 0,85, permanent, pentru ca setezi o asteptare pe care n-o mai poti retrage fara frecare.
Al doilea cost: o parte din At Risk ar fi revenit oricum. Recovery Rate fara campanie activa e ~4 pana la 6% din organic si retargeting. Le dai discount pentru o decizie pe care o iau singuri.
Corect: interventie stratificata. Primul touch e atentie simpla, un reminder de produs, continut de categorie, fara oferta. Discountul intra dupa 7 pana la 10 zile fara conversie. Detaliile mai sus, la sectiunea pe At Risk.
2. "Daca flow-ul merge pe un brand, rulam acelasi pe celelalte"
Un flow calibrat pe Aldo rulat nemodificat pe Tezyo produce rezultate slabe pe care nimeni nu le intelege.
Mediana second-order difera de 4 ori intre branduri: 18 zile la Aldo, 95 zile la Tezyo. Un email de reactivare la ziua 30 e complet in afara ferestrei comportamentale la Tezyo. Clientul nici n-a intrat in ciclul normal de revenire. Timing gresit inseamna conversie zero, nu conversie mica.
Aceeasi logica pe toate variabilele: pragul de discount (clientul Tezyo e mai putin sensibil la 10%), categoriile cross-sell, canalul. SMS functioneaza mai bine la Aldo si Gryxx, unde demografia e mai tanara si mobile-first. Email-ul ramane primar la Tezyo si Otter. Calibrezi pe cifrele brandului respectiv.
3. "Nu abandonam clienti"
Ideea pare corecta moral. E incorecta economic.
Lista activa costa bani per profil, lunar, indiferent de activitate. 65.000 de profile Hibernating care genereaza 3% din revenue au un cost ESP real si cuantificabil. Plus noise in analize. Fiecare profil inactiv in plus dilueaza cohortele de performanta.
Regula: cost_per_profile_year versus avg_revenue × recovery_rate. Daca matematica e negativa, scot profilul din listele active. Nu il sterg din baza de date. Il scot din fluxurile de comunicare.
Nu e definitiv. Inainte de Black Friday reintroduc cohortele Hibernating, pentru ca probabilitatea de conversie creste temporar si matematica se schimba. Clientii buni sunt cei cu semnale recente, nu cei cu istoric vechi si zero activitate.
Inchidere
Matricea asta ruleaza la noi de putin timp. Suficient cat sa validam structura pe cifre reale, nu cat sa am rezultate longitudinale de prezentat. Dashboard-ul se recalculeaza saptamanal, segmentele se sync-uiesc automat in Klaviyo, alertele cad pe Slack in ziua tranzitiei.
Daca o adaptezi pe brandul tau, un avertisment: calibreaza fereastra per brand inainte sa copiezi pragurile. Mediana second-order de 18 zile la Aldo versus 95 la Tezyo nu e un detaliu de portofoliu, e intreaga diferenta intre un flow care functioneaza si unul care trimite email-uri in gol. Pragurile de mai sus sunt un punct de plecare, nu o reteta.
Nota metodologica. Scoring-ul RFM foloseste NTILE(5) calculat per brand pe recency, frequency si monetary. Fiecare client primeste un scor relativ la propriul portofoliu, nu la un benchmark extern. Dashboard-ul intern ruleaza pe Postgres cu sync zilnic din BigQuery. Cifrele din articol sunt agregate, anonimizate si rotunjite. Reflecta portofoliul Otter Distribution (Otter, Tezyo, Gryxx, Aldo) la aprilie 2026. Definitiile de segmente variaza semnificativ in industrie. Cele folosite aici sunt calibrate pentru executie operationala directa si difera deliberat de clasificarile Kotler sau de preseturile native din Klaviyo.

