Accounting for Software Development Costs: When to Capitalise, When to Expense
Software development is one of the largest cost categories for technology companies — and one of the most confusing to account for correctly. Unlike a building or machine, software has no physical form, making it harder to determine when costs represent an asset versus a period expense. GAAP provides detailed phase-based guidance that determines capitalisation vs expensing. Getting this wrong affects both the income statement (through expense timing) and the balance sheet (through the asset base), with direct consequences for reported profitability and performance metrics.
Two Different Standards: Internal vs External Software
GAAP uses two different codification topics for software development costs, depending on the intended use of the software:
ASC 350-40 applies to internal-use software — software developed or obtained for use by the company in its own operations (ERP systems, accounting software, customer relationship management systems, internal apps). Most software development at non-software companies falls here.
ASC 985-20 applies to software developed for sale, licence, or lease to external customers — the product itself is the software being sold. This applies primarily to traditional software companies selling packaged or licensed software products. Note that SaaS (software-as-a-service) companies typically follow ASC 350-40 for their platform development costs, not ASC 985-20, because customers access the software as a service rather than obtaining a licence.
ASC 350-40: Internal-Use Software
Internal-use software development is divided into three stages, each with different accounting treatment. The phase at which a cost is incurred — not the nature of the activity in isolation — determines whether it is capitalised or expensed.
Preliminary Project Stage
All costs incurred during the preliminary project stage are expensed as incurred. This stage covers: strategic and conceptual planning, evaluation of alternatives and vendor selection, determining technology requirements, and deciding whether to proceed with the project. These activities are exploratory and do not yet create an identifiable asset.
Examples of preliminary stage costs (all expensed): project scoping fees, feasibility studies, conceptual design costs, evaluation of competing software solutions, and initial vendor demonstrations. Even if the project is ultimately approved and proceeds to development, these preliminary costs cannot be capitalised retroactively.
Application Development Stage
Costs incurred during the application development stage are capitalised. This stage begins when management authorises and commits to funding the project and determines it is probable the project will be completed and used as intended. It ends when the software is ready for its intended use (all substantial testing is complete).
Capitalised application development stage costs include: coding, programming, software configuration, software integration work, data conversion (only the portion directly attributable to the project), and testing directly related to the development work. Interest costs on borrowings to fund the project may also be capitalised during this stage under ASC 835-20.
CREDIT Cash (or Salaries Payable) $285,000
(Direct coding, programming, and testing costs during development phase)
Post-Implementation/Operations Stage
Once the software is ready for its intended use, costs shift back to expensed as incurred. Post-implementation costs include: training employees, ongoing maintenance, bug fixes for minor issues, and data entry. Major enhancements that add new functionality restart the cycle — if they represent a new project with a development stage, those enhancement costs may be capitalised.
Capitalised internal-use software is amortised over its estimated useful life using a systematic and rational method (typically straight-line) once it is ready for its intended use. Useful lives typically range from 3 to 7 years depending on the nature of the system and how quickly technology changes. Impairment is tested under ASC 360 if indicators suggest the carrying value may not be recoverable.
ASC 985-20: Software to be Sold
For software products sold to external customers, the accounting is different: all costs are expensed until the point of technological feasibility is established. Technological feasibility means the company has completed all planning, designing, coding, and testing necessary to establish that the product can be produced to meet its design specifications. For most companies, this occurs very late in the development process — which means most development costs are expensed, not capitalised, under ASC 985-20.
After technological feasibility: costs of producing product masters (coding, testing to produce the final master) are capitalised. Production costs (duplicating, packaging) are inventory costs. Amortisation of capitalised costs is the greater of (a) the ratio of current period revenues to total estimated revenues, or (b) straight-line over the remaining estimated economic life.
Cloud Computing and SaaS Arrangements
ASU 2018-15 clarified that customers in cloud computing arrangements (SaaS subscriptions, hosted software) account for implementation costs using the same three-stage framework as ASC 350-40 internal-use software. Costs incurred during the application development stage of a cloud implementation are capitalised as an intangible asset (or a prepaid asset) rather than expensed, even though the customer does not own the software itself. The related amortisation is presented in operating expenses (not cost of revenue), and the capitalised asset is presented separately from any prepaid hosting fees. For the separate question of how SaaS companies account for their own platform development, see the cloud computing and SaaS accounting guide.
Tax Treatment of Software Costs
Tax treatment of software costs has diverged from GAAP significantly. Under the Tax Cuts and Jobs Act of 2017, research and development costs (including software development) must be capitalised and amortised over 5 years (domestic) or 15 years (foreign) for tax years beginning after December 31, 2021 — a major change from the prior rule allowing immediate deduction. This creates a significant temporary difference between book and tax treatment for companies with large software development investments, generating a deferred tax asset in the early years. See the deferred tax accounting guide for how this flows through the financial statements.
Intangible Asset and Software Accounting Practice
ASC 350-40 and software capitalisation appear on FAR and in intermediate accounting courses. PrepQBank has targeted practice questions with full explanations. Free: 8/week. Upgrade for unlimited access.