Impôt fédéral

Survol

L’impôt fédéral est pris en charge par le module federal. 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 du rapport pour cette année. L’instance est retournée par la fonction.

srd.federal.form(year, policy=<srd.covid.programs.policy object>)

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

Paramètres
  • year (int) – année (présentement entre 2016 et 2020)

  • policy (policy) – instance de la classe policy

Renvoie

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

Type renvoyé

class instance

Gabarit du rapport

Nous utilisons un gabarit afin de créer les rapports chaque année. Quand l’impôt change seulement au niveau des paramètres d’une année à l’autre, le rapport 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 ci-dessous.

Nous reproduisons ici la spécification du gabarit. Il est basé sur le rapport de 2016.

class srd.federal.template

Gabarit pour l’impôt fédéral.

file(hh)

Fonction qui permet de calculer les impôts.

Cette fonction est celle qui calcule les déductions, les crédits non-remboursables et remboursables et les impôts nets.

Paramètres

hh (Hhold) – instance de la classe Hhold

calc_gross_income(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(p)

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

Paramètres

p (Person) – instance de la classe Person

calc_taxable_income(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(p, hh)

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

  • hh (Hhold) – instance de la classe Hhold

chcare(p, hh)

Fonction qui calcule la déduction fédérale pour frais de garde.

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

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant de la déduction pour frais de garde.

Cette fonction calcule le montant reçu en fonction des frais de garde, de l’âge des enfants et du revenu le moins élevé du couple. Le montant est reçu par le conjoint qui a le revenu le moins élevé.

Type renvoyé

float

cpp_deduction(p)

Fonction qui calcule la déduction pour les cotisations au RRQ / RPC pour les travailleurs autonomes.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant de la déduction.

Type renvoyé

float

qpip_deduction(p)

Fonction qui calcule la déduction pour les cotisations au RQAP pour les travailleurs autonomes.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant de la déduction.

Type renvoyé

float

calc_deduc_net_income(p)

Fonction qui calcule les déductions suivantes: 1. Pertes en capital net des 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(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(p, hh)

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

Cette fonction fait la somme de tous les crédits modélisés en appelant les fonctions définies ci-après.

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

  • hh (Hhold) – instance de la classe Hhold

get_age_cred(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_cpp_contrib_cred(p)

Fonction qui calcule le crédit d’impôt non-remboursable pour cotisations au RRQ / RPC.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant du crédit.

Type renvoyé

float

get_qpip_cred(p)

Fonction qui calcule le crédit d’impôt non-remboursable pour cotisations au RQAP de travailleur salarié.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant du crédit.

Type renvoyé

float

get_qpip_self_cred(p)

Fonction qui calcule le crédit d’impôt non-remboursable pour cotisations au RQAP de travailleur autonome.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant du crédit.

Type renvoyé

float

get_empl_cred(p)

Fonction qui calcule le montant canadien pour emploi.

Ce crédit est non-remboursable.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant du crédit.

Type renvoyé

float

get_pension_cred(p, hh)

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

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

  • hh (Hhold) – instance de la class Hhold

Renvoie

Montant du crédit.

Type renvoyé

float

get_disabled_cred(p)

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

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant du crédit.

Type renvoyé

float

get_med_exp_nr_cred(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

get_donations_cred(p)

Fonction qui 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

div_tax_credit(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(p, hh)

Fonction qui fait la somme des crédits remboursables, en appelant les fonctions suivantes, décrites ci-après: abatment, ccb, get_witb, get_witbds, med_exp, gst_hst_credit.

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

  • hh (Hhold) – instance de la classe Hhold

abatment(p, hh)

Fonction qui calcule l’abattement du Québec à l’impôt fédéral.

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

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant de l’abattement.

Type renvoyé

float

ccb(p, hh, iclaw=True)

Fonction qui calcule l’Allocation canadienne pour enfants (ACE).

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

  • hh (Hhold) – instance de la classe Hhold

  • iclaw (boolean) – récupération des prestations si True; pas de récupération si False

Renvoie

Montant de l’ACE.

Type renvoyé

float

get_witb(p, hh)

Fonction qui calcule l’Allocation canadienne pour les travailleurs (ACT).

Avant 2019, celle-ci était appelée la Prestation fiscale pour le revenu de travail (PFRT).

Dans le cas d’un couple, la prestation est répartie au prorata des revenus de travail.

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

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant de la PFRT.

Type renvoyé

float

get_witbds(p, hh)

Fonction qui calcule le supplément pour invalidité à la Prestation fiscale pour le revenu de travail (SIPFRT).

À partir de 2019, le SIPFRT devient le supplément pour invalidité à l’Allocation canadienne pour les travailleurs (ACT).

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

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant du SIPFRT.

Type renvoyé

float

compute_witb_witbds(p, hh, rate, base, witb_max, claw_rate, exemption)

Fonction appelée par get_witb et get_witbds pour calculer le montant de la PFRT et du SIPFRT.

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

  • hh (Hhold) – instance de la classe Hhold

  • rate (float) – taux appliqué au revenu du travail

  • base (float) – montant de base de la PFRT

  • witb_max (float) – montant maximal de la PFRT

  • claw_rate – taux de réduction

  • exemption (float) – exemption

Renvoie

Montant de la PFRT ou du SIPFRT.

Type renvoyé

float

med_exp(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

gst_hst_credit(p, hh)

Fonction qui calcule le crédit pour la taxe sur les produits et services/taxe de vente harmonisée (TPS/TVH).

Le montant du crédit est reçu par le conjoint au revenu imposable le plus élevé.

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

  • hh (Hhold) – instance de la classe Hhold

Renvoie

Montant du crédit.

Type renvoyé

float

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 variables générées par l’impôt des attributs d’une personne qui font partie de son profil. C’est la fonction create_return() qui fait ce travail.

srd.federal.create_return()

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

class srd.federal.form_2016

Formulaire d’impôt de 2016.

class srd.federal.form_2017

Formulaire d’impôt de 2017.

class srd.federal.form_2018

Formulaire d’impôt de 2018.

class srd.federal.form_2019

Formulaire d’impôt de 2019.

class srd.federal.form_2020(policy)

Formulaire d’impôt de 2020.

Paramètres

policy (policy) – instance de la classe policy

compute_basic_amount(p)

Fonction qui calcule le montant personnel de base.

Le calcul de ce montant change en 2020.

Paramètres

p (Person) – instance de la classe Person

Renvoie

Montant personnel de base.

Type renvoyé

float

calc_net_income(p)

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

Paramètres

p (Person) – instance de la classe Person

repayments_ei(p)

Fonction qui calcule le montant du remboursement d’assurance-emploi et qui ajuste le montant des bénéfices, le revenu net et le revenu brut.

Paramètres

p (Person) – instance de la classe Person

Renvoie

montant du remboursement

Type renvoyé

float