Visualizing Your SaaS App’s Monthly Active Users Broken Down by Signup Cohort

This week at Automattic I’ve been helping with a tool that will allow us to visualize the number of active users each month broken down by when those users signed up for an account. I think this type of chart and what you can learn from it are incredibly valuable so I wanted to show you all how to quickly create one for your own service.

Here’s an example of what this type of chart looks like courtesy of Buffer’s Joel Gascoigne:

What I really like about it is that for each month you can see how many active users there are and when those users signed up for an account. This not only gives you a sense how long ago your active users signed up, but also of your service’s ability to retain users over time.

If you’d like to create a similar chart to visualize your SaaS app’s active users, I put together a small R script on Github that will help you do just that.

The only thing that you need to provide the script is a CSV file that contains user IDs and dates that those users performed an action in your app.

For example, the test data set that comes with it contains user IDs and actions performed by users of one of my apps (Preceden, a web-based timeline maker) for the first year that the site existed (as determined by the automatically set created_at and updated_at values on the Ruby on Rails Active Record objects that each user is associated with):

2   2010-03-28
2   2010-04-09
2   2010-04-10
2   2010-05-16
3   2010-01-31
3   2014-05-07
3   2014-09-30
3   2015-04-11
4   2010-01-31
4   2010-10-06

In this example user IDs 2 and 3 each performed actions on four dates and user ID 4 performed actions on 2 dates. The script will analyze that data to figure out which cohort the user belongs to based on the earliest date the user performed an action and count that user toward the active users for each subsequent month that he or she performed an action:


As you can see there was a huge spike at the beginning of the year when Preceden launched on HackerNews and was subsequently covered on other tech sites, but by December only a fraction of those users were still active. On that note, I encourage you to strive to build a service like Buffer that delivers long term value so your chart doesn’t wind up looking like this one :).

If you have any questions or need help customizing the script in any way, please don’t hesitate to drop me a note.

Thanks Joel Martinez and Rob Felty for providing feedback on the code.

The Innovator’s Dilemma, Facebook, and the Oculus Acquisition

In The Age of Spiritual Machines Ray Kurzweil describes the life cycle of a technology:

We can identify seven distinct stages in the life cycle of a technology.

1. During the precursor stage, the prerequisites of a technology exist, and dreamers may contemplate these elements coming together. We do not, however, regard dreaming to be the same as inventing, even if the dreams are written down. Leonardo da Vinci drew convincing pictures of airplanes and automobiles, but he is not considered to have invented either.

2. The next stage, one highly celebrated in our culture, is invention, a very brief stage, similar in some respects to the process of birth after an extended period of labor. Here the inventor blends curiosity, scientific skills, determination, and usually a measure of showmanship to combine methods in a new way and brings a new technology to life.

3. The next stage is development, during which the invention is protected and supported by doting guardians (who may include the original inventor). Often this stage is more crucial than invention and may involve additional creation that can have greater significance than the invention itself. Many tinkerers had constructed finely handtuned horseless carriages, but it was Henry Ford’s innovation of mass production that enabled the automobile to take root and flourish.

4. The fourth stage is maturity. Although continuing to evolve, the technology now has a life of its own and has become an established part of the community. It may become so interwoven in the fabric of life that it appears to many observers that it will last forever. This creates an interesting drama when the next stage arrives, which I call the stage of the false pretenders.

5. Here an upstart threatens to eclipse the older technology. Its enthusiasts prematurely predict victory. While providing some distinct benefits, the newer technology is found on reflection to be lacking some key element of functionality or quality. When it indeed fails to dislodge the established order, the technology conservatives take this as evidence that the original approach will indeed live forever.

6. This is usually a short-lived victory for the aging technology. Shortly thereafter, another new technology typically does succeed in rendering the original technology to the stage of obsolescence. In this part of the life cycle, the technology lives out its senior years in gradual decline, its original purpose and functionality now subsumed by a more spry competitor.

7. In this stage, which may comprise 5 to 10 percent of a technology’s life cycle, it finally yields to antiquity (as did the horse and buggy, the harpsichord, the vinyl record, and the manual typewriter).

Fred Wilson argues in The Search For The Next Platform that Facebook’s acquisition of Oculus is “Zuck and his team looking up and saying “what’s next?””. Viewed through the lens of Kurzweil’s seven stages, Facebook is at stage 4 (maturity) and Oculus is the potentially disruptive upstart in stage 5. It might seem far-fetched now, but what if Oculus’s virtual reality platform did eventually evolve into a communication platform? Could it threaten Facebook’s current dominance? Maybe. The acquisition then can be seen as part Facebook’s attempt to beat the Innovator’s Dilemma, the tendency of mature companies to lose out to startups by focusing too much on satisfying existing customers and not enough on disruptive new technologies.

Will Facebook succeed and still be relevant in 5-10-20+ years or more? I have no idea, but I can’t wait to see how things play out. :)

Saving $X Per Week Nets You $752X After 10 Years

I’ve been slowly making my way through Mr. Money Mustache’s blog archive — something I encourage everyone to check out — and it’s been an incredibly eye opening experience.

Take this, for example:

A Starbucks habit of picking up a regular coffee and biscotti on the way to work each workday. $4/day = $20/week = $15,040 in coffee over just ten years!!

Without compounding, $4/day = $20/week = $1,040/year or $10,400 after ten years. However, to calculate it’s actual future value you have to take into account what would happen if you invested that $20/week instead.

He provides a helpful shortcut for calculating the future value assuming 7% growth compounded over 10 years:

To calculate a weekly expense compounded over ten years, multiply the price by 752. For a monthly expense, multiply by 173.

752 * $20 equals the $15,040 he calculated.

Curious, I looked into the math behind this. He provides a link to Future Value Calculator which derives the formula for an ordinary annuity, though I found this explanation on Investopedia much easier to follow.

Where does that 752 come from? From the Investopedia article:


In this case the interest is not 7% but 7% divided by 52 weeks per year, and the number of payments is 52 weeks per year multiplied by 10 years.

The future value then is:

FV = C*[ \frac{(1+\frac{0.07}{52})^{52*10}-1}{\frac{0.07}{52}} ]

Or, more simply:

FV = C * 752.34

That’s where the 752 comes from.

Similarly, the future value after 10 years of monthly savings is:

FV = C*[ \frac{(1+\frac{0.07}{12})^{12*10}-1}{\frac{0.07}{12}} ]

FV = C * 173.08

What’s amazing is that $15K is just by saving $20/week. If you can save $100/week instead, you’ll net about $75,200 after ten years. Pretty crazy isn’t it?