A startup has some costs and some customers. How much will the costs be with 10x or 100x customers?
It is not an easy task. This is a framework to get a first quick answer.
Divide the costs into four groups:
- The production costs: these are the costs that scale more or less linearly with the number of customers. Good examples are the disk space or the number of instances you need to satisfy concurrent requests.
- The ops costs: these are infrastructure costs. They scale logarithmically with the number of customers. An example is the deployment infrastructure: in the beginning, it’s very simple, then you need more automation and it grows, but eventually, it does not grow anymore regardless of the size.
- The development costs: these are the costs of the infrastructure used to develop your software. It scales with the size of the team, but very slowly. The costs when your team is composed of five people may be about the same when you grow to fifty.
- The cost per engineer: add here the license costs per person (GitHub, 1Password, Jira, …), and the costs of the hardware (laptops, monitors, …) assuming a replacement cycle every three years. Leave out the wage costs.
Create a table with the current costs and the current number of customers. You may want to include only valuable customers and exclude those that interact less with the platform and pay less in general. Sum the costs, divide them by the number of customers and that’s your current cost-per-customer.
Add two columns for a situation when you have reached an intermediate and a long-term goal, for example 10x and 100x customers.
- Scale the costs of production in a semi-linear way. You will have some scale economy, so multiply by a factor like 0,8.
- Scale the costs of ops in a semi-linear way for the first step, 0,3 for example, and use the same value for the second step to have a sort-of logarithmic growth
- Keep the development costs the same in all columns.
- Multiply the costs of the engineers by the expected sizes.
Calculate the new costs-per-user in the intermediate and final situation, and you have your initial assessment.
This model is very simple, but it breaks when the numbers grow too much because it does not estimate well economies of scale.
Check the following example
Customers -> | 5000 | 50.000 | 500.000 |
---|---|---|---|
Production | 2000 | 16.400 | 160.400 |
Ops | 1000 | 3.700 | 3.700 |
Develpment | 1500 | 1500 | 1.500 |
Engineers | 5x183 | 15x183 | 50x183 |
Total | 5.415 | 24.345 | 201.750 |
Cost-per-user | 1,08 | 0,49 | 0,40 |
Production for 50.000:
([new size]-[current size])x[current cost per user]x[scalability]+[current cost]
(50.000-5000)x(2000/5000)x0,8+2000 = 16.400
Ops for 50.000:
([new size]-[current size])x[current cost per user]x[scalability]+[current cost]
(50.000-5000)x(1000/5000)x0,3+1000 = 3.700
Engineer:
licence 100 + laptop 3000/36 months = 183/person/month
Production for 100.000:
([new size]-[current size])x[current cost per user]x[scalability]+[current cost]
(500.000-5000)x(2000/5000)x0,8+2000 = 16.400
It is realistic to have a 50% drop between the cost-per-user at 5.000 and at 50.000 and 10/25% drop between 50.000 and 500.000. Adjusting the scalability multiplier and reducing the differences between the steps (e.g. 5000, 10.000, and 100.000) may yield more realistic numbers.