Today we investigate the business of free open source software (FOSS). Quite frankly, up until recent years MKTSTK had no idea why anyone would want to give away software/IP. It takes A LOT of work to deliver functioning code so surely people would want to be properly compensated for their effort, and not just in accumulating social capital or landing a job. This might make sense for the individual programmers who participate, but it still didn’t make sense why a company would develop a product then open source it. Surely someone with some business sense could make money with a great proprietary product, right?
Then our understanding started to become a bit more nuanced; it began with a conversation with some folk who had migrated from the open source NumPy community into consulting. Seemed like they were doing well, monetarily speaking, not just from the warm and fuzzy feeling that comes with contributing to open source software. Then Microsoft buys Revolution Analytics (warning: mathematically explicit M&A announcement). One guess where the R in Revolution comes from…
OK, interesting, so we’ve got some firms like Revolution and Continuum and the like who are operating on the model of:
- give some valuable and extensible IP away for free
the hell out ofit
- users use it (hey, its free!)
- some users like it, but need more features and lack the ability/time to implement internally
- these users pay analytics firm for consulting services / development of extensions
Interestingly enough, those users end up being financial service companies of all shapes and stripes, in addition to other behemoths too large and unwieldy to coordinate their own development efforts. This is now sounding an awful lot like the kind of clients courted by traditional proprietary software development firms.
Sometimes there is so much lofty talk about the ideals of FOSS that sometimes its hard to see the forest for the trees; but the business model that’s killing it in OSS is the good, old-fashioned up-sell. This is a specific instance of the following generalization: charge P_x for an initial version of a product and P_y for some kind of upgrade on the initial. In the OSS case, P_x = 0.
We could model the revenue like so:
Revenue = P_x * N_x + k * N_x * P_y
P_x = the price for the initial version of the product
N_x = the number of customers who will pay that price
P_y = the price of the upgrade
k = the proportion of customers who will buy the upgrade
Both R and Python are widely applicable to anyone working with data. Thus N_x is a huge and growing number, millions upon millions of people, hundreds of thousands of entities).
This means k can be small, say 1-2% and still yield large numbers of potential upgrades. This is admittedly a very simplified model, but when you consider that in the examples we have visited the “upgrades” are often enterprise development efforts, its not hard to imagine lots of revenue in the space, even if the vast majority of users are getting the product for free.
But does this make sense for every project? Probably not.
First let’s define N_0 as the number of people willing to use the product at a zero cost (i.e. free).
Next define k_0 as the proportion of customers who will pay for the upgrade when the initial product is free.
Let N_x be the number of customers and k_x is the proportion demanding upgrades at a given price P_x. Remember, the price of the upgrade is P_Y
Not every firm considering open-source is going to be presented with such huge audience. Moreover, the shape of the demand curve is going to make a difference. We would suspect that OSS business models perform best with a convex demand curve: there are exponentially more people willing the use the product for free vs paid. In this case N_0 could be orders of magnitude greater than N_x. In this scenario we could easily see k_0 * N_0 >= N_x.
Additionally, this has the benefit of keeping out competitors who offer paying products via the following mechanism:
- A potential customer discovers your competitors paid product first
- They like the “bundle of features” but don’t want to pay money for it (naturally)
- They search for competing products online and discover your free product that contains similar features
- They use your product for free, depriving your competitor of revenue (now and into the future: the customer is embedding your product in their business process)
The more convex the demand curve the better this works. The case for this business model can fall apart rapidly for demand curves of sufficient concavity. In this case, N_0 could be in the same order of magnitude as N_x, necessitating an unrealistic rate of upgrade conversions, k, to break-even with the paid proprietary business model.
As we said before, this model is very simple: We haven’t incorporated the effect of harnessing community labor in open-source projects: you can easily imagine benefits and pit-falls introduced by mass, decentralized collaboration. Nevertheless, it allows us to gain some basic understanding of FOSS economics.
In particular, this implies that it makes sense to open source when:
- The potential audience of customers / clients is large
- The demand curve for the product is convex to linear
Likewise, the model implies that it makes sense to make a paid proprietary app when:
- The audience size is small, niche market
- The demand curve is concave
None of this, of course, means that we are committing to open-source anything going forward, but we certainly are considering it seriously as a model for our upcoming software release. After much waiting, we are expecting the first release of the Windows client in the next few weeks with the Linux client following shortly thereafter.
Want to learn how to mine social data sources like Google Trends, StockTwits, Twitter, and Estimize? Make sure to download our book Intro to Social Data for Traders