How to capitalize or expense software product development costs in business plan ?

I have worked with many product development teams and often with solopreneurs coding their own products. One common question I get asked is how should one book their product development costs like UX research, software development costs or user testing costs in their financial projections or business plans. Should one capitalize them or put them expense them?

Agile vs Waterfall

Most product development processes are now a perpetual cycle with no final state to reach. Most products are built in an agile fashion with sprints and epics yet accounting still assumes product development process to be a waterfall model. Accounting standards assume that when building a product (an asset), team have a clear end state in mind. Once that end state is achieved, R&D is over and product maintenance begins.

Waterfall Accounting

To book product development costs as per waterfall model, the agile process has to be divided into 3 phases for this categorization
1. Creating product road-map and a workable prototype
2. Creating a product based on the prototype and business model
3. Selling the product to customers while maintaining the existing features.

Phase I — Product Discovery

Product discovery stage

Costs occurred during Phase I, that is during the creation of workable prototype cannot be capitalized. This is because prototype is not an asset. Its a part of the product discovery or R&D process, which is categorized as Op Ex or Operating Expenses. This point in time is often referred to as technical feasibility establishment and acts as the starting point for capitalization.

Phase II — Product Development

Product development phase

Phase II will begin once the product discovery and exploration has ended. In reality, this never happens as this is a continuous process and products often pivot or change completely. For our purpose, lets imagine this point as when you have your first version of the plan ready and your actual product development starts.

Costs incurred during this stage are booked as Capex or Capital expenditure as costs are directly incurred for development of a capital asset. Note that only salaries of development team, testing team and some indirect expenses and testing costs may be capitalized. General administration costs and overheads have still to be expensed.

Phase III — Product Launch and Marketing

Product launch and marketing

Once a product has cleared some form of UAT or beta testing and is ready to be launched to public, it is assumed that product development is complete and hence salaries paid to developers henceforth is towards the maintenance of the product. Costs incurred towards maintenance of a capital asset are obviously expensed and hence booked as OpEx.

Often this point is also not very clear in reality. A safe rule of thumb is to use the point at which you make your first sale or revenue as the end of your capitalization costs towards that asset.

Houston, we have a problem

In reality, your first software product is only the start of your capital expenses. Some teams update the product every month, some even every week as new features are added and always will be added. How then can we assume that product development has ended and expenses incurred now are towards software maintenance. Well, you shouldn’t. New features by definition add new functionality and hence should be capitalized. Here’s how.

Using multiple releases / stories

The answer to the problem is to use versions or stories (Agile). Create a year long or 6 months product roadmap versions wherein you can repeat the same process of doing product discovery / feature prioritization, product development / feature development and finally launching & selling that version of the product. This way you can book development costs as Capex for each feature development and your product revenue is the aggregate revenue from all versions.

As it is hard to keep track of costs that are going towards maintenance of existing features versus new feature development, an easy hack is to keep record of number of hours billed for new product development. That way your Capitalization = Total developments costs x (Hours for new feature development / Total hours billed).

Please note that this article is strictly for product managers creating a business plan and wanting to calculate realistic taxes. I am NOT a charted accountant by profession or education and hence by no means fit to give accounting advice. Please consult your accountant before filing your annual returns.

To revise and sum up the article, here’s a visual I created in good old PowerPoint :)

Waterfall model of software capitalization