The 3 Stages of Capitalizing Internally Developed Software
Capitalization of internal-use software costs is an area where companies often misapply GAAP (Codification Topic 350-40). Software intended for internal use includes back office systems, such as general ledger or billing modules, and platforms where software as a service is provided to customers. It does not apply to software sold or distributed to customers. The accounting guidance specifies 3 stages of internal-use software development and during which stages capitalization is required:
September 18, 2015
February 9, 2017
1. Preliminary Project Stage
Costs are expensed as incurred during this stage and include exploratory research, determining the desired functionality of the software, and determining if technology exists to achieve stated performance objectives among other tasks.
2. Application Development Stage
Companies are required to capitalize the internal and external costs incurred during the application development stage. This stage includes development path design, coding, hardware installation, and testing. Common types of costs capitalized during the application development stage include:
- External costs of materials and services obtained in developing or obtaining internal-use computer software (e.g., fees to third-party developers).
- Payroll and payroll-related costs for employees who are directly associated with, and who devote time to, the internal-use computer software project. These costs are limited to the actual time spent directly on developing the software (e.g., coding and testing).
Note: Training costs incurred during this stage should not be capitalized, but expensed as incurred.
In order to begin capitalizing costs during this stage, management must first authorize and commit to funding the project, and the company must have completed the preliminary project stage. Additionally, project completion should be reasonably expected.
3. Post-Implementation/Operation Stage
Costs during this stage should be expensed as incurred. This stage is when the software has been rolled out and is being used for its intended purpose. Training and maintenance costs are some of the costs that should be expensed as incurred during this stage.