Impôt du Québec

Survol

L’impôt du Québec est pris en charge par le module quebec. Ce module contient un gabarit que nous documentons ci-dessous ainsi que des classes dérivées spécifiques pour chaque année.

La fonction form permet de choisir l’année de la déclaration de revenus et ira tirer une instance de la déclaration pour cette année. L’instance est retournée par la fonction suivante:

srd.quebec.form(year)

Fonction qui permet de sélectionner le formulaire d’impôt provincial par année.

Paramètres

year (int) – année (présentement entre 2016 et 2022)

Renvoie

Une instance du formulaire pour l’année sélectionnée.

Type renvoyé

class instance

Voici les mesures fiscales provinciales prises en compte dans ce module:

  • L’impôt des particuliers

  • Les déductions pour les cotisations sociales (RRQ/RPC et RQAP)

  • La déduction pour travailleur

  • Les déductions pour pertes en capital nettes d’autres années et pour gain en capital exonéré

  • Le crédit d’impôt non-remboursable pour dividendes

  • Le crédit d’impôt non-remboursable en raison de l’âge, pour personne vivant seule et pour revenu de retraite

  • Le crédit d’impôt non-remboursable pour la prolongation de carrière

  • Le crédit d’impôt non-remboursable pour cotisations syndicales et professionnelles

  • Le crédit d’impôt non-remboursable pour dons

  • Le crédit d’impôt non-remboursable pour invalidité

  • Le transfert de crédits non-remboursables d’un conjoint à l’autre

  • Les crédits d’impôt pour frais médicaux (remboursable et non-remboursable)

  • Le crédit d’impôt remboursable pour solidarité

  • Le crédit d’impôt remboursable pour maintien à domicile des aînés

  • Le crédit d’impôt remboursable pour soutien aux ainés

  • Le crédit d’impôt remboursable pour frais de garde d’enfant

  • Le crédit d’impôt remboursable accordant une allocation aux familles

  • Le crédit d’impôt remboursable relatif à la prime au travail

  • Les crédits d’impôt remboursables liés à la hausse du coût de la vie (2021-2022)

  • La cotisation au régime d’assurance médicaments du Québec

  • La cotisation au Fonds des services de santé (FSS)

  • La contribution santé (2016)

  • La contribution additionnelle pour les services de garde éducatifs à l’enfance subventionnés (2016 à 2018)

  • Le crédit d’impôt bouclier fiscal

La liste exhaustive des éléments calculés dans le module est présentée dans la section ci-dessous.

Gabarit de déclaration

Nous utilisons un gabarit afin de créer les déclarations chaque année. Quand l’impôt change seulement au niveau des paramètres d’une année à l’autre, la déclaration ira seulement chercher les nouveaux paramètres. Quand des fonctions changent, l’utilisateur n’a qu’à modifier les fonctions touchées (ou à en ajouter de nouvelles). Toutes les modifications de fonction survenues après l’année 2016 sont indiquées dans la section suivante (Fonctions spécifiques ou modifiées).

srd.quebec.template()

Gabarit pour l’impôt provincial québécois.

Nous reproduisons ici la spécification du gabarit. Il est basé sur la déclaration de 2020.
(Cliquez sur le nom pour afficher les détails)

- file()

srd.quebec.form_2020.file(self, hh)

Fonction qui permet de calculer l’impôt.

Cette fonction est celle qui calcule les déductions, les crédits non-remboursables et remboursables et l’impôt net.

Paramètres

hh (Hhold) – instance de la classe Hhold

- calc_gross_income()

srd.quebec.form_2020.calc_gross_income(self, p)

Fonction qui calcule le revenu total (brut).

Cette fonction correspond au revenu total d’une personne aux fins de l’impôt.

Paramètres

p (Person) – instance de la classe Person

- calc_net_income()

srd.quebec.form_2020.calc_net_income(self, p)

Fonction qui calcule le revenu net au sens de l’impôt.

Cette fonction correspond au revenu net d’une personne aux fins de l’impôt. On y soustrait les déductions.

Paramètres

p (Person) – instance de la classe Person

- calc_taxable_income()

srd.quebec.form_2020.calc_taxable_income(self, p)

Fonction qui calcule le revenu imposable au sens de l’impôt.

Paramètres

p (Person) – instance de la classe Person

- calc_deduc_gross_income()

srd.quebec.form_2020.calc_deduc_gross_income(self, p)

