What software development work may qualify?
The difficulty of a project does not determine whether it qualifies. The key question is whether the team encountered a technological uncertainty that required investigation or experimentation.
Potentially eligible work may include:
Performance and scalability
Development undertaken to overcome limitations involving processing speed, latency, concurrency, data volume, or system capacity where established approaches did not provide a workable solution.
System architecture
Work involving architectural constraints, distributed systems, fault tolerance, synchronization, or other technical challenges that require competing approaches to be designed and tested.
Complex integrations
Integration work may qualify where incompatible systems, undocumented behaviour, protocol limitations, or other technical constraints create uncertainty beyond ordinary API implementation.
Algorithms and data processing
Projects may involve uncertainty around the design, accuracy, efficiency, or performance of custom algorithms, models, or data-processing methods.
Machine learning and artificial intelligence
Some machine learning work may qualify where the team must experimentally address limitations involving model architecture, training methods, data quality, accuracy, performance, or deployment.
Using an existing model or service in a routine way is generally not enough.
Security and reliability
Work may qualify where developers must experimentally address technical limitations involving encryption, authentication, data integrity, resilience, or system recovery.
Routine development generally does not qualify
Routine software development usually does not qualify merely because it required time, skill, or extensive coding.
Examples can include:
- Standard website or application development
- Routine use of established frameworks and libraries
- Ordinary API integrations
- Configuration of existing platforms
- Regular maintenance and security updates
- Bug fixes where the cause and solution are readily identifiable
- Replication of an existing product or feature
- User interface and cosmetic design changes
A larger project may contain both eligible and routine work. The claim should distinguish the experimental development from ordinary commercial development.
How software SR&ED eligibility is assessed
A potentially eligible project generally involves three connected elements.
Technological uncertainty
The team could not determine in advance whether or how the technical objective could be achieved using the available knowledge and established methods.
Systematic investigation
Developers formed ideas about possible solutions, tested them, reviewed the results, and adjusted the approach based on what they learned.
Technological advancement
The work generated new knowledge or capability for the company, even where the project did not produce the intended commercial result.
A failed approach can still contribute to an eligible project when it helps resolve the underlying technological uncertainty.
Salaries are often the largest part of a software SR&ED claim
For many software companies, the most significant eligible expenditure is the salary paid to employees who directly perform or support the experimental development.
This can include time spent by:
- Software developers
- Software architects
- Engineers
- Data scientists
- Quality assurance personnel involved in experimental testing
- Technical founders who perform eligible development work
- Product or technical managers who directly support the eligible work
The full salary of each employee is not automatically eligible. The claim should reflect the portion of their time that relates to qualifying SR&ED activities.
We review payroll records, employee responsibilities, project timelines, development records, and other available information to determine a supportable allocation.
Contractors and other expenditures
Software companies may also incur other qualifying costs.
Canadian contractors
A portion of amounts paid to arm's-length Canadian contractors for SR&ED work performed on the company's behalf may be eligible, subject to the applicable rules.
Contracts, invoices, project records, and the location where the work was performed should be reviewed before including these costs.
Materials
Material costs are less common in software claims but may arise where physical items are consumed or transformed during related experimental development.
Overhead and other expenditures
Eligible overhead may be calculated using the prescribed proxy method or the traditional method, depending on the circumstances.
Government assistance, grants, and other funding may reduce the expenditures available for the claim.
How we prepare a software SR&ED claim
1. Identify potential projects
We discuss the software developed during the year and identify projects that involved meaningful technical uncertainty and experimentation.
2. Interview the technical team
We speak with the developers, founders, engineers, or other personnel who understand the work.
The discussion focuses on the technical limitations, attempted solutions, test results, and changes in approach.
3. Prepare the technical description
We organize the project history into a clear account of the technological uncertainty, systematic investigation, and advancement.
4. Calculate qualifying expenditures
We review salaries, employee responsibilities, contractor costs, and related financial records to calculate the expenditures connected to the eligible work.
5. Coordinate the claim and corporate tax return
The SR&ED schedules and tax credits are prepared consistently with the corporation's year-end accounting and T2 return.
6. Support CRA questions
Where CRA requests additional information or reviews the claim, we help prepare the response and explain the technical and financial basis of the filing.
Common software SR&ED issues
Claims can become difficult to support when:
- The description focuses on the product rather than the technical uncertainty
- Commercial features are presented as technological advancements
- Routine development is included without distinction
- Employee time is estimated without supporting records
- Contractor work is included without reviewing eligibility
- The claim describes only the successful solution
- Project documentation is created entirely after the fact
We help clients present an accurate claim based on the work actually performed and the records available.
A software SR&ED claim should explain the technical uncertainty and experimental work, not simply describe the product or its features.
New to SR&ED? Our plain-English guide What is SR&ED? explains how the program works, who can claim, and what to expect from a CRA review.

