How Tech Companies Deal With Software Development Costs: Insights From A CPA
You may be wondering why you should care. Simply put, high-tech startups generally devote a significant amount of their time and money into software development; the treatment of these costs will most likely have a huge impact on not only your current financial performance but future financials as well.
There are a few distinctions that need to be made prior to diving into the accounting rules. First, the accounting standards under GAAP define two types of software: 1) software to be sold, leased or marketed and 2) software for internal-use. The standards provide specific, differing accounting rules for each type of software. It is important to determine which type of software is being developed in order to properly ascertain the amount of costs that should be expensed or capitalized. Second, for purposes of this article, I will be addressing the accounting rules under GAAP and not under the IRS Code. However, it is important to note that whatever determination is made regarding companies treatment of software development costs under GAAP, that determination does not necessarily influence your company’s treatment of the costs under the IRS Code (i.e. capitalizing for GAAP and expensing for tax may be ok). Third, this article will address the basics of the rules and will be a good starting point. This article does not substitute the need to consult with your CPA firm prior to making any significant decisions.
SOFTWARE TO BE SOLD, LEASED OR MARKETED
If your company is developing software to eventually sell, lease or market to the general public, this section is for you. This software is developed with the intention of earning future revenues and should not provide benefit to the internal operations of your firm (see internal-use software below). When I speak to clients about which development costs to capitalize or expense relating to software to be marketed externally, the most important question I ask is when did the software project achieve “technological feasibility?” This is important because the accounting standards state that all costs incurred on a software project prior to the establishment of technological feasibility are to be expensed as incurred. The standards also state that costs incurred subsequent to the establishment of technological feasibility may be capitalized. Capitalization of the costs should cease when the software is available for general release to customers. Any future costs relating to the software project should be expensed as incurred.
What is technological feasibility? Technological feasibility is a term used to describe a certain point during a software project when the research and development phase has substantially been completed. The standards provide specific guidance as to when a project has achieved technological feasibility.
The following is an excerpt directly from the standards:
…the computer software product includes a detail program design (defined below) [which incorporates] all of the following:
- The product design and the detail program design have been completed, and the entity has established that the necessary skills, hardware and software technology are available to the company to produce the product.
- The completeness of the detail program design and its consistency with the product design have been confirmed by documenting and tracing the detail program design to product specifications.
- The detail program design has been reviewed for high-risk development issues (for example, novel, unique, unproven functions and features or technological innovations), and any uncertainties related to identified high-risk development issues have been resolved through coding and testing.
A Detail Program Design is defined by the standards as follows:
The detail design of a computer software product that takes product function, feature and technical requirements to their most detailed, logical form and is ready for coding.
I’ll now pause so you can take an accounting breather…Okay. As with any accounting topic, the above guidance is open for management’s interpretation. In the profession you will find companies that have significant capitalized software development costs and others that have expensed all of their software development costs. Many companies take the position that technological feasibility is established at the same time the software product can be used or consumed in any form by the public; thus they expense most development costs. This position is typically the most conservative position and will likely face less scrutiny from your auditors. Others take the position that technological feasibility occurs prior to the product being available for sale.
The costs that are eligible for capitalization, post technological feasibility, are as follows:
- Programmer’s compensation for time directly attributable to coding the software.
- An allocated amount of indirect costs, such as overhead related to programmers and the facilities they occupy.
- Costs associated with testing the software for market (i.e. alpha, beta tests).
- Other direct production costs that are incurred to bring the software to market.
Some other points of consideration are:
- Costs of maintenance, bug fixes and customer support are to be expensed as incurred.
- We have seen clients factor in inefficiencies when determining the amount of programmer’s compensation to capitalize (i.e. total reduced by a percentage).
- The accounting rules also touch upon a concept known as a working model which was left out of this discussion. In our experience, the working model concept does not influence the majority of our clients’ decisions with respect to whether or not to capitalize software costs.
If your company is developing software internally solely to meet your company’s internal needs, this section is for you. There can be no plan to market the software externally, even into the future (determined at the time of development). Internal-use software is typically monitoring, analytic and accounting modules.
The accounting standards split the development process of internal-use software into three different stages. Management should determine at which point the software development enters and exits each stage. Depending on the stage, the associated development costs will be expensed or capitalized. The three internal-use software stages along with their definitions are as follows:
- Preliminary Project Stage – When a computer software project is in this phase, your company will likely do the following:
- Make strategic decisions to allocate resources between alternative projects at a given point in time.
- Determine what your company needs the software to do and the system requirements therein.
- Determine the technology needed in order to achieve the system requirements.
- Explore the best implementation solution for the software. For example, determining whether to develop or buy the
- Application Development Stage – This stage typically begins once an internal-use software project is chosen and development is about to begin. Activities performed during the application development stage include:
- Design of chosen path, including software configuration and software interfaces.
- Installation to hardware.
- Postimplementation-Operating Stage – This stage typically begins once the software development is complete and the internaluse software has been implemented. Activities performed during the post implementation-operating stage include:
Once you have split the development process into the three stages, the following are the accounting treatment considerations for each stage:
Preliminary Project Stage
All development costs incurred during this stage should be expensed as incurred. This includes both internal and external costs.
Application Development Stage
All development costs incurred during this stage should be capitalized as incurred once the conditions are met. This includes both internal and external costs. General & administrative and training costs are not considered development costs, and if incurred during this stage, should be expensed as incurred. Costs to convert old data into a new system should be expensed. However, if software was developed or purchased to convert data, these specific costs should be capitalized.
Internal and external training costs and maintenance costs during this stage should be expensed as incurred.
Some thoughts on what should and should not be capitalized with respect to internal-use software:
- Only costs incurred during the application development stage are eligible for capitalization.
- Costs can only be capitalized once management authorizes and commits to fund the project, believes it will be completed, and all design testing has been completed.
- Internal costs that can be capitalized primarily include payroll and payroll-related costs that are directly related to the project. General and administrative expenses are not eligible for capitalization.
WEB DEVELOPMENT COSTS
If your company is incurring costs to develop, implement and maintain a website, the costs may be capitalized. The accounting standards have specific guidance on this area, and you will find this guidance is very similar to the accounting for internal-use software. As a result, it is important to understand the accounting rules surrounding internal-use software (included above).
Similar to internal-use software, the website development process is split between stages. The five web development stages along with their definitions are as follows:
- Planning Stage This stage is the very beginning of a website’s life–the thought process. Actions include determining the specific goals of the website, identifying the target audience, creating time and cost budgets, and determining the website’s functionalities.
- Application and Infrastructure Development Stage This stage involves the creation of the website’s bones including registering a domain name, developing or acquiring customized code, integrating external applications, developing HTML pages, purchasing routers and servers, and testing of the website applications.
- Graphics Development Stage
This stage is typically performed in conjunction with stage two above. Tasks include developing the design or layout of each page, color, images, and overall look and feel and usability of the website.
- Content Development Stage This stage is the ongoing content uploading that keeps the website up-to-date. The content can be textual or graphical in nature. Examples include articles, product photos, maps, descriptions, etc.
- Operating Stage This stage includes tasks such as training, administration, maintenance and other costs to operate the website.
Once you have split the development process into the five stages, the following are the accounting treatment considerations for each stage:
- Planning Stage All development costs incurred during this stage should be expensed as incurred. This includes both internal and external costs.
- Application and Infrastructure Development Stage All costs that relate to software developed or purchased that is used to help operate the website should be accounted for under the internal-use software rules (detailed above). Costs to obtain and register an Internet domain should be capitalized. Fees incurred for web hosting are to be expensed over the period of benefit.
- Graphics Development Stage The accounting standards consider graphics a component of software, and therefore, should be accounted for under the internal-use software rules.
- Content Development Stage Costs to input content into a website should be expensed as incurred. Data conversion costs should also be expensed as incurred. Software used to integrate a database with a website should be capitalized.
- Operating Stage Generally costs in this stage should be expensed as incurred. Costs of upgrades and enhancements that add functionality to the website should be accounted for under the internal-use software rules. Costs to register the website on search engines are considered advertising costs and should be expensed as incurred.
One point of consideration is that if you capitalize your company’s software development costs, management must be able to support these capitalized costs with hard numbers, spreadsheets, and the logic behind it all. The process also typically results in the need to track developer’s time by hour and by project. If you capitalize software, make sure your company has the tracking system and organization in place in order to support your capitalized costs.
A second point of consideration relates to significant enhancements made on software developed to be sold, leased or externally marketed. For example, if your company has an established software product being sold to the public and your developers are working on adding new functionality to this product, this may be a significant enhancement. Each significant enhancement should be treated the same as the base product in that all costs prior to technological feasibility are to be expensed; all costs post-technological feasibility may be capitalized. It is important to note that technological feasibility may be achieved earlier in the development process for significant enhancements, when compared to new software products. The logic is that mostly all the technological, hardware and high-risk development issues were already vetted during the initial product development. Also keep in mind that product enhancements are only eligible for capitalization if they are deemed significant to the overall product itself (i.e. new functionality).
A third point of consideration is that once costs are capitalized, they are generally amortized over the useful life of the product or software. The capitalized costs are then subject to an impairment analysis for each reporting period. Amortization rules differ between internal-use software, software for external sale and web development costs. These rules are outside the scope of this article (I have to stop writing at some point!).
The last point of consideration is that for software developed for sale or public use, the majority, if not all, of research and development costs are to be expensed. There are fairly narrow pockets of time that capitalization can occur. Generally, when a company establishes that its software is developed for internal-use, the majority of research and development costs are to be capitalized. It is important to note that every company’s process may differ; consequently, the application of the accounting rules is specific to each entity.
To the extent that you need assistance managing this topic, please do not hesitate to contact WithumSmith+Brown’s startup/emerging growth technology team.