Fonction qui calcule les déductions.

Cette fonction fait la somme des différentes déductions du contribuable.

Paramètres

p (Person) – instance de la classe Person

- work_deduc()

srd.quebec.form_2020.work_deduc(self, p)

Fonction qui calcule la déduction pour travailleur.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant de la déduction.

Type renvoyé

float

- cpp_qpip_deduction()

srd.quebec.form_2020.cpp_qpip_deduction(self, p)

Déduction pour les cotisations RRQ/RPC et au RQAP pour le travail autonome.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant de la déduction.

Type renvoyé

float

- calc_deduc_net_income()

srd.quebec.form_2020.calc_deduc_net_income(self, p)

Fonction qui calcule les déductions suivantes: 1. Pertes en capital nettes d’autres années; 2. Déduction pour gain en capital exonéré.

Permet une déduction maximale égale aux gains en capital taxables nets.

Paramètres

p (Person) – instance de la classe Person

- calc_tax()

srd.quebec.form_2020.calc_tax(self, p)

Fonction qui calcule l’impôt à payer selon la table d’impôt.

Cette fonction utilise la table d’impôt de l’année en cours.

Paramètres

p (Person) – instance de la classe Person

- calc_non_refundable_tax_credits()

srd.quebec.form_2020.calc_non_refundable_tax_credits(self, p, hh)

Fonction qui calcule les crédits d’impôt non-remboursables.

Cette fonction fait la somme de tous les crédits d’impôt modélisés.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

- get_age_cred()

srd.quebec.form_2020.get_age_cred(self, p)

Fonction qui calcule le crédit d’impôt non-remboursable en raison de l’âge.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant du crédit.

Type renvoyé

float

- get_living_alone_cred()

srd.quebec.form_2020.get_living_alone_cred(self, p, hh)

Fonction qui calcule le crédit d’impôt non-remboursable pour personne vivant seule.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant du crédit.

Type renvoyé

float

- get_pension_cred()

srd.quebec.form_2020.get_pension_cred(self, p)

Fonction qui calcule le crédit d’impôt non-remboursable pour revenu de retraite.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant du crédit.

Type renvoyé

float

- get_nrtcred_clawback()

srd.quebec.form_2020.get_nrtcred_clawback(self, p, hh)

Fonction qui calcule la récupération de la somme des crédits non-remboursables 1. en raison de l’âge; 2. pour personne vivant seule; et 3. pour revenu de retraite.

Cette fonction utilise le revenu net du ménage.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant de la récupération.

Type renvoyé

float

- get_exp_worker_cred()

srd.quebec.form_2020.get_exp_worker_cred(self, p)

Fonction qui calcule le crédit d’impôt non-remboursable pour les travailleurs d’expérience. Depuis 2019, renommé crédit d’impôt pour la prolongation de carrière.

On fait l’hypothèse que les travailleurs de 65 ans sont nés le 1er janvier de l’année en cours. (En réalité, les revenus gagnés avant et après le 65e anniversaire sont soumis à des traitements différents, ce qui complique beaucoup le modèle mais change peu les résultats.)

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant du crédit.

Type renvoyé

float

- get_donations_cred()

srd.quebec.form_2020.get_donations_cred(self, p)

Fonction qui remplace dans le gabarit (classe srd.quebec.template) la fonction du même nom, et calcule le crédit d’impôt non-remboursable pour dons.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant du crédit

Type renvoyé

float

- get_union_dues_cred()

srd.quebec.form_2020.get_union_dues_cred(self, p)

Fonction qui calcule le crédit d’impôt non-remboursable pour cotisations syndicales et professionnelles.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant du crédit.

Type renvoyé

float

- get_disabled_cred()

srd.quebec.form_2020.get_disabled_cred(self, p)

Fonction qui calcule le crédit d’impôt pour invalidité.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant du crédit.

Type renvoyé

float

- get_med_exp_cred()

srd.quebec.form_2020.get_med_exp_cred(self, p, hh)

Fonction qui calcule le crédit d’impôt non-remboursable pour frais médicaux.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant du crédit.

Type renvoyé

float

- div_tax_credit()

srd.quebec.form_2020.div_tax_credit(self, p)

Fonction qui calcule le crédit d’impôt pour dividendes.

Paramètres

p (Person) – instance de la classe Person

- calc_refundable_tax_credits()

srd.quebec.form_2020.calc_refundable_tax_credits(self, p, hh)

