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.

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:

  1. External direct costs:

    • Third-party developer fees

    • Purchased software components

    • Consultant charges for development work

    • Cloud infrastructure used during development

  2. Payroll and payroll-related costs:

    • Salaries for developers working directly on the project

    • Benefits associated with those salaries

    • Payroll taxes

    • Stock-based compensation

  3. Interest costs:

    • Interest on debt incurred during the development period

    • Only if the software qualifies as an asset under construction

  4. 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

  • Performance monitoring

  • 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:

  1. Does it materially extend the useful life?

  2. Does it increase capacity or efficiency substantially?

  3. Does it enable new use cases or user groups?

  4. 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:

  1. Is the first sprint preliminary exploration or actual development?

  2. If working software ships in Sprint 3, has Stage 3 begun?

  3. Do subsequent sprints return to Stage 2 for new features?

  4. 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:

  1. Analytics platform without known requirements:

    • Query response time requirements unclear

    • Data volume projections unavailable

    • User concurrency unknown

    • Still determining which analyses are needed

  2. AI recommendation engine:

    • Accuracy thresholds not established

    • Feature importance unknown

    • Model performance requirements unclear

    • Success criteria still being defined

  3. 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:

  1. 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

  2. Regulatory compliance system:


    • Requirements defined by regulations

    • Performance needs clear from compliance mandate

    • Functionality specified in regulation

    • Acceptance criteria objective

  3. 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):

  1. Assess current projects against new criteria

  2. Document existing practices and gaps

  3. Update policies and procedures

  4. Train finance and engineering teams

  5. Evaluate and implement automation tools

  6. Choose transition approach

  7. 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:

  1. External direct costs:

    • Third-party developer fees

    • Purchased software components

    • Consultant charges for development work

    • Cloud infrastructure used during development

  2. Payroll and payroll-related costs:

    • Salaries for developers working directly on the project

    • Benefits associated with those salaries

    • Payroll taxes

    • Stock-based compensation

  3. Interest costs:

    • Interest on debt incurred during the development period

    • Only if the software qualifies as an asset under construction

  4. 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

  • Performance monitoring

  • 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:

  1. Does it materially extend the useful life?

  2. Does it increase capacity or efficiency substantially?

  3. Does it enable new use cases or user groups?

  4. 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:

  1. Is the first sprint preliminary exploration or actual development?

  2. If working software ships in Sprint 3, has Stage 3 begun?

  3. Do subsequent sprints return to Stage 2 for new features?

  4. 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:

  1. Analytics platform without known requirements:

    • Query response time requirements unclear

    • Data volume projections unavailable

    • User concurrency unknown

    • Still determining which analyses are needed

  2. AI recommendation engine:

    • Accuracy thresholds not established

    • Feature importance unknown

    • Model performance requirements unclear

    • Success criteria still being defined

  3. 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:

  1. 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

  2. Regulatory compliance system:


    • Requirements defined by regulations

    • Performance needs clear from compliance mandate

    • Functionality specified in regulation

    • Acceptance criteria objective

  3. 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):

  1. Assess current projects against new criteria

  2. Document existing practices and gaps

  3. Update policies and procedures

  4. Train finance and engineering teams

  5. Evaluate and implement automation tools

  6. Choose transition approach

  7. 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.

Know what's working, fix what's not

Pensero analyzes work patterns in real time using data from the tools your team already uses and delivers AI-powered insights.

Are you ready?

To read more from this author, subscribe below…