Happy Bootstrapper
Happy Bootstrapper - Product Business - Fund it. Grow it. Love it. | Product Business – Fund it. Grow it. Love it.

Jun 14

Resources for self-funding your startup

I chose to self-fund FirstOfficer.io because I wanted to have a location independent business. But that’s not the only reason. My fellow bootstrapper Allan compares his accounting SaaS to a cockroach. It’s small, but it’s virtually unkillable – watching as the competitors raise millions of dollars, whirl by and then die.

I put together my favorite bootstrapping resources, so that you can shave off some learning time and build a successful product sooner. I don’t have any financial incentive to recommend these sites and products.

Self-funding = risk management

Self-funding your product is a great way to learn practical business skills in a safe environment.

External funding is not only an accelerator. It’s a financial amplificator that magnifies everything – wins, losses and risks. If you know how to play the game and your personal goals align, it’s a great tool.

But for rest of us, funding is just a risk multiplier.

If you want to start investing in stocks, the recommendation is not to start with loan money. Yet so many people do that for their first startups. Capital is a form of debt, even when you give away equity & power. Eventually, it always translates to money – the VC investors are not stupid. They hedge their bets so that they win whether or not your startup succeeds.

PersonalMBA explains business concepts that you should know. It’s pretty much a compilation of great books, so the greatest value in this book is that you don’t have to read all those other books. The author lists the resources, so that you can dig deeper if you wish.

Starting and sustaining gives you a great overview of what it means in practice to build and run your own SaaS product.

Finding time & money

When a bootstrapper meets another bootstrapper, a common question is “How do you fill the gap?

Most self-funded businesses go through a phase where your product brings in some money, but not enough for living. There are several strategies to fill in the gap and plan your escape from the rat race.

It’s also worth to learn to be more money-savvy, but not to the point where you lose the quality of your life. Mr Money Moustache is a nice resource for that, and lots of people enjoy using YouNeedABudget. I just use spreadsheets myself.

Try to think like an investor. Sell less of your time – invest more of it.

Finding a mentor & meeting like-minded people

Bootstrapping is a lonely endurance sport. Having a mentor shortens the time to success.

Big part of my product success is due to what I’ve learn from Amy & Alex in 30×500  - back when it was a 5-month long course. Nowadays it’s different, but I do think they take applications today, so if you want in, hurry! Amy also hosts a BaconBiz conference for bootstrappers.

There are others, like Rob, who runs Micropreneur Academy and hosts MicroConf conference. The next MicroConf Europe will be in October 27th, in Prague. I’ll be there too.

TropicalMBA have their Dynamite Circle. Dynamite Circle isn’t open for new people all the time so if you want in, prepare for a wait.

They say that you are the average of the five people you spend the most time with. So seize the opportunities to meet other self-funded business owners.

Better yet, put together a mastermind group with 3-5 local fellow bootstrappers. I feel that it really helps to keep up the motivation when you can talk with someone about your business at least once a month, live.

Finding other self-funded businesses

Bootstrappers are active online, so hop in and meet people!

I’m in the Our Own Little Accelerator group, even though I don’t take part in their podcasts. We hang around in a chat.

I take part in a mastermind group in Solo.im, and they also have a mailing list and discussions. It’s not super active group, but it gives you access to mastermind groups that might be otherwise hard to find.

Bootstrapped.fm has a pretty and relatively active discussion forum with lots of interesting people there.

Then there’s lifestyle.io that hasn’t really taken off. And GrowthHackers that seems to have a focus in bigger businesses. Joel on Software is a nice forum too, although quite quiet and focuses more on desktop products.

There are also plenty of mailing lists and some of them delivers digests of week’s best articles so that you can find new people and blogs to follow up.

Learning from what others do

Time is a precious asset. If you want to get success in a meaningful time, you can’t afford to learn only from your own mistakes and failures.

Fortunately there are so many blogs to help you! I’m only going to list those that I love so much I read every article in them:

I think Unicornfree is the best place to get started with bootstrapping. Amy is opinionated, but she knows what she’s talking about.

A Smar Bear is probably my all-time favorite business blog. Jason has been on the both sides an built both self-funded and funded successful product businesses. This blog is a goldmine.

Patrick McKenzie, aka patio11, is known and loved by everyone. His articles and emails are full of practical information on how to make your product better. And his blog is huge! Be warned that the posts are long.

LessAccounting Blog always makes me smile. I can read between the lines how Allan loves his life and sees the business as a tool to live your dreams right now. I love that attitude. He writes on several topics, but there’s an index where you can pick just the topics that interest you.

I’ve learned so much from Brennan that I just keep following up him even though big part of his posts/emails are about freelancing. But the business stuff that appears in PlanScope Blog is super valuable.

Jarrod is a fellow 30×500-goer. His book, blog and free email course are god-sent for people bootstrapping their businesses. You don’t want to hire a designer for your baby product, but you don’t want it to look like a roadkill either. As you don’t have time to learn everything, Jarrod points out the essential things that make 80% of the difference.

In addition to these, you can easily find a mass of great blogs and people via the other links in this post.


Podcasts aren’t my thing, but one can’t really skip them either – not when they feature all the interesting people.

Product People
Startups for the rest of us
The Rocketship Podcast
Kalzumeus Podcast (This one has transcripts too!)
Bootstrapped with Kids
Chasing Product

Good luck to your upcoming business! If you don’t want to miss my upcoming articles, drop your email to the box below:

