How to do a Retention Analysis | Keen have posted a fantastic article on what Retention Analysis is, why it is important and how to do one

retention analysis will allow you to see, in numbers, things like:

  • What percentage of your users are coming back week after week?
  • What percentage of your users are paying month after month?
  • Do people typically stick around for months, or leave after a few days?
  • Did that product overhaul you released last month increase retention or hurt it?

Meaningful Metrics

It’s not hard to make a graph that looks like this. Invest more in advertising and marketing each month and you will see your usage increasing over time. 

A company with a chart like this could have abysmal retention, though. Perhaps all the users in a given month are NEW users, and none of them are going to stick around to make this app profitable.

That’s why retention analysis tells a more compelling story than “number of users doing x”. A retention analysis tells the story of “users doing X over time”.

Keen IO Cohort Analysis - 15 Weeks

Here’s an example of a retention analysis I ran recently using this Ruby script.

Reading down the left-most columns, you can see the number of accounts that have been created in Keen IO each week. Moving right across the table, you can see the percentage of those accounts that sent data in the weeks since they signed up. 

This view wasn’t quite what I was looking for, though, because the concept of retention doesn’t apply very well to users who signed up but never took any action. So I ran the analysis again in a slightly different way.

Better Keen IO Cohort Analysis - 15 Weeks

Just like the previous chart, this next chart shows the percentage of accounts we successfully “converted” to sending us data in Week 1. The difference is that the subsequent columns show the percentage of those “converted” accounts that continued to send us data in subsequent weeks (rather than the percentage of all accounts in the cohort). 

To see the rest of the article, check it out on Keen|IO