There are many who have claimed the marginal cost of software is zero. I essentially agree, but with a slight caveat – the marginal cost of software approaches zero (although it can never truly hit zero).
For a more elegantly written version see: the marginal cost of software
This statement is contentious to some. In fact, I’ve overheard: “sure it works for apps, but what about SaaS software? What about support, maintenance, & infrastructure?”
Let’s start with some loose definitions:
- marginal cost = the cost to produce the next unit
- fixed costs = costs that are not reducible in the short term (lease)
- variable costs = costs that scale with production
Marginal cost includes both fixed and variable costs
In software the cost of software production is primarily fixed – they do not change regardless of how much you sell. If it cost 10 million to build Microsoft Office – there is not much additional variable cost for the 1,000th unit sold. Once you pass break-even you have a growing amount (both in dollars and in percent of revenue) of profit with each unit sold.
In the production of jeans – you have fixed costs (the plant, equipment, and some labor) and variable costs (the materials, some labor, storage, shipping, sales). There will be a sizable chunk of the value of the jeans that is directly related to the production of that particular pair of jeans – also known as the COGS (cost of goods sold).
So let’s dive into the contentious areas – support, maintenance, & infrastructure.
The marginal cost of providing support approaches zero.
The concept of the marginal cost approaching zero – literally means that it becomes cheaper with every additional customer to provide the service. Let’s evaluate that in the context of a small software company in the enterprise space with a handful of large customers:
- the first customer requires a minimum of 5 support staff to cover available hours of operation and the call schedule
- the second customer requires adding a person 6 support staff; this is clearly an increased cost to supporting 2 customers
- the third customer doesn’t require adding any
In this scenario we have a perfect example of the reduced nature of support requirements at a small scale; with each successive customer we had scale:
- 5 support to 1 customer: 5/1 ratio
- 6 support to 2 customer: 6/2 ratio
- 6 support to 3 customer: 2/1 ratio
This type of scaling will hold true til you have a few dozen or hundreds of customers and then something interesting happens. Your number of support staff per customers starts to plummet. Eventually your support staff can handle 100s or 1000s of active customers each. How does this happen?
You beef up your tooling, you provide better documentation, you customers develop super-users, your community develops… your cost of support never stops dropping as a percentage of costs of your software. The marginal cost of customer support approaches zero.
The marginal cost of maintenance & software improvements approaches zero.
Maintenance costs us money. In SaaS, we cannot provide a static product and thus we do not have 0 costs. Again, the statement is the marginal cost of software approaches 0. Providing some scale – each additional customer decreases the relative amount of money it costs to support and improve the product. If you have 5 developers for 5 customers = your ratio is 1/1. As you increase to a 1,000 customers – you will not have 1,000 developers. With a team of 50 – you decrease your ratio to 1/20 devs to customers. The marginal cost of maintenance & software improvements approaches zero.
Most software companies scale their development teams with early revenues or investments because they know when they get close to their “magic size” they can slow their scaling dramatically for future growth, but have the infrastructure to support massive growth.
Competition is a factor in development spend
The realities of the 5 forces (bargaining power of suppliers, threat of substitutes, threat of new entrants, bargaining power of buyers, industry rivalry) demand that SaaS solutions constantly innovate to maintain their position… much less pick up addition market share. Importantly this does not mean you cannot increase your prices, but improvements are usually rolled into the existing product and new modules are usually rolled into a higher tier or new module. What’s interesting about these dynamics is that strength of competition usually helps drive the decision making on what should be rolled in or modularized/tiered. The goal is to have a richer, more capable, product at a lower price than the competition so new customers to the market will have an easy time choosing your solution.
For existing customers in the industry it’s considered much harder. Peter Theil’s rule in Zero to One is that for someone to switch from one product to another for the same price – your solution must be 10x better. There is a race to lower margins as a market is saturated with competition because it becomes extremely difficult to 10x your competitors. The most margin is captured at the beginning of a market when there is low competition.
The marginal cost of infrastructure & hardware approaches zero.
Starting up the cost of hosting is relatively expensive – you have DBAs, Network, Devops – poor tooling and many manual processes. As you scale the amount of staff increases at a slower rate than the rest of your growth – thus causing a decreasing marginal cost. One area that provides for the scaling benefits of SaaS rely on a multi-tenant architecture. In addition, the hardware we use decreases in cost per unit of productivity every year. Thus our newest iterations are faster for less money. The marginal cost of infrastructure goes down over time.
The marginal cost will never be zero
However the software industry shows the benefits of economies of scale dramatically. This is one of the reasons growth is valued over profit in the beginning. Capturing a significant portion of the market allows you to have the scale your competition does not – this is a competitive advantage.