Software Capitalization Guide
How U.S. GAAP treats software development costs — explained for the teams who build it, not just the ones who book it.
Most guides explain software capitalization as a list of accounting standards. The harder truth is that software doesn’t behave like the assets those standards were built for. It’s intangible, and it’s never really finished — continuously extended, refactored, and reprioritized. Classical capex assumes a project moves through tidy, sequential phases you capitalize at the gate. Software development, especially Agile, doesn’t.
That gap is where software capex actually lives — and where finance and engineering talk past each other. Finance owns capex, but software breaks the model; engineering owns the software, but the accounting isn’t native to them. This guide is the bridge: how U.S. GAAP treats software development costs, explained in terms of how software actually gets built.
Why software capex is harder than it looks
Capitalizing a cost means recording it as an asset and spreading it over the years it earns value, rather than expensing it the moment it’s incurred. Whether a cost qualifies comes down to two things: what the software is for, and which stage of work it belongs to.
The catch is that second word — “stage.” The rules assume development runs in clean phases: research, then build, then maintain. Software built iteratively blurs all three — a single sprint can mix discovery, building, and rework. So the real skill in software capex isn’t reciting the standard; it’s mapping it onto work that doesn’t line up with it. For that practical mapping, see capitalizing costs in Agile; for the plain-language primer, what software capitalization is.
The sections below cover each type of software you might build — they’re the working reference. For the standard-by-standard definitions, see the glossary.
Software to be sold
Software that is developed or purchased to be sold, leased, or marketed — separately or as part of another product.
Technological feasibility
Technological feasibility is the dividing line for software you intend to sell. All costs of developing the software before technological feasibility is established are research and development costs, and are expensed as incurred.
Under ASC 985-20, technological feasibility is established once the entity has completed the planning, designing, coding, and testing activities needed to establish that the product can be produced to meet its design specifications — evidenced in one of two ways:
- Detailed program design — a complete detailed program design exists, has been traced to the product specifications, and the high-risk development issues have been resolved through coding and testing; or
- Working model — where no detailed program design is prepared, a completed working model has been finished and confirmed, through testing, to be consistent with the product design.
Production and post-production costs
Costs to produce software incurred after technological feasibility is established are capitalized, including coding and testing costs.
Internal-use software
Internally developed or acquired software used solely to meet an entity’s internal needs, without a substantive plan to market it externally. Treatment follows ASC 350-40, which divides the work into three stages.
Preliminary project stage
Assessment of needs, evaluation of alternatives, and planning. These activities resemble research and are expensed as incurred.
Application development stage
Capitalization begins once the preliminary project stage is complete, management commits to funding the project, and it is probable the project will be completed and used as intended. In this stage you capitalize the costs that directly relate to developing or obtaining the software — coding, testing, configuration, interface development, and the cost of software used to convert old data. Data conversion itself, training, and general overhead remain expensed.
Post-implementation / operation stage
Maintenance and operating costs once the software is live are expensed as incurred. Later upgrades and enhancements are capitalized only when they add functionality.
Software as a service
Software used to provide a service, rather than being sold, leased, or marketed.
SaaS provider or vendor
The costs to develop the software used in a SaaS contract are accounted for as internal-use software.
SaaS consumer or customer
If the customer does not have the right to take possession of the software, it accounts for the contract as a service contract rather than a contract to purchase or license software. The related implementation costs (configuration and customization) still follow the ASC 350-40 internal-use model — capitalize the application-development-stage work, and expense the preliminary and post-implementation work.
Other software-related costs
Website development costs
Website costs follow ASC 350-50, which mirrors the internal-use stages: the planning stage is expensed; developing the website application and infrastructure — and most graphics — is capitalized; and operating the site once launched (routine content updates and maintenance) is expensed. Content development is judged on the purpose of the activity.
Business process reengineering
Costs of the reengineering process itself are generally expensed as incurred, regardless of whether they are provided by a third party or internally. (More on the standard behind this in ASC 720-45.)
Research and development software
If purchased software has a future alternative use beyond the original R&D project, it can be capitalized based on the project phase; otherwise it is expensed as research and development. (Internal-use R&D software may also qualify for R&D tax credits.)
The accounting guidance behind this
This guide summarizes FASB Accounting Standards Codification guidance for software development costs:
- ASC 350-40 — Intangibles–Goodwill and Other: Internal-Use Software
- ASC 985-20 — Software: Costs of Software to Be Sold, Leased, or Marketed
- ASC 730 — Research and Development
- ASC 720-45 — Other Expenses: Business and Technology Reengineering
- ASC 350-50 — Website Development Costs
Each links to its plain-English glossary entry.
Go deeper
2024-11-02
What is software capitalization?
Software capitalization records certain development costs as assets on the balance sheet rather than expenses on the income statement. The choice reshapes net income, taxes, and how your financials read.
Is Software a Fixed Asset or a Capital Asset?
Capitalized software is a capital asset — but usually an intangible one, not a tangible fixed asset. What the distinction means for how it's classified and expensed.
Capitalize vs. Expense Software Costs — How to Decide
How to decide whether a software cost is capitalized or expensed — by the type of work and the stage it's in, with a plain decision table teams can apply.
2025-09-20
Capitalizing Software Development Costs in Agile
How to capitalize software development costs in Agile — mapping sprints, epics, and Jira workflows to ASC 350-40 stages, with a worked example and an audit-ready approach that needs no manual timesheets.
ASU 2025-06: The New Internal-Use Software Capitalization Rules
FASB's ASU 2025-06 scraps the three-stage model for internal-use software and ties capitalization to funding and a "probable-to-complete" threshold. What changed, and what it means for software teams.
Software Capitalization Journal Entries (with Examples)
The journal entries behind capitalized software — capitalizing the build, amortizing it over its useful life, and writing it off on retirement, each with a worked debit/credit example.
2024-10-14
The Useful Life of Software (and How to Amortize It)
The useful life of software is how long it stays useful and worth running — and it sets the period you amortize a capitalized build over. How to estimate it, and amortize software the right way.
Software Depreciation vs. Amortization: Which Applies?
"Software depreciation" is a common phrase, but capitalized software is amortized, not depreciated. The difference between the two, and which one applies to software.