SR&ED
Does Software Development Qualify for SR&ED?
Software development can qualify for SR&ED, and software makes up a large share of claims in Canada. But most software work is routine development, which does not. The difference comes down to whether your team faced a genuine technological uncertainty and worked through it systematically. This article explains where CRA tends to draw the line.
The short answer
Yes, software development can qualify for the SR&ED tax credit. The program doesn't favour any industry or technology. What matters is the nature of the work. Building a product, shipping features or using new tools is not, by itself, SR&ED. Working through a technical problem that couldn't be solved with standard practice or readily available knowledge may be.
The key question: was there technological uncertainty?
A technological uncertainty exists when your team couldn't know in advance whether a goal was achievable, or how to achieve it, using the knowledge and techniques available to a competent professional in the field. For software, that usually means something beyond what established methods, frameworks, documentation or a reasonable search would solve.
Business uncertainty doesn't count. "Will customers want this feature?" or "Can we build it by the launch date?" are business questions. "Can we achieve sub-second response times on this data volume when the existing approaches all fail?" may be a technological one.
Work that may qualify
Examples of software work that may involve SR&ED, depending on the facts:
- Designing new algorithms or data structures when known approaches don't meet performance, accuracy or resource constraints
- Resolving scalability, concurrency or latency problems that standard architectures couldn't address
- Developing new methods for integrating systems with incompatible or undocumented behaviour, where the solution wasn't obvious
- Advancing machine-learning approaches beyond simply applying existing models, for example where you had to develop new techniques to make a model work under real constraints
- Building new tools or frameworks because existing ones couldn't do what was needed, and it wasn't known whether it could be done
Work that usually doesn't qualify
These activities generally don't qualify on their own:
- Routine feature development using established methods and frameworks
- User interface and visual design changes
- Routine bug fixing and debugging
- Configuring, customizing or integrating off-the-shelf software in standard ways
- Learning a new language or framework, even if it's new to your team
- Data entry, content creation and routine testing or quality assurance
- Maintenance, upgrades and migrations using known techniques
Some of this work can still be included when it directly supports an eligible project, for example, testing performed to evaluate a hypothesis. The work has to be tied to resolving the uncertainty, not part of normal delivery.
How a qualifying software project usually looks
Qualifying projects tend to follow a recognizable pattern, even in agile teams:
- A defined technical objective that standard approaches couldn't meet
- Hypotheses about how the problem might be solved
- Experiments, prototypes or test builds to evaluate those hypotheses
- Analysis of the results, including what didn't work and why
- Iteration until the uncertainty is resolved or the approach is abandoned
The project doesn't need to succeed. Learning that an approach can't work is still an advancement in knowledge.
Documentation matters even more for software
Software claims are reviewed closely because the line between R&D and routine development can be thin. Good evidence is usually created as part of normal work:
- Tickets or issues that describe the technical problem and what was tried
- Commit histories and branches for experimental approaches
- Design documents, architecture decision records and benchmarks
- Test results and performance measurements
- Sprint notes or retrospectives that mention technical obstacles
- Time tracking that links people to projects
Our article on what documentation to keep for an SR&ED claim covers this in more detail.
Common questions
Does using AI or machine learning automatically qualify?
No. Using existing AI models, APIs or tools in standard ways is generally not SR&ED. Work may qualify when your team had to develop new methods or overcome technical limits that existing approaches couldn't resolve.
Can a startup without revenue claim SR&ED for software?
Yes. Eligible Canadian-controlled private corporations may receive refundable credits even without taxable income, which is why SR&ED is valuable for early-stage software companies. The work still needs to meet the program's criteria and be supported by records.
Can agile development qualify?
Yes. CRA recognizes that agile teams work iteratively. What matters is that the technical uncertainty, the experimentation and the results are identifiable in your records, such as sprint tickets and commits.
How Precision can help
We help Alberta software and technology companies identify which projects may qualify, separate eligible work from routine development, calculate expenditures and prepare a well-supported claim alongside the corporate tax return, including Alberta's Innovation Employment Grant. Learn more about our SR&ED services →
Wondering if your development work qualifies? Book a Consultation
This article is general information only and is not tax or accounting advice for your specific situation. Eligibility is determined by CRA based on the facts of each project; refer to the Canada Revenue Agency's SR&ED program pages for current guidance.
Have questions about your situation?
Book a consultation with Precision CPA. We work with Edmonton businesses and individuals on corporate tax, SR&ED, bookkeeping and more.