Software Development Costs
Software development costs follow different capitalization rules depending on whether the software is developed for sale to others (ASC 985-20) or for internal use (ASC 350-40).
Explanation
For software to be sold, leased, or marketed, costs incurred before technological feasibility are expensed as R&D. After technological feasibility (either a detailed program design or a working model), costs are capitalized until the product is available for general release. Capitalized costs are amortized using the greater of the ratio of current revenues to total expected revenues, or straight-line over the estimated useful life.
For internal-use software, three stages apply: preliminary project stage (expense), application development stage (capitalize), and post-implementation stage (expense). Training costs and data conversion costs are generally expensed. Cloud computing arrangements (hosting) follow specific guidance — if the customer has the right to take possession of the software, capitalize; otherwise, expense as a service contract.
Key Points
- •Software for sale: capitalize after technological feasibility
- •Internal-use software: capitalize during application development stage
- •Amortize capitalized costs; test for impairment
- •Cloud computing costs depend on whether customer can take possession
Exam Tip
The distinction between the two types of software costs is frequently tested. Remember the different capitalization triggers and the three stages for internal-use software.
Frequently Asked Questions
Related Topics
Research and Development Costs
Research and development costs are generally expensed as incurred under U.S. GAAP (ASC 730), with limited exceptions for software development and certain assets with alternative future uses.
Intangible Assets
Intangible assets are identifiable non-monetary assets without physical substance, such as patents, trademarks, copyrights, and customer lists, recognized at cost and amortized over their useful lives if finite.
Depreciation Methods
Depreciation is the systematic allocation of the cost of a tangible long-lived asset over its useful life, using methods such as straight-line, declining balance, or units of production.
Test your knowledge
Practice scenario-based questions on this topic with detailed explanations.