Summarizing, cost capitalization can begin when you aren’t considering any project alternatives ( i.e. you have committed to a plan including, for example, a contract with outside vendor; before this point any expenses would be R&D expenses) & management believes that the software will be completed and used as intended.
The costs to capitalize include those incurred while it’s being developed, but are limited to (1) 3rd party costs and (2) payroll and payroll related costs for employees who are directly working on it.
Capitalization should cease when the project is substantially complete for its intended use (or when the project is abandoned, of course).
G&A, overhead and training costs are expensed as incurred.
Usually, the amortization period for these types of assets is 2-7 years, depending on the life expectancy of the software. It is recommended that an annual review of replacement plans is performed to reduce any impairment write-offs.