Accounting for Software Development Costs in the Technology Industry

Two people looking at a laptop

The technology industry, and particularly the software industry, faces unique accounting challenges. One common question that companies need to answer is whether to expense or capitalize software development costs.

When software is developed in-house, it can be tricky to know whether the costs should be treated as an asset (capitalized) or as an expense. GAAP provides separate guidance for internal-use and external-use software.

Here’s our guide to determining what guidance applies to you.

Internal-Use Software: ASC 350

Internal-use software is developed in-house for internal-use cases. This also includes software accessed through a hosting arrangement (SaaS) in which customers do not obtain ownership of the software. In general, ASC 350 should be used to guide accounting for internal-use software.

External-Use Software: ASC 985

External-use software, also known as traditional or “on-premise” software, should follow ASC 985 for guidance.  This software is designed to be leased or sold to end customers.

Recent FASB Changes to ASC 350

In 2024, the FASB proposed significant changes to ASC 350 related to internal-use software to modernize outdated rules and better align with today’s agile, iterative development practices. One major impact is that fewer costs will qualify for capitalization because of a higher threshold, meaning more development costs will be expensed. This article incorporates these changes made to ASC 350.

When to Start Capitalizing Costs

For internal-use software, costs should be capitalized when two criteria are met:

  • The project has been authorized by management, and
  • It is probable that the project will be completed.

Costs should be expensed if there is significant uncertainty associated with the development, such as novel, unique, or unproven functions and features.

For external-use software, costs should be capitalized once “technological feasibility” has been established. Until that point (during planning, coding, and testing), costs are expensed.

Types of Costs That Should be Capitalized

Costs that should be capitalized include:

  • External direct costs of materials and services (e.g., fees paid to contractors or costs to purchase third-party software).
  • Payroll and related benefits for employees involved directly in development.

How Should Capitalized Development Costs Be Amortized?

Capitalized costs should be amortized on a straight-line basis over their estimated useful life, beginning when the software is ready for use. Because of agile development practices, software changes rapidly and typically has a relatively short life—often three to five years.

Treatment of Upgrades and Enhancements

Upgrades and enhancements can be capitalized only if they add new additional functionality—that is, enabling the software to perform tasks it previously could not. Maintenance costs should always be expensed.

Software Development Cost Capitalization Next Steps

Once you understand the applicable guidance, you’ll need to determine which costs to capitalize. This involves collaboration between the accounting and engineering teams.

During this process, it is crucial to understand the engineering team’s reporting and tracking systems. Ask questions like:

  • How is time spent on a development project tracked?
  • How is progress tracked on specific development projects?
  • When upgrades and enhancements are being developed, is functionality increasing?
  • What is the purpose of each project?
  • What percentage of an employee’s time is spent on projects other than development?

Capitalization of software development costs involves judgment and estimation. Our team of experts is available to support you and ensure the right calls are made. Get in touch with our technology audit team today.

Author