For finance · ASC 350-40
AI writes the code. Finance capitalizes the cost. Auditors validate the control.
Under ASC 350-40, the cost of AI tools used to build internal-use software can be capitalized when it is directly attributable to a qualifying project. Your capitalization policy sets the rules. CloudZero records, for every AI coding session, which project it served, what kind of work it did, and what it cost on your invoice. Finance capitalizes the costs that qualify, expenses the rest, and has the record behind each decision.
AI investment moves from opex to the balance sheet
Finance estimates labor capitalization from engineers’ time, documents it in a spreadsheet, and defends it in audit. AI changes two numbers in that estimate.
- As AI writes more of the code, engineers may log fewer hours on capitalizable work, and the labor you can support goes down.
- The AI spend that replaces that labor is expensed by default when there is no record of what it was used for.
- Opex rises and capitalized cost falls, and finance has to explain the change to the board and the auditor.
Capitalize the AI spend that qualifies, with records behind it, instead of expensing all of it by default.
ASC 350-40: long-standing guidance with a (massive) new wrinkle
Deloitte and EY have each published guidance on AI development costs. Both state which costs qualify and which do not.
- ASC 350-40 requires capitalizing the “external direct costs of materials and services” consumed in development. An AI service’s fees are judged the same way as a contractor’s.
- Deloitte (August 2026) and EY (September 2026) both say token charges can be capitalized when directly attributable to a specific project and a development activity.
- You cannot allocate a shared tool’s bill by headcount. You need usage records tied to a project.
- One AI coding session can write code for a funded project, then investigate a production incident. Without a reliable split, you expense the whole session.
Sources: FASB ASU 2025-06 · Deloitte Technology Spotlight (Aug 2026) · EY Technical Line 2026-04 (Sept 2026)
Apply your policy to every session as the work happens
You set up your capitalization policy in CloudZero as rules, with our help or on your own. Each session’s record is contemporaneous, created at the time of the work. Finance does not rebuild it in a spreadsheet at close.
- CloudZero matches each session to a project in the system your team already uses.
- CloudZero splits a session that does two things, such as building a feature and then investigating an incident, by activity. The development portion is eligible under your policy, and the rest is expensed.
- Where you have connected the provider’s bill, costs come from your invoice and roll up by project and activity for finance to review.
The Q3 close view shows totals by treatment, the rule applied to each project, and the sessions behind every line, all exportable for audit support. Finance reviews the results, and your policy sets the rules.
WHY CLOUDZERO
Why CloudZero is different
Costs that tie to your invoice
Where you have connected the provider’s bill, each session’s cost comes from the invoice, split by what the session consumed. It is the amount you paid.
Attribution by ticket
The guidance rejects headcount allocation. It accepts usage traced to a specific project, which EY calls specific identification. CloudZero records the ticket for every session, so each cost ties to a project.
Development work separated from maintenance and support
A usage report counts tokens, and a token count does not show what the work was. CloudZero records the ticket and infers the type of work for each session, so finance can tell new development from a bug fix on shipped software.
WATCH
Watch CloudZero’s FP&A lead walk through it
Emily Allen, FP&A at CloudZero, on capitalizing AI development spend.
Questions finance teams ask
CloudZero provides the usage and cost records. Whether a cost is capitalized is a decision for your controller and auditor under your accounting policy. This page is not accounting advice.
see cloudzero in action