When developing software for customers, companies face the challenging question of which costs should be expensed and which should be capitalized. Generally Accepted Accounting Principles (GAAP) currently provide two methods to account for software development costs: Accounting Standards Codification (ASC) 350-40: Internal-Use Software and ASC 985-20: Costs of Software to Be Sold, Leased, or Marketed. In deciding the appropriate accounting guidance, a company must first determine what the final product will ultimately be and how it will be provided to the customer.
Most companies that provide Software as a Service (SaaS) products conclude that the guidance in ASC 350-40 is most appropriate. This is because the product is provided to customers through a hosting arrangement, and the associated contract with the customer is structured to not allow the customer the contractual right to take physical possession of the software or to access the source code at any time during the hosting period without significant penalty. Additionally, it is determined to be unfeasible for the customer to run the software on its own hardware or that of another contracted third party. Such contractual stipulations and customer limitations preclude the application of ASC 985-20.
However, in the event the software development company intends to sell, lease, or otherwise market the software externally, and the customer is given physical access to the software or source code and the software is installed on the customer’s hardware, then the software development company would follow the guidance in ASC 985-20.
Once a company has decided what the product will be and how it will be provided to the customer, it can then work to identify which costs can be capitalized and which costs should be expensed as incurred.
For companies that meet the requirements to follow ASC 350-40, there are three main stages of development.
- Planning Costs: During the preliminary project stage, when expenses are incurred related to concept formation and determining technological needs, all costs are to be expensed as research and development.
- Development Costs: Once a project has reached the application development stage, costs and time incurred (both internal and external) related to software configuration and interface design, coding, hardware installation, and testing with parallel processing would then be capitalized as an asset, until the time of implementation.
- Post-Implementation Costs: Once implementation has occurred, activities related to training, maintenance, or bug fixes are expensed as research and development costs incurred.
Many companies struggle with the capitalization of internal time. When it comes to supporting the capitalization of payroll expenses, ensuring that a time-tracking system is in place to capture employees’ time on a project-by-project basis is vital.
For companies required to follow ASC 985, the determination of when to capitalize costs is much more complicated and necessitates significant internal communication between the accounting and development departments. A company would begin to capitalize expenses when the project is deemed technologically feasible, which includes many hurdles that are subjective in nature and open to significant scrutiny.
In summary, companies that provide SaaS products can ultimately apply the guidance in ASC 350-40 if they determine that the software product provided is not physically delivered to the customer (including access to the source code), either during or at the end of the hosting period, and that it is not feasible for the customer to run the software on its own hardware. Coordination between the development and accounting teams is crucial in determining what costs should be capitalized and what costs should be expensed, regardless of the GAAP chosen. Additionally, creating a clearly defined process that is in line with GAAP is critically important and can help to alleviate potential concerns from investors or future buyers, if a liquidity event were to occur.
For more information on how to determine costs regarding software development, contact one of our PYA representatives below at (800) 270-9629.