UAE R&D Tax Credit for Software Companies
Software development sits in a grey zone for R&D claims. Most doesn't qualify. Some absolutely does. Here's how to tell the difference.
The Software Paradox
Software companies often assume their development work qualifies as R&D. After all, they're building new things, solving problems, creating technology. That sounds like research and development.
It usually isn't, at least not under tax law definitions.
The paradox is that software development involves genuine intellectual effort, skilled work, and real innovation in the colloquial sense. But most of it lacks the technical uncertainty that defines R&D for tax purposes. Using established frameworks to build applications, integrating systems with documented APIs, scaling architectures with known patterns, all of this is engineering, not research.
Yet some software work absolutely qualifies. Companies developing new algorithms, solving problems where existing approaches fail, pushing the boundaries of what's technically possible, this is genuine R&D. The challenge is distinguishing between the two.
What Makes Software Development R&D
The test is the same as any R&D claim: technical uncertainty that requires systematic investigation to resolve. But applying this test to software requires understanding what technical uncertainty means in a software context.
Technical uncertainty in software isn't:
- Uncertainty about whether the project will finish on time. That's project risk, not technical uncertainty.
- Uncertainty about whether users will like the product. That's market risk.
- Uncertainty about whether you have the skills to complete the work. That's capability risk.
- Debugging challenges and unexpected complications. Those are routine engineering problems.
Technical uncertainty in software is:
- Not knowing whether an approach will achieve the required performance, accuracy, or reliability, even in principle.
- Facing problems where existing algorithms, architectures, or techniques are inadequate and new approaches must be developed.
- Encountering fundamental constraints where standard solutions don't work and novel methods are required.
The uncertainty must exist at the project's outset, not just emerge as unexpected complications during development. And it must be resolvable only through R&D activities, not by consulting documentation, hiring expertise, or applying more engineering effort.
Categories That Typically Qualify
Algorithm Development
This is the clearest case for software R&D. When existing algorithms don't solve your problem and you need to develop new approaches, you're doing research.
Machine learning provides many examples. Training models for new domains, developing architectures for novel applications, creating techniques to handle data characteristics that existing methods can't address, this work involves genuine technical uncertainty.
But not all ML work qualifies. Fine-tuning existing models for standard applications is engineering. Using established architectures with typical hyperparameter optimization is engineering. Training models following documented approaches is engineering. The R&D happens when existing methods are insufficient and new methods must be developed.
Beyond ML, algorithm development can qualify in areas like optimization, search, data structures, compression, and cryptography. The pattern is the same: existing solutions don't work for your specific problem, so you develop new ones.
Systems Architecture
Sometimes standard architectures can't meet requirements. Performance constraints, scale requirements, reliability needs, or unusual operational conditions might demand novel system designs.
This can be R&D when you're genuinely inventing new approaches. Developing architectures for problems where existing patterns fail. Creating systems that operate under constraints where standard solutions don't work. Building infrastructure that requires solving fundamental technical challenges.
It's not R&D when you're implementing established patterns, even at scale. Using microservices isn't R&D. Implementing event-driven architecture isn't R&D. Deploying to Kubernetes isn't R&D. These are engineering activities using known solutions.
The line is whether you're applying existing knowledge or creating new knowledge. If you could have hired an experienced architect who would have known how to approach the problem, it's probably not R&D.
Security Research
Security work can qualify when it involves discovering vulnerabilities, developing new defenses, or creating novel protection mechanisms.
Developing new cryptographic methods or protocols is R&D. Creating detection systems for previously unknown attack patterns is R&D. Building security tools that require solving unsolved problems is R&D.
Implementing standard security measures is not R&D. Configuring firewalls, setting up authentication systems, applying security patches, conducting standard penetration testing, none of this involves technical uncertainty in the relevant sense.
Developer Tools and Infrastructure
Building tools that require solving novel technical problems can qualify. Compilers, debuggers, profilers, and similar tools sometimes involve genuine R&D, particularly when they need to handle new languages, paradigms, or environments.
The key is whether the tool development required research to solve problems without known solutions. Building another CI/CD pipeline isn't R&D. Building a tool that required developing new techniques for code analysis, optimization, or execution might be.
Categories That Rarely Qualify
Application Development
Building applications using established frameworks almost never qualifies, regardless of complexity. Web applications, mobile apps, enterprise software, SaaS products, all built using documented patterns and known techniques.
The fact that you're creating something new doesn't matter. The test isn't novelty in the product; it's uncertainty in the technical approach. If you're using React, Django, Rails, or any established framework to build an application, you're doing engineering, not research.
This is where most software companies overclaim. They point to their sophisticated applications and assume that complexity equals R&D. It doesn't. Complex engineering using established methods is still just engineering.
Integration and Customization
Integrating systems using APIs, customizing commercial software, and connecting platforms is engineering work. Even when challenging, it uses known techniques to achieve predictable outcomes.
Very occasionally, integration work might involve R&D. If you encountered integration problems with no documented solution and had to develop novel approaches through experimentation, that might qualify. But this is rare. Most integration challenges have known solutions even if they require expertise to implement.
Performance Optimization
Making systems faster is usually engineering. Profiling, identifying bottlenecks, applying standard optimizations, scaling infrastructure, all engineering activities.
R&D in performance occurs when standard optimization techniques are insufficient and new approaches must be developed. If you invented a new caching strategy, developed a novel data structure for your specific access patterns, or created optimization techniques that didn't exist before, that might qualify. But tuning database queries, adding caching layers, and horizontal scaling are established techniques.
User Interface and Experience
Design and UX work generally doesn't qualify, even when technically sophisticated. Creating interfaces, improving usability, implementing interactions, all engineering.
An edge case might exist where UI work involves solving novel technical problems. Developing new rendering techniques, creating interaction paradigms that require fundamental technical innovation, building accessibility features where existing approaches are inadequate, these might qualify. But typical UI development, even excellent UI development, isn't R&D.
Tracking R&D in Agile Environments
Software teams rarely organize work into discrete R&D projects. Agile methodologies emphasize continuous delivery, mixed teams, and fluid project boundaries. This makes R&D tracking challenging but not impossible.
The Project Approach
If your R&D is concentrated in specific initiatives, track those initiatives as distinct R&D projects. A machine learning research effort, a performance engineering project, a new platform development, these can be tracked separately.
Create project codes that distinguish R&D work. Have people log time against those codes. Maintain documentation specific to those projects.
This approach works when R&D is clearly separable from routine development. It's harder when R&D activities are distributed across the team.
The Activity Approach
When R&D is interleaved with routine development, track at the activity level. Tag individual tasks, tickets, or sprints as R&D when they meet the criteria.
This requires judgment on each piece of work. Was this task addressing technical uncertainty? Did it involve developing new approaches? Could it have been done by implementing known solutions?
The overhead is higher but the accuracy is better. You're making R&D determinations as work happens rather than trying to categorize after the fact.
The Role Approach
Some team members spend most of their time on qualifying activities. A research engineer, a data scientist working on novel methods, an architect solving unprecedented problems. For these roles, estimate the percentage of time spent on R&D and apply that percentage to their costs.
This is less precise but captures R&D that might otherwise be missed. Combine with documentation that supports the percentage estimate.
Cost Categories for Software Companies
Cabinet Decision No. 215 (Article 5) specifies four categories of qualifying expenditure. Here's how they apply to software companies:
Staff costs are typically the largest category. Ministerial Decision No. 24 defines eligible staff costs as: salaries, wages, allowances, medical insurance, pension contributions, end-of-service gratuity, bonuses, and benefits in kind. Stock options are explicitly excluded. A 30% uplift is applied to qualifying staff costs as a proxy for overheads. You need time records showing how much each person worked on qualifying activities. Minimum R&D staff requirement: you must have at least 2 R&D employees (UAE-based, under your entity's supervision) to access even the 15% rate band. For software teams, this typically means at least 2 engineers spending substantial time on qualifying R&D activities. Each R&D project must have at least AED 500,000 in qualifying expenditure per year (before uplift).
Consumable costs include materials and supplies consumed during R&D. Ministerial Decision No. 24 (Article 9) explicitly confirms that software licenses (non-capital, i.e. subscription-based) qualify as consumable costs. For software companies, this is significant: SaaS tools, cloud development environments, testing platforms, and subscription-based software used directly in R&D activities are eligible. Prototyping materials and test hardware also qualify.
Subcontracting fees for outsourced R&D work can qualify. Under Ministerial Decision No. 24, subcontractors must be UAE-based, back-to-back subcontracting is prohibited, and related-party subcontracting requires audited financials. External developers or consultants working on qualifying R&D projects are eligible, provided they meet these conditions. The work must constitute genuine R&D, not routine development.
Cost contribution arrangements, if you participate in arm's length cost-sharing for R&D with related or third parties, your contributions can qualify.
Documentation That Software Teams Already Have
Software development naturally creates records. Much of the documentation needed for R&D claims already exists; the challenge is preserving and organizing it.
Code repositories contain history of what was built and when. Commit messages, pull request descriptions, and code comments can document technical decisions and the evolution of approaches.
Issue trackers capture problems solved and methods attempted. Well-written tickets describe technical challenges and how they were addressed.
Technical documentation like architecture decisions, design documents, and research notes provide evidence of systematic approaches and technical uncertainty.
Experiment tracking systems used by ML teams are particularly valuable. They document hypotheses, approaches, and results, exactly what R&D claims need.
Supplement existing documentation with:
- Quarterly summaries of R&D activities that synthesize the story from detailed records.
- Records of failed approaches. These are particularly valuable because they demonstrate genuine uncertainty. If everything worked the first time, was there really uncertainty?
- Time tracking by project or activity category.
Avoiding Common Mistakes
Overclaiming development as R&D is the biggest risk. Tax authorities see through attempts to relabel routine software development. Be selective and honest about what truly involves technical uncertainty.
Insufficient uncertainty undermines many claims. If you knew how to solve the problem when you started, even if implementation was difficult, it wasn't R&D. The uncertainty must be genuine and technical.
Poor documentation makes legitimate R&D hard to substantiate. You need evidence, not just assertions. Without records of the uncertainty you faced and the systematic approach you took, your claim is weak.
Ignoring failed projects is a missed opportunity. Work that didn't succeed can still be R&D if it involved genuine research. Failed experiments are still experiments. Document them.
Missing subcontractor costs is common. If you use UAE-based contractors for R&D work, those costs may qualify. But you need documentation showing the work was R&D and was performed in the UAE.
The Honest Assessment
Software companies that genuinely push technical boundaries can make substantial R&D claims. The incentive exists to encourage this kind of work.
But most software development, even sophisticated software development, doesn't qualify. The incentive isn't a subsidy for the software industry; it's support for genuine research and development activities.
The right approach is honest self-assessment. Look at your work through the lens of technical uncertainty. Some of it will qualify. Much of it won't. Claim what legitimately qualifies, document it properly, and don't stretch definitions to capture work that doesn't meet the criteria.
The companies that do this well benefit significantly. The companies that overclaim create problems for themselves and undermine the incentive for everyone.
Ready to check your eligibility?
Take our quick assessment to see if your R&D activities may qualify.
Check EligibilityRelated Articles
UAE R&D Tax Credit: Cabinet Decision No. 215 and Ministerial Decision No. 24 Explained
The legal framework and operational rules for the UAE's R&D tax credit are now published. Here's what Cabinet Decision No. 215 and Ministerial Decision No. 24 mean for your business, including tiered rates, staff thresholds, and claw-back provisions.
What Qualifies as R&D Under UAE Tax Law
The Frascati Manual sets the global standard for R&D classification. Here's how it applies to UAE businesses and why most companies get it wrong.