Share and Enjoy!

    May 14

    We own all SaaS analytics tools, but it wasn’t clear what was going on!

    This is what Amy wrote when her SaaS stopped growing – and it came as a total surprise to her:

    “I own every analytics tool out there, and we use them all, but they’re all so opaque it wasn’t at all clear what was going on (or why)”

    I’m really glad she shared that, because a lot of entrepreneurs have the same challenge.

    You need a bunch of different analytics tools, and you’ll need to know what you can do with each. Otherwise you’ll be looking for insights where none can be found. Or live with a false security that everything is OK while things are getting worse.

    So let’s take a look at different analytics tools and their purposes.

    The business improvement steps

    To master your business and drive it where you want, you do something like this:

    1. Understand what’s going on and where your business is heading. Now you know where to focus and what to improve to get the results you want
    2. Study or troubleshoot the thing you want to improve. Now you have ideas how to improve it
    3. Follow-up so that you’ll know if any improvement happened.

    I think the number 3 is nicely covered with available tools, but numbers 1-2 are where people struggle. You’ll know you have this problem, when you feel that you need to guess things to improve your business.

    But anyway, there are analytics tools to help you with each of these steps.

    Three types of analytics tools

    If you roughly group analytics tools by step, it looks like this:
    SaaS analytics tool types
    The tools list gives just a couple of examples. In principle, if it tracks user events, it’s probably a troubleshooting tool. If it shows a lot of percentages, it’s probably a follow-up tool.

    But none of the tools sits nicely in a single box.

    For example KISSmetrics has a simple follow-up dashboard. BareMetrics used to have a view that helped to get a little overview on what’s happening (this don’t seem to be available anymore). FirstOfficer has metrics dashboard too.

    Google Analytics could be put to any of these boxes. You can do pretty much anything with it, but unless you are just tracking visitor counts it can be pretty intimidating and has a huge learning curve.

    Follow-up tools

    Tools like BareMetrics, GeckoBoard and your own dashboard with several key percentage-based metrics are great for following up that you are making improvement.

    If you have a customizable dashboard, you can show just one metric at a time – the one that you are currently trying to improve. That helps focusing on the right thing.

    Following up improvements is so important that almost all analytics tools offer some type of dashboard.

    What are follow-up tools bad at?

    You can’t use follow-up tools to assess your business health and really understand what’s going on. Not unless you already have the big picture of your business in your head and can memorize all the figures that these metrics were calculated from and recall all the relationships between different metrics.

    Some top CFOs can do actually that. I can’t do that. There are just too many figures to memorize.

    If you try to use these tools as a canary in the coal mine, that won’t work either. They will show you when things are really wrong, but by then shit has already hit the fan.

    Why? Because percentage-based metrics have no “this is ok”-range. It always depends on what your overall business situation is.

    Let’s take an example:

    Churn has no ok-range
    13% of $10.000 is $1.300. But 13% of $100.000 is $13.000, and that might not be easy to replace with incoming customers. So especially if your business is growing fast, you can’t afford to miss up things like that.

    Troubleshooting tools

    Event-based SaaS analytics tools like KISSMetrics and MixPanel are great for troubleshooting and studying your customer-base. But they are a bit complex to get started with.

    The most common mistake people do with these tools is to buy them too late.

    These tools start to gather events when you buy them and install triggers to your code. They don’t have access to any data before that.

    If you play the canary in the coal mine game mentioned previously, you’ll end up buying these tools 6-12 months too late. Then you waste valuable time waiting that you’ll have enough data to actually do something. In the meanwhile, all you can do is to just try out random things. You lose money and may miss your goals.

    The gap in troubleshooting tools

    There’s one thing that KISSmetrics and MixPanel don’t do well. If you don’t know a specific event or property that you are interested in, these tools don’t help you much. You’ll need guesswork to find out events that matter.

    We are seriously lacking good customer success troubleshooting tools.

    For example, you can easily find groups of interesting people with FirstOfficer.io, and it would be important to find out which properties and events are common to these people. But that’s not easily done with KISSmetrics or MixPanel.

    And that’s why I listed Intercom.io, even if it’s a messaging tool. Intercom.io has an API that can be used to tag interesting people, and they have a view that shows several properties for several people at the same time.

    But I haven’t yet found a tool that would take a list of customer emails and return a list of events that are common to given people. If you know a tool for that, please let me know!

    Business health & overview tools

    This is the area that lacks tools the most – which is why I built FirstOfficer.io.

    If you want to understand what’s happening in your business and where things are going, the only other tool that I know of is SaaSOptics.

    But if you take a look at their reports, you can easily see that they are targeting larger companies. So if you use accrual-basis accounting and have someone (a CFO maybe?) who can actually interpret SaaSOptics data for you, just go for it.

    FirstOfficer.io doesn’t cover all the areas that SaaSOptics does, but my goal is that any entrepreneur could use it. No MBA/CFO skills needed. So I visualize just a couple of key things that no SaaS owner can afford to miss, but I visualize them well.

    FirstOfficer.io is launching 28th of May. If you want to know more, please sign up to the FirstOfficer.io launch list.

    And please share this article with your entrepreneur friends, because they are going to love this tool!

    Share and Enjoy!

      May 14

      “Should I focus on acquisition or retention?”

      So many opportunities, so little time – that’s how it feels most of the time.

      In last post I wrote about growth plateaus. But when you find your SaaS approaching a plateau, what should you actually do?

      You know that there are just a couple of levers to pull:

      • Get more new customers & MRR
      • Raise prices
      • Increase retention
      • Upsell & cross-sell

      And one might think that all those options are equal – it doesn’t matter where the growth comes from, as long as you have it. If only things were that simple.

      Let’s see an example.

      Which SaaS is more healthy?

      Let’s imagine two little SaaS businesses that at quick look seem to be identical.

      Both started this month with $10,000 of MRR.

      Both grew by $2,000 this month.

      Company A focuses in acquisition. As a result it has $1,000 more new MRR than Company B.

      Company B focuses in retention. It has $1,000 less lost MRR than Company A.

      Evaluating 2 different SaaS companies
      Which of these companies would you like to own?

      Let’s take a look at the growth ceilings

      If you only look at the short term changes in MRR, both companies seem to be equal. Or you might even think that the Company A is better as more customers flow through it.

      But what if we calculate the growth ceiling for both companies?

      Company A maximum business size: $23,000 of MRR

      Company B maximum business size: $50,000 of MRR

      So the Company B should be able to grow smoothly to $35,000 or so before the growth ceiling will start to slow it down.

      Whereas for Company A it will take just several months before it will have to start struggling against the growth ceiling.

      Let’s take another long-term point of view

      One way to think about business value is to imagine what would happen if you wouldn’t get any new customers.

      How many months would it take until churn would leak you dry and all customers would disappear? What’s the value of your current customer base?

      Company A average customer life-time: 7 months

      Company B average customer life-time: 20 months

      Normally you’d need to convert this to MRR. But these companies have same MRR, so we can skip that. Now we know that Company B is currently more valuable, more fail-safe and more stable.

      The big tug of war

      There are two factors here – the short term MRR and long term business value. And whether you do it actively or not, you are always optimizing between those two.

      Just like you did when you decided to become an entrepreneur. You decided to invest your hours to your product, instead of selling them for immediate benefit. You did that because you knew that you’d eventually get way more money and freedom and other nice non-money things.

      Now when your business is running you’ll need that investment mindset more than ever.

      And this is where collecting the metrics and actually using them to do little calculations like we did here can really pay off. Otherwise it will be super hard to guess whether your main focus should be on acquisition or on retention.

      Stop missing upcoming articles – drop your email in the box below:

      Share and Enjoy!

        Apr 14

        The secret to break through a growth plateau

        When SaaS businesses grow they move though different phases. Sometimes it can be a painful experience.

        You can ease up the growing pains if you understand what’s going on. So lets take a look what happens behind the scenes.

        The SaaS ecosystem

        You have a certain audience. These are the people who in general could buy your app, but you can only reach a part of them, the leads.

        Part of the people you reach will become your customers and create new MRR (monthly recurring revenue).

        Those people will move into the next category, and become your existing customers. They’ll give you recurring revenue every month.

        Each month a part of your existing customers leaves, and take a part of the recurring revenue with them, the lost MRR.

        SaaS ecosystem
        The proportional relationship between new customers and leads is called conversion rate. For simplicity’s sake, let’s imagine that each customer pays $1, so I can refer to conversion rate and mean the relationship between new MRR and leads.

        Likewise, the ratio of lost MRR to MRR is called churn rate. But it too could be measured in customers as well.

        Rules of the game

        You can scale any of the colored boxes up or down. But while you do that, the green new MRR box scales along with the leads box and the red lost MRR box scales along with the MRR box.

        For example:

        • Running a marketing campaign to reach more people would scale up the yellow leads box, and the green new MRR would follow.
        • A/B tests to increase conversion rates would scale up just the new MRR box
        • Upgrading your existing customers to more expensive tier would scale up the MRR box, and red lost MRR would follow.
        • Making customers happier would scale down only the red lost MRR box

        Now, let’s see a couple of examples. I’ll be using 25% conversion rate and 25% churn rate – just because that’s 1/4 so it’s easy to draw.

        Realistic figures for a plateauing SaaS would be e.g. 2% conversions and 10% churn/mo. Yes, per month.

        A baby SaaS ecosystem

        At the start your existing customer base and MRR is small. But there are a lot of people out there in the leads box.

        Baby SaaS ecosystem
        This is just a plain game of percentages, so it’s much much easier to make a visible impact by concentrating on the bigger mass of people. So you’ll focus on the left side leads and new MRR. And growth follows.

        A teenage SaaS ecosystem, plateauing

        When your customer base & MRR grows, the lost MRR grows along. When the lost MRR approaches the size of the new MRR, your business growth first slows down and then stops. For every new customer you win, one of your old customers leaves.

        Plateauing SaaS ecosystem
        But as you’ve used to work on the left side, you may fail to notice that your existing customer base is now a considerable mass of people, and you keep on targeting your improvements to the leads and customer acquisition.

        That’s what you’ve always done and it has worked.

        What happens is that you do get growth, but as the left side feeds the right side, MRR grows and also scales up the lost MRR. Lost MRR catches up with your new MRR again.

        So you work to hard to break the plateau, but the growth is withering, like you’d be pushing against a headwind. Your MRR may look something like this:

        Withering MRR growth


        So what’s the secret?

        You may have guessed it already.

        You will need move your main focus from potential customers and acquisition to your existing customers and retention. But at the same time, you can’t decrease your acquisition efforts or the churn will eat you up.

        You’ll need to adjust to the new environment. What boosted your business growth earlier stops working. Your old bag of tricks doesn’t help.

        Edit: After analyzing a lot of SaaS metrics for FirstOfficer.io customers, I know that it’s possible to have this kind of plateau before your customer base is large. That happens when you don’t have enough traffic or conversions and in those cases the focus must remain in acquisition. Always analyze the metrics in their context!

        Of course it depends on your business where the sweet growth spots are. The actions that affect the right side will often need implementation on the acquisition and marketing side, because the leads side feeds the MRR. But it’s a completely different action to change your marketing to acquire more of a certain type of customers than just to change it to acquire more customers in general.

        Worse, when you’ve worked in a certain environment for years, you may totally miss several pitfalls around this change.

        1. You run into the plateau in full growth mode

        Businesses invest in their growth. And when you are bootstrapping, you often forego profit and just invest it all to growth. Or most of it.

        The idea is that you’ll grow you business and THEN you collect the profit.

        But here’s the bad news. When you are in plateau, you must keep on investing that money, or your SaaS starts to shrink. Your new MRR isn’t growing your business, it’s just replacing the lost MRR.

        Yes, lots of people are coming in from the door. But your business is like a revolving door. As one person comes in, another steps out.

        There’s a Finnish saying:
        “Everything is possible, except skiing through a revolving door”.

        One does not simply ski through a revolving door
        Unfortunately your customers aren’t on skis and don’t get stuck. Bye bye profits.

        2. “We’ll just fix this quickly like we always do”

        The actions that target leads or new MRR have often immediate and radical impact. Not so with the actions that target your existing customers.

        Just think about it. A/B testing, pricing changes and conversion optimization – immediate results.

        But if you want to cross-sell or up-sell to your existing customers, you’ll have to first build the thing that you want to sell. If you want to lower the churn by changing your customer base composition to better match your ideal customer, those new customers come in tiny drops relative to your old customer base.

        And if you aren’t prepared at all and have to start collecting data for profiling your customers from the scratch, it will take 6-12 months to collect a comprehensive data set. Before you have it, it’s harder to measure your progress. You’ll be pretty much throwing spaghetti on the wall and seeing if it sticks.

        3. You keep looking for tips and tricks from wrong places

        You may not have enjoyed reading David Skok’s or Lincoln Murphy’s articles because it seems like they’d be living in a different world with different rules, like:
        “over 10% churn means you don’t have a product-market-fit”.

        And this far those rules haven’t matched your reality. You’ve maybe even gone:
        “He he, whatever, MY churn is 18% and MY business is growing – you bullshitters!”

        So you rather read the blog posts of fellow bootstrappers. Those are the people that you relate to and whose advice has worked so well this far.

        But David and Lincoln are working with post-plateau SaaS, while most of the blogging bootstrappers are running pre-plateau SaaSes (or in-plateau).

        Don’t get me wrong, all of them give great advice – they just focus on businesses in different stages. And when your SaaS plateaus, you are moving towards the world and the rules David and Lincoln play with.

        So you may want to dig up those articles on negative churn, customer success, deadly customer acquisition costs and finding your ideal customers that didn’t make sense before.

        But I especially enjoy reading Jason Cohen. Even though his company is big, he has the talent of explaining things in a simple way. For example following up SSEBITDA now might save your ass later.

        Prevention is better than cure

        This type of plateau doesn’t have to come as a surprise. It gives clear warning signs to your metrics months before it happens.

        I try to catch SaaS businesses to FirstOfficer.io before their growth plateaus. It has a view that shows changes to growth in MRR component level, so it’s easier to notice the approaching plateaus.

        If you start working to clear up the issues well in advance and take care of your profitability, life will be so much easier.

        Of course, depending on your numbers, it may be that your SaaS is just reaching it’s normal maximum size and you may not want to grow it further. But it’s still nice to know where you stand.

        Share and Enjoy!

          Apr 14

          “Entrepreneurs just guess – and if they succeed, they say that they had data”

          I was talking with one of the FirstOfficer.io testers, a smart and successful entrepreneur, when he said, “People are just guessing, aren’t they?”

          “They want to look good, so they say that they had data, but I think they just guessed. And just look at what happened to Ron Johnson when he went from Apple to J.C. Penney. Even the big names fail.”

          That point of view was totally new to me.

          Finance and metrics are as much art as they are science. And when you understand data-based decision-making, you’ll know it always requires also vision and guts. But if you aren’t using data to back up your decisions now, you can have hard time imagining what actually can be done with it.

          Now knowing that you don’t know is a risk

          When I was a teen, my dad had me to do the company books. But a couple of years later when I went to study accounting I totally failed my first exam. Why? Because I thought I already knew all about accounting. My practical knowledge and confidence blinded me from seeing that the topic had much more depth than I could have imagined.

          The biggest risks in your business comes from the things you don’t know that you don’t know.

          Trying to use data to run your business if you don’t know the basics is risky. You’ll be confidently making bad decisions.

          So let’s go through a couple of basic concepts. This is not specific to SaaS metrics, but general finances/metrics stuff.

          It’s not a choice between guessing and knowing

          When you use data to help you decide things, it does not mean that you would gain 100% knowledge. That’s just impossible. You’ll increase the probability that your guesses will be right. And you’ll manage the risks better. But there’s always some guesswork included.

          You’ll go from a total guess to knowing that if things X,Y and Z will stay the same, you’ll reach your target. But you may also know that if thing X changes, it will be critical and you will fail. And there’s no way to ensure that things wouldn’t change.

          As you can see, even when you have the data you cannot know the final outcome of your decision. But at that point, it’s hardly a guess either. It’s something in between. An educated guess, maybe?

          You can’t separate your guts and the data

          How you interpret the data depends on your skills, past experience and even your personality. You can give the same metrics dashboard to two different people and they see different things. It’s like everyone would look at the data through tinted lenses.

          And you tend to ignore what you can’t understand.

          For example, when I didn’t know how to read balance sheets, I thought it was just a trivial report that the law required us to print out every month. I thought that only the P&L sheet mattered. But it was just me who couldn’t even imagine all its purposes.

          Numbers are not facts

          You may think that numbers are facts. But when we are talking about finances and metrics, they aren’t. They are just a rough way to try to model the reality.

          You’d think that profit from your P&L sheet was a hard number. Surely what you earn is a fact. But it isn’t. It’s your accountant’s best effort to match what really happens.

          And the same goes for the SaaS metrics, but with somewhat smaller impact. Your last month MRR may contain people that end up asking full refund in the future. And how did you categorize that person who bought 3 subscriptions and then cancelled 2? Were those downgrades? Lost subscriptions? Or a clear mistake that should not be visible in the figures at all?

          The only number-related thing that’s really a fact is the number of dollars in your bank account. Cash is the king.

          If this sounds too strange, there’s an excellent book called Financial Intelligence that teaches basic finances to entrepreneurs. It’s targeted to larger non-SaaS companies with accrual accounting, but it’s still a great read, especially if you are also interested in investing.

          Past performance does not guarantee future results

          Some of the SaaS metrics are in fact future-looking projections, like customer lifetime value (CLTV). You are taking figures from your historical data and trying to estimate what will happen in the future.

          It’s impossible to produce fully reliable CLTV figures.

          For starters, there is a handful of different formulas to use, each one optimized for certain conditions. Churn rate, a major component in calculating the CLTV has lots of room for interpretation and inaccuracy too.

          Secondly, even if the figure would be somewhat right, the behavior of your past customers can never predict how your existing or future customers will behave.

          But having figures that are not perfect is OK – you just need to know that.

          When you know which numbers are trustworthy and which are not, you can team up reliable figures together with the weak ones. That way you can come up with a prediction that you can actually work with.

          Following up the numbers vs. proactively using them

          I hope this post has given you a glimpse to the concepts behind data-based decision-making.

          It has been educating for me too. I can now see what a huge jump it can be to go from following up your metrics to actually effectively using them in decision-making. And that information will definitely help me in FirstOfficer.io development – I don’t want it to be just another metrics dashboard. I want it to produce real results.

          If you liked this and don’t want to miss up the upcoming Happy Bootstrapper articles, drop your name below:

          Share and Enjoy!

            Mar 14

            How to Calculate MRR Using Stripe API

            If you want to get rid of the every-month fiddles with metrics spreadsheets, here’s the first step – automatically calculating monthly recurring revenue from the payment gateway entries.

            MRR is the number 1 metric for any SaaS business, and many other metrics base to it.

            There are quite a lot of steps, I’m sorry for the long post.

            Real or theoretical plan price?

            MRR is often calculated using the theoretical plan price. So if Sally has a $5 discount on her $25 per month plan, her MRR would be $25.

            But when you have the real entries from Stripe API, you’ll probably want to calculate MRR with real amounts instead. So if Sally pays $20 per month, $20 is the recurring revenue from Sally, not $25. This way the MRR will show the actual amount you’d really earn next month if none of the current customers would churn, upgrade or downgrade.

            If you also calculate the discounts & refunds separately, you’ll see the MRR you lost due to them.

            Don’t make this common mistake!

            Monthly amount billed from subscriptions is not your MRR. Not even if you’d have just monthly subscriptions.

            Due to changes in refunds, discounts and delays in payments the MRR figures calculated from real paid amounts don’t normally match month-to-month.

            Calculating SaaS metrics isn’t accounting. This said, let’s get started.

            Finding out what was charged

            First, you’ll need to fetch BalanceTransactions of type charge and refund.

            The amount field will contain the amount paid. We’ll not include Stripe fees in the MRR. Leaving them out makes it easier to do profitability calculations, but it’s up to you if you want to include them.

            BalanceTransactions do not include everything as Stripe keeps internal customer balance, but let’s handle that later.

            Next, we’ll need to find the plan that should carry the MRR. Even though we are calculating just the total MRR here, we’ll need to know the plan length so that we can normalize the MRR for annual subscriptions.

            How to find the plan

            The BalanceTransaction entry has a source field that contains the Charge id. The Charge has an invoice field that contains the Invoice id. The Invoice contains invoice lines, which may contain a “subscription” type entry. And those subscription type line items contain the plan information.

            The invoices also contain “invoiceitem” type of entries, which contain anything else that’s invoiced on top of the monthly charge. These invoice item entries should not be included in the MRR, unless they really are recurring.

            For example, if you are charging extra for customer’s disk space usage, and he can’t easily cut it down, include invoice items. But if you charge extra for every report that he prints out, and he prints them whenever he wants, don’t include invoice items to MRR.

            How to find the amount

            The invoice lines contain the theoretical plan price. Invoice’s total field contains the discounted total that we want to use. Unfortunately, you don’t get discounted line amounts, but the discounts can’t be targeted to single lines either, so for now you can just split the total among the invoice lines and include the lines belonging to MRR.

            If you don’t charge invoiceitems, the invoice will contain just the subscription line item and you can pick up the total as it is.

            Normalizing the MRR

            If the invoice you are handling is to a monthly plan, just include the MRR found in the last step.

            But if the invoice is to an annual plan, we’ll need to split it correctly. Subscription type invoice lines contain period object that hold the period start and period end for this subscription. You’ll need to split the total to the subscription period. For example, an annual subscription starting at 15th of January 2014 would be split to 12 parts, targeted to Jan-Dec. So no MRR to Jan 2015 for that plan!

            You can assign the amounts to the right months right away. There are extra benefits from doing that. Or, you can just include 1/12th of the total and take that subscription item into your calculations during the next 11 months too.

            Accounting the MRR to the right month

            You should use the subscription’s period start and period end to assign the MRR to the correct months, even when you are handling monthly subscriptions. If user has problems with their card – and they often do – the invoice belonging to one month may get paid in the next.

            Handling refunds and special cases

            At this point we have the basics down, but we still need to handle special cases and refunds.

            Handling Refunds

            Handling refunds is done by reversing the process we did earlier.

            BalanceTransactions of type “refund” have negative amount and a link to the Charge that was refunded. You’ll calculate the part of the refund that needs to be removed from current month’s MRR using the same rules that we used for calculating the MRR itself.

            The refund needs to be normalized too. A refund given today to a monthly subscription may well affect previous month’s MRR. A refund given today to an annual subscription may affect up to 11 months in future or history. But it’s up to you if you go back in time and fix previous months’ MRR.

            For example, if customer bought an annual subscription 6 months ago, and you’ll have to refund her the whole amount now, it’s up to you if you want to fix up the MRR entries from 6 months ago, or if you’ll just fix the entries for the current and future months.

            You’ll also want to check from Customer’s Subscription data if the customer was lost, especially if whole MRR got refunded. Otherwise your customer counts will be wrong and you’ll have ghost customers with $0 MRR.

            Including payments from customer balance

            Stripe keeps an internal balance for each customer, and when they unsubscribe from an annual plan and move to a monthly plan, the difference does not get refunded to them, it goes to their balance. And as long as they have balance, you don’t get any BalanceTransactions when they pay something. You also don’t recognize that they have changed plans until their balance runs out.

            To get your MRR right, you’ll need to include Charges paid from balance.

            Here’s how you recognize Charge paid from balance:

            “paid”: true, “amount_due”: 0, “starting_balance”: -9000, “ending_balance”: -8001

            The Charge paid from balance is marked as paid, but no amount was due.

            Handling Prorations

            Prorations happen when customers change plans, and you haven’t disabled the prorate option in Stripe. Stripe creates an imaginary refund to the customer for the part of the subscription that the customer didn’t use, and place a new subscription to the new plan.

            There are 2 types of prorations, ones that happen between plans having similar billing period and ones that happen when billing period changes.

            Unfortunately both types mess up MRR calculations.

            Handling Prorations when billing period changes

            This type of proration, if not handled, will cause you to show MRR to wrong plans, but does not affect the total MRR.

            As we are calculating just the total MRR here, I will not go into details, but the trick is to properly assign the refunds to the right plans, and create a correction entry so that the amount lost/refunded matches the whole subscription amount that the customer actually paid.

            You’ll have extra trouble finding out the plan that was refunded, as the plan id is not returned in the Stripe proration invoiceitem.

            Handling Prorations when billing period does not change

            This type of prorations, if not handled, may cause you to show extra MRR for a single customer. The proration collects up changes that may have happened in previous month, and then charges them in the next.

            For these prorations, you’ll need to check if the MRR to the new plan belongs to the previous month, and if it does, you’ll need to ignore it.

            For example, you had a customer who subscribed to $9.99/mo plan in 27th of Nov. In 2nd of Dec, he decided to move to $14.99 plan.

            Stripe will give you this proration at 27th of Dec: $8.47 was refunded to the old plan, $12.70 was charged from the old plan’s remaining period (using new price), and $14.99 gets charged from the new subscription.

            In this case, extra $12.70 would be added to second plan’s MRR and extra $4.23 would be added to total MRR, if you handled this wrong. The right MRR for Dec would be $14.99.

            If, instead, this customer would have made the change in 28th of Nov, you would have needed a different handling. In that case you could make the move right there and then and account $14.99 as November’s MRR for that customer.

            Should you really do all this?

            Now that you know how to calculate MRR from Stripe entries, should you do it?

            Well, the question to ask is: “Will doing this give me the best return of investment to the time spent?”

            If you are just starting out, it may be better to just keep count on customers and calculate MRR with plan prices. Or to implement just the part handling charges and refunds and to keep count on the customers who change plans. Those are the ones messing up the figures, and if you don’t have plenty of them, the difference isn’t that big.

            What I went through here is just calculating the total MRR, and getting the MRR by plan right is a lot more work still.

            To be frank, I probably would not have done all this if I wouldn’t be implementing an analytics app. If it would be ready I’d say: “Don’t do this yourself, buy First Officer!”

            Now I’m just saying “Join the FirstOfficer.io mailing list, beta is coming!”

            Share and Enjoy!

              Mar 14

              How to Profile a Leaky Sidekiq Job in Heroku

              I was happily boarding early testers to my upcoming Stripe analytics app, when the logs got filled with “Error R14 (Memory quota exceeded)” warnings. I’m new to both Ruby and Rails, so I thought “Gee, time to download a profiler”.

              After couple of hours I found out there was no profiler. More precisely, there are plenty of tools for the front-end of your app, like Oink and MiniProfiler. They just don’t work for background jobs.

              There are also some older profilers (MemoryProf) that just don’t work with Ruby 2.0 and Rails 4.0. Ruby-Prof, which does work, does not give you information about the memory usage. It writes html files, so it’s more suitable to be used in development anyway.

              So, I cried a little. Then I rolled up my sleeves and frankenstained a somewhat working solution from the pieces that I had.

              1. Confirming the leak/bloat

              Heroku can write summaries about memory usage.

              Just run heroku labs:enable log-runtime-metrics for your app.

              Then, run the problematic worker again and follow the logs. Now you can see the memory usage statistics in between your own log entries and you can easily estimate if the memory behaves like expected.

              In my case, the problem worker was fetching all customer’s data from Stripe. It had several separate sections, and in between them, the garbage collection should have picked up the trash. As they say Ruby MRI doesn’t really give you memory back if it gets reserved, I was expecting an upwards trend with plateaus every now and then when garbage gets collected. What I got was a constant upwards trend. A memory leak. Or a bloat.

              You’ll also want to set up the New Relic monitoring for your app.

              If you put GC::Profiler.enable to config/initializers/new_relic.rb, you can see your memory usage in New Relic.

              New Relic also has a thread profiler that can see your Sidekiq worker. In my case, these tools were nice for checking out the overall situation, but didn’t give me enough details. Maybe the tools in the paid version are different.

              2. Finding out what’s eating the memory

              Next you’ll need to find out what’s eating the memory. I found a couple of articles that have examples on how to use Ruby’s ObjectSpace and put together a little tool that gives you this output: 

              MemTool output

              The top part shows the memory usage in KB. The next part shows the garbage collector stats. Here are instructions for reading them. And the bottom shows the object instances in memory.
              In development env it will run also RubyProf, and it will write the results files in your app’s log dir. In Heroku it will print the results to the log, and skip RubyProf.

              You can get the tool code for Mac & Linux(Heroku) from Snipplr.

              Start it with MemTool.start(“some info, like class name”) and stop it with MemTool.stop.

              I wish I would have been able to find out who reserved the objects, but I’m still newbie enough that patching Ruby runtime sounds too scary. If you have any advice/experiences on that, let’s hear it in the comments.

              You’ll also want to run Oink. It tells you if you let ActiveRecord queries eat up the memory. Remember to use the -r option, or you won’t see the ActiveRecord stats.

              Unfortunately Oink is meant for profiling the front-end, so you’ll also need to create a new controller request that calls the code under test. That means you’ll have to do this test in development env, as Heroku will kill your non-responding requests after 30 seconds.

              3. Profile the job without Sidekiq

              You can run your background jobs using rake in Heroku. Just call your worker’s #perform from a rake task. This way you get to take Sidekiq out from the equation and you’ll find out if the leak happens also when you are running outside of it.

              4. Fix things

              That’s the phase I am. I was able to find several problem spots from my code, which I’m fixing now.
              After reading couple of articles by Mike Perham, the creator of Sidekiq, I don’t think I can fix my workers to be bloat-free, but I’m targeting to getting them into a condition where once-a-day restart with Monit would be enough.

              I’m also trying to reduce the base memory usage, in case I need to switch to Resque. Resque forks a new process for every job, loading the whole env each time – that’s why it in general needs more resources than Sidekiq. But that would also mean that every job has a clean plate.

              I’ll write a follow-up when I’m done, and if you don’t want to miss it, you can drop your email here:

              Share and Enjoy!

                Feb 14

                3 Ways to Misinterpret SaaS Metrics

                Finding out how your recurring business is doing isn’t always easy. There are just so many mistakes you can do.

                It’s easy to miscalculate the metrics – even some commercial SaaS dashboards do.

                You can also err by tracking vanity metrics instead of relevant metrics. Fortunately there are lots of articles on what metrics you should track, including my SaaS Metrics for Hackers.

                And then you can interpret the metrics wrong. Today I’ll present you the 3 simple interpretation mistakes that you can avoid just by knowing about them.

                1. Compare Conversion Rate to Churn Rate

                Business growth stops when more revenue is lost with churned customers than you get from new customers. That’s why people have the inclination to put the churn rate and the conversion rate side by side and compare them.

                But you can only compare rates when they are calculated from the same baseline, which isn’t the case here.

                Conversion rate is calculated using potential customers as its baseline. Churn is calculated using existing customers who are able to churn as its baseline. These two rates are not comparable with each other.

                Growth rate can’t be compared to churn rate either, for the same reason, but the mistake is smaller there.

                One way to find out if you are approaching a plateau is to compare the actual MRR components. When the Lost & Downgrade MRR gets as big as New & Upgrade MRR, growth has stopped.

                Easy way to see approaching growth plateaus

                The screenshot is from our upcoming analytics tool.

                Another good way is to calculate Growth Ceiling.

                2. Confuse Revenue with Profit

                Dan Norris recently revealed how he ruined his business profitability. The mistake he made? He concentrated only on revenue.

                It doesn’t matter how much you charge – it only matters how much of it you get to keep after you have paid the bills and the taxes.

                This shouldn’t be applied only to revenue, but to all the key metrics using revenue as their base.

                Customer Life-Time Value (CLTV) should be calculated from profit, but nowadays it’s often calculated from revenue. You don’t want to use 1/3 of the revenue from a single customer to his acquisition. But you may want to use 1/3 of the profit to the acquisition, if you can recover that money fast enough.

                If you are using CLTV and you didn’t calculate it yourself, find out if it’s calculated from revenue or from profit. You can then multiply the CLTV (revenue) by your gross profit margin, and get the ‘real CLTV’.

                3. Confuse MRR with Cash Inflow (or Sales, or Bookings or Revenue)

                I found this mistake in Christoph’s 9 Worst Practices in SaaS Metrics presentation.

                Monthly Recurring Revenue (MRR) shows you the momentum of your business. You can use it to calculate CLTV and other metrics that need to stay stable from month to month.

                You can’t use it e.g to calculate your profit. It’s just not accurate enough. It’s normalized to remove any fluctuations.

                MRR matches to your real revenue only if all your customers arrive on the first day of every month, you don’t give any discounts or refunds, don’t have metered charging and only sell subscriptions.

                SaaSOptics has an excellent but lengthy explanation on how MRR differs from GAAP revenue (the real revenue earned).

                Share and Enjoy!

                  Jan 14

                  Kill SaaS cash-flow problems with this small calculation trick

                  Staying on budget is sometimes hard when you run a SaaS. The money in your business account is a combination of old revenue, current month’s revenue and annual pre-payment revenue happily mixed up with any other revenue your business might have.

                  The last couple of weeks I’ve come up with ways to use SaaS metrics to solve common challenges, like the one above. I’ve done the work for Virtual Financial Officer, but why not share the principles so that you can use them too.

                  In this post I’m going to explain how a little change to how you calculate your Monthly Recurring Revenue (MRR) can help you to understand your future cash-flow better.

                  Meet Deferred MRR

                  I call this new metric “non-GAAP deferred revenue” or “deferred MRR” (I just made up both names).

                  Deferred MRR shows the part of the future MRR you have already received as pre-payments, allocated to the months where you’ll have to deliver the service to your customers.

                  During those months you’ll be paying the server bills, providing customer service and everything that these customers need – while not getting any more money from them.

                  Deferred MRR shows the part of the MRR you have already charged

                  (No MRR should be visible in the future, but iWork Numbers just didn’t co-operate with me on that, sorry)

                  What’s deferred MRR good for?

                  If you compare deferred MRRs to your projected MRRs, the difference shows approximately how much subscription money should be landing to your bank account in the future months.

                  That way it’s easy to see if you need to save, or if the revenue coming from your monthly paying customers will cover the costs.

                  You can also sum up all the deferred MRR and then you can go:

                  “The profit and loss statement from the first two months says we are $25,000 on the plus side, but $18,000 of that is actually annual pre-payment revenue. So the actual profit by now is just $7,000 and we aren’t reaching our targets…”

                  The sum of deferred MRR is also the amount that you would need to return to your customers if you would close the shop today.

                  What larger companies do…

                  Large SaaS companies solve these same cash-flow challenges by using accrual-basis accounting instead of cash-basis accounting. Their monthly bookkeeping reports actually show a line for deferred revenue – the revenue from services that they have not delivered yet.

                  That deferred revenue should not be mixed up with the one we calculate here. Those are 2 different metrics, the deferred revenue that comes from accounting being more accurate.

                  This “non-GAAP deferred revenue” that we derive from MRR is accurate enough for budget and cash-flow follow-ups. As long as your new (annually paying) customers don’t arrive in big random bursts, the figures will be almost as good as you’d get from accrual accounting.

                  Why not just use accrual-basis accounting?

                  Even though accrual-basis accounting is superior for business analysis purposes, small companies often don’t want to use it. If you aren’t money-savvy or if you have a lot of contracts where you provide the service first and get paid later, you may end up having problems in paying your taxes.

                  This article by Jason Cohen explains the pros and con’s of both accounting methods.

                  How to calculate deferred MRR

                  Normally, when you calculate MRR you handle annual subscriptions like this: You take the number of customers who are on the annual plan and you multiply them by the part of the plan revenue that belongs to the current month.

                  For example, you have 10 customers on your annual plan that costs $240. That’s $20 per month per customer ($240/12=$20). So these customers will get you $200 of MRR (10*$20=$200).

                  If you want to keep track of your deferred MRR, all you have to change is to account that money to the months where you’ll be actually earning it.
                  So if your customer paid $240 in January 15th, you’d put $20 to January, $20 to February and so on, ending with $20 in December.

                  This, of course, may be too much work if you are working with spreadsheets. But if you have your own dashboard system, it works brilliantly.

                  Any MRR that’s accounted to the future is deferred MRR. And next month, you’ll only have to account for the newcomers, as the pre-paid MRR from existing customers is already there.

                  Also remember that you’ll have use the same system for refunds that you give to annual customers.

                  How to transition to using this?

                  Unless you can re-process old annual transactions, your figures will exclude all the annual revenue charged before you took this new system into use, and that will not do.

                  If you can re-process old transactions, you can just plug in the new formula and let your system recalculate your MRR from all time and you’re done.

                  If you can’t re-process old transactions, you can use both systems side by side and ignore the figures from the new system until the MRRs from both systems match. If your longest pre-payment period is a year, it will take a year.

                  But you are using Stripe you can just wait until we get our app ready.

                  Share and Enjoy!

                    Jan 14

                    A simple recipe for reaching your dreams in 2014

                    Year 2013 was an amazing year for me. I got new entrepreneur friends who I chat and meet with regularly. I spent several months traveling (mostly in Italy) and learned how to make web apps with Rails. And just a couple of days ago I saw the first working views of our upcoming baby product.

                    On the top of all that, we got little financial impact from not having day jobs anymore, mostly due to our downshifting and planning.

                    As I’ve been reading awesome annual report posts like Amy’s, Nathan’s, Brennan’s and Colin’s, I’ve also spent a moment thinking about the people who didn’t make it. All those people that I met on my journey who had a dream, but then they just disappeared.

                    What makes them different from the people who reached their dreams?

                    Nothing, I say. And it’s never too late, just get back on the track.

                    You can reach almost any dream with this simple formula:

                    1. Believe in yourself
                    2. Decide what you want and why
                    3. Plan your way to your dream
                    4. Do what’s important and invest in your future
                    5. Just show up

                    1. Believe in yourself

                    I’m not special. Amy is not special either. Neither is Nathan, Brennan or Colin… or Warren Buffet or Bill Gates. You only need to be special if you want to become a world-winning athlete on certain few sports or a member of the Royal Family.

                    The skills and traits that you need to reach most of your dreams aren’t built into your genes. You acquire them. But only if you believe you can.

                    The people who have reached their dreams often have interesting stories of how they didn’t fit in. They were sickly or weak, teased at school (me too!), introverted, abused, what have you. And then they fixed things.

                    It’s a process. But to finish it, you’ll have to start it first.

                    They didn’t talk themselves down, telling themselves that they were “too poor”, “too busy”, “too fat”, “too shy”, “too dumb” or any other excuses people give themselves. They just believed things can change if you want hard enough.

                    And if you are talking yourself down just now, telling how YOU still can’t, I’m happy to tell you that’s fixable too. You can stop the negative self-talk and learn how to love yourself.

                    2. Decide what you really want and why

                    If your motivation isn’t hard enough, you are not going to endure the work needed to reach your dream. But motivation isn’t just some random thing that comes and goes. The true motivation is in understanding your goals in detail and the consequences that they have on your life.

                    It’s also important to see notice when you are substituting for things, like wanting to lose weight when all you really want is to be loved. Or jumping to building a SaaS product or an iPhone app when you want financial freedom.

                    Is reaching your dream going to get you what you want? When? How? And why?

                    Sometimes reaching your goals needs that you change fundamental things in your life, like letting go of people who pull you down. Sometimes, they just need doing some work instead of watching your favorite series. But if what you want isn’t important enough to you, you are not going to break the status quo.

                    3. Plan

                    People don’t end up in Maldives by watching travel documentary. Getting there actually involves doing something, like getting some money, buying flight tickets and packing your bags.

                    Here’s part of my plan for Virtual Financial Officer as a Curio mind map.

                    Part of VFO plans

                    I use a method learned in 30×500 called bassackward planning. In an essence, I’ll just list the absolutely mandatory steps to reach my goal, starting from the goal itself.

                    Obviously that trip to Maldives doesn’t need this level of planning, but many of the bigger dreams do. I’ll explain in a jiffy.

                    4. Do what’s important and invest in your future

                    The mistake that I often see the plan-less people do is to work very hard and do things that don’t really advance their goals. They get that nice feeling that they are working towards their dreams, but after a year they have nothing to show for that.

                    The more time you spend talking and writing about your dreams and reading inspirational stories of others who reached them, the less time you spend actually reaching them. And when you have a plan, you can keep yourself on check.

                    Is what I’m doing taking me forward? Is my strategy working? Am I any nearer to my goal? What do I still need to do?

                    The beauty of doing the right things is that you don’t need massive investments of time and money if you just do what counts. When it comes to building online businesses, you can do wonders with just a handful of hours in a week – if you spend them wisely.

                    5. Just show up

                    The biggest part of reaching your dreams is actually doing the work. The boring, day-to-day work. Just showing up, ticking an item from your plan and repeating 100 times. Then planning again. Giving up the things that you need to let go. Acquiring the things that you need to get.

                    Like most things, this can be learned too. I warmly recommend BJ Fogg’s Tiny Habits.

                    Are you in?

                    One of my favorite experts on metabolic damage, Scott Abel, always says:

                    “Some of you will get it; some of you will not”

                    If you aren’t ready for the change, you can’t see the world like I see it.

                    But sometimes just realizing that there are things you don’t understand can get you forward. Get in touch with people who have done what you want. Talk to them. Surround yourself with them. And you’ll become one of them – their worldview will open to you.

                    With this I want to wish you a Happy and Prosperous New Year of 2014!

                    May your dreams become a reality.

                    Get more of my articles this year by dropping your email below:

                    Share and Enjoy!