Free/Libre Canadian Tax Preparation Software Project
From the Group:LibrePlanet Ontario#Projects section: The members of LibrePlanet Ontario have identified a need to have Free Software for the preparation of Canadian tax returns. This is the project co-ordination page for creating such software.
Add overall project naming suggestions here (you need a (gratis) FSF userid to edit this page):
- Free/Libre Canadian Tax Preparation Software Project fondly known as FLCTPSP - very descriptive and no trademark issues
- ImpôtLibreTax - no hits in Google, ImpôtLibre, LibreTax - name in use in the US
- do we need to trademark names?
The CRA certification process tends to split the overall project into two major components:
- non-certified - there is no requirement to certify software that submits on paper. We can develop the tax calculation engine without being certified for NetFile.
- certified - this requires a fairly high level of minimum function which the CRA certifies through test suites. Certification allows us to submit electronically and perhaps also to prefill information from MyAccount. ImpôtNet Québec is a separate electronic filing process with separate requirements to be determined.
- The actual electronic submission appears to be relatively straight forward. It would greatly simplify the project to be able to decouple the tax calculations and the electronic submission.
Non-certified (base) Considerations:
- Discuss technical aspects of the base design here: https://libreplanet.org/wiki/Group:LibrePlanet_Ontario/FLCTPSP/base
- There is a huge amount of tax logic to implement and maintain, especially to get CRA certification.
- GHK believes the main challenge for this project is to figure out how to crowd source the tax logic. To build a system that accountants come to depend on and want to support similar to how corporations have come to depend on Linux and contribute to develop it.
- E-text exists for most if not all the T1 forms. E-text is an accepted official format for submission on paper that should be relatively straightforward to output. It may also be possible to parse a considerable amount of tax logic from the E-text forms.
- in the absence of E-text Stewart Russell looked at the fillable PDF tax forms to see if they have any logic that would help build an open tax prep system. The files themselves are produced in Adobe LiveCycle (aka DeathSpiral), an Adobe product completely incompatible with other Adobe products, and with the PDF spec itself. Like all LiveCycle forms, it's encrypted, so you can't see the embedded JS. Luckily, like almost all DeathSpiral forms, it's encrypted with a null password, so you can recover the editable form with:
qpdf --decrypt file.pdf file-decr.pdf pdftk file-decr.pdf output file-decr-no_xfa.pdf drop_xfa
- Reviewing RC4018 Electronic Filers Manual Chapter 1 http://www.cra-arc.gc.ca/E/pub/tg/rc4018/README.html indicates that there is an extensive set of field numbers that the base project should take into account to facilitate eventual certification
- add existing sample Libre Canadian Tax programs here:
- add links to other organizations and mailing lists devoted to Libre Canadian Tax programs here:
- As of 2016-07-02 Linux is not listed as a platform on the CRA Software Developer's Application for NetFile https://drive.google.com/open?id=0B7ubDH-ftX8jeWlmamNtUFlpeHc CRA only recommends proprietary tools for proprietary operating systems: http://www.cra-arc.gc.ca/esrvc-srvce/tx/ndvdls/netfile-impotnet/crtfdsftwr/menu-eng.html. There may be additional issues as we work through the application process.
- Support Structure: RC4018 The Electronic filers manual Chapter 2 Error messages states: "The [EFILE] Helpdesk phone numbers are for the exclusive use of preparers and transmitters in EFILE and must not be provided to individual taxpayers." This should be consistent with typical Free Software support structures: forums, mailing lists, IRC. RC4018 is on CRA web site available to end users. It's probably a good idea for users to always have a fallback option to submit on paper. It's also probably a good idea for multiple developers to have access to the EFILE Helpdesk.
- NetFile as a service: would appear to make Libre Planet Ontario into an EFILE tax preparer with a long list of responsibilities listed in RC4018 The Electronic filers manual Chapter 1 Preparer Responsibilities starting with: Form T183 is to be completed and signed by the client prior to the transmission of an EFILE return.
- The CRA coordinates for NetFile certification are:
- Electronic Filing Services Section / Section des services de transmissions électroniques
- Electronic Services Division / Division des services électroniques
- 750 Heron Rd, 7th floor / 750, chemin Heron, 7e étage
- Ottawa, ON K1A 0L5
- There is an online Government of Canada Employee Directory if we need to further understand the CRA's internal structure. For example: http://www.goc411.ca/en/27095/Bob-Connors
Decoupling tax calculations from electronic submission
- XML specifications are available for files but not for the protocol: http://www.cra-arc.gc.ca/esrvc-srvce/rf/xmlspcs2016/menu-eng.html (404 Not Found 2016-10-23)
- Suggest that the tax specification files and the protocol for sending tax files become another open data set: http://open.canada.ca/en/suggested-datasets/netfile-tax-format-and-schema-information
- as recently as 2012 or 2013, uploading the .tax file to the CRA was a separate step that the CRA performed separately from the tax program. Need to clarify why the CRA bundled this function with the user client.
Potential Charter of Rights and Freedoms and other legal Considerations
- the requirement to be a corporation or a sole proprietorship to write certified software may contrevene Charter 2 (d) Freedom of Association
- the requirement to run closed source software on your personal computer might contravene Charter 8 Everyone has the right to be secure against unreasonable search or seizure. Can the CRA shift the legal responsibility for validating a closed source program onto the user?
- on paper your signature is sufficient to validate your return. The CRA's whole structure seems to be an elaborate attempt to avoid using digital signatures which would be much less intrusive. Not sure if this is directly a Charter issue, but may be useful in legal analysis
- on paper there is no requirement for mechanical correctness. You are allowed to complete your own return without resorting to a tax professional and you are allowed to make calculation mistakes. It's not clear what justifies the requirement for tax software to be certified for correct calculation in addition to be certified to interface correctly to the CRA when submitting electronically.