The development of software for customers can be a difficult undertaking for any business. The complexity of accounting requirements under Generally Accepted Accounting Principles (GAAP) can further complicate this process.
PYA’s thought leadership team has previously discussed the two main methods in accounting for software development costs available under GAAP. For most companies providing Software as a Service (SaaS) products through a hosting arrangement, where the software vendor retains the right of software possession, the appropriate option would be the application of Accounting Standards Codification (ASC) 350-40.
In this Insight, the next in PYA’s series on accounting for SaaS, we will take a deeper dive into analyzing what costs are eligible for capitalization under ASC 350-40, and at which stage in the software development process capitalization should begin.
Stages of Software Development
The software development process is divided into three consecutive phases: the preliminary project stage, the application development stage, and the post-implementation stage. Businesses can start capitalizing costs when both the preliminary project stage is complete and when the project’s management commits to funding a software project that is probable to be completed.
To understand when the preliminary project stage is complete, we must define this step. GAAP provides the following examples of common undertakings during this stage:
- Make strategic decisions to allocate resources between alternative projects at a given point in time. For example, should programmers develop a new payroll system or direct their efforts toward correcting existing problems in an operating payroll system?
- Determine the performance requirements (i.e., what the entity needs the software to do) and systems requirements for the computer software project the entity has proposed to undertake.
- Invite vendors to demonstrate how their software will fulfill an entity’s needs.
- Explore alternative means of achieving specified performance requirements. For example, should an entity make or buy the software? Should the software run on a mainframe or a client-server system?
- Determine that the technology needed to achieve performance requirements exists.
- Select a vendor if an entity chooses to obtain software.
- Select a consultant to assist in the development or installation of the software.
The above examples relate to making planning decisions as to whether a project should be undertaken. Costs associated with these items must be expensed as incurred in accordance with GAAP.
Capitalization of Software Development Costs
Two criteria must be met for software development costs to be capitalized. First, the entity creating the software must decide to move forward with a project, out of the planning process, completing the preliminary project stage. Second, management with authority over the software development project must authorize and commit to funding the project. It must also be probable the project will be completed, and that the software will be used for the planned function. Common examples of management authorization include the execution of a contract or approval of expenditures, such as outlining them in a budget, for development.
Meeting these two criteria launches the application development stage. During this step, GAAP requires that eligible internal and external software development costs be capitalized. This second stage typically consists of software coding, installation, and testing.
Only a limited number of costs that directly relate to the development of the software are eligible for capitalization. These include costs paid to third parties for materials or services used to obtain or develop the software. These may be costs for software configuration, coding, hardware installation, and testing parallel processing. Also eligible are travel costs incurred by in-house employees while working directly on software development. Both payroll and payroll-related costs for employees’ time spent directly on the development of the software can be capitalized. Finally, the amounts capitalized should include interest costs incurred while developing the software in accordance with ASC 835-20: Interest: Capitalization of Interest.
Any other costs, even if incurred during the application development stage, may not be capitalized. For example, entities should expense all costs to train employees on software use, regardless of when the training takes place. Additionally, indirect costs such as general and administrative or overhead costs are expensed as incurred. Common examples of these ineligible administrative costs include depreciation of the computers or an allocation of rent to the space used by programmers.
Costs associated with moving data from existing systems to the new software generally should be expensed as incurred. Examples include the purging or cleansing of existing data, reconciliation or balancing of old data to the data in a new system, creation of new or additional data, and conversion of old data to the new system. An exception to this exists if new software is developed or purchased to convert data. These costs may be capitalized within the requirements of ASC 350-40.
The Conclusion of Capitalization of Software Development Costs
Capitalization of costs should conclude when the software project is substantially finished for its planned purpose and all testing is complete. At this point, the software project enters the post-implementation stage, during which common activities include maintenance and training. Post-implementation stage costs should be expensed as incurred. However, subsequent upgrades and enhancements that provide additional functionality to the software may be capitalized, provided the capitalization requirements of the application development stage are also met. To meet the additional functionality requirement of this stipulation, the update or enhancement must provide the software with capabilities that it was previously unable to perform.
PYA Can Help
Incorporating the accounting requirements of ASC 350-40 into your SaaS development process can be complicated by the unique circumstances of every entity and software development project. If you need assistance or would like additional SaaS development cost accounting treatment guidance, contact a PYA executive below at (800) 270-9629.