Overview: Capitalization of Software Development Costs
On this page:
- Capitalization Policy for Software Development
- Examples of Capitalizable and Non-Capitalizable Costs Incurred in Software Development
- Definition of Software Accounting Terms at Stanford
- Background: Phases of Computer Software Development as Relates to Capitalization
Capitalization Policy for Software Development
Software development costs that add future value are typically capitalized. Expenditures that do not increase the value of the asset are expensed. Systems for which the total capitalizable software costs exceed $500,000 are eligible for capitalization under these guidelines (capitalized hardware should follow the equipment capitalization policy). For invoices having a combination of eligible and ineligible costs, a reasonable attempt to split the respective costs should be made. Adequate documentation of whether to capitalize, expense or separate the costs should be maintained per Admin Guide Policy 3.1.5.
EXAMPLE:
If software is developed separately for a general ledger, an accounts payable sub-ledger, and an accounts receivable sub-ledger, each ledger may be viewed as separate component of the entire system, but if components were developed at the same time, they would only be considered to be a single asset.
To determine the life of the software asset (or license), you should talk to a Fixed Assets representative in the Controller's Office. Generally, mainframe or central office systems will range from five to seven years, other smaller systems may vary between three to five years.
Capitalizable Costs | Examples |
---|---|
External direct costs of materials |
|
Payroll & payroll related costs for employees working directly on the project (including coding, testing and software setup), and for employees spending >50% of their time on the project during the program instruction stage; use Personnel Action Form (PAF) to identify and separate non-project related activities |
|
Interest costs incurred while developing software (capitalize in accordance with Accounting Standards Codification (ASC) No. 835-20 (Capitalization of Interest Costs) |
|
Upgrades and enhancements that increase functionality of existing internal-use software, including major revisions of third party products |
|
Data conversion |
|
System hardware |
The following illustrate costs that are ineligible for capitalization and are to be expensed in the period in which they incurred:
Non-Capitalizable Costs (Expense) | Examples |
---|---|
Research and development |
|
Conceptual formulation of alternatives |
|
Evaluation of alternatives |
|
Determination of existence of needed technology |
––– |
Final selection of alternatives |
––– |
Training costs |
|
General and administrative costs |
|
Implementation costs |
|
Data conversion costs |
|
Upgrades & enhancements |
|
Maintenance |
|
Definition of Software Accounting Terms at Stanford
Upgrades and enhancements: In situations where internal costs cannot reasonably be separated between maintenance and relatively minor upgrades and enhancements, minor upgrades and enhancement costs should be expensed as incurred. Costs under agreements that combine the costs of maintenance and unspecified upgrades and enhancements should be recognized in expense over the contract period on a straight-line basis unless another systematic and rational basis is more representative of the services received.
In general, annual maintenance and license fees are to be expensed as incurred. The costs of significant upgrades and enhancements follow the capitalization guidelines described within this policy for new software.
Amortization: Costs are to be amortized over the expected useful life of the system. The University typically uses seven (7) years for major system implementation, but a lesser life may apply to a specific project. Determination of the life is based upon the Controller's discretion or his/her designee. The purpose of amortization is to allocate the costs of the system to the periods for which benefit from the system's service is derived.
Amortization is to begin when the software is ready for its intended use and placed in-service (system of record), which is after all testing is substantially completed.
Impairment: When it is no longer probable that the internal-use software will be used, impairment should be recognized in accordance with Accounting Standards Codification (ASC) No. 360-10 (Accounting for the Impairment of Long-Lived Assets and for Long-Lived Assets to Be Disposed Of). This guidance is to be followed if one of the following occurs:
- Internal-use computer software is not expected to provide substantive service potential;
- Significant change occurs in the extent or manner in which the software is used;
- A significant change is made or will be made to the software program; or
- Costs of developing or modifying internal-use computer software significantly exceeds the amount originally expected to develop or modify the software.
Background: Phases of Computer Software Development as Relates to Capitalization
In the course of its business and as a result of currently available technology, Stanford may be required to develop upgrades or replacement computer software for its many applications. This may include purchasing a core software package from a vendor and then modifying the package or internally developing a custom application. These types of activities generally fall under the guidelines of Accounting Standards Codification (ASC) No. 350-40 (Computer Software Developed or Obtained for Internal Use).
There are three main stages of computer software development. These stages are defined as (1) the preliminary project stage, (2) the application development stage, and (3) the post-implementation / operation stage. Only costs included in the application development stage are eligible for capitalization. Capitalization of costs begins once management authorizes and commits funding and the preliminary project stage is completed. Capitalization should cease when all testing is substantially completed and software is ready for intended use or it becomes unlikely that the project will be completed.
The computer software development stages include the following types of activities:
- Preliminary Project Stage
- Conceptual formulation of alternatives
- Evaluation of alternatives
- Determination of existence of needed technology
- Final selection of alternatives
- Application Development Stage
- Design of selected software, including software configuration and software interface
- Coding
- Installation of software
- Quality assurance testing
- Post-Implementation / Operation Stage
- Data conversion costs
- Training
- Application maintenance (over the maintenance period)
- General & administrative costs
- Overhead allocation