Determining eligibility of a given project is not straightforward. Here are some scenarios:

1. At the start of the project I believe that we will need to do a lot of experimentation, and thus SR&ED, during the course of development. After my initial technical feasibility study and secondary research I discover that there are off-the-shelf components can be integrated using standard practice. This project will not qualify.

2. A similar situation to the last, except that integrating these components turns out to be non-trivial. I may have to experiment with techniques to get the components to work properly, and efficiently, together. I may need to do some reverse engineering of some of the components, because the manufacturer does not provide adequate details of the internal operation. In this case there is a good chance much of the work I do on this project will qualify.

3. In doing the feasibility study it becomes clear that I will have to do innovative work to achieve my goals, so that, if I proceed, I will most likely be doing SR&ED. At this point, for some reason, the project is put on hold or abandoned. Since I have not done any SR&ED to date, I do not have an eligible claim. (Note that, if I do proceed and the work entails SR&ED, the work done on technical feasibility will qualify.)

Suppose I am developing and my work does indeed contain SR&ED. What specific activities will qualify? Maybe some aspects are clearly eligible, whereas others are routine. There are two kinds of eligible activities:

Core SR&ED activities: Work done as part of an attempt to achieve technological advancement or to resolve a technological uncertainty. (In fact, as stated in CRA documents, one cannot have one without the other. Advancement is what we are trying to achieve, uncertainty is how we attempt to get there.

Supporting activities: These are activities which are not SR&ED in and of themselves, but are necessary to demonstrate whether I have attained my goals. For example, if one of the technological advancements I am trying to achieve is a certain performance, then any testing I do in order to determine whether or not I have achieved this goal is qualifying work.