Software development cost capitalization in an Agile world

Time tracking

Software development and DevOps

Illustration of a calculator, financial document with a percentage symbol, and comment boxes, representing budgeting and financial planning.

Shane Garnett

Sep 30, 2024

Your CPA and engineering teams usually stick to their own areas, which works out fine. But sometimes, they need to collaborate when it comes to capitalizing software development costs.

There are differing opinions on whether businesses should capitalize these costs. We won’t dive into that debate here—these decisions depend on an organization’s interpretation of tax laws and reporting requirements.

If your company does choose to capitalize software development costs, how can you maximize the benefits without taking unnecessary risks?

We’ll cover the basic concepts of software development cost capitalization and how to generate accurate, data-driven insights to guide your decisions.

What is the capitalization of software development costs?

Capitalization in accounting means spreading the costs of an asset over its lifetime instead of expensing them all at once. The asset is added to the company’s balance sheet and depreciates over its useful life.

The Financial Accounting Standards Board (FASB) issued guidance on software development cost capitalization in 1985 and recently updated it with ASC 350 Intangibles – Goodwill and Others to cover new types of software and hosting arrangements.

The Governmental Accounting Standards Board (GASB) issued Statement No. 51, identifying computer software as an intangible asset. This means software can be recorded at its purchase price and amortized over its estimated useful life.

Capitalizable software costs may include programmer compensation, testing costs, and other direct or indirect overhead expenses. The software must meet specific criteria under Generally Accepted Accounting Principles (GAAP).

There are two types of computer software capitalization allowed under GAAP:

Internal-use software

  • You can capitalize on implementation costs, payroll-related costs, and interest costs during the development phase. However, you can’t capitalize on maintenance and overhead costs incurred after implementation, like training or data conversion costs.
  • In 2018, FASB updated ASC 350-40 to include costs for software or software license purchases, software development (e.g., coding, testing), and external materials.

Software for sale

  • If developing software to sell or lease to external users (like in a SaaS company), costs aren’t capitalizable during the preliminary project stage. Capitalization starts after the software is declared technologically feasible following planning, designing, coding, and testing.
  • You can capitalize on direct costs associated with further development, such as adding features, functionalities, and enhancements, after confirming you have a viable product.

Software for internal use and for sale

The stages of software capitalization

Software capitalization involves three distinct phases:

  1. The preliminary stage
  2. The development process
  3. The post-implementation

Stage 1: The preliminary stage

Before a single line of code is written, a lot of pre-development activities take place. This initial stage includes feasibility studies, market research, budget building, prototyping, and project management. These are the foundation blocks that guide the entire development journey.

Here’s where it gets tricky: costs incurred at this stage are generally expensed, not capitalized.

Why? The logic is straightforward. The expenses during this stage are like exploratory missions. They’re essential but aren’t directly contributing to the final product yet.

Take prototyping, for example. Prototyping is crucial to identify potential design flaws early on. But since it doesn’t directly contribute to the final software product, it’s considered a preliminary expense and not capitalized.

Stage 2: The application development process

Next, we enter the exciting world of coding, debugging, and quality assurance. The software starts to take shape in the application development stage, and your ideas transform into a tangible product.

Costs incurred here, such as software engineering, programming, and testing, directly contribute to the final software product. They’re the meat and potatoes of your software.

These costs are capitalized because they create the final product you’ll eventually sell, market, or use.

Stage 3: Post-implementation aspects

Once the software is ready for use, we move to the post-implementation phase. This phase includes software support, bug fixes that were previously unidentified during development, and minor improvements. The post-implementation stage is about ensuring your software continues delivering value and functioning as expected.

But costs incurred in this stage are usually expensed, not capitalized.

Why? While crucial for maintaining the software’s value, these activities don’t add new functionality or value to the software product. They’re more about maintaining the product’s existing value rather than creating additional value.

For example, you wouldn’t capitalize the cost of changing a flat tire on a delivery truck. The same principle applies here. Maintaining the software’s functionality, like keeping the truck’s ability to deliver goods, is considered an operational expense.

Prelimenary, App development. and post implementation

The benefits of capitalizing software development costs

Why go through the effort of capitalizing software development costs?

When you capitalize software development costs, they are amortized instead of expensed immediately. This amortization leads to lower reported expenses and higher net income for accounting purposes.

Capitalizing expenses can help increase a company’s asset balance without affecting its liability balance. Additionally, if you were to expense a high-cost, long-term asset immediately, it could impact your financial statements in a way that might prevent your company from securing new loans.

Agile software development and the capitalization of software development cost

Accounting rules for software development phases fit nicely with a waterfall project plan, where each stage follows the next in a defined order.

But that’s not how things usually work in today’s Agile world. Here, development processes often happen all at once, across multiple assets.

For example, during a sprint, a team might quickly move through planning, development, and maintenance. This makes it tough to tell which costs are capitalizable and which are just maintenance.

A multidisciplinary product team adds another layer of complexity. If you can’t assign hours to specific work items, it’s hard to figure out which hours are capitalizable.

Companies also face issues with story abandonment, where a project is approved but then halted before it’s finished. This raises questions about whether the costs incurred can be capitalized.

Determining costs for enhancements can also be tricky. For instance, a new functionality might not be a new asset you can amortize until more work is done in future sprints.

Tracking Agile development cycles is complex and increases the risk of errors in financial statements or missing out on capitalizing enough costs, which can impact reported net income.

Capitalization of software development costs starts with accurate tracking and reporting

To tackle these challenges, it’s crucial to know how developers spend their time using detailed tracking and reporting. Most Agile organizations use milestones or phases to track activities, determine cost allocation, and report capitalization.

When using milestones to track capitalization, you’d set “gates” at project kickoff and product release to mark the start and end of capitalization. While this method is easier to manage, it doesn’t fit the often non-linear nature of sprints.

The phased approach is more detailed. It looks at what each team member did at any given moment to decide what is capitalizable.

For example, if your organization decides to expense the costs associated with the discovery phase but capitalize on the costs of development, testing, and documentation, you’d need to link each work item with one of those phases and accurately track the time spent by each team member.

Your time recording app may not be enough for accurate capitalization of software development costs

When you’re capitalizing or billing your time, every minute counts. Tracking time and linking each entry to a work item is crucial for proper capitalization.

But most time-tracking systems ask developers to enter information after the fact (how detailed can you get if you’re trying to remember what you did a week ago?). Plus, they can’t track time at the work item level to associate it with the right phase.

Time tracking systems

That’s why Agile organizations turn to 7pace Timetracker to improve the accuracy and detail of time tracking.

It’s the only productivity app deeply integrated with Azure DevOps. Developers can record their time (almost automatically) right on the platform where they work and link the hours spent to each work item as they go.

You don’t have to hunt for data, attribute time, or validate tracked time. Accurate and detailed information helps you remove the guesswork and reduce accounting risks while capitalizing more of your costs.

Using 7pace Timetracker doesn’t mean giving up your current time reporting system or entering time twice. Our robust API integrates Timetracker with most platforms, so you can effortlessly sync the data.

Start your free trial and see how 7pace Timetracker can provide the insights you need to capitalize software development costs.

Try 7pace Timetracker

Shane Garnett

Shane Garnett is a Senior Solutions Advisor at Appfire, specializing in BigPicture, Dashboard Hub, and Workflow & Automation apps. With 25 years of IT experience, he partners with customers to identify the right solutions for their business needs — helping teams adapt, scale, and succeed in a constantly evolving world.