Overview: Capitalization of Software Development Costs

On this page:

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.

back to top

Examples of Capitalizable and Non-Capitalizable Costs Incurred in Software Development


The following illustrate costs that are eligible for capitalization:

Capitalizable Costs and Examples
Capitalizable Costs Examples

External direct costs of materials

  • Costs of producing product masters

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

  • Salaries
  • Benefits (exclude meals, alcohol, moral related expenses)
  • Bonuses
  • Food

Interest costs incurred while developing software (capitalize in accordance with Accounting Standards Codification (ASC) No. 835-20 (Capitalization of Interest Costs)

  • Interest expense
  • Debt issuance costs

Upgrades and enhancements that increase functionality of existing internal-use software, including major revisions of third party products

  • Cost of software upgrade resulting in additional functionality
  • Installation costs as described for new software

Data conversion

  • Costs to develop or obtain software that allows for access or conversion of old data by new systems

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 and Examples
Non-Capitalizable Costs (Expense) Examples

Research and development

  • Purchased or leased computer software used in research & development (R&D)

Conceptual formulation of alternatives

  • Decision whether to develop a new system or to correct problems of existing system

Evaluation of alternatives

  • Functions to be performed by software

Determination of existence of needed technology

–––

Final selection of alternatives

–––

Training costs

  • End-user training salaries
  • Materials

General and administrative costs

  • Space
  • Utilities
  • Telephone
  • Overhead costs
  • Supplies
  • Equipment (desktop support)
  • Support staff salaries (non–dedicated)

Implementation costs

  • Customer support efforts
  • Help desk
  • Internal and external training
  • Maintenance costs

Data conversion costs

  • Purging / cleaning existing data
  • Reconciliation / balancing of old date and data in new system

Upgrades & enhancements

  • Internal costs
  • External costs incurred under agreements related to specific upgrades and enhancements that do not increase functionality, i.e., those costs which merely extend the useful life are considered maintenance activities

Maintenance

  • Portion of software contracts attributable to maintenance contracts
  • Direct expenses
  • Correction of errors
  • Minor updates to keep software current
  • Unspecified upgrades
back to top

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.
back to top

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:

  1. Preliminary Project Stage
  2. For research and development of internal-use software
    • Conceptual formulation of alternatives
    • Evaluation of alternatives
    • Determination of existence of needed technology
    • Final selection of alternatives

  3. Application Development Stage
  4. Once management authorizes and commits funding and the preliminary project stage is completed
    • Design of selected software, including software configuration and software interface
    • Coding
    • Installation of software
    • Quality assurance testing

  5. Post-Implementation / Operation Stage
  6. All testing is substantially completed and software is ready for intended use
    • Data conversion costs
    • Training
    • Application maintenance (over the maintenance period)
    • General & administrative costs
    • Overhead allocation

back to top