Hacker News new | ask | show | jobs
by ttul 2710 days ago
I wanted to know the long-term value of my recurring revenue company. Being a programmer at heart, I wrote a python script that tested out 100,000 random scenarios of customer churn over the next 50 years. This gave me a histogram of future cash flows from the business, allowing me to state with some level of certainty what the range of future cash flow was likely to be.

I was really surprised at how valuable the company is when analyzed in this manner. And there’s no bullshit. You assume a churn rate and randomly try it out over thousands of scenarios.

4 comments

Please share the script!

So essentially it's taking the average churn for a given customer, and running a monte carlo simulation to see what the expected scenario is?

Turns out, low churn and high margin companies are worth a ton! Especially with low interest rates and a public equities market that shouldn't return more than 4% real over the next few decades. Not a lot of other places to put your capital.

Turns out, low churn and high margin companies are worth a ton! Especially with low interest rates and a public equities market that shouldn't return more than 4% real over the next few decades. Not a lot of other places to put your capital.

What margins qualify as "high?" I have a SaaS offering I'm working on, and I was going to charge as a multiple of my compute and network costs. Is 85.7% "high" for SaaS? Or is that meh?

85.7% is very high, that'd be a great gross margin (revenues - variable costs, such as compute/network costs).
The script is so straightforward. Literally just loop 100,000 times and each time through a loop of 50 years, select a random sample of customer revenue amounts to delete. Sum up the revenue from each run and then use numpy.histogram....
Yes. Margins of even 70% are amazing over a long period of time.
For those thinking this is revolutionary, it’s a method that has long been used in your standard excel spreadsheet for valuing companies, it’s called Monte Carlo analysis.

And it is prone to many of the flaws of a DCF/NPV approach - that is, it is dependent on the assumptions made.

Not to diminish OP’s work but for those not familiar, there is a simple name/explanation

What approach did you use? I wrote a discrete event sim from scratch once and it was a good experience, simulating adding express lines to a bank for certain transactions. I can see it being overkill, or possibly a good method for tuning dials, depending what you did. I have a sim that I've been kicking around for a couple of months related to my current work environment that I think would help make informed arguments about rule changes over the long term.
I have begun using Monte Carlo simulations for various modeling purposes at the company over the last two years. For example, I created a script to model a price increase and the expected outcome from that increase given a certain rate of churn. That gave me the confidence to go ahead with a 30% increase knowing that in the median case we would end up with more revenue even if some huge number of customers said bye bye.

The increase worked, and churn was lower than expected.

Thanks for that and the business application, great result. This seems like a good method to make the case for serving more quality sensitive markets against the grain; that’s where I am coming from. Have heard the term, imagine it’ll be added to my tool shed soon. Thanks again.
Hey...you...ummm <cough> <cough>...wouldn't mind sharing that script?