Key points for claiming R & D tax credits for software development
The software being developed does not need to be unique
Software development teams often have to create new programming approaches and methods in order to meet a project’s goals. This is where the innovation happens! These unique methods of solving the project’s technology challenges are be classified as ‘R&D’ and can be used to claim.
The first step is to consider where the technological advancement has occurred during the project’s development rather than focusing on the application’s features and functionality. You can have two identical applications that function the same, but with entirely different architectures, algorithms and developmental challenges behind them. One application may qualify for R&D tax relief and the other one may not.
The consequence of this is that it does not matter if your application is a CRM system, CMS, or any other business application. What it does is irrelevant – what matters is how it does it. For example, a CRM system could require a technological advance if it was a RESTful application providing a highly-scalable application compared to say, a simple web service.
R D tax credit claims for software development can be complex
Correctly identifying what qualifies as R&D expenditure in software development requires both legislative expertise and a solid technical understanding of the development process.
When creating an R&D tax credit claim for software development, your company will be required to meet more criteria than in other sectors. Even the default criteria of ‘advancing knowledge’ and the ‘resolution of technological uncertainty’ can be tricky to map onto a project without having the specialist knowledge.
This is where our team’s expertise comes in. Here are just a few examples of the types of software development activities that we have successfully claimed for:
- Maintaining intermediate states of multi-step dialogues
- Determining if or how state should be maintained on the client if hidden iFrames are used
While determining the boundaries of an R&D project may be much easier with a waterfall type development methodology with clearly identifiable phases, using Agile methods may be more challenging in determining where the technological uncertainty starts and ends due to the iterative nature of the development process.
In this case, the key is often differentiating between the development required to meet user requirements and the development required to resolve technological uncertainty.
Tips for maximising your software R&D tax claims within an Agile environment
Create an R&D champion within your company.
This person should be someone who manages projects and is familiar with the standards and processes of software development in your company. Ideally this team member already produces items such as Sprint summaries as part of his/her role. As “R&D Champion,” they are the primary resource for all R&D related questions and can enforce the implementation of these ideas through existing and new project management records.
Add R&D commenting during source code check-ins
An example of how an existing development process can be modified to suit R&D purposes is by using source code repository check-ins to document R&D. Your developers may already add their check in notes. By mandating the use of R&D “tags” with additional notes on experimentation performed leading to the code output you now have a diary of all your R&D results. This repository can then be searched when you need to document and compile your claim.
Use of sprint/scrum reports and wiki notes
Adding three R&D relevant fields in your sprint summaries or scrum reports – R&D: Yes/No; Technological Obstacles; Experimentation Performed- will ensure that you capture the R&D work done within the context of your existing reporting.You can also add the “R&D” tag to wiki entries that may relate to R&D work. This tag can be easily searched when you need to develop your R&D claim for related sprints or tasks.
Source code commenting
While source code is an accepted form of R&D documentation, it only shows the results of R&D, rather than the process of R&D. Identifying specific algorithms tried and the experimentation undertaken as comments in code is a good way to document the R&D process.When appropriate, commenting out failed code or iterations of algorithms is a good way to tag R&D work. Adding shorthand to the comments, such as initials of the programmer and dates, can strengthen the reliability of this type of documentation.
Email is an often overlooked area of R&D documentation
You can create a R&D specific account such as email@example.com and CC/BCC the email when R&D specific emails are sent. Emails that discuss technological obstacles, uncertainties and experimentation are worth documenting as are technical difficulties with suppliers.This method is a good way to improve your R&D documentation with minimal overhead. This email account can now be retrieved regularly or at the end of the year when you need to compile your R&D claim.
HMRC’s view on R&D Tax claim documentation
Larger claims should, in theory, have more comprehensive documentation. HMRC also expects that larger, more complex software development environments have more mature and formal documentation; if your claims are large, your level of documentation should correspond accordingly. By implementing these simple steps in conjunction with their existing process, software companies of all sizes can adapt their agile development to improve R&D documentation, resulting in more effective and timely R&D claims.
Subcontracted software development costs can also be used to claim
Under the SME scheme, subcontracted software development may be used to claim R&D tax credits. The subcontracting company does not need to be based in the UK and the work that they carry out doesn’t need to be considered R&D in itself as long as it is contributing to the larger goals of a qualifying project.