Software Development Accounting
Capitalizing software development: Navigating the line between expense and asset
If your company develops software, knowing which costs to capitalize and which to expense can have a significant impact on your financials. This is often overlooked by startups, companies preparing for their first external audit, or those beginning software development for the first time.
Understanding Software Development Accounting
The accounting treatment for software development depends on what the software does and how it will be used.
Internal Software
Internal-use software is built or modified to support your company’s own operations — with no plans to sell or license it externally. A typical example would be a software company that provides SaaS where customers are provided with access to a company’s platform. Internal-use software generally requires capitalization during coding and developing.
Internal-use software (ASC 350-40)
- Expense: Preliminary project and planning stage costs
- Capitalize: Development costs once management has authorized the project and design work is complete
- Expense: Post-implementation maintenance and training costs
Connect with a Software Development Accountant
Software for Sale
Software developed for sale — such as on-premise licenses or software bundled with hardware — follows different rules. Capitalization only begins after technological feasibility is reached, which typically occurs later in the development lifecycle than with internal-use software, resulting in fewer capitalizable costs.
Software for Sale (ASC 985-20)
- Expense: All costs before technological feasibility is established — treated as R&D expense.
- Capitalize: Development costs only after establishing technological feasibility, typically through completion of a detailed program design or production of a working model
The Implementation Challenge
Getting the software development accounting right requires two distinct determinations:
For companies doing this for the first time, the practical challenge is often the data itself. Internal documentation rarely aligns with how accounting records need to be structured, which means source data typically requires significant rework before it can support a defensible capitalization schedule.
BPM’s Approach to Software Development Accounting
We work with your engineering teams to understand your development process and identify the stages of each project. This includes reviewing software development roadmaps, project plans, timelines, and resource allocations to determine when capitalization criteria are met.
We help you establish methodologies for tracking capitalizable costs, including direct labor and third-party contractors. We also handle time allocation for employees who split work across projects or between development and maintenance.
We prepare technical memorandums documenting your capitalization policies and specific project analyses. We also help you establish internal processes for identifying new projects, tracking development stages, and maintaining the documentation auditors will require.
Addressing Historical Periods
If you’ve never capitalized software costs, we can help you reconstruct historical development activity to determine appropriate capitalization. This may involve reviewing old project plans, interviewing engineering leaders, and analyzing historical payroll and contractor costs. We’ll prepare the journal entries needed to capitalize historical development costs and begin depreciating or amortizing the resulting software assets.
Ongoing Project Monitoring
Software development is continuous. We can provide ongoing consultation as you launch new projects, helping you determine capitalization timing and appropriate cost tracking as well as flag assets that may be impaired as software is replaced or retired. We can also conduct periodic reviews to validate that processes remain compliant with GAAP.
Meet our Software Development Accounting Leaders
Start the conversation
Looking for a team who understands where you’re headed and how to help you get there? Whether you’re building something new, managing growth or preserving success, let’s talk.