Software based R&D claims (a guide for accountants)
Software-based R&D claims can be one of the trickier types of claims for accountants to understand as unless they also have a background in computer science, being able to tell a complicated, non-qualifying software project from a qualifying one can be difficult.
This means that often once they have explained what their understanding of qualifying R&D is, their client is left to write the technical project details which the accountant then uses as the basis of their claim, without ever really knowing if the included project(s) qualify or not.
This approach is seriously flawed, as a lot of accountants are currently finding out due to HMRC opening an enquiry into their client’s software R&D claim and them finding it impossible to successfully defend a claim they don't really understand.
As I have been asked to assist with over a dozen enquiries into software-based R&D claims in the past month, with most being invalid, hopefully this guide will help accountants understand how to better advise their software clients and give some pointers on the questions to ask, BEFORE submitting a claim to HMRC.
To start with let’s take a look at some of the common misconceptions people, including accountants, have about software projects in relation to R&D tax relief, each of these I have heard numerous times during my 13 years working on software-based R&D claims.
"All software development qualifies for R&D tax relief"
Not true, in fact most software development doesn't qualify for R&D tax relief as it still must meet the same criteria as any other type of claim.
"No software development qualifies for R&D tax relief"
Not true, as whilst most software development doesn't qualify for R&D tax relief there are some projects which do.
"If you are creating computer software that doesn't already exist, this qualifies for R&D tax relief"
Again, not true as simply creating new computer software isn't enough for a project to be considered as qualifying for R&D tax relief.
The different types of software project
Software development projects tend to fall into one of three categories:
Easy projects - These are where the developers know how to create the desired software and how to easily overcome any technical challenges. Not to say they won't take some time, but the outcome of the project is known at the start.
Complicated projects - These tend to take a while and there may be specific technical challenges for the developers to overcome which will require some research as they don’t know off the top of their head how to do it, but fairly quickly they will find some information, usually online, to help.
Qualifying R&D projects - As with complicated projects these tend to take a while and there will be specific technical challenges for the developers to overcome with the difference being that no publicly available information on how to overcome these challenges exists, meaning their research will return no useful information.
The first two types of software project do not qualify for R&D tax relief, it’s only the third kind which does, and whilst the project information for a complicated and qualifying project will look very similar, it's the way in which the projects technical challenges were overcome, either by using some existing knowledge, or having to create new knowledge, which define which type of project they are.
Why do accountants find software-based R&D claims so hard?
The main reason is that accountants and software developers speak two quite different languages, accountants talk about EBITDA and double entry bookkeeping, whilst developers talk about APIs and hosted server stacks, which can make it difficult for them to understand each other.
Just like accountants, developers will also often use industry specific terms when providing project information, they can also believe that they should try and make their project information sound as complicated as possible as it will help their case, which it doesn't.
All that happens is an accountant will see the information and think "That all sounds very techy, so it must qualify" which is often not the case.
For example, if a developer wrote the following would you be able to tell if it would appear to be part of a qualifying R&D project??
"To create our software, first we had to setup and configure a LAMP stack in a hosted environment, including design of the SQL tables and custom queries, we then developed a custom back end using an agile methodology which included numerous, complex, API connections to a variety of 3rd party systems.
Once this work had been completed, we developed a custom data extraction engine and started development of our front end."
Yes? No? Not sure... well let’s see if explaining what the words in bold mean helps.
LAMP stack is simply when developers use four very standard technologies (Linux, Apache, MySQL, and PHP) as their development environment.
Linux is the operating system, a free alternative to commercial operating systems like Microsoft Windows
Apache is a web server which allows the developers to publish webpages users will use to access the system
MySQL is a database, used to store information. Think of it as being lots and lots of excel spreadsheets containing information, with each spreadsheet being called a table which you can then run searches on (aka queries) to get the information needed to run reports etc.
PHP is a programming language, which the developers will use to create their software
Hosted environment this just means that rather than having your servers at your own premises they are "hosted" by someone else, usually in a data centre which is just a building used to house lots of servers.
Front end is the bit the user sees, for example when you are using Xero, it's the dashboard, the bit with all the menus where you can select reports and perform functions like bank reconciliation.
Back end is the bit behind the scenes the users doesn't see, for example when you request a Profit and Loss report in Xero, the back end is what goes off and gets all the necessary information for the report from the database, it then passes this information to the front end which displays it in a nice layout for you.
Agile methodology is a way of programming and simply means that rather than documenting all of the features the software will have at the start of the project, you start developing with some basic ideas and then add new features as you go.
API stands for Application Programming Interface and whilst it might sound very high tech, it's really not and is just a way for computer systems to transfer data between themselves.
Remember the old days of Sage Line 50? when if you want to perform a bank reconciliation you had to download a CSV file from the bank, then import that into Line 50? Well, an API allows you to do that without needing to download a CSV file.
Custom data extraction simply refers to the process of analysing lots of data, often from various sources, to combine it into a useful format.
In the same way when looking at a company’s finances you might look at the P&L, Debtor Ledger etc. then take various parts from each to include in a report, data extraction in computer systems does the same thing, with custom just meaning it was something you had to configure for your purposes.
So, let’s look at our example project again, broken down it just means that the developers had to:
领英推荐
Setup their development environment (Setup and configure a LAMP stack)
Which they did on server(s) not on their premises (in a hosted environment)
Then they configured their database (design of the SQL tables and custom queries)
The back end was then developed (we developed a custom back end using an agile methodology)
This included obtaining data from other systems (numerous, complex, API connections to a variety of 3rd party systems)
They then created a way of collating the data collected (we developed a custom data extraction engine)
Then they started to develop the web page which users will access to use the system (started development of our front end)
Does it make more sense now? Have you changed your mind as to if the development would qualify for R&D tax relief?
For clarity, nothing in the list above would qualify for R&D tax relief, as whilst it may have been complicated and taken some time there is nothing there which isn't quite common when it comes to computer science.
So, what software development does qualify for R&D tax relief?
The criteria for a qualifying software-based R&D claim is the same as with any type of claim in that it has to be "attempting to create an advance in computer science via the resolution of technological uncertainty" and "how to create the advance can't be readily deduced by a competent professional"
It's the last part of this qualifying criteria which actually tends to cause most software-based claims to fail, as a lot of software developers like to share knowledge so if they find out a new way to do something, or they find the solution to a common problem then they will share this information online to help others.
There are also countless code libraries available online, these are bits of software written by developers to perform all manner of tasks from sorting data, to playing music in a webpage and these can be used by others looking to do the same without them needing to manually write their own code.
At the start of any software project, there will usually be things the developers know they can technically achieve and things they are not sure about, this could be as they haven’t done it before themselves, or it could be that no one has ever done it before.
The things they know they can achieve do not qualify and if they can do some research, usually online, to find ways of doing what they are not sure about, the project does not qualify as this would be considered "readily deducible".
It is only once they have done some research and found nothing which will tell them if technically what they are attempting is possible does the project potentially qualify for R&D tax relief, as the required uncertainty would exist.
However, we also must also consider if overcoming the uncertainty would create an advance in computer science. As some software development projects have uncertainty but overcoming it will not create an advance in computer science, so they do not qualify.
For example, if a company is looking to develop a software system which will let users search for the best prices on lawnmowers across a variety of lawnmower sellers. They would need to first develop a way of obtaining the necessary information from all the sellers, typically via an API, and they find that one provider’s data always comes across containing errors, dates in the wrong format, prices in dollars rather than pounds etc.
As having this data in a useable format will be essential for the software to function correctly they might believe that this means technological uncertainty exists, as they are uncertain if they can develop software to automatically correct all the errors in the data, meaning this project would meet the criteria for R&D tax relief.
However, they would be wrong as the uncertainty only applies to this specific set of data, so it's not an uncertainty across all of computer science, and even if they find a suitable way to resolve the issue, it will not create a suitable advance, unless they developed a brand new way of fixing the errors found in ANY set of data, which no one had developed previously. ?
Questions to ask yourself before submitting a software-based R&D claim
Q. Did a competent professional work on the project?
A competent professional in terms of software development would likely be someone with at least a degree, or some other valid qualification, in computer science and who has spent 5+ years working in a software development role.
If no competent professional worked on the project, then no qualifying R&D can have taken place and the project doesn’t qualify.
Q. Do you understand the technical information provided by your client?
If not, there is a high chance that anyone at HMRC reading the information also won’t, and this can lead to an enquiry being opened as HMRC request all technical information sent to them is in “Layman’s terms”.
So, the information should be rewritten using simpler terms. ?
Q. Are the projects uncertainties and the advance being sought clearly described? And are you sure they are industry wide? Or just in relation to this project?
When HMRC check an R&D claim the Uncertainties and Advances sections are what they most look at, as these are the things which help them determine if a project was the unqualifying complicated kind, or if it meets the criteria for R&D tax relief.
If these sections are missing, or don’t make sense, then they should be rewritten
Q. Is the advance being sought in computer science?
This is a common issue I see in software claims where the listed advance is related to a specific industry and not computer science.
For example. developing a new piece of software for the accountancy industry might create an advance for accountancy firms, but unless it also creates an advance in computer science then the project does not qualify for R&D tax relief.
Q. Were the projects uncertainties overcome using existing technology? Some code the developers found online for example
If the answer to this question is Yes, then the project won’t qualify, as simply using existing technology to overcome uncertainty does not qualify for R&D tax relief.
Hopefully this guide has helped you better understand software-based R&D claims, and if you are looking for some more training, The R&D Community, created by Richard Edwards , has two courses on how to ensure you only submit eligible software claims, along with loads of other courses covering all things R&D.
Transforming payroll software for bureaus - and finance for businesses. Collaboration, honesty, innovation & service are key values. I can help you with all aspects of your business, get in touch to find out how.
1 年This is a really well written and informative article Paul, thank you for taking the time to help educate.
R&D Tax Director at JS
1 年Thanks Paul. Great article