Eligible and Ineligible Software Project Examples

Projects and activities that would usually be eligible:

  1. Software developed that interacts directly with a hardware product in order to make the whole package function as a unit.
  2. The development of specialised technologies that require a process of experimentation and the attempted resolution of software development uncertainties. Some examples include the development of artificial intelligence, image processing, or speech recognition.
  3. The resolution of software development uncertainties related to process scheduling, memory management designs and instruction execution optimization in operating system and compiler developments.
  4. New constructs in application software products such as new architectures, new algorithms and new database management techniques.

Projects and activities that would usually be ineligible:

  1. Data quality, data cleansing, and data consistency activities. These activities include such activities as designing and implementing software to validate and/or clean data fields, and/or make the data fields consistent across databases and applications
  2. Upgrading to newer versions of hardware or software, or installing vendor fix releases
  3. Graphical user interfaces
  4. User or application interfaces
  5. The adaptation and commercialization of a technology developed by a consortium or an open software group
  6. Software application configuration
  7. Software developed as an embedded application, such as in cell phones, automobiles, airplanes
  8. Reverse engineering
  9. Y2K program changes
  10. Expanding product lines by purchasing other products
  11. Changing from a product based on one technology to a product based on a different or newer technology (e.g., switching from a hierarchical database technology to a relational database technology)
  12. Performing studies, or similar activities, to select vendor products
  13. Vendor product extensions
  14. Detecting flaws and bugs in software
  15. Modifying an existing software business component to make use of new or existing standards or devices, or to be compliant (i.e., certified, validated, etc.) with another vendor’s product or platform
  16. Developing a business component that is substantially similar in technology, functionality and features to the capabilities already in existence at other companies
  17. Re-hosting or porting an application to a new hardware (e.g., from mainframe to PC) or software platform (e.g., Windows to UNIX), or rewriting an existing application in a new language (e.g., rewriting a COBOL mainframe application in C++
  18. The development of software utility programs, such as debuggers, backup systems, performance analyzers, data recovery, etc.
  19. Writing hardware device drivers to support new hardware (e.g., disks, scanners, printers, modems, etc.)
  20. Bundling existing individual software products into product “suites” (e.g., combining existing word processor, spreadsheet, and slide presentation software applications into a single “suite”)
  21. Functional enhancements to existing software applications/products

Strategy:

This page is meant as a general guide base on prior claim experience and should not be relied on as conclusive. Every R&D project is different and professional advice should be sought before undertaking or dismissing a claim.

Links: