How freemium nearly caused our business to implode

Josh Pigford on November 09, 2015

Three months ago, we introduced a Free plan…and it nearly brought Baremetrics to its knees. Let’s take a look at what we did, how it affected our business and how it was ultimately a failure.

When I first built and launched Baremetrics over two years ago, I charged from day 1. No free plan and no trial. You signed up with a credit card and were charged real actual money. Not happy? No sweat, we had a 60 day money back guarantee.

We kept this setup for almost two years and grew the business from $0 to over $30k/mo in revenue using it. Then we decided to shake things up.

Our free plan setup

In August, we launched a totally free plan. No time limits and no limits on the number of customers (which was a major segmenting factor for the paid plans). The only limit was on the feature set.

Want full historical metrics? Upgrade, please. Want powerful tools to dig deeper in to your metrics? You’ll need to upgrade for that. Want to automatically collect on failed charges? You guessed it: upgrade.

We didn’t require a credit card until you were ready to upgrade. There was essentially zero commitment to actually doing anything other than signing up.

The results

We launched the Free plan on August 18 via a slightly atypical manner: Beardmetrics. The results of our Beardmetrics marketing experiment is content for another post, but ultimately we didn’t actually make a huge “BAREMETRICS NOW HAS A FREE PLAN!” announcement. We sent out an email to 7,000 people and tweeted to a few thousand more as a way to create some buzz around Baremetrics. We then attempted to convert as many people as possible by making it super easy/fast to sign up.

Over the course of 11 weeks, over 1,000 free accounts were created. To be clear, that wasn’t 1,000 “potential paying customers”. We’re still geared strongly towards “subscription” companies. That means a company needs to have subscription revenue and, more specifically, has to be using Stripe’s Subscription API. (Update! We now support Stripe, Braintree, Recurly and Chargify.)

So, of the 1,000 accounts, 461 were actually eligible to even think about becoming a paying customer.

Of the 461 eligible paying customers, 53 actually upgraded.

53 as a % of 461 = 11.5%

Our Free-to-Pay conversion rate over the course of almost 3 months was just over 11%, and with an ARPU of $90, that meant nearly $5000 in new MRR.

Honestly, that’s pretty amazing. The average B2B conversion rate is around 3-5%…so we were killing that. But as these things go, it wasn’t quite that simple.

When free started breaking down

We were adding over a dozen new accounts a day, but that’s about where the fun stopped.

Quickly, we started coming up against a lot of performance and database issues. Within a few weeks our “free” customers were outnumbering our “paying” customers and the amount of data were both storing and processing had doubled.

Because we have to pull down and store your entire data set from Stripe and then generate the metrics for every single day for every single plan on your account (and store that as well), there’s just simply a crap ton of data processing that happens.

We had over two years to slowly work our way up to the amount of data we were processing before the free plan. We then found ourselves needing to double the processable load in a matter of days. Needless to say, it didn’t work out in our favor.

We were dealing with day-after-day and week-after-week of progressively more complex server and performance issues as we just kept piling on the new free accounts.

In addition, the number of customers we were supporting tripled. We found ourselves spread really thin, unable to provide the same responsiveness as before. And on top of that, our regular support load was increased due to the aforementioned server issues.

Then, to make matters worse, we were so focused on putting out server fires, we found ourselves making zero progress on the product itself.

To say the issues were compounding would be an understatement.

Calling it what it was: failure

The net result of those compounded issues led to what was at the heart of our free plan failure: churn.

We started losing customers left and right because day after day they were experiencing down time, delayed data and inaccurate metrics, which is absolutely never okay. On top of that their support experience was less-than-ideal and the product itself was becoming stagnant and buggy.

We lost nearly 60 customers during the 11 weeks we had our free plan, doubling our revenue churn and resulting in a net loss of customers. Our free plan was causing our business to slowly implode.

When free doesn’t make sense

People talk a lot about how the support load for free customers is one of the main negative factors of freemium. That was certainly part of it for us.

The bigger issues came down to the fact that our resources are finite. We’d been able to scale our infrastructure slowly because our growth before had been predictable and we could figure out ahead of time when certain bottlenecks would become major issues.

The free plan threw all of that out the window, though.

When your available resources, whether it be team size, performance caps or money, are tight, then “free” has a real possibility of causing more damage than providing any real benefit.

Things we could have done differently

There are a couple of things we could have done differently that may have resulted in a different outcome.

  • Limited how much historical data we imported and processed — If we’d only imported the 30 days of data we were showing for free plans, that’d have saved us quite a bit of processing, but I believe it would have also made for a crummy upgrade experience as you’d have to re-import all your historical data.
  • Provided a full-featured trial to start with and then just downgrade to free — Theoretically this would have resulted in more upgrades, but it wouldn’t have solved scaling issues.
  • Limited the number of paying customers on the free plan — This would have preventing huge accounts from hogging resources, but ultimately this would have just delayed the inevitable by a week or two.

There are all sorts of setups we could have tested, but at the end of the day we needed to course correct as quickly as possible. We can revisit some of these things later on.

What we’re doing now

In the past week, we’ve switched to a free trial. For 14 days, you get full access to everything, after which you can pick a plan. If you chose not to pick a plan, we stop processing your data.

This puts a hard limit on resource hogging and keeps us from having compounding performance issues.

We’ve also made significant improvements to our infrastructure to avoid these issues in the future.

I’m not going to write off freemium completely. I believe there are definitely situations where it can work. But right now, in our situation, it definitely did not work.

I’d love to hear your candid feedback on things we could have done differently as well as your own experiences with freemium.

Josh Pigford