Fonction qui fait la somme des crédits remboursables.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

- chcare()

srd.quebec.form_2020.chcare(self, p, hh)

Fonction qui calcule le crédit d’impôt remboursable pour frais de garde.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant du crédit pour frais de garde.

Cette fonction calcule le montant reçu en fonction du nombre d’enfants, de la situation familiale (couple/monoparental) et du revenu.

Type renvoyé

float

- witb()

srd.quebec.form_2020.witb(self, p, hh)

Fonction qui calcule la prime au travail.

Le calcul est fait en tenant compte du revenu de travail, du revenu du ménage et de la présence d’un enfant à charge. Pour les couples, la prime est partagée au prorata des revenus de travail.

Notes: le supplément à la prime au travail et la prime au travail adaptée ne sont pas calculés.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant de la prime au travail par individu.

Type renvoyé

float

- home_support()

srd.quebec.form_2020.home_support(self, p, hh)

Fonction qui calcule le crédit d’impôt pour maintien à domicile des aînés.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant du crédit.

Type renvoyé

float

- med_exp()

srd.quebec.form_2020.med_exp(self, p, hh)

Fonction qui calcule le crédit remboursable pour frais médicaux.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant du crédit.

Type renvoyé

float

- ccap()

srd.quebec.form_2020.ccap(self, p, hh)

Fonction qui calcule le crédit d’impôt remboursable accordant une allocation aux familles (CIRAAF) (qui s’appelait le Soutien aux enfants avant 2019). Seules les composantes suivantes sont modélisées : l’allocation famille et le supplément pour l’achat de fournitures scolaires.

Cette fonction calcule le montant reçu selon le nombre d’enfants, la situation familiale (couple/monoparental) et le revenu.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant du crédit d’impôt remboursable accordant une allocation aux familles (CIRAAF).

Type renvoyé

float

- calc_contributions()

srd.quebec.form_2020.calc_contributions(self, p, hh)

Fonction qui remplace la fonction antérieure du même nom, et calcule les contributions.

Cette fonction fait la somme des contributions du contribuable. La contribution additionnelle pour service de garde éducatifs à l’enfance subventionnés est abolie en 2019.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

- health_contrib()

srd.quebec.form_2020.health_contrib(self, p, hh)

Fonction qui calcule la contribution santé.

Cette fonction calcule le montant dû en fonction du revenu net. La contribution santé a été abolie en 2017.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

- add_contrib_subsid_chcare()

srd.quebec.form_2020.add_contrib_subsid_chcare(self, p, hh)

Contribution additionnelle pour les services de garde éducatifs à l’enfance subventionnés.

Cette fonction calcule le montant dû en fonction du nombre de jours de garde et du revenu familial. Chaque conjoint paie en fonction du nombre de jours de garde sur son relevé 30. La contribution a été abolie en 2019.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

- solidarity()

srd.quebec.form_2020.solidarity(self, p, hh)

Fonction qui calcule le crédit d’impôt pour solidarité.

Cette fonction calcule le montant reçu par chacun des conjoints en fonction du revenu familial de l’année fiscale courante (en réalité, le calcul est basé sur le revenu de l’année précédente).

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant du crédit.

Type renvoyé

float

- drug_insurance_contrib()

srd.quebec.form_2020.drug_insurance_contrib(self, hh)

Fonction qui sert à calculer la cotisation au régime d’assurance médicaments du Québec.

Paramètres

hh (Hhold) – instance de la classe Hhold

- contrib_hsf()

srd.quebec.form_2020.contrib_hsf(self, p)

Fonction qui calcule la cotisation au Fonds des services de santé (FSS).

Paramètres

p (Person) – instance de la classe Person

- get_spouse_transfer()

srd.quebec.form_2020.get_spouse_transfer(self, p, hh)

Fonction qui récupère le surplus des crédits non rembousables tranferables au conjoint (s’il y lieu).

Paramètres

p (Person) – instance de la classe Person

- cost_of_living()

srd.quebec.form_2020.cost_of_living(self, p, hh)

Fonction qui calcule le crédit d’impôt remboursable attribuant une prestation exceptionnelle pour pallier la hausse du coût de la vie et le crédit d’impôt remboursable attribuant un montant ponctuel pour pallier la hausse du coût de la vie.

En vigueur en 2021 seulement.

p: Person

instance de la classe Person

hh: Hhold

instance de la classe Hhold

