Three months ago I published a deep dive into Storemapper, a tiny SaaS product that I run. I thought the post (now on Medium) was too long and delved too much into the gory details to be broadly interesting but I was blown away by the response. The post sat atop hacker news for over 24 hours and my typically sleepy blog saw something like 50,000 uniques in a few days. So, here I am, back with another update.
The impetus for the original post comes from Baremetrics, the insanely simple SaaS metrics dashboard for Stripe that I use. As paragons of transparency, Buffer, Baremetrics itself, and several other cool startups had made their dashboards completely public. Josh from Baremetrics asked if I wanted to do the same for Storemapper. I had been meaning to write a tell-all about bootstrapping my Micro-SaaS business anyway so it all fit. So, as always, you can see Storemapper’s live metrics on our public dashboard.
50% QoQ growth
Storemapper has been on a tear since I seriously focused on improving it in March of this year. The last quarter has been great with recurring revenue increasing by 50%, up over $80,000 per year, in just three months.
I think Q3 is a great time to launch ecommerce apps. Store owners are putting in time to prepare their business for the holiday surge and are much more willing to make investments to help them better capitalize on Nov/Dec sales. That’s likely part of the story this year as well. Here are a few things I’ve been focusing on in the past three months:
- Converting free trials
- More Premium features and upselling
- A/B testing prices
- Reducing failed charges
Onboard like a boss: convert the free trials!
After a little experimentation, we’re back to requiring a credit card on signup. Most people in SaaS have a strong opinion on this. It does reduce free trial signups, and it does slightly reduce overall paid signups, but it saves so much in headache that it’s worth it.
So it was always clear that Storemapper has great retention and very low churn. Setting up Baremetrics let me really see the lifetime value for each plan. With churn below 1% the LTV for most of our popular plans is well over $1,000 per new customer. It was clear that the best thing I could do was focus on getting incredibly good at converting free trials. I re-built the signup process to show platform-specific installation instructions. I tightened up automated emails and in-app messages using Intercom to reach out to customers when they didn’t hit key milestones during the free trial.
The results are awesome. Storemapper is now consistently converting over 40% of all free trials. In October a whopping 42 out of 43 free trials who signed up directly on our site (not through an app store integration) converted to paid plans.
I’m now super happy with our funnel with high conversion from free trial, low churn and super high LTV. The next area of focus will be investing in some paid acquisition. I am a total noob at Adwords/Facebook/retargeting and would love to pay/barter for a crash course from a pro.
Push for Premium
Digging in to Expansion MRR Storemapper’s best upsell flow is convincing medium-sized customer on our Pro plan ($19/mo) to upgrade to Premium ($39/mo). Premium comes with a ton of fancy features like heat map analytics. This past quarter I added several new features like:
* Improved syncing from Google Docs * Facebook Page Tab integration * Pretty map themes powered by SnazzyMaps
I then added several Intercom notifications to prompt targeted customers to test out a few of the features. You can see the results: 20 upgrades, many of them to premium accounts representing a few thousand in new annual recurring revenue.
A/B testing prices
I have been testing prices on Storemapper for a long time but I’ve always kept it simple and just changed the prices and watched what happened. I never ran a simultaneous A/B test because even with cool tools like Optimizely it’s still a pain to setup.
Optimizely can do the front-end stuff to make sure each customer is cookie’d and sees the same prices every time they load your landing page, but you still have to do a back-end integration so they see consistent prices if they go to upgrade or change their plan.
But I went ahead and did it. I hacked up a solution using Mixpanel to track funnel conversions and Nate Kotny’s Simple Abs to handle the A/B. Then I manually did the math between the Mixpanel conversion data and Baremetrics LTV metrics.
It was still a big waste of time. It’s very hard to see conclusive evidence of superior pricing. Even if you get more revenue from a higher price point you need to wait to see if that higher cost leads to a higher churn. Blah blah blah. In a micro SaaS business you’re looking for big wins that obviously improve recurring revenue. If you need to do some math to determine that something is statistically significant then it wasn’t worth the time and effort to do it.
I’m still testing prices but I scrapped the whole setup and went back to manually tweaking and watching for big moves.
Reducing failed charges
Here’s something you don’t learn until you have a portfolio of customers’ credit cards that you charge every month: charges fail a lot! Like an insane amount. I went about 9 months on Storemapper before I looked into this and I discovered that like 50% of my customers’ credit card were invalid or failing. Initially I built a simple email notification using Stripe Webhooks but it turns out that a) customer’s don’t immediately jump at the first opportunity to update their billing info and b) it’s a HUGE pain to keep track of every outstanding charge.
I highly highly recommend using Stunning to solve this problem. It integrates directly with your Stripe account and emails customers when their card fails automatically (and keeps emailing them until they comply!). That feature alone makes the service worthwhile but you can also use it to send pretty email receipts and other email notifications, it pro-actively updates cards before they expire, has an iPhone app that shows you all your Stripe events and a bunch of other stuff.
In this quarter I tightened up my Stunning integration, taking advantage of everything they had to offer and hunted down some very very negligent customers as well. Failed charges is still a huge deal but my process is 99% automated now.
If you liked this post
It’s my birthday today so do me a favor and push the little up arrow for this post on hacker news 🙂