Accounting for Development Costs of Internal Use Software

July 28, 2017

Internal use software is software that is acquired or internally developed to meet an entity’s internal needs. These internal needs include, but are not limited to, software that is only used internally, such as payroll systems and CRM tools, and cloud-based SaaS products that the entity’s customers are provided hosted access for a period of time. U.S. Generally Accepted Accounting Principles (GAAP) offers two methods for accounting for the cost of software development: ASC 350-40: Internal Use Software and ASC 985-20: Costs of Software to Be Sold, Leased or Marketed. Most SaaS companies’ software development costs generally fall under ASC 350-40. Please read Internal-Use Software – Determining Which Accounting Guidance to Use to help determine which accounting guidance should be applied to your organization. Detailed below are the three stages of development for internal use software in accordance with ASC 350-40:

  1. Preliminary Project Stage – Costs incurred during the preliminary project stage are expensed as incurred. During this stage, the entities development activities might include the following:
  • Determining the performance and system requirements
  • Making strategic decisions regarding the allocation of resources to the project
  • Considering developing the platform in house versus hiring a third party


  1. Application Development Stage – Costs incurred during the application development stage are capitalized. The costs are eligible to be capitalized once (a) management has authorized the project and committed to the required funding, and (b) it is likely that the project will be completed and the software will be used for its intended purpose.

The following costs incurred during the application development stage should be capitalized:

  • Salary (or a portion thereof) of engineers that perform the development
  • Fringe benefits, including insurance and other benefits that the entity pays for on behalf of its employees, at a proportional rate to the salary applied
  • Third party costs to develop the software

The following costs incurred during the application development stages should not be capitalized:

  • Data conversion costs
  • Training costs


  1. Postimplementation-Operation Stage – Costs incurred during the postimplementation-operation stage are expensed as incurred. This stage begins when the software is ready for its intended use. These activities include:
  • Postimplementation training
  • Maintenance and routine bug fixes

After implementation, the entity should consider capitalizing the costs related to upgrades and enhancements of the software. Upgrade and enhancement activity is defined as modifications to enable the software to perform tasks that it was previously unable to. These costs should be capitalized if (a) it is likely that the modification will result in additional functionality, and (b) the entity has the ability to separate costs between maintenance and relatively minor upgrades and enhancements on a reasonable cost-effective basis.

The following decision tree depicts the logic behind deciding whether the costs should be capitalized or expensed related to both new software development and upgrades:

Decision Tree

Once the software is put into service, all capitalized costs related to internal use software are amortized over the estimated useful life of the software, which is typically 3 – 5 years.

For any questions on the stages of internal use software development, please contact Danielle Meyer at or 240.364.2609.