Capitalized Software GAAP: ASC 350-40 vs ASC 985-20 Compliance
At Salesken, our finance team initially applied ASC 985-20 to all our software development costs — until an auditor pointed out that our voice AI platform was internal-use, not for sale. That misclassification affected our balance sheet for two quarters. Getting the ASC 350-40 vs 985-20 distinction right isn't academic — it has real financial consequences.
GAAP software capitalization rules exist in two primary codifications, and choosing the wrong one can lead to significant accounting misstatements. For CFOs managing software development budgets—whether building internal tools or software products for sale—understanding the distinction between ASC 350-40 (internal-use software) and ASC 985-20 (software to be sold) is essential.
This guide provides a technical breakdown of both standards, the decision tree for determining which applies to your situation, key thresholds and amortization treatments, impairment testing requirements, and practical strategies for maintaining the audit-ready documentation that standard setters expect.
The Two Software Capitalization Standards
ASC 350-40: Internal-Use Software
ASC 350-40 applies when your organization develops or purchases software intended for internal use. Internal-use means the software supports your business operations, but you don't plan to sell or license it to external customers.
Common examples:
- Custom ERP systems and financial management platforms
- Proprietary tools for operations, HR, or supply chain
- Internal analytics and reporting systems
- Workflow automation and document management systems
- Manufacturing control systems
- Data integration and ETL platforms
Key Characteristic: You're building an asset for yourself, not a product for the market. The software may have a long useful life and strategic value, but it's not a revenue-generating product.
ASC 985-20: Software to Be Sold
ASC 985-20 applies when you develop software intended for sale or license to external customers. This includes:
- Commercial software products (SaaS, on-premise, mobile apps)
- Software components sold to other vendors
- Firmware bundled with hardware products
- Custom software developed under contract for a specific customer
Key Characteristic: You're developing a product to generate revenue. Even if development costs exceed initial revenue, the intent is commercial sale.
When Each Standard Applies: The Decision Tree
The critical first question: Is the software developed or purchased for external sale or license, or for internal use only?
START
|
Does the software have external customers or is it designed for external sale?
|
├─ YES → ASC 985-20 applies (Software to be sold)
|
└─ NO → Is it for your internal operations?
|
├─ YES → ASC 350-40 applies (Internal-use software)
|
└─ BOTH → HYBRID SITUATION
(Different rules apply to product development vs.
internal operations component)
Hybrid Situation: The Complication Most Organizations Face
Many software organizations develop platforms with both internal-use and commercial components. For example:
- A SaaS company develops infrastructure that serves both internal analytics (internal-use) and customer-facing features (product development)
- A financial services firm builds a proprietary trading system for internal use but also licenses components to other firms
- A healthcare organization builds a patient management system for internal use but develops modules for external sale
Solution: Apply both standards to the appropriate component. Establish clear accounting policies that segregate:
- ASC 985-20 costs: Software development activities directly tied to external product development
- ASC 350-40 costs: Infrastructure, frameworks, and tools used internally to support both product and operations
This requires careful tracking at the project and cost center level.
ASC 350-40 Deep Dive: Internal-Use Software Rules
Three-Phase Capitalization Structure
ASC 350-40 uses the three-phase model we introduced earlier:
Phase 1: Preliminary Project Stage (EXPENSED)
- Conceptualization and feasibility studies
- Architecture planning
- Technology selection
- Vendor evaluation and selection
- Process redesign and requirements gathering
- Project approval and authorization
Phase 2: Application Development Stage (CAPITALIZED)
- Detailed design and architecture
- Development labor and costs
- Testing and quality assurance
- Data conversion and migration
- Third-party software integration
- Infrastructure and servers directly identifiable to the project
Phase 3: Post-Implementation Stage (EXPENSED)
- System stabilization and bug fixes
- Training and documentation
- Parallel operations with legacy systems
- Initial data validation and cleanup
- User acceptance testing
The critical moment: When does Phase 2 begin? ASC 350-40-25-6 states that the application development stage begins when "the entity has determined it is probable that the project will be completed and the software will be used to perform the intended function."
This typically means:
- Formal project authorization has been obtained
- Funding has been approved
- Technical feasibility has been confirmed
- Management commitment exists
Capitalization Thresholds for ASC 350-40
Unlike some accounting standards, GAAP does not specify a dollar threshold for capitalizing internal-use software. However, two practical thresholds apply:
1. Materiality Threshold While not required by the standard, most organizations only capitalize software projects exceeding a materiality threshold (often $50,000 to $250,000 depending on organization size). Projects below this threshold are typically expensed immediately due to the cost of tracking and documentation.
2. Useful Life Threshold ASC 350-40-35-1 states that capitalized software should have an estimated useful life of more than one year. If the software will be replaced or obsolete within 12 months, capitalize the full cost as a short-term asset.
Amortization Rules for Internal-Use Software
Once capitalized, internal-use software is amortized (depreciated) over its useful life. Key rules:
Useful Life Estimation:
- Typical range: 3 to 7 years
- Consider: Technology evolution, business process changes, planned replacements
- Document your assumptions in the accounting policy
Amortization Method:
- Straight-line amortization is most common
- Begin amortization when the software is placed in service (not during development)
- Do not begin amortization during Phase 3 (post-implementation)
Example:
- Software placed in service: January 1, 2026
- Capitalized cost: $600,000
- Useful life: 5 years
- Annual amortization: $120,000 ($600,000 / 5 years)
- First year partial amortization (Jan-Dec 2026): $120,000 (full year)
ASC 985-20 Deep Dive: Software to Be Sold
Different Capitalization Stages
ASC 985-20 uses different capitalization stages than internal-use software:
Stage 1: Conceptual Formulation and Evaluation Stage (EXPENSED)
- Identification of new product candidates
- Evaluation of market potential
- Technology assessment
- Business case analysis
- Project approval decisions
Stage 2: Development Stage (CAPITALIZED)
- Design and architecture work
- Development labor
- Coding and testing
- Quality assurance specific to product
- Documentation for users and support teams
Stage 3: Pre-Release Stage (EXPENSED)
- Beta testing and user acceptance testing
- Marketing preparation
- Sales training and materials
- Manufacturing setup (if physical product included)
- Bug fixes and stabilization
Stage 4: Post-Release Maintenance (EXPENSED)
- Ongoing bug fixes and patches
- Customer support
- Performance monitoring
- Enhancements beyond initial product scope
Software to Be Sold: Capitalization Rules
ASC 985-20-25-1 requires that software development costs be capitalized only after both:
- Technological feasibility is established, and
- A commitment exists to produce the software (management authorization and funding)
Technological Feasibility Definition:
- For purchased software: receipt of the software and successful initial operation
- For internally developed software: completion of a detailed program design or, in some cases, completion of a working model
This is more prescriptive than ASC 350-40 and emphasizes demonstrating that the software can actually be built.
Amortization for Software to Be Sold
Begins: When the software is available for release Method: Straight-line or based on revenue recognition pattern Useful Life: Typically 3-5 years, but some software (e.g., cloud-based) may be shorter
Many software companies use a "revenue-based" amortization method when appropriate:
Example:
- Capitalized software costs: $2,000,000
- Expected total revenue from this product over 5 years: $10,000,000
- Revenue generated in Year 1: $3,000,000 (30% of total)
- Amortization for Year 1: $2,000,000 × 30% = $600,000
This approach aligns the amortization expense with actual product revenue.
Impairment Testing: When You Need to Write Down Software Assets
Both ASC 350-40 and ASC 985-20 require impairment testing when facts and circumstances suggest the software asset may not generate expected economic benefits.
Impairment Triggers to Monitor
For Internal-Use Software (ASC 350-40-35-4):
- Changes in intended use of the software
- Technology obsolescence
- Changes in regulatory environment making software obsolete
- Discontinued operations or product lines using the software
- Cost overruns or technical difficulties in deployment
- Significant reduction in revenue from operations the software supports
For Software to Be Sold (ASC 985-20-35-3):
- Product sales below expectations
- Significant market changes or competitive pressure
- Technology or product line discontinuation
- Regulatory changes affecting product viability
- Key customer losses or market share erosion
Impairment Testing Process
- Indicator Assessment: Does an impairment indicator exist?
- Undiscounted Cash Flow Test: Estimate future cash flows (undiscounted) that the software will generate. If this amount is less than the book value, impairment exists.
- Fair Value Measurement: Measure the impairment loss as the difference between book value and fair value (discounted cash flows)
- Documentation: Record the impairment loss and document your analysis for audit purposes
Example:
- Capitalized software cost: $500,000 (net book value after amortization: $350,000)
- Estimated future undiscounted cash flows: $300,000
- Impairment indicator exists (book value $350,000 > undiscounted cash flows $300,000)
- Fair value based on discounted cash flows: $250,000
- Impairment loss: $350,000 - $250,000 = $100,000
Audit-Ready Documentation: What Standards Require
Auditors will request documentation supporting your capitalization and amortization decisions. Prepare:
-
Software Capitalization Policy
- Defines which standard applies to which projects
- Outlines phase transition criteria
- Documents materiality thresholds
- Specifies useful life assumptions
-
Project Authorization Documents
- Approval memos or steering committee minutes
- Dated project charters
- Budget authorization forms
- Evidence of management commitment
-
Cost Tracking and Allocation
- Timesheets or project tracking showing labor allocation
- Vendor invoices for third-party costs
- Allocation methodology for shared costs
- Documentation of which costs were capitalized vs. expensed
-
Phase Transition Documentation
- Evidence of when Phase 1 ended and Phase 2 began
- Evidence of when Phase 2 ended and Phase 3 began
- Approval for software placement into service
- Testing completion documentation
-
Useful Life Justification
- Analysis supporting useful life assumptions
- Historical data on software retirements or replacements
- Industry benchmarking data
- Planned replacement schedules
-
Impairment Testing Analysis
- Identification of impairment indicators
- Cash flow projections supporting fair value
- Analysis of obsolescence or technological change
- Board-level documentation of decisions
Automating Audit Trail Creation
The challenge: Manual tracking of Phase 2 activities creates documentation gaps and audit headaches. Finance teams often struggle to reconstruct what happened months or years after development occurred.
Systems like Glue solve this by automatically creating audit trails. By monitoring code repositories, issue tracking, and deployment logs, Glue captures which engineers worked on which components, what activities were performed, and when Phase transitions occurred. This produces:
- Real-time capitalization tracking: Finance sees costs accumulating by project and phase
- Automatic phase identification: Based on project status and approval dates
- Complete audit trail: Every cost classification decision backed by code and activity evidence
- Reduced manual burden: No need to reconstruct timesheets or manager estimates
This transforms impairment testing and audit preparation from retrospective exercises into continuous monitoring.
Special Considerations: Cloud Computing and SaaS
The treatment of SaaS implementations and cloud services deserves special attention. ASU 2018-15 clarifies that costs of configuration and customization of cloud computing arrangements are capitalized if they create or enhance an intangible asset controlled by you. However, implementation services (labor) are typically expensed.
Example:
- SaaS implementation project cost: $150,000
- Vendor setup and configuration: $60,000 (CAPITALIZED)
- Your team's implementation labor: $50,000 (EXPENSED)
- Training and documentation: $40,000 (EXPENSED)
This distinction has tripped up many organizations that assumed all SaaS implementation costs were expensed.
Building Your Decision Framework
The most effective organizations build a decision matrix for their specific situations:
| Software Type | Standard | Phase Structure | Amortization | Key Triggers |
|---|---|---|---|---|
| ERP System | ASC 350-40 | 3 phases | 5-7 years straight-line | Usage begins |
| Data Platform | ASC 350-40 | 3 phases | 5 years straight-line | Deployment |
| SaaS Product | ASC 985-20 | 4 stages | 3-5 years revenue-based | Market release |
| Custom Tool | ASC 350-40 | 3 phases | 3 years straight-line | Operational use |
The Path Forward
GAAP software capitalization requires precision in determining which standard applies, disciplined phase transition documentation, and rigorous cost tracking. The stakes are high—auditors expect complete documentation, and errors can trigger restatements.
The most sophisticated organizations move beyond manual processes. By automating work classification and audit trail creation, you ensure capitalization accuracy, pass audits with documentation you didn't manually create, and free your finance and engineering teams from the burden of spreadsheet tracking.
Your financial statements and your next audit depend on getting these distinctions right.
Ready to streamline GAAP software capitalization? Glue automatically monitors engineering work to identify phases, classify costs, and create audit trails for both ASC 350-40 and ASC 985-20 situations. Speak with our accounting technology specialists to see how agent-assisted tracking transforms your software capitalization process.