Skip to main content

Cloud Implementation Costs, Explained: Which Hosting Setup Costs You Capitalize Under ASC 350-40

Published 11 min readMike ThriftMike Thrift
Cloud Implementation Costs, Explained: Which Hosting Setup Costs You Capitalize Under ASC 350-40
On this page

Your company just signed a three-year deal for a cloud ERP at $60,000 a year, plus a $90,000 implementation quote from the vendor's consultants. Here is the question your controller will ask before the first invoice is paid: does that $90,000 hit this quarter's profit and loss in full, or does it sit on the balance sheet and bleed into expense a little each month for three years? The answer moves your reported earnings by tens of thousands of dollars in year one, and it is governed by one accounting rule most small businesses have never heard of.

That rule is ASC 350-40, as clarified by the FASB's Accounting Standards Update 2018-15. It decides which cloud setup costs you capitalize and which you expense. Get it right and your financials match the economics of the deal. Get it wrong and you either understate this year's profit or carry a phantom asset your auditor makes you write off. This guide walks through the rule stage by stage, with the journal entries to prove it.

Why Cloud Setup Costs Needed Their Own Rule​

Before 2018, U.S. GAAP had two different models for what was often the same technology project. If you bought an on-premise software license, the costs of getting it running followed the internal-use software rules: certain development costs were capitalized as an asset and amortized. If you subscribed to the same software hosted in the vendor's cloud under a service contract, there was no asset to attach costs to, so most companies expensed every implementation dollar as incurred.

The economics were identical — configure the system, connect it to your other tools, test it, train your team — but the financial statements looked completely different depending on where the servers lived. As companies moved en masse to the cloud, that mismatch became impossible to ignore.

ASU 2018-15 fixed it by aligning the two models. Implementation costs in a hosting arrangement that is a service contract are now evaluated exactly as if they were internal-use software project costs under ASC 350-40. Some get capitalized. The catch is that which costs qualify depends entirely on the project stage they fall into — and the stages are narrower than most people expect.

First Question: Service Contract or Software License?​

The capitalization rule only applies to a cloud computing arrangement that is a service contract — the usual SaaS deal where you access software running on the vendor's infrastructure and never possess the code.

An arrangement includes a software license instead (accounted for as internal-use software) only if both of these are true:

  1. You have the contractual right to take possession of the software at any time during the hosting period without significant penalty.
  2. It is feasible for you to run the software on your own hardware or contract with another party to host it.

For a typical small-business SaaS subscription — QuickBooks Online, NetSuite, HubSpot, a cloud ERP — both conditions fail. You cannot take the code home, and you could not run it yourself if you did. So it is a service contract, the subscription fees are expensed as the service is received, and the implementation costs go through the three-stage test below.

Note what the rule does not change: the accounting for the service element itself. Your monthly or annual hosting fees are still plain operating expense. Only the one-time implementation and setup costs get the capitalize-or-expense analysis.

The Three Stages That Decide Everything​

ASC 350-40 divides every software project into three stages. The stage determines the treatment, full stop.

Stage 1: Preliminary Project — Expense It All​

The preliminary stage covers everything you do to decide what to build and whether to proceed:

  • Evaluating and selecting vendors, issuing RFPs, sitting through demos
  • Determining system requirements and reengineering business processes
  • Consultants hired to help you choose a platform
  • The final authorization decision — management formally approving and funding the project

Every dollar in this stage is expensed as incurred. The $15,000 you paid an independent consultant to compare three ERPs and recommend one? Expense. The internal time your team spent mapping requirements before signing? Expense. Nothing is capitalized until management has authorized the project and it is probable the project will be completed and the software used as intended.

Stage 2: Application Development — Capitalize What Qualifies​

Once the project is authorized, you enter the application development stage, and this is the only stage where capitalization happens. Capitalizable costs include:

  • Configuration and customization of the hosted software to your specifications
  • Coding and building interfaces between the cloud application and your other systems
  • Testing, including parallel testing against your legacy system
  • Upgrades and enhancements made during implementation that add functionality
  • Payroll and payroll-related costs of employees who devote time directly to these activities, plus third-party consultant fees for the same work

The key test is that the cost directly creates the working configuration you will use over the hosting term. A consultant customizing approval workflows in your new ERP qualifies. Building the API integration that pushes orders from the ERP to your warehouse system qualifies.

Stage 3: Post-Implementation and Operation — Expense It All​

Once the system (or a module of it) goes live, you are back to expensing everything:

  • Maintenance, support, and minor bug fixes
  • Training costs — always expensed, no matter when they occur
  • Data conversion and migration costs — expensed as incurred
  • Ongoing administration and process reengineering after go-live

Read those two bold lines again, because they are the most failed part of this rule in practice.

Why Training and Data Conversion Still Expense​

It surprises almost everyone that the invoice for migrating ten years of history into the new system — often the single largest line item — is expensed even though it happens squarely inside the application development stage. Two reasons drive this:

Training benefits your people, not the asset. The capitalized asset is the configured software environment. Training teaches employees to use it; if they leave, the value walks out the door. Because the future benefit is not controlled by the company in the way an asset must be, training is expensed whether it happens before, during, or after go-live.

Data conversion moves old information, it does not create new capability. Scrubbing, reformatting, and loading your historical records does not enhance the hosted software or extend what it can do. It is the cost of relocating data you already owned, so it is expensed as incurred.

