Tarsnap and the prepaid billing model
I read an excellent blog post last month by Mark MacLeod about Software as a Service billing models; while none of what Mark said particularly surprised me, it made me think about the decision I made with my tarsnap online backup service -- to go with a "prepaid" / "running account" billing model (like prepaid cell phones, except that money doesn't "expire" and you can get it back if you close your account) -- and the benefits thereof. A few days ago, a comment on twitter about spending $0.02 for a week of tarsnap usage convinced me to crunch some numbers; those numbers convinced me that the prepaid model tarsnap uses is the only sensible way to provide this service.The amounts spent by tarsnap users very closely follow a lognormal distribution. For the non-statisticians out there: This means that the logarithms of the amounts spent by tarsnap users follow a normal (aka. Gaussian, aka. "bell curve") distribution. The middle of this curve is at $0.35/month -- that is, slightly more than one cent per day -- and the standard deviation is a factor of 15. Some people have absolutely tiny amounts of data stored and are paying almost nothing; most people are paying between $0.01 and $10/month; and a few people are paying more than that. The upper tail of the distribution isn't quite lognormal -- it's closer to "lognormal minus the top 1%" -- but this isn't particularly surprising: The top 1% of the lognormal distribution would correspond to people with enough data to store that it would be economical for them to set up their own secure and redundant storage system instead of using tarsnap.
Some interesting points on this distribution are:
- 10% of tarsnap users are paying less than $0.01/month.
- 1/3 of tarsnap users are paying less than $0.10/month.
- 1/2 of tarsnap users are paying less than $0.35/month.
- 2/3 of tarsnap users are paying less than $1.00/month.
- 90% of tarsnap users are paying less than $10.00/month.
What does this have to do with tarsnap's prepaid billing model? Quite a lot, as it turns out. Processing credit cards costs on the order of $0.30 plus 3% of the amount being billed; this varies depending on the type of product or service being sold, the way that the credit card is handled (swiped at a machine vs. having the card number entered into a website), the transaction volume of the company charging the card, the source country, et cetera, but $0.30 + 3% is a fairly typical rate. So far the average payment sent in by tarsnap users is about $20 (most new tarsnap users start by sending in the minimum $5 payment, but those with significant tarsnap usage usually send in larger payments once they've decided that they like tarsnap) -- so credit card processing (via paypal) eats about 4.5% of the money.
Suppose I was sending out bills and charging every tarsnap user's credit card each month. For almost half of tarsnap users -- those spending less than $0.30/month on tarsnap -- it would cost me more to process the transactions than I'd take in. For over 90% of tarsnap users I'd lose more to payment processing costs than I currently do. In total the payment processing fees would work out to over 11% of the billed amounts.
Now, I could follow the example of other online backup services and have a monthly fee -- if I was charging everybody $5/month or more then the cost of processing small payments wouldn't be significant. But I'm building tarsnap first and foremost to be the backup service I would want to use -- and who wants to pay more than necessary? I certainly wouldn't.
Are there alternatives? Sure. I could follow the "freemium" model, and make tarsnap free for anyone with less than a specified amount of monthly usage; but I don't particularly like this model. First, as a security guy, I worry about the notion that someone could cheat a freemium system by creating several free accounts instead of one paid account. Second, I find pricing tiers distasteful in general. But third and most importantly: Tarsnap makes a profit on every user. For users who are paying a few cents a month this is a very small profit, to be sure; but it's a profit nonetheless. As a bootstrapped startup, there isn't very much money behind tarsnap; if I provided free tarsnap accounts there would be a chance that I'd lose more money on the free accounts than I made on paid accounts -- and I don't want to ever be in the position of telling people that I can't afford to store their backups any more.
There are many aspects of tarsnap which have turned out differently from how I initially anticipated, and many aspects of tarsnap which work for tarsnap but would not work for other services; but at least for tarsnap and in the context of billing models, I can't find any fault in my prescience.