The software development industry is on track to grow 22% by 2030, and this industry growth will result in countless new products for customers.
As software creation develops, the methods that developers use to make this software have changed over the years. Meanwhile, the GAAP – the standard for accounting – has remained the same.
Business owners who sell new software to customers will account for their software costs in accordance with accounting principles, but may not know when to capitalize or expense these costs.
Below we have created a guide explaining when you should expense or capitalize the costs of creating your external software.
Capitalizing vs. Expensing
All software development will come at a cost for a company. Both expensing and capitalizing account for this cost, but each process does so in different ways.
A cost is an expenditure necessary to create and sell a product or service. If firms use this cost at once, they will charge it as an expense.
When a company reports an expense, it will do so on the firm’s income statement. We call this process expensing.
Say a business expects to consume an asset over a longer time frame. In this situation, it can capitalize it, and the cost will appear on the firm’s balance sheet.
Just like with expensing, capitalization recognizes a cost as an expense – it just does so at a later period of time. We refer to this process as capitalizing.
A word that you may have heard of is amortization. Capitalization is a broader term, while amortization relates to the same principle but in specific reference to business assets.
In terms of business selling software, this software is an asset to the company. The company will estimate the time period for the use of this software, then amortize it based on this time period.
The key difference to note between expensing and capitalizing is how they’re applied. You expense a cost when you use an expenditure all at once. You capitalize an asset when consumption occurs over an extended time frame.
Benefits of Capitalizing Software
The key to understanding why capitalizing benefits businesses is best explained by the matching principle. The Principle of Matching is the foundation for the widely accepted accounting method used in the United States (U.S. GAAP).
This principle says that revenues should be matched with the costs that occurred during the same interval. It focuses on a cause-and-effect relationship, meaning that the sales cause the expenses to occur.
But in some situations, it is not so cut and dry. Companies may spend years paying for a new building that they can’t use yet. In other situations, a company may buy an asset in cash but use it over a period of 8 years.
Capitalization solves this problem by recording the expenses of an asset or process based on the corresponding period in which they’re used.
Take the example of selling software. If you are building a new application that will provide value for many years, you will have high costs in the beginning but sell high quantities of the product over time.
Capitalizing the development will let you match the costs of development incrementally with the sales of the product. This will keep your net income high, especially during the initial release of the product.
Software Capitalization Rules
Two sets of software capitalization rules determine whether you expense or capitalize your software. Under U.S. GAAP, there are two major sets of rules that apply to decide if you expense or capitalize your software costs.
One set of rules is FASB Account Standards Codification ASC Topic 350 – Intangibles. This set of rules applies to software that the company does not plan to sell or lease. We can call these rules the “internal-use software” rules, and will not be applicable for this article.
The other set of rules is the ASC Topic 985 – Software. This set of guidelines pertains specifically to software costs that a firm plans to sell or lease. These rules refer to external-use software and will be our focus.
Under Topic 985, you can capitalize software costs once the technology reaches what it calls “technological feasibility.” At this point, the software provides value to customers who could use it.
Topic 985 says that: “the technological feasibility of a computer software product is established when the entity has completed all planning, designing, coding, and testing activities that are necessary to establish that the product can be produced to meet its design specifications including functions, features, and technical performance requirements.
Any software developed before the project is technologically feasible should be expensed as the costs occur (like analysis and prototyping). The reasoning behind this is that during the early stages, the software has no enduring values for customers yet.
Consider the process two have three stages:
- Pre-technological feasibility: expensed
- Software is feasible but not available or sale: capitalized (with some exceptions)
- Available for sale: expensed
In the next section, we’ll explain when to expense development and when to capitalize software in more detail.
When to Expense, When to Capitalize
If your new software has no technological feasibility, you cannot capitalize any costs. But what does that look like?
Pre-technological feasibility refers to the earlier stages of your software development. When you conduct an analysis of how to create the product and design the software, these will count as expenses.
Once the technology is feasible for use, you can capitalize costs. Costs here will include the development of the software and its testing.
Expense:
- Doing an analysis
- Prototyping the software
- Initially designing the software
- Fix defects after release
- Performance maintenance after its release
- Support and promote the product after its release
Capitalize:
- Beta Testing
- Coding the software
- Developing the software
- Adding upgrades and additional features before release
- Software developer payroll service
- Allocation to indirect overhead
When does the software become technologically feasible?
You have quite a bit of leeway in deciding what you will capitalize and what you’ll expense. When the product becomes technologically feasible, you can choose when you want to make it available for sale.
After it crosses the threshold of feasibility but is not yet up for sale, you can capitalize many of your costs.
A more conservative company will classify software as available for sale once it reaches technological feasibility. Other countries may spend more costs during this stage before the product deem the product available for sale.
Why Capitalizing Can Become Difficult
Capitalization of software can provide benefits to businesses that incur high costs during the early stages of new software, but it can be hard to execute.
To understand why, we’ll refer back to the U.S. GAAP. The GAAP outlines capitalizing requirements based on the waterfall approach.
The Waterfall Approach
With the waterfall approach, actives will happen sequentially. In terms of software being developed, you could expect the waterfall approach to look something like this:
- Plan
- Design
- Coding & Development (capitalizable)
- Testing (capitalizable)
- Software Release
Using this approach, you can easily record the parts of the development process should you choose to capitalize any costs. You’ll have a clear idea of what stages of the process finish and when they finish.
However, the software development process doesn’t look like this for most companies. The methods have changed into an approach that we call the Agile model.
The Agile Approach
Software development has changed from a more linear approach to becoming more flexible with the agile method. The agile approach often works as a faster method that is more responsive to the constantly changing environments involved in software development.
The waterfall approach will use phases and identify activities to those phases. They will go in order, such as conception, analysis, design, construction, etc.
An agile model will separate the software development into separate modules. Development and testing during these modules happens quickly and cyclically.
For instance, an agile model will have Feature 1, which will involve designing, coding, and testing. Then it will have Feature 2, which will repeat the process. It will continue with these cycles until the product is ready for release.
Difficulties with the Agile Approach
The problem with the agile method is that it may not align with the GAAP. Remember that the technological feasibility of computer software happens when the company has completed all of the activities that are necessary to establish that the product can be produced to meet its specifications.
With the waterfall approach, the parts of the process are well-defined through milestones. It’s easy to determine technological feasibility through a detailed program design or when a working model is ready for customer testing.
In an agile product environment, all of the individual features are developed separately. It may be difficult to identify when the product is feasible.
A company may inaccurately conclude that technological feasibility exists and begin capitalizing on expenses. In reality, they should have been expensing costs. The same can happen if they mistakenly fail to identify the software as technologically feasible.
When significant costs accrue and a company mistakenly identifies expenses or capitalizes costs, the accounting may be inconsistent with GAAP and lead to trouble.
Applying GAAP to the Agile Approach
GAAP is not made for the agile approach, but this does not mean that costs incurred with the agile method cannot be capitalized. Even agile projects could have some parts of the process that have some program designs and structures that will help to keep track of costs.
The key to remember here is that assessing capitalized costs requires a detailed program plan. The plan needs to demonstrate what the criteria are for a detailed project design, and how these will be met.
Then, when the team undergoes the agile process, the plan can determine whether these criteria are being met, regardless of the phase that the project is in.
Keep in mind that high-risk software will require an even more attentive approach. If you’re developing a re-creation or enhancement, you’ll have a fair idea of what your analysis will look like.
If you’re developing completely new software from the ground up, you’ll need sufficient analysis to determine when this project is technologically feasible. With no precedent, it may be difficult to determine what this metric is.
Above all, using the agile method does not have to deter you from capitalizing on your costs. Just be aware that you will have to be more careful with your record-keeping and be very clear in your communication.
The Case for Expensing Software Development
While capitalizing may provide benefits for businesses that have high initial costs, it’s not always the best course of action.
Google capitalizes almost no software development costs. In its 2017 10K report, the company explains that its products reach technological feasibility shortly before their release and are therefore expensed.
You can view the statement on page 55 of the document, or read it below:
“We expense software development costs, including costs to develop software products or the software component of products to be sold, leased, or marketed to external users, before technological feasibility is reached.
Technological feasibility is typically reached shortly before the release of such products and as a result, development costs that meet the criteria for capitalization were not material for the periods presented.
Software development costs also include costs to develop software to be used solely to meet internal needs and cloud-based applications used to deliver our services.
We capitalize development costs related to these software applications once the preliminary project stage is complete and it is probable that the project will be completed and the software will be used to perform the function intended. Costs capitalized for developing such software applications were not material for the periods presented.”
Other larger companies like Facebook also don’t expense their costs. One reason could be that, like Google, their products become available for sale shortly after becoming technologically feasible.
Another reason is that tracking expenses to capitalize can be much more difficult with a company of that size. Early-stage startups and small businesses will be able to keep track of what costs match which parts of the development process.
Recording Software Costs Correctly
If you are planning to sell your newly developed software, you need to be sure that you are recording the costs correctly. Whether you choose to expense or capitalize your software costs, your numbers should be consistent across your books.
You don’t have to begin the accounting process alone! Pasquesi Partners is here to simplify your startup’s accounting. Let’s talk about how we can drive growth.