- tax_shield()

srd.quebec.form_2020.tax_shield(self, p, hh)

Fonction qui calcule le crédit d’impôt Bouclier fiscal.

La part de ce crédit liée à la prime au travail est partagée proportionnellement au revenu des conjoints par rapport au revenu famillial.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold


Le gabarit collige les résultats dans un formulaire d’impôt qui sera rattaché à la personne sous la forme d’un dictionnaire Python. Cette procédure permet de différencier les attributs d’une personne qui font partie de son profil des variables générées par l’impôt. C’est la fonction create_return() qui fait ce travail.

srd.quebec.create_return()

Fonctions spécifiques ou modifiées par année

2016

class srd.quebec.form_2016

Formulaire d’impôt de 2016.

2017

class srd.quebec.form_2017

Formulaire d’impôt de 2017.

- calc_contributions()

srd.quebec.form_2017.calc_contributions(self, p, hh)

Fonction qui remplace dans le gabarit (classe srd.quebec.template) la fonction du même nom, et calcule les contributions.

Cette fonction fait la somme des contributions du contribuable. La contribution santé est abolie en 2017.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

- get_donations_cred()

srd.quebec.form_2017.get_donations_cred(self, p)

Fonction qui remplace dans le gabarit (classe srd.quebec.template) la fonction du même nom, et calcule le crédit d’impôt non-remboursable pour dons.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant du crédit

Type renvoyé

float

- ccap()

srd.quebec.form_2017.ccap(self, p, hh)

Fonction qui calcule le crédit d’impôt remboursable accordant une allocation aux familles (CIRAAF) (qui s’appelait le Soutien aux enfants avant 2019). Seules les composantes suivantes sont modélisées : l’allocation famille et le supplément pour l’achat de fournitures scolaires.

Cette fonction calcule le montant reçu selon le nombre d’enfants, la situation familiale (couple/monoparental) et le revenu.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant du crédit d’impôt remboursable accordant une allocation aux familles (CIRAAF).

Type renvoyé

float


2018

class srd.quebec.form_2018

Formulaire d’impôt de 2018.

- senior_assist()

srd.quebec.form_2018.senior_assist(self, p, hh)

Fonction qui remplace dans le gabarit (classe srd.quebec.template) la fonction du même nom, et calcule le crédit remboursable pour soutien aux ainés. En vigueur à partir de 2018.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant du crédit.

Type renvoyé

float


2019

class srd.quebec.form_2019

Formulaire d’impôt de 2019.

- cpp_qpip_deduction()

srd.quebec.form_2019.cpp_qpip_deduction(self, p)

Déduction pour les cotisations RRQ/RPC et au RQAP pour le travail autonome.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant de la déduction.

Type renvoyé

float

- calc_contributions()

srd.quebec.form_2019.calc_contributions(self, p, hh)

Fonction qui remplace la fonction antérieure du même nom, et calcule les contributions.

Cette fonction fait la somme des contributions du contribuable. La contribution additionnelle pour service de garde éducatifs à l’enfance subventionnés est abolie en 2019.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold


2020

class srd.quebec.form_2020

Formulaire d’impôt de 2020.

- calc_deduc_gross_income()

srd.quebec.form_2020.calc_deduc_gross_income(self, p)

Fonction qui calcule les déductions.

Cette fonction fait la somme des différentes déductions du contribuable.

Paramètres

p (Person) – instance de la classe Person


2021

class srd.quebec.form_2021

Formulaire d’impôt de 2021.

- calc_deduc_gross_income()

srd.quebec.form_2021.calc_deduc_gross_income(self, p)

Fonction qui calcule les déductions.

Cette fonction fait la somme des différentes déductions du contribuable.

Paramètres

p (Person) – instance de la classe Person

- cost_of_living()

srd.quebec.form_2021.cost_of_living(self, p, hh)

Fonction qui calcule les crédits d’impôt remboursables attribuant une prestation exceptionnelle et un montant ponctuel pour pallier la hausse du coût de la vie.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold


2022

class srd.quebec.form_2022

Formulaire d’impôt de 2022.

- cost_of_living()

srd.quebec.form_2022.cost_of_living(self, p, hh)

Fonction qui calcule le crédit d’impôt remboursable conférant un nouveau montant ponctuel pour le coût de la vie.

Paramètres
  • p (Person) – instance de la classe Person

  • hh (Hhold) – instance de la classe Hhold