Practically, this means you must split vendor invoices by activity, not just pay them. A single $90,000 implementation statement of work might contain $50,000 of configuration (capitalize), $25,000 of data migration (expense), and $15,000 of end-user training (expense). Ask the vendor to break out time by activity before the project starts — reconstructing the split at audit time from a lump-sum invoice is painful, and auditors will assume the worst about undocumented amounts.

Amortizing What You Capitalized​

Capitalized implementation costs are presented on the balance sheet alongside prepayments for the hosting fees — conceptually a prepaid asset, not software you own. They are then amortized on a straight-line basis over the term of the hosting arrangement.

The hosting term includes the noncancellable period plus any renewal periods you are reasonably certain to take. A one-year contract you fully expect to renew twice amortizes over three years, not one. That judgment call matters: amortizing $50,000 over one year is $4,167 a month of expense, while spreading it over three years is $1,389. Document the renewal assumption when you set it up.

Two more presentation details auditors check:

  • The amortization expense goes on the same income statement line as the hosting fees — typically general and administrative or the operating expense line where the subscription lives. Do not bury it in depreciation or a separate amortization line with your other intangibles.
  • Cash paid for implementation follows the hosting fees in the cash flow statement — operating activities, not investing.

And capitalized costs are not fire-and-forget. If you abandon a module, switch vendors mid-contract, or the project stalls indefinitely, test the asset for impairment and write off what has no future benefit. A capitalized implementation for a system you cancelled is a write-down waiting for your auditor to find.

The Journal Entries, End to End​

Say you sign a three-year cloud ERP deal. Implementation breaks down as $50,000 of configuration work (capitalizable), $25,000 of data migration (expense), and $15,000 of training (expense). Here is the full life cycle.

Paying the implementation invoices:

2026-11-15 * "Cloud ERP vendor" "Implementation - configuration phase"
  Assets:Prepaid-Expenses:Cloud-Implementation  50,000.00 USD
  Expenses:Professional-Fees:Data-Migration      25,000.00 USD
  Expenses:Training:ERP-End-User                 15,000.00 USD
  Assets:Checking:Operating                     -90,000.00 USD

Notice the split: one payment, three destinations. The configuration dollars become an asset; migration and training go straight to expense.

Monthly amortization over the 36-month hosting term ($50,000 / 36 = $1,388.89):

2026-12-31 * "Amortize cloud ERP implementation costs" ""
  Expenses:G-and-A:Software-Subscriptions   1,388.89 USD
  Assets:Prepaid-Expenses:Cloud-Implementation  -1,388.89 USD

The amortization lands in the same expense account as the subscription fees, keeping the full cost of the arrangement visible in one place. If your bookkeeping system supports recurring transactions, set this entry to repeat monthly for the hosting term and attach the renewal memo to the schedule so a future you — or a future bookkeeper — knows why it runs 36 months.

Five Mistakes That Trip Up Small Businesses​

1. Expensing everything out of caution. The pre-2018 habit lingers. If you expense the full $90,000 in year one when $50,000 belonged on the balance sheet, you understate year-one profit and overstate later years. Lenders reading your statements see a worse debt-service picture than reality.

2. Capitalizing the vendor-selection work. The preliminary stage is broader than people think. Strategy consulting, RFP support, and requirements analysis performed before management authorized the project are expensed — even if the same consulting firm later does the implementation. The authorization date is the dividing line; costs before it never qualify.

3. Capitalizing data migration because it "feels like" implementation. It is implementation work in plain English but not a capitalizable cost under ASC 350-40. Migration vendors market fixed-price packages that blur this line. Get the activity breakdown in writing.

4. Amortizing over the wrong term. Using the one-year initial term when you are reasonably certain to renew front-loads expense and understates the asset. Conversely, stretching amortization over renewals you are not committed to understates current expense. Revisit the assumption if plans change — a decision not to renew shortens the remaining life prospectively.

5. Ignoring the book-tax difference. For federal tax purposes, cloud implementation costs are generally deductible as ordinary and necessary business expenses when paid or incurred — there is no tax equivalent of ASC 350-40 capitalization for most service-contract setups. That means your books show an asset and amortization while your tax return shows an immediate deduction. Track the difference on your fixed-asset or deferred-tax workpapers so it reverses cleanly instead of becoming a permanent mystery reconciling item.

A Practical Checklist for Your Next Cloud Rollout​

Before the next implementation kicks off, put these five controls in place:

  1. Date the authorization. Get written management approval with a funding commitment, and treat costs before that date as preliminary-stage expense automatically.
  2. Require activity-level invoicing. The statement of work should separate configuration and customization, integrations, testing, data migration, and training into distinct line items with distinct rates or fixed fees.
  3. Set up the asset account early. Create a prepaid implementation asset account per arrangement (not one pooled account), so amortization schedules and impairment reviews stay clean when you run multiple systems.
  4. Memo the hosting term. Write down the noncancellable period, expected renewals, and the reasoning, and attach it to the amortization schedule.
  5. Calendar the impairment review. At least annually — and whenever you consider switching vendors or decommissioning a module — ask whether the carrying amount still has future benefit.

Cloud software moved the servers off your premises, but it did not move the accounting judgment off your desk. The companies that handle this well treat implementation accounting as part of the project plan, not as a cleanup exercise at year-end. Sort each invoice into its stage when it arrives, amortize the asset over the real hosting term, and your financials will tell the same story your IT roadmap does.

Source: https://beancount.io/blog/2026/10/31/cloud-implementation-costs-explained-asc-350-40-capitalize-amortization-guide

Published: October 31, 2026