We struggle a lot with “fake churn” in baremetrics.
By that, I mean any time a customer on a credit card subscription upgrades to a “pay by invoice” tier, it shows as a churn of the credit card subscription and as new revenue for the invoice subscription.
This makes churn wildly inaccurate and we spend a couple hours per month adjusting the numbers to get accurate data.
FWIW profitwell suffers the same issue.
We’ve looked but haven’t found a great solution for metrics when stripe isn’t the sole source of customer payments.
Edit: But all things considered, we love baremetrics, just not their churn calculations (and by proxy, LTV is also broken, and any other metric that uses churn)
Cannot speak to Baremetrics but ChartMogul has a useful feature for connecting the subscriptions. If you are creating a new subscription with that invoice, then you can merge subscriptions and avoid false churn.
2nd option is if you are not creating a new subscription is to have the invoice service date start before cancelling the credit card - that would result in expansion (by invoice amount) and contraction (by credit card amount) and ultimately your MRR would be ok with no churn.
In many cases you should try to bill everyone out of the same billing system. For example, you can still invoice customers out of Stripe - you just disable the option to pay with a credit card.
Or are you saying you do that already and it still shows up as churn?
You wrote a blog post that implemented functionality that you liked and also functionality that baremetrics already implemented. You weren't hugely detailed in what in particular you found lacking that actually caused you to roll your own product.
I of course wanted to save the $50/mo (or was it $99?) if I could. When I moved to having a free tier, my conversion rate metric got a little wonky. I don’t remember them handling that well. I also wanted to know my time-to-convert and they don’t show that metric, among other metrics. Also, I remember their churn metric was off sometimes.
There were also some other things, like their messaging and recover features not working as you’d expect when it came to trials, which was my main need at the time. I ended up doing so much myself that they weren’t worth it to keep.
Then I tried ChartMogul, had the same lack of visibility into my metrics, and ended up going all in and writing this [0].