A Guide to Internal-Use Software Capitalization in 2026
Learn how internal-use software capitalization works in 2026, including accounting rules, eligible costs, and GAAP and IFRS considerations.

Pensero
Pensero Marketing
Apr 4, 2026
Internal-use software capitalization affects how organizations account for engineering investments on financial statements. Understanding these rules matters because they directly impact reported profitability, tax obligations, and how investors perceive R&D spending efficiency.
Companies increasingly invest in internally developed software to improve efficiency, automate processes, and gain competitive advantages. The accounting treatment for these development costs, whether to expense them immediately or capitalize them as assets, represents a critical financial reporting decision governed by FASB Accounting Standards Codification (ASC) Topic 350-40.
Recent updates modernized this guidance to accommodate agile and iterative development methodologies that don't fit neatly into traditional waterfall project stages. Understanding both the traditional framework and new principles-based approach helps engineering leaders communicate effectively with finance teams and CFOs about development investments.
This guide explains the accounting rules, recent changes, practical implications for engineering teams, and how modern platforms help automate the capitalization process.
What Internal-Use Software Capitalization Means
Internal-use software capitalization refers to the accounting practice of recording certain software development costs as assets on the balance sheet rather than expenses on the income statement. This distinction fundamentally affects financial reporting and organizational decision-making.
Expensing costs means recording them immediately as expenses in the current period, reducing reported income. Capitalizing costs means recording them as assets that depreciate over time, spreading the impact across multiple periods.
The difference matters significantly:
Immediate income impact: Expensed costs reduce current period profitability. Capitalized costs don't affect income until depreciation begins.
Balance sheet presentation: Capitalized costs appear as assets, potentially strengthening the balance sheet and financial ratios.
Tax implications: Treatment affects taxable income and cash flow, though tax rules may differ from accounting rules.
Investment perception: How companies account for development costs signals to investors whether spending represents strategic investments or operational overhead.
Organizations developing software for internal use, applications running business operations, automating processes, or improving efficiency, must determine which costs to capitalize versus expense. The rules attempt to distinguish between research activities (expensed) and development activities creating tangible assets (capitalized).
The Traditional Three-Stage Framework
Historically, ASC 350-40 prescribed a stage-based model for determining capitalization treatment. This framework aligned well with traditional waterfall development methodologies where projects progressed through distinct, sequential phases.
Stage 1: Preliminary Project Stage
What happens in this stage:
Initial planning, conceptualization, and feasibility exploration before committing to development.
Typical activities include:
Planning project scope and objectives
Gathering initial requirements
Research and evaluation of alternatives
Determining desired functionality
Assessing technological feasibility
Proof-of-concept development
Vendor selection and evaluation
Determining internal versus external development
Accounting treatment: All costs expensed as incurred
Rationale: These activities represent research rather than construction of a specific asset. Uncertainty remains about whether the project will proceed and what form it will take.
Key consideration: Even costs for prototypes or pilots during this stage must be expensed, regardless of whether code is later used in production.
Stage 2: Application Development Stage
What happens in this stage:
Core design, coding, and testing activities after management commits to the project.
Typical activities include:
Detailed software design and architecture
Actual coding and programming
Hardware installation (when necessary for software function)
Testing and quality assurance
Bug fixing during development
Integration testing
Documentation creation
Accounting treatment: Costs capitalized when directly attributable to development
Eligible costs for capitalization:
External direct costs:
Third-party developer fees
Purchased software components
Consultant charges for development work
Cloud infrastructure used during development
Payroll and payroll-related costs:
Salaries for developers working directly on the project
Benefits associated with those salaries
Payroll taxes
Stock-based compensation
Interest costs:
Interest on debt incurred during the development period
Only if the software qualifies as an asset under construction
Costs to develop or obtain software:
Tools and platforms required for the application to function
Development environment software
Costs that must be expensed even during this stage:
Training expenses for employees or end users
Data conversion costs from old systems
General and administrative overhead
Maintenance costs during development
Travel and entertainment
General organizational costs
Rationale: At this stage, the organization has committed to the project, technological feasibility is established, and activities directly create the asset.
Important note: Management must have both authorized the project and committed funding for capitalization to begin.
Stage 3: Post-Implementation / Operation Stage
What happens in this stage:
Software is substantially complete and ready for its intended use.
Typical activities include:
End-user training and documentation
Routine maintenance and bug fixes
Minor updates and patches
Ongoing operations support
User support activities
Accounting treatment: All costs expensed as incurred
Rationale: The asset is complete. Additional costs represent operating expenses rather than asset creation.
Critical exception - Upgrades and enhancements:
When modifications add significant new functionality, treatment returns to Stage 2:
Capitalize these costs:
Substantial feature additions
Major architectural improvements
Performance enhancements requiring significant development
Integration of new modules or capabilities
Expense these costs:
Bug fixes and patches
Minor updates
Routine maintenance
Performance tuning without new features
Determining "significant" functionality:
Consider these factors:
Does it materially extend the useful life?
Does it increase capacity or efficiency substantially?
Does it enable new use cases or user groups?
Would users perceive it as a major release?
5 Challenges with Traditional Stage-Based Accounting
The rigid stage model created practical challenges as software development methodologies evolved beyond waterfall approaches.
Challenge 1: Agile Development Blurs Stage Boundaries
The problem:
Modern development practices don't progress linearly through distinct phases. Teams iterate continuously, with planning, development, and testing happening simultaneously throughout the project lifecycle.
Specific issues:
Planning continues throughout agile projects, not just initially
Testing happens every sprint, not just in a dedicated phase
Requirements evolve based on feedback and learning
Each sprint contains elements of all three "stages"
Real-world example:
A team building a customer portal might spend Sprint 1 on architecture exploration (Stage 1?), Sprint 2 on core features (Stage 2?), and Sprint 3 on refinements based on user testing (Stage 3?). But they're all part of the same continuous development effort.
Challenge 2: Incremental Delivery Complicates Determination
The problem:
When teams ship working software every sprint, defining when preliminary work ends and application development begins lacks clear boundaries.
Key questions without clear answers:
Is the first sprint preliminary exploration or actual development?
If working software ships in Sprint 3, has Stage 3 begun?
Do subsequent sprints return to Stage 2 for new features?
How do you track which sprint activities fall into which stage?
Administrative burden:
Teams must categorize every activity in every sprint, creating documentation overhead that scales poorly.
Challenge 3: Continuous Deployment Challenges Completion
The problem:
If software never reaches a "finished" state but evolves continuously through regular deployments, when does application development end and post-implementation begin?
Modern reality:
Software deploys to production weekly or daily
New features ship continuously
"Complete" is a temporary state, not an end point
Major and minor enhancements happen simultaneously
Accounting ambiguity:
Traditional guidance assumes completion is a distinct event. Continuous delivery makes this assumption obsolete.
Challenge 4: Microservices Architecture Complexity
The problem:
Large applications decomposed into dozens of independently deployed services create significant tracking complexity.
Specific challenges:
Different maturity levels: Service A is production-ready while Service B is still exploratory
Independent lifecycles: Services move through stages at different times
Shared components: Some code serves multiple services in different stages
Interdependencies: Service development depends on other services' maturity
Example scenario:
Building an e-commerce platform with:
15 microservices in active development
8 services in production receiving enhancements
3 services in exploratory proof-of-concept phase
Shared libraries used across all services
Determining stage treatment for engineer time becomes nearly impossible.
Challenge 5: Documentation Burden Grows Excessive
The problem:
Meticulous tracking of which activities fall into which stages requires administrative overhead that doesn't scale as development accelerates.
Required documentation under stage model:
Time tracking at activity level (not just project level)
Stage declarations for each project phase
Justification for stage transitions
Activity categorization within each stage
Regular audits to ensure proper classification
Scaling challenges:
10 developers, 3 projects: Manageable manually
50 developers, 15 projects: Requires dedicated tracking
200 developers, 50+ projects: Needs automated systems
500 developers, microservices architecture: Traditional approach breaks down
Opportunity cost:
Engineering time spent on capitalization documentation isn't spent on product development.
The New Principles-Based Approach (ASU 2025-06)
In September 2025, the FASB issued Accounting Standards Update (ASU) 2025-06, Targeted Improvements to the Accounting for Internal-Use Software. This update fundamentally changed how organizations determine capitalization treatment.
Key Change: Removal of Project Stage Model
The most significant change eliminates the three-stage framework entirely.
What this means:
No more determining which "stage" a project is in
No arbitrary lines between preliminary and development work
No need to declare when post-implementation begins
Focus shifts to objective criteria rather than phase classification
Why this matters:
The stage model assumed linear, waterfall development. Modern agile, iterative, and continuous delivery practices don't fit this model. The new approach accommodates any development methodology.
New Capitalization Criteria: Two Requirements
Organizations must begin capitalizing internal-use software costs when both of the following criteria are met:
Criterion 1: Management Authorization and Funding Commitment
What it means:
The organization has formally authorized the project and committed funding for its completion.
Evidence of authorization includes:
Formal project approval in governance process
Budget allocation and approval
Resource assignment (team, tools, infrastructure)
Project charter or equivalent documentation
Leadership sign-off on scope and investment
What doesn't qualify:
Exploratory "let's try this" initiatives without formal approval
Skunkworks projects without management awareness
Proof-of-concept work pending approval decision
Projects with "maybe" funding or contingent approval
Key principle:
This demonstrates serious intent rather than exploratory research. The organization has committed to completing the project, not just investigating possibilities.
Criterion 2: Probable Completion Threshold
What it means:
It is probable that the project will be completed and the software will perform its intended function.
"Probable" defined:
In accounting, "probable" means "likely to occur." This is a higher threshold than "possible" but lower than "certain."
Evidence supporting probable completion:
Technical approach proven feasible
Requirements sufficiently stable
Team has necessary skills and experience
Similar projects successfully completed
No major unresolved technical questions
Clear path from current state to completion
What prevents meeting this threshold:
The crucial concept of "significant development uncertainty" (explained in detail below).
Significant Development Uncertainty: The Critical Concept
The probable-completion threshold is not met until significant development uncertainty has been resolved.
Uncertainty exists when either of these conditions applies:
Uncertainty Type 1: Novel, Unique, or Unproven Technology
When this applies:
The software relies on technology that is:
New to the organization
Not previously used in this specific context
Unproven in the intended application
Has not been validated through routine coding and testing
AND the uncertainty cannot be resolved through normal development work.
Examples where uncertainty exists:
Scenario | Why Uncertainty Exists |
First-time AI/ML deployment | Team has no production ML experience; model performance uncertain |
Novel blockchain implementation | Technology unproven for specific use case; scalability unknown |
Custom real-time processing engine | Performance requirements unprecedented for organization |
New database technology | No organizational experience with scale requirements |
Examples where uncertainty does NOT exist:
Scenario | Why No Uncertainty |
Standard CRUD web application | Team has built dozens; familiar technology stack |
Mobile app using proven frameworks | React Native or Flutter previously used successfully |
API integration with documented endpoint | Standard REST integration; clear documentation |
Reporting dashboard | Using established BI tools organization already runs |
Key distinction:
"New to us" doesn't automatically mean uncertain. If the technology is proven elsewhere and the team can leverage standard practices, uncertainty doesn't exist.
Uncertainty Type 2: Unclear or Changing Performance Requirements
When this applies:
The software's significant performance requirements are:
Not clearly defined at project start
Subject to major changes during development
Still being determined through experimentation
Fundamentally uncertain or unknown
What qualifies as "significant" requirements:
Core functionality the software must provide
Performance thresholds necessary for success (speed, scale, reliability)
Integration points with critical systems
User experience requirements that define success
Business rules that must be enforced
Examples where requirement uncertainty exists:
Analytics platform without known requirements:
Query response time requirements unclear
Data volume projections unavailable
User concurrency unknown
Still determining which analyses are needed
AI recommendation engine:
Accuracy thresholds not established
Feature importance unknown
Model performance requirements unclear
Success criteria still being defined
Customer portal with evolving needs:
Major features still in flux
User workflows not yet determined
Integration scope changing significantly
Core functionality still debated
Examples where requirement uncertainty does NOT exist:
Replacing legacy system with documented requirements:
Current system provides clear requirements baseline
Performance needs known from production data
Functionality clearly specified
Success criteria well-defined
Regulatory compliance system:
Requirements defined by regulations
Performance needs clear from compliance mandate
Functionality specified in regulation
Acceptance criteria objective
Internal tool replicating competitor:
Reference implementation provides requirements
Performance expectations known
Functionality clearly specified by example
Success criteria obvious
Practical Application: When to Start Capitalizing
Follow this decision tree:
Step 1: Has management authorized and committed funding?
No → Expense all costs
Yes → Proceed to Step 2
Step 2: Is completion probable (no significant uncertainty)?
Check both uncertainty factors:
A. Technology uncertainty?
Is technology novel/unproven to us? → If yes, does uncertainty resolve through routine coding/testing?
Resolves through routine work → No uncertainty
Requires proof beyond routine work → Uncertainty exists
Technology familiar/proven? → No uncertainty
B. Requirements uncertainty?
Are significant requirements clearly defined? → No uncertainty
Are requirements changing substantially? → Uncertainty exists
Still determining what to build? → Uncertainty exists
If no uncertainty exists: Begin capitalizing costs
If uncertainty exists: Expense costs until uncertainty resolves, then begin capitalizing
3 Real-World Examples: Applying the New Criteria
Example 1: AI-Powered Customer Service Bot
Scenario:
Organization wants to build AI chatbot to handle customer inquiries. Team has never deployed production ML systems.
Analysis:
Management authorization: Project approved, $2M budgeted, team assigned → ✓
Technology uncertainty: Novel AI/ML deployment, production performance unknown → Uncertainty exists
Requirements uncertainty: Response accuracy thresholds not yet determined → Uncertainty exists
Treatment:
Expense costs during:
Initial experimentation with models
Testing accuracy with customer data
Determining feasible accuracy targets
Proving technical approach works
Capitalize costs after:
Model achieves acceptable accuracy in testing
Technical approach validated
Requirements finalized based on proven capabilities
Team commits to building production system
Transition point:
When pilot demonstrates 85% accuracy (acceptable threshold) and team commits to production implementation using proven approach.
Example 2: Standard E-commerce Platform
Scenario:
Replacing existing e-commerce system with modern stack. Team has built similar systems before. Requirements well-understood from current system.
Analysis:
Management authorization: Project approved, funded, team assigned → ✓
Technology uncertainty: Using familiar tech stack (React, Node.js, PostgreSQL) → No uncertainty
Requirements uncertainty: Current system defines requirements clearly → No uncertainty
Treatment:
Capitalize immediately after project authorization. No uncertainty exists.
Expense only:
Initial requirements gathering (before authorization)
Training on new features beyond core functionality
Data migration from old system
End-user training
Example 3: Microservices Migration
Scenario:
Migrating monolith to microservices architecture. Team has microservices experience but unclear on optimal service boundaries.
Analysis:
Management authorization: Phase 1 approved and funded → ✓
Technology uncertainty: Microservices technology familiar → No uncertainty
Requirements uncertainty: Service boundaries and interfaces still being determined → Uncertainty exists for overall architecture
Treatment (nuanced):
Expense costs during:
Service boundary analysis
Architectural exploration
POC of decomposition approach
Capitalize costs for:
Individual services once their scope is defined
Infrastructure components with clear requirements
Services extracted following proven patterns
Key insight:
Apply criteria to each service independently. Some services have clear scope (capitalize), others need exploration (expense).
Effective Date and Transition
Timeline
Effective date: Annual periods beginning after December 15, 2027
Early adoption: Permitted for any fiscal year beginning after December 15, 2025
Planning window: Organizations have 2-3 years to prepare for required adoption
Transition Approaches: Three Options
Organizations choose how to adopt the new standard:
Option 1: Prospective Application
Apply new guidance only to projects started after adoption date.
Advantages:
Simplest approach
No restatement required
Minimal historical analysis
Disadvantages:
Inconsistency between old and new projects
Reduced comparability across periods
Best for: Organizations wanting simplicity over comparability
Option 2: Modified Retrospective
Adjust for projects in progress at adoption date using new criteria.
Advantages:
Balance between simplicity and comparability
Projects in progress get consistent treatment
No restatement of completed projects
Disadvantages:
Requires analyzing in-progress projects
May require catch-up adjustments
Best for: Most organizations; balances effort and benefit
Option 3: Full Retrospective
Restate prior periods as if new guidance always applied.
Advantages:
Maximum comparability across all periods
Consistent historical presentation
Disadvantages:
Most complex and time-consuming
Requires detailed historical analysis
May be impractical for long project histories
Best for: Organizations needing pristine comparability or recently started major projects
Implementation Recommendations
Start planning now (2026-2027):
Assess current projects against new criteria
Document existing practices and gaps
Update policies and procedures
Train finance and engineering teams
Evaluate and implement automation tools
Choose transition approach
Conduct trial runs before effective date
Practical Implications for Engineering Teams
These accounting rules directly affect how engineering organizations operate, plan, and communicate about their work.
Impact on Project Management
Clearer communication with finance. Engineering leaders need shared vocabulary with finance teams about project authorization, uncertainty resolution, and completion criteria. The new principles-based approach facilitates these conversations better than arguing about which "stage" applies.
Documentation requirements. Finance teams need evidence demonstrating when capitalization should start and stop. Engineering documentation of technical decisions, requirement stability, and uncertainty resolution becomes financial evidence, not just project management artifacts.
Funding approval processes. The "management authorization and funding commitment" criterion aligns well with stage-gate processes where projects move from exploration to committed development. Engineering teams should formalize these approval points.
Impact on Development Practices
Prototype versus production tracking. Organizations must distinguish exploratory prototypes (expensed) from committed production development (capitalized). This distinction should align with existing practices around proof-of-concept work versus feature development.
Technical spike handling. Short technical spikes exploring unknowns should be expensed. Once the spike resolves the uncertainty and the team commits to building the feature, capitalize subsequent development.
Refactoring and tech debt. Pure code refactoring that doesn't add functionality typically gets expensed. Refactoring as part of adding new features gets capitalized along with the feature development.
Impact on Resource Allocation
Capitalization affects perceived cost structures. Departments with high capitalization rates appear more capital-intensive. This can influence budget allocation, hiring decisions, and organizational prioritization in ways unrelated to actual engineering effectiveness.
Incentive alignment matters. If organizations over-optimize for capitalization rates rather than business value delivery, engineering teams may bias toward capitalizable work even when expensed activities (like technical debt reduction or exploratory research) deliver more value.
Balanced perspectives required. Smart engineering leaders educate stakeholders that both capitalized and expensed work drive value. High capitalization rates aren't inherently better, they reflect work characteristics, not quality.
Automating Software Capitalization
Manual tracking of time, activities, and project status for capitalization creates administrative burden that scales poorly as engineering organizations grow. Modern platforms help automate this process.
Traditional Manual Approaches
Organizations historically relied on:
Time tracking spreadsheets where engineers manually categorize work as capitalizable or expensed
Project phase declarations where managers periodically declare that projects entered or exited capitalizable stages
Periodic surveys asking engineers to estimate time allocation across project types
Finance team reviews manually examining project documentation to determine treatment
These approaches share common weaknesses: high administrative burden, accuracy depends on individual diligence, lag between actual work and capitalization decisions, and difficulty scaling beyond dozens of engineers.
Modern Automated Approaches
Contemporary engineering intelligence platforms connect development activity to financial reporting needs automatically.
Jellyfish provides comprehensive capabilities for software capitalization automation. The platform combines data from Jira, source control, calendars, and financial systems to surface insights about resource allocation and automate capitalization reporting.
Key Jellyfish capabilities:
DevFinOps module automatically generates finance-ready reports showing which engineering efforts qualify as capital expenditures. The platform tracks time allocation across initiatives, identifies qualifying activities based on configurable rules, generates reports matching accounting requirements, and provides audit trails documenting capitalization decisions.
Resource allocation features quantify where engineering effort actually goes by initiative, product line, and work type. This visibility enables precise capitalization calculations based on actual work patterns rather than estimates.
Integration approach: Jellyfish connects to existing development tools without requiring process changes. Engineers work normally in Jira and Git; the platform derives capitalization data from existing activity.
Best for: Larger organizations (100+ engineers) needing comprehensive financial reporting alongside engineering metrics, companies with complex capitalization requirements, organizations wanting automated audit trails.
Measuring Capitalization Effectiveness
Beyond automating reports, engineering leaders need visibility into whether capitalization practices align with actual work patterns and business strategy.
Pensero provides this strategic perspective by connecting capitalization data to qualitative understanding of engineering work. Rather than just showing capitalization percentages, it explains what teams are building and whether investment patterns align with strategic priorities.
What Pensero does differently:
Body of Work Analysis examines the substance of what teams build through capitalizable projects. Are capitalized activities creating substantial capabilities, or does high capitalization reflect administrative optimization rather than meaningful asset creation?
Executive Summaries translate capitalization patterns into language stakeholders understand: "Engineering capitalized 65% of costs this quarter, primarily investing in the new payment infrastructure that will support our expansion into European markets."
Industry Benchmarks contextualize capitalization rates against relevant peers. Understanding that your capitalization rate aligns with similar organizations provides confidence in accounting approaches.
Integration and pricing:
Integrations: GitHub, GitLab, Bitbucket, Jira, Linear, Slack, Notion, Confluence, Google Calendar
Pricing: Free tier for up to 10 engineers; $50/month premium; custom enterprise pricing
Compliance: SOC 2 Type II, HIPAA, GDPR
Notable customers: TravelPerk, Elfie.co, Caravelo
Best for: Organizations needing to communicate capitalization effectiveness to executives, engineering leaders wanting qualitative understanding beyond percentage calculations, teams connecting financial reporting to strategic outcomes.
5 Best Practices for Software Capitalization
Organizations implementing effective capitalization processes follow consistent principles that minimize compliance burden while maintaining accurate financial reporting.
1. Establish Clear Criteria and Definitions
Document what qualifies for capitalization in your specific context. Generic accounting standards need translation into concrete examples engineers and finance teams both understand.
Create reference guides showing:
Examples of work that qualifies versus doesn't qualify
How your organization defines "significant uncertainty"
Criteria for "management authorization"
What constitutes "completion" for continuous delivery
Align with existing processes. Capitalization criteria should map to existing approval gates, project phases, or development milestones rather than creating parallel tracking systems.
2. Automate Data Collection
Minimize manual tracking. Every manual step, time tracking spreadsheets, activity categorization surveys, periodic phase declarations, introduces errors and creates administrative burden.
Connect capitalization to existing tools:
Derive time allocation from Jira tickets and Git commits
Use project tags in management systems to identify capitalizable work
Automate phase transitions based on observable events (funding approval, first deployment)
Verify periodically, don't track constantly. Spot-check automated allocations quarterly rather than asking engineers to track time daily.
3. Educate Stakeholders Broadly
Engineering teams need financial context. Developers should understand why certain work capitalizes while other work doesn't, even if they don't track it themselves. This understanding improves project planning and communication.
Finance teams need development context. Controllers should understand modern development practices well enough to recognize that agile iterations don't map neatly to accounting stages. Collaborative policy development works better than finance imposing rules on engineering.
Executives need balanced perspectives. Leadership should understand that capitalization rates reflect work characteristics, not engineering quality. Both capitalized and expensed work drive value.
4. Balance Compliance with Simplicity
Don't over-optimize capitalization rates. Legitimate business reasons exist for both capitalizing and expensing work. Attempting to maximize capitalization creates perverse incentives and administrative complexity.
Accept reasonable approximations. Perfect precision in capitalization isn't achievable or required. Reasonable, consistent approaches based on sound principles satisfy auditors better than complex systems producing spurious precision.
Review and adjust policies regularly. As development practices evolve, capitalization approaches should evolve. Annual policy reviews ensure alignment between accounting treatment and actual workflows.
5. Maintain Documentation for Audits
Contemporaneous documentation matters. Record decisions about project authorization, uncertainty resolution, and completion criteria when they occur, not retrospectively during audit preparation.
Establish audit trails automatically. Modern platforms provide documentation showing how capitalization calculations derived from actual activity. This beats reconstructing decisions months later.
Prepare narrative explanations. Auditors need to understand not just numbers but rationale. Maintain clear explanations of why your organization treats certain activities as capitalizable.
5 Common Pitfalls to Avoid
Organizations implementing software capitalization encounter recurring mistakes that create compliance risk, administrative burden, or incorrect financial reporting.
Pitfall 1: Treating Capitalization as Pure Accounting Exercise
The mistake: Treating capitalization as finance department responsibility with minimal engineering input.
The consequence: Capitalization decisions disconnect from actual development activities. Finance creates rules engineers don't understand or follow. Resulting reports lack accuracy.
The solution: Collaborative approach where engineering and finance jointly develop policies, with engineering owning data accuracy and finance owning reporting compliance.
Pitfall 2: Over-Capitalizing to Improve Financial Appearance
The mistake: Aggressively maximizing capitalization rates to improve current period profitability.
The consequence: Future periods bear excessive amortization burden. Auditors question aggressive policies. Actual cash flow doesn't improve despite better-looking income statements.
The solution: Appropriate capitalization based on substance of activities, not financial optimization. Conservative approaches on borderline decisions.
Pitfall 3: Ignoring the New Principles-Based Guidance
The mistake: Continuing to apply rigid stage-based model despite adoption of ASU 2025-06.
The consequence: Accounting treatment doesn't reflect actual development practices. Excessive administrative burden tracking "stages" that don't exist in agile environments.
The solution: Adopt principles-based approach focused on uncertainty resolution and funding commitment rather than artificial stage designations.
Pitfall 4: Insufficient Documentation
The mistake: Making capitalization decisions without contemporaneous documentation of rationale.
The consequence: Auditors question decisions lacking supporting evidence. Reconstructing rationale months later produces inconsistent explanations.
The solution: Document key decisions when made: project authorizations, assessments of uncertainty, determinations of substantial completion.
Pitfall 5: Inconsistent Application Across Projects
The mistake: Similar projects receiving different capitalization treatment without clear rationale.
The consequence: Financial statements lack consistency. Comparability across periods becomes difficult. Auditors identify unexplained variations.
The solution: Standardized criteria applied consistently. Regular reviews ensuring similar projects receive similar treatment.
The Strategic Perspective on Software Capitalization
Beyond compliance requirements, software capitalization decisions reflect and influence organizational strategy.
Capital allocation signals strategic priorities. How organizations invest capital, including capitalized software development, communicates priorities to investors, employees, and markets. High capitalization in specific areas signals belief in long-term value creation.
Treatment affects perceived innovation. Research-stage activities generally expense immediately, while product development capitalizes. Organizations balancing innovation with execution show healthy mixes of both capitalizable and expensed work.
Financial metrics influence behavior. When leadership optimizes for specific financial metrics affected by capitalization (like EBITDA or return on assets), engineering teams feel pressure to structure work matching desired accounting treatment. Smart leaders recognize these dynamics and counter perverse incentives explicitly.
Effective communication bridges engineering and finance. The best engineering leaders translate development activities into financial context naturally. They help finance teams understand technical realities while helping engineering teams appreciate financial implications of their choices.
Organizations treating capitalization as pure compliance exercise miss opportunities to use financial reporting as strategic communication tool. Those viewing it as dialogue between engineering strategy and financial reality extract more value from the process.
The Bottom Line
Internal-use software capitalization affects financial reporting, organizational decision-making, and communication between engineering and finance teams. Understanding the rules, both traditional stage-based and new principles-based approaches, helps engineering leaders navigate these requirements effectively.
The evolution from rigid stages to flexible principles better accommodates modern development practices. Organizations adopting the new framework reduce administrative burden while maintaining accurate financial reporting aligned with actual work patterns.
Automation through platforms like Jellyfish and Pensero transforms capitalization from manual tracking burden into strategic insight. These tools connect development activity to financial requirements while providing visibility into whether investment patterns align with strategic priorities.
For engineering leaders, effective capitalization means balancing compliance requirements with development practices, communicating clearly with finance stakeholders, and maintaining perspective that both capitalized and expensed work drive organizational value. Success comes not from maximizing capitalization rates but from accurate representation of development investments in financial statements.
Internal-use software capitalization affects how organizations account for engineering investments on financial statements. Understanding these rules matters because they directly impact reported profitability, tax obligations, and how investors perceive R&D spending efficiency.
Companies increasingly invest in internally developed software to improve efficiency, automate processes, and gain competitive advantages. The accounting treatment for these development costs, whether to expense them immediately or capitalize them as assets, represents a critical financial reporting decision governed by FASB Accounting Standards Codification (ASC) Topic 350-40.
Recent updates modernized this guidance to accommodate agile and iterative development methodologies that don't fit neatly into traditional waterfall project stages. Understanding both the traditional framework and new principles-based approach helps engineering leaders communicate effectively with finance teams and CFOs about development investments.
This guide explains the accounting rules, recent changes, practical implications for engineering teams, and how modern platforms help automate the capitalization process.
What Internal-Use Software Capitalization Means
Internal-use software capitalization refers to the accounting practice of recording certain software development costs as assets on the balance sheet rather than expenses on the income statement. This distinction fundamentally affects financial reporting and organizational decision-making.
Expensing costs means recording them immediately as expenses in the current period, reducing reported income. Capitalizing costs means recording them as assets that depreciate over time, spreading the impact across multiple periods.
The difference matters significantly:
Immediate income impact: Expensed costs reduce current period profitability. Capitalized costs don't affect income until depreciation begins.
Balance sheet presentation: Capitalized costs appear as assets, potentially strengthening the balance sheet and financial ratios.
Tax implications: Treatment affects taxable income and cash flow, though tax rules may differ from accounting rules.
Investment perception: How companies account for development costs signals to investors whether spending represents strategic investments or operational overhead.
Organizations developing software for internal use, applications running business operations, automating processes, or improving efficiency, must determine which costs to capitalize versus expense. The rules attempt to distinguish between research activities (expensed) and development activities creating tangible assets (capitalized).
The Traditional Three-Stage Framework
Historically, ASC 350-40 prescribed a stage-based model for determining capitalization treatment. This framework aligned well with traditional waterfall development methodologies where projects progressed through distinct, sequential phases.
Stage 1: Preliminary Project Stage
What happens in this stage:
Initial planning, conceptualization, and feasibility exploration before committing to development.
Typical activities include:
Planning project scope and objectives
Gathering initial requirements
Research and evaluation of alternatives
Determining desired functionality
Assessing technological feasibility
Proof-of-concept development
Vendor selection and evaluation
Determining internal versus external development
Accounting treatment: All costs expensed as incurred
Rationale: These activities represent research rather than construction of a specific asset. Uncertainty remains about whether the project will proceed and what form it will take.
Key consideration: Even costs for prototypes or pilots during this stage must be expensed, regardless of whether code is later used in production.
Stage 2: Application Development Stage
What happens in this stage:
Core design, coding, and testing activities after management commits to the project.
Typical activities include:
Detailed software design and architecture
Actual coding and programming
Hardware installation (when necessary for software function)
Testing and quality assurance
Bug fixing during development
Integration testing
Documentation creation
Accounting treatment: Costs capitalized when directly attributable to development
Eligible costs for capitalization:
External direct costs:
Third-party developer fees
Purchased software components
Consultant charges for development work
Cloud infrastructure used during development
Payroll and payroll-related costs:
Salaries for developers working directly on the project
Benefits associated with those salaries
Payroll taxes
Stock-based compensation
Interest costs:
Interest on debt incurred during the development period
Only if the software qualifies as an asset under construction
Costs to develop or obtain software:
Tools and platforms required for the application to function
Development environment software
Costs that must be expensed even during this stage:
Training expenses for employees or end users
Data conversion costs from old systems
General and administrative overhead
Maintenance costs during development
Travel and entertainment
General organizational costs
Rationale: At this stage, the organization has committed to the project, technological feasibility is established, and activities directly create the asset.
Important note: Management must have both authorized the project and committed funding for capitalization to begin.
Stage 3: Post-Implementation / Operation Stage
What happens in this stage:
Software is substantially complete and ready for its intended use.
Typical activities include:
End-user training and documentation
Routine maintenance and bug fixes
Minor updates and patches
Ongoing operations support
User support activities
Accounting treatment: All costs expensed as incurred
Rationale: The asset is complete. Additional costs represent operating expenses rather than asset creation.
Critical exception - Upgrades and enhancements:
When modifications add significant new functionality, treatment returns to Stage 2:
Capitalize these costs:
Substantial feature additions
Major architectural improvements
Performance enhancements requiring significant development
Integration of new modules or capabilities
Expense these costs:
Bug fixes and patches
Minor updates
Routine maintenance
Performance tuning without new features
Determining "significant" functionality:
Consider these factors:
Does it materially extend the useful life?
Does it increase capacity or efficiency substantially?
Does it enable new use cases or user groups?
Would users perceive it as a major release?
5 Challenges with Traditional Stage-Based Accounting
The rigid stage model created practical challenges as software development methodologies evolved beyond waterfall approaches.
Challenge 1: Agile Development Blurs Stage Boundaries
The problem:
Modern development practices don't progress linearly through distinct phases. Teams iterate continuously, with planning, development, and testing happening simultaneously throughout the project lifecycle.
Specific issues:
Planning continues throughout agile projects, not just initially
Testing happens every sprint, not just in a dedicated phase
Requirements evolve based on feedback and learning
Each sprint contains elements of all three "stages"
Real-world example:
A team building a customer portal might spend Sprint 1 on architecture exploration (Stage 1?), Sprint 2 on core features (Stage 2?), and Sprint 3 on refinements based on user testing (Stage 3?). But they're all part of the same continuous development effort.
Challenge 2: Incremental Delivery Complicates Determination
The problem:
When teams ship working software every sprint, defining when preliminary work ends and application development begins lacks clear boundaries.
Key questions without clear answers:
Is the first sprint preliminary exploration or actual development?
If working software ships in Sprint 3, has Stage 3 begun?
Do subsequent sprints return to Stage 2 for new features?
How do you track which sprint activities fall into which stage?
Administrative burden:
Teams must categorize every activity in every sprint, creating documentation overhead that scales poorly.
Challenge 3: Continuous Deployment Challenges Completion
The problem:
If software never reaches a "finished" state but evolves continuously through regular deployments, when does application development end and post-implementation begin?
Modern reality:
Software deploys to production weekly or daily
New features ship continuously
"Complete" is a temporary state, not an end point
Major and minor enhancements happen simultaneously
Accounting ambiguity:
Traditional guidance assumes completion is a distinct event. Continuous delivery makes this assumption obsolete.
Challenge 4: Microservices Architecture Complexity
The problem:
Large applications decomposed into dozens of independently deployed services create significant tracking complexity.
Specific challenges:
Different maturity levels: Service A is production-ready while Service B is still exploratory
Independent lifecycles: Services move through stages at different times
Shared components: Some code serves multiple services in different stages
Interdependencies: Service development depends on other services' maturity
Example scenario:
Building an e-commerce platform with:
15 microservices in active development
8 services in production receiving enhancements
3 services in exploratory proof-of-concept phase
Shared libraries used across all services
Determining stage treatment for engineer time becomes nearly impossible.
Challenge 5: Documentation Burden Grows Excessive
The problem:
Meticulous tracking of which activities fall into which stages requires administrative overhead that doesn't scale as development accelerates.
Required documentation under stage model:
Time tracking at activity level (not just project level)
Stage declarations for each project phase
Justification for stage transitions
Activity categorization within each stage
Regular audits to ensure proper classification
Scaling challenges:
10 developers, 3 projects: Manageable manually
50 developers, 15 projects: Requires dedicated tracking
200 developers, 50+ projects: Needs automated systems
500 developers, microservices architecture: Traditional approach breaks down
Opportunity cost:
Engineering time spent on capitalization documentation isn't spent on product development.
The New Principles-Based Approach (ASU 2025-06)
In September 2025, the FASB issued Accounting Standards Update (ASU) 2025-06, Targeted Improvements to the Accounting for Internal-Use Software. This update fundamentally changed how organizations determine capitalization treatment.
Key Change: Removal of Project Stage Model
The most significant change eliminates the three-stage framework entirely.
What this means:
No more determining which "stage" a project is in
No arbitrary lines between preliminary and development work
No need to declare when post-implementation begins
Focus shifts to objective criteria rather than phase classification
Why this matters:
The stage model assumed linear, waterfall development. Modern agile, iterative, and continuous delivery practices don't fit this model. The new approach accommodates any development methodology.
New Capitalization Criteria: Two Requirements
Organizations must begin capitalizing internal-use software costs when both of the following criteria are met:
Criterion 1: Management Authorization and Funding Commitment
What it means:
The organization has formally authorized the project and committed funding for its completion.
Evidence of authorization includes:
Formal project approval in governance process
Budget allocation and approval
Resource assignment (team, tools, infrastructure)
Project charter or equivalent documentation
Leadership sign-off on scope and investment
What doesn't qualify:
Exploratory "let's try this" initiatives without formal approval
Skunkworks projects without management awareness
Proof-of-concept work pending approval decision
Projects with "maybe" funding or contingent approval
Key principle:
This demonstrates serious intent rather than exploratory research. The organization has committed to completing the project, not just investigating possibilities.
Criterion 2: Probable Completion Threshold
What it means:
It is probable that the project will be completed and the software will perform its intended function.
"Probable" defined:
In accounting, "probable" means "likely to occur." This is a higher threshold than "possible" but lower than "certain."
Evidence supporting probable completion:
Technical approach proven feasible
Requirements sufficiently stable
Team has necessary skills and experience
Similar projects successfully completed
No major unresolved technical questions
Clear path from current state to completion
What prevents meeting this threshold:
The crucial concept of "significant development uncertainty" (explained in detail below).
Significant Development Uncertainty: The Critical Concept
The probable-completion threshold is not met until significant development uncertainty has been resolved.
Uncertainty exists when either of these conditions applies:
Uncertainty Type 1: Novel, Unique, or Unproven Technology
When this applies:
The software relies on technology that is:
New to the organization
Not previously used in this specific context
Unproven in the intended application
Has not been validated through routine coding and testing
AND the uncertainty cannot be resolved through normal development work.
Examples where uncertainty exists:
Scenario | Why Uncertainty Exists |
First-time AI/ML deployment | Team has no production ML experience; model performance uncertain |
Novel blockchain implementation | Technology unproven for specific use case; scalability unknown |
Custom real-time processing engine | Performance requirements unprecedented for organization |
New database technology | No organizational experience with scale requirements |
Examples where uncertainty does NOT exist:
Scenario | Why No Uncertainty |
Standard CRUD web application | Team has built dozens; familiar technology stack |
Mobile app using proven frameworks | React Native or Flutter previously used successfully |
API integration with documented endpoint | Standard REST integration; clear documentation |
Reporting dashboard | Using established BI tools organization already runs |
Key distinction:
"New to us" doesn't automatically mean uncertain. If the technology is proven elsewhere and the team can leverage standard practices, uncertainty doesn't exist.
Uncertainty Type 2: Unclear or Changing Performance Requirements
When this applies:
The software's significant performance requirements are:
Not clearly defined at project start
Subject to major changes during development
Still being determined through experimentation
Fundamentally uncertain or unknown
What qualifies as "significant" requirements:
Core functionality the software must provide
Performance thresholds necessary for success (speed, scale, reliability)
Integration points with critical systems
User experience requirements that define success
Business rules that must be enforced
Examples where requirement uncertainty exists:
Analytics platform without known requirements:
Query response time requirements unclear
Data volume projections unavailable
User concurrency unknown
Still determining which analyses are needed
AI recommendation engine:
Accuracy thresholds not established
Feature importance unknown
Model performance requirements unclear
Success criteria still being defined
Customer portal with evolving needs:
Major features still in flux
User workflows not yet determined
Integration scope changing significantly
Core functionality still debated
Examples where requirement uncertainty does NOT exist:
Replacing legacy system with documented requirements:
Current system provides clear requirements baseline
Performance needs known from production data
Functionality clearly specified
Success criteria well-defined
Regulatory compliance system:
Requirements defined by regulations
Performance needs clear from compliance mandate
Functionality specified in regulation
Acceptance criteria objective
Internal tool replicating competitor:
Reference implementation provides requirements
Performance expectations known
Functionality clearly specified by example
Success criteria obvious
Practical Application: When to Start Capitalizing
Follow this decision tree:
Step 1: Has management authorized and committed funding?
No → Expense all costs
Yes → Proceed to Step 2
Step 2: Is completion probable (no significant uncertainty)?
Check both uncertainty factors:
A. Technology uncertainty?
Is technology novel/unproven to us? → If yes, does uncertainty resolve through routine coding/testing?
Resolves through routine work → No uncertainty
Requires proof beyond routine work → Uncertainty exists
Technology familiar/proven? → No uncertainty
B. Requirements uncertainty?
Are significant requirements clearly defined? → No uncertainty
Are requirements changing substantially? → Uncertainty exists
Still determining what to build? → Uncertainty exists
If no uncertainty exists: Begin capitalizing costs
If uncertainty exists: Expense costs until uncertainty resolves, then begin capitalizing
3 Real-World Examples: Applying the New Criteria
Example 1: AI-Powered Customer Service Bot
Scenario:
Organization wants to build AI chatbot to handle customer inquiries. Team has never deployed production ML systems.
Analysis:
Management authorization: Project approved, $2M budgeted, team assigned → ✓
Technology uncertainty: Novel AI/ML deployment, production performance unknown → Uncertainty exists
Requirements uncertainty: Response accuracy thresholds not yet determined → Uncertainty exists
Treatment:
Expense costs during:
Initial experimentation with models
Testing accuracy with customer data
Determining feasible accuracy targets
Proving technical approach works
Capitalize costs after:
Model achieves acceptable accuracy in testing
Technical approach validated
Requirements finalized based on proven capabilities
Team commits to building production system
Transition point:
When pilot demonstrates 85% accuracy (acceptable threshold) and team commits to production implementation using proven approach.
Example 2: Standard E-commerce Platform
Scenario:
Replacing existing e-commerce system with modern stack. Team has built similar systems before. Requirements well-understood from current system.
Analysis:
Management authorization: Project approved, funded, team assigned → ✓
Technology uncertainty: Using familiar tech stack (React, Node.js, PostgreSQL) → No uncertainty
Requirements uncertainty: Current system defines requirements clearly → No uncertainty
Treatment:
Capitalize immediately after project authorization. No uncertainty exists.
Expense only:
Initial requirements gathering (before authorization)
Training on new features beyond core functionality
Data migration from old system
End-user training
Example 3: Microservices Migration
Scenario:
Migrating monolith to microservices architecture. Team has microservices experience but unclear on optimal service boundaries.
Analysis:
Management authorization: Phase 1 approved and funded → ✓
Technology uncertainty: Microservices technology familiar → No uncertainty
Requirements uncertainty: Service boundaries and interfaces still being determined → Uncertainty exists for overall architecture
Treatment (nuanced):
Expense costs during:
Service boundary analysis
Architectural exploration
POC of decomposition approach
Capitalize costs for:
Individual services once their scope is defined
Infrastructure components with clear requirements
Services extracted following proven patterns
Key insight:
Apply criteria to each service independently. Some services have clear scope (capitalize), others need exploration (expense).
Effective Date and Transition
Timeline
Effective date: Annual periods beginning after December 15, 2027
Early adoption: Permitted for any fiscal year beginning after December 15, 2025
Planning window: Organizations have 2-3 years to prepare for required adoption
Transition Approaches: Three Options
Organizations choose how to adopt the new standard:
Option 1: Prospective Application
Apply new guidance only to projects started after adoption date.
Advantages:
Simplest approach
No restatement required
Minimal historical analysis
Disadvantages:
Inconsistency between old and new projects
Reduced comparability across periods
Best for: Organizations wanting simplicity over comparability
Option 2: Modified Retrospective
Adjust for projects in progress at adoption date using new criteria.
Advantages:
Balance between simplicity and comparability
Projects in progress get consistent treatment
No restatement of completed projects
Disadvantages:
Requires analyzing in-progress projects
May require catch-up adjustments
Best for: Most organizations; balances effort and benefit
Option 3: Full Retrospective
Restate prior periods as if new guidance always applied.
Advantages:
Maximum comparability across all periods
Consistent historical presentation
Disadvantages:
Most complex and time-consuming
Requires detailed historical analysis
May be impractical for long project histories
Best for: Organizations needing pristine comparability or recently started major projects
Implementation Recommendations
Start planning now (2026-2027):
Assess current projects against new criteria
Document existing practices and gaps
Update policies and procedures
Train finance and engineering teams
Evaluate and implement automation tools
Choose transition approach
Conduct trial runs before effective date
Practical Implications for Engineering Teams
These accounting rules directly affect how engineering organizations operate, plan, and communicate about their work.
Impact on Project Management
Clearer communication with finance. Engineering leaders need shared vocabulary with finance teams about project authorization, uncertainty resolution, and completion criteria. The new principles-based approach facilitates these conversations better than arguing about which "stage" applies.
Documentation requirements. Finance teams need evidence demonstrating when capitalization should start and stop. Engineering documentation of technical decisions, requirement stability, and uncertainty resolution becomes financial evidence, not just project management artifacts.
Funding approval processes. The "management authorization and funding commitment" criterion aligns well with stage-gate processes where projects move from exploration to committed development. Engineering teams should formalize these approval points.
Impact on Development Practices
Prototype versus production tracking. Organizations must distinguish exploratory prototypes (expensed) from committed production development (capitalized). This distinction should align with existing practices around proof-of-concept work versus feature development.
Technical spike handling. Short technical spikes exploring unknowns should be expensed. Once the spike resolves the uncertainty and the team commits to building the feature, capitalize subsequent development.
Refactoring and tech debt. Pure code refactoring that doesn't add functionality typically gets expensed. Refactoring as part of adding new features gets capitalized along with the feature development.
Impact on Resource Allocation
Capitalization affects perceived cost structures. Departments with high capitalization rates appear more capital-intensive. This can influence budget allocation, hiring decisions, and organizational prioritization in ways unrelated to actual engineering effectiveness.
Incentive alignment matters. If organizations over-optimize for capitalization rates rather than business value delivery, engineering teams may bias toward capitalizable work even when expensed activities (like technical debt reduction or exploratory research) deliver more value.
Balanced perspectives required. Smart engineering leaders educate stakeholders that both capitalized and expensed work drive value. High capitalization rates aren't inherently better, they reflect work characteristics, not quality.
Automating Software Capitalization
Manual tracking of time, activities, and project status for capitalization creates administrative burden that scales poorly as engineering organizations grow. Modern platforms help automate this process.
Traditional Manual Approaches
Organizations historically relied on:
Time tracking spreadsheets where engineers manually categorize work as capitalizable or expensed
Project phase declarations where managers periodically declare that projects entered or exited capitalizable stages
Periodic surveys asking engineers to estimate time allocation across project types
Finance team reviews manually examining project documentation to determine treatment
These approaches share common weaknesses: high administrative burden, accuracy depends on individual diligence, lag between actual work and capitalization decisions, and difficulty scaling beyond dozens of engineers.
Modern Automated Approaches
Contemporary engineering intelligence platforms connect development activity to financial reporting needs automatically.
Jellyfish provides comprehensive capabilities for software capitalization automation. The platform combines data from Jira, source control, calendars, and financial systems to surface insights about resource allocation and automate capitalization reporting.
Key Jellyfish capabilities:
DevFinOps module automatically generates finance-ready reports showing which engineering efforts qualify as capital expenditures. The platform tracks time allocation across initiatives, identifies qualifying activities based on configurable rules, generates reports matching accounting requirements, and provides audit trails documenting capitalization decisions.
Resource allocation features quantify where engineering effort actually goes by initiative, product line, and work type. This visibility enables precise capitalization calculations based on actual work patterns rather than estimates.
Integration approach: Jellyfish connects to existing development tools without requiring process changes. Engineers work normally in Jira and Git; the platform derives capitalization data from existing activity.
Best for: Larger organizations (100+ engineers) needing comprehensive financial reporting alongside engineering metrics, companies with complex capitalization requirements, organizations wanting automated audit trails.
Measuring Capitalization Effectiveness
Beyond automating reports, engineering leaders need visibility into whether capitalization practices align with actual work patterns and business strategy.
Pensero provides this strategic perspective by connecting capitalization data to qualitative understanding of engineering work. Rather than just showing capitalization percentages, it explains what teams are building and whether investment patterns align with strategic priorities.
What Pensero does differently:
Body of Work Analysis examines the substance of what teams build through capitalizable projects. Are capitalized activities creating substantial capabilities, or does high capitalization reflect administrative optimization rather than meaningful asset creation?
Executive Summaries translate capitalization patterns into language stakeholders understand: "Engineering capitalized 65% of costs this quarter, primarily investing in the new payment infrastructure that will support our expansion into European markets."
Industry Benchmarks contextualize capitalization rates against relevant peers. Understanding that your capitalization rate aligns with similar organizations provides confidence in accounting approaches.
Integration and pricing:
Integrations: GitHub, GitLab, Bitbucket, Jira, Linear, Slack, Notion, Confluence, Google Calendar
Pricing: Free tier for up to 10 engineers; $50/month premium; custom enterprise pricing
Compliance: SOC 2 Type II, HIPAA, GDPR
Notable customers: TravelPerk, Elfie.co, Caravelo
Best for: Organizations needing to communicate capitalization effectiveness to executives, engineering leaders wanting qualitative understanding beyond percentage calculations, teams connecting financial reporting to strategic outcomes.
5 Best Practices for Software Capitalization
Organizations implementing effective capitalization processes follow consistent principles that minimize compliance burden while maintaining accurate financial reporting.
1. Establish Clear Criteria and Definitions
Document what qualifies for capitalization in your specific context. Generic accounting standards need translation into concrete examples engineers and finance teams both understand.
Create reference guides showing:
Examples of work that qualifies versus doesn't qualify
How your organization defines "significant uncertainty"
Criteria for "management authorization"
What constitutes "completion" for continuous delivery
Align with existing processes. Capitalization criteria should map to existing approval gates, project phases, or development milestones rather than creating parallel tracking systems.
2. Automate Data Collection
Minimize manual tracking. Every manual step, time tracking spreadsheets, activity categorization surveys, periodic phase declarations, introduces errors and creates administrative burden.
Connect capitalization to existing tools:
Derive time allocation from Jira tickets and Git commits
Use project tags in management systems to identify capitalizable work
Automate phase transitions based on observable events (funding approval, first deployment)
Verify periodically, don't track constantly. Spot-check automated allocations quarterly rather than asking engineers to track time daily.
3. Educate Stakeholders Broadly
Engineering teams need financial context. Developers should understand why certain work capitalizes while other work doesn't, even if they don't track it themselves. This understanding improves project planning and communication.
Finance teams need development context. Controllers should understand modern development practices well enough to recognize that agile iterations don't map neatly to accounting stages. Collaborative policy development works better than finance imposing rules on engineering.
Executives need balanced perspectives. Leadership should understand that capitalization rates reflect work characteristics, not engineering quality. Both capitalized and expensed work drive value.
4. Balance Compliance with Simplicity
Don't over-optimize capitalization rates. Legitimate business reasons exist for both capitalizing and expensing work. Attempting to maximize capitalization creates perverse incentives and administrative complexity.
Accept reasonable approximations. Perfect precision in capitalization isn't achievable or required. Reasonable, consistent approaches based on sound principles satisfy auditors better than complex systems producing spurious precision.
Review and adjust policies regularly. As development practices evolve, capitalization approaches should evolve. Annual policy reviews ensure alignment between accounting treatment and actual workflows.
5. Maintain Documentation for Audits
Contemporaneous documentation matters. Record decisions about project authorization, uncertainty resolution, and completion criteria when they occur, not retrospectively during audit preparation.
Establish audit trails automatically. Modern platforms provide documentation showing how capitalization calculations derived from actual activity. This beats reconstructing decisions months later.
Prepare narrative explanations. Auditors need to understand not just numbers but rationale. Maintain clear explanations of why your organization treats certain activities as capitalizable.
5 Common Pitfalls to Avoid
Organizations implementing software capitalization encounter recurring mistakes that create compliance risk, administrative burden, or incorrect financial reporting.
Pitfall 1: Treating Capitalization as Pure Accounting Exercise
The mistake: Treating capitalization as finance department responsibility with minimal engineering input.
The consequence: Capitalization decisions disconnect from actual development activities. Finance creates rules engineers don't understand or follow. Resulting reports lack accuracy.
The solution: Collaborative approach where engineering and finance jointly develop policies, with engineering owning data accuracy and finance owning reporting compliance.
Pitfall 2: Over-Capitalizing to Improve Financial Appearance
The mistake: Aggressively maximizing capitalization rates to improve current period profitability.
The consequence: Future periods bear excessive amortization burden. Auditors question aggressive policies. Actual cash flow doesn't improve despite better-looking income statements.
The solution: Appropriate capitalization based on substance of activities, not financial optimization. Conservative approaches on borderline decisions.
Pitfall 3: Ignoring the New Principles-Based Guidance
The mistake: Continuing to apply rigid stage-based model despite adoption of ASU 2025-06.
The consequence: Accounting treatment doesn't reflect actual development practices. Excessive administrative burden tracking "stages" that don't exist in agile environments.
The solution: Adopt principles-based approach focused on uncertainty resolution and funding commitment rather than artificial stage designations.
Pitfall 4: Insufficient Documentation
The mistake: Making capitalization decisions without contemporaneous documentation of rationale.
The consequence: Auditors question decisions lacking supporting evidence. Reconstructing rationale months later produces inconsistent explanations.
The solution: Document key decisions when made: project authorizations, assessments of uncertainty, determinations of substantial completion.
Pitfall 5: Inconsistent Application Across Projects
The mistake: Similar projects receiving different capitalization treatment without clear rationale.
The consequence: Financial statements lack consistency. Comparability across periods becomes difficult. Auditors identify unexplained variations.
The solution: Standardized criteria applied consistently. Regular reviews ensuring similar projects receive similar treatment.
The Strategic Perspective on Software Capitalization
Beyond compliance requirements, software capitalization decisions reflect and influence organizational strategy.
Capital allocation signals strategic priorities. How organizations invest capital, including capitalized software development, communicates priorities to investors, employees, and markets. High capitalization in specific areas signals belief in long-term value creation.
Treatment affects perceived innovation. Research-stage activities generally expense immediately, while product development capitalizes. Organizations balancing innovation with execution show healthy mixes of both capitalizable and expensed work.
Financial metrics influence behavior. When leadership optimizes for specific financial metrics affected by capitalization (like EBITDA or return on assets), engineering teams feel pressure to structure work matching desired accounting treatment. Smart leaders recognize these dynamics and counter perverse incentives explicitly.
Effective communication bridges engineering and finance. The best engineering leaders translate development activities into financial context naturally. They help finance teams understand technical realities while helping engineering teams appreciate financial implications of their choices.
Organizations treating capitalization as pure compliance exercise miss opportunities to use financial reporting as strategic communication tool. Those viewing it as dialogue between engineering strategy and financial reality extract more value from the process.
The Bottom Line
Internal-use software capitalization affects financial reporting, organizational decision-making, and communication between engineering and finance teams. Understanding the rules, both traditional stage-based and new principles-based approaches, helps engineering leaders navigate these requirements effectively.
The evolution from rigid stages to flexible principles better accommodates modern development practices. Organizations adopting the new framework reduce administrative burden while maintaining accurate financial reporting aligned with actual work patterns.
Automation through platforms like Jellyfish and Pensero transforms capitalization from manual tracking burden into strategic insight. These tools connect development activity to financial requirements while providing visibility into whether investment patterns align with strategic priorities.
For engineering leaders, effective capitalization means balancing compliance requirements with development practices, communicating clearly with finance stakeholders, and maintaining perspective that both capitalized and expensed work drive organizational value. Success comes not from maximizing capitalization rates but from accurate representation of development investments in financial statements.

