← Volta Neobank

Core · project 3 of 23

Cohort triangles showed a step-change after the KYC fix: M1 +11.8pp, M3 +9.2pp and +€227K/yr LTV. Premium LTV is 4.3× Free.

Situation
Shipping is not the end: the KYC-fix effect was checked on retention with cohort triangles instead of one flat average
Task
Own the retention check and a method that does not blur the effect into one average
Action
Cohort curves and a retention matrix, pre/post Welch t-test with Cohen's d, bootstrap CIs, plan-specific LTV on ARPU × retention
Result
Post-fix cohorts hold 61–67% at M1 vs 51–53% pre-fix; M3 +9.2pp, Premium LTV 4.3× Free, +€227K/yr
Stack
Pythonpandas / NumPySciPy / Statsmodelsscikit-learnMatplotlib / Seabornuv + ruff
On this page
  1. Situation
  2. Task
  3. Actions
  4. Result
  5. Recommendations
  6. Documentation

Volta — Retention & Cohorts

Situation

Shipping is not the end: the KYC-fix effect was checked on retention with cohort triangles (signup month × age) instead of ‘the average across everyone’.

Task

I owned the retention check and the choice of a method that does not blur the effect into one average.

Actions

I read the retention effect through cohort triangles rather than a flat base average — by signup month and cohort age, so the shift is visible over time.

  • Cohort matrix. Cohort curves and an M0–M11 retention matrix: rows by signup month, columns by cohort age.
  • Pre/post comparison. Welch t-test + Cohen’s d, bootstrap CIs at M1/M3/M6: split cohorts into before and after the KYC fix and compared retention at the key months.
  • LTV by plan. Plan-specific LTV decomposed into ARPU × retention, to see what makes Premium worth more than Free.
  • Robustness. Checked whether the gap holds at the later months, not only the first — the effect should not fade.
  • Cohort cleaning. Dropped incomplete cohorts and short observation windows, so the step-change would not be an artifact of unequal period counts.
  • Tooling. Python and pandas/NumPy for the cohorts, SciPy/Statsmodels for the tests, Matplotlib/Seaborn for the heatmap and curves; runs through uv + ruff.

Result

  • Step-change: post-fix cohorts (2024-09+) hold M1 ≈ 61–67% vs 51–53% pre-fix.
  • M3 +9.2pp; the effect does not fade — the gap persists at M6.
  • Premium LTV = 4.3× Free (ARPU 2.66× × retention 1.62×).
  • Portfolio effect: +€227K/yr incremental LTV.

Recommendations

  • Target upgrades at high-intent Free users in the first 1–2 months — the biggest lever.
  • Monitor cohort decay, not just average retention.
  • Read the last diagonal cells with care (few observation periods).

Documentation

Need this reasoning applied to your data?

Tell me the task — I'll come back with a plan: what data it needs, what we test, and how long it takes. I reply within a day.

Discuss a task →