Formule de calcul

Impôt après plafonnement du quotient familial

Valeur du dispositif pour le cas type :

Impôt après plafonnement du quotient familial

Déclaration d’impôts n°1

    Ce dispositif est à jour !
    La dernière date de relecture du dispositif est jeudi 16 janvier 2025.

    Formule de calcul OpenFisca à compter du 2013-01-01 :

    Notes : Impôt après plafonnement du quotient familial et réduction complémentaire (cf. fiche calcul IR)

    def formula_2013_01_01(foyer_fiscal, period, parameters): ''' Impôt après plafonnement du quotient familial et réduction complémentaire (cf. fiche calcul IR) ''' celibataire_ou_divorce = foyer_fiscal('celibataire_ou_divorce', period) ir_brut = foyer_fiscal('ir_brut', period) ir_ss_qf = foyer_fiscal('ir_ss_qf', period) maries_ou_pacses = foyer_fiscal('maries_ou_pacses', period) nb_adult = foyer_fiscal('nb_adult', period) nb_pac = foyer_fiscal('nb_pac', period) nb_parts = foyer_fiscal('nbptr', period) residence_fiscale_guadeloupe = foyer_fiscal('residence_fiscale_guadeloupe', period) residence_fiscale_martinique = foyer_fiscal('residence_fiscale_martinique', period) residence_fiscale_guyane = foyer_fiscal('residence_fiscale_guyane', period) residence_fiscale_mayotte = foyer_fiscal('residence_fiscale_mayotte', period) residence_fiscale_reunion = foyer_fiscal('residence_fiscale_reunion', period) veuf = foyer_fiscal('veuf', period) caseF = foyer_fiscal('caseF', period) caseG = foyer_fiscal('caseG', period) caseL = foyer_fiscal('caseL', period) caseP = foyer_fiscal('caseP', period) caseS = foyer_fiscal('caseS', period) caseT = foyer_fiscal('caseT', period) caseW = foyer_fiscal('caseW', period) nbF = foyer_fiscal('nbF', period) # noqa F841 nbG = foyer_fiscal('nbG', period) nbH = foyer_fiscal('nbH', period) # noqa F841 nbI = foyer_fiscal('nbI', period) nbJ = foyer_fiscal('nbI', period) # noqa F841 nbN = foyer_fiscal('nbJ', period) # noqa F841 nbR = foyer_fiscal('nbR', period) plafond_qf = parameters(period).impot_revenu.calcul_impot_revenu.plaf_qf # PART1 - PLAFONNEMENT DU QF A = ir_ss_qf I = ir_brut # noqa F741 aa0 = (nb_parts - nb_adult) * 2 aa1 = min_((nb_parts - 1) * 2, 2) B1 = plafond_qf.plafond_avantages_procures_par_demi_part.celib_enf * aa1 / 2 + plafond_qf.plafond_avantages_procures_par_demi_part.general * (aa0 - aa1) B2 = plafond_qf.plafond_avantages_procures_par_demi_part.general * aa0 B3 = plafond_qf.plafond_avantages_procures_par_demi_part.celib condition61 = celibataire_ou_divorce & caseT condition63 = (celibataire_ou_divorce | veuf) & (nb_pac == 0) & caseL B = B1 * condition61 +\ B2 * (not_(condition61 | condition63)) +\ B3 * (condition63 & not_(condition61)) C = max_(0, A - B) impot_apres_plaf_qf = max_(I, C) # PART2 - REDUCTION IR APRES PLAFONNEMENT # pas de réductions complémentaires condition62a = (I >= C) # noqa F741 # possible réductions complémentaires condition62b = (I < C) # noqa F741 condition62c = (caseP | caseF | caseW | caseS | caseG | (nbG > 0) | (nbI > 0) | nbR > 0) condition62c0 = (caseP | caseF) | (caseW | caseS) | (caseG) condition62c1 = (maries_ou_pacses) & (caseP & caseF) condition62c2 = (nbG > 0) | (nbI > 0) | (nbR > 0) condition62d = (nb_pac > 0) & (veuf) E = condition62b * condition62c * ( plafond_qf.plafond_avantages_procures_par_demi_part.reduc_postplafond * condition62c0 * not_(condition62c1) + plafond_qf.plafond_avantages_procures_par_demi_part.reduc_postplafond * 2 * condition62c1 + plafond_qf.plafond_avantages_procures_par_demi_part.reduc_postplafond * (nbG + nbI / 2 + nbR) * condition62c2 ) D = condition62b * condition62d * plafond_qf.plafond_avantages_procures_par_demi_part.reduc_postplafond_veuf F = D + E G = max_(0, A - I - B) H = F * (F <= G) + G * (G < F) impot_apres_reduction_complementaire = impot_apres_plaf_qf - H # PART3 - ABATTEMENT PARTICULIE DOM residence_guadeloupe_martinique_reunion = (residence_fiscale_guadeloupe | residence_fiscale_martinique | residence_fiscale_reunion) residence_guyane_mayotte = (residence_fiscale_guyane | residence_fiscale_mayotte) residence_dom = (residence_guadeloupe_martinique_reunion | residence_guyane_mayotte) abattement_dom = ( residence_guadeloupe_martinique_reunion * min_(plafond_qf.abat_dom.guadeloupe_martinique_reunion.plaf, plafond_qf.abat_dom.guadeloupe_martinique_reunion.taux * impot_apres_reduction_complementaire) + residence_guyane_mayotte * min_(plafond_qf.abat_dom.guyane_mayotte.plaf, plafond_qf.abat_dom.guyane_mayotte.taux * impot_apres_reduction_complementaire) ) impot_apres_abattement_dom = max_(0, impot_apres_reduction_complementaire - abattement_dom) return ( not_(residence_dom) * (condition62a * impot_apres_plaf_qf + condition62b * impot_apres_reduction_complementaire) + residence_dom * impot_apres_abattement_dom )

    Formule OpenFisca sur Github

    Variables et paramètres inscrits dans la formule :

    Paramètres :

    Variables utilisées par le cas type :

    Formule initiale de calcul OpenFisca :

    Notes : Impôt après plafonnement du quotient familial et réduction complémentaire (cf. fiche calcul IR)

    def formula(foyer_fiscal, period, parameters): ''' Impôt après plafonnement du quotient familial et réduction complémentaire (cf. fiche calcul IR) ''' ir_brut = foyer_fiscal('ir_brut', period) ir_ss_qf = foyer_fiscal('ir_ss_qf', period) nb_adult = foyer_fiscal('nb_adult', period) nb_pac = foyer_fiscal('nb_pac', period) nb_parts = foyer_fiscal('nbptr', period) maries_ou_pacses = foyer_fiscal('maries_ou_pacses', period) veuf = foyer_fiscal('veuf', period) jeune_veuf = foyer_fiscal('jeune_veuf', period) celibataire_ou_divorce = foyer_fiscal('celibataire_ou_divorce', period) caseE = foyer_fiscal('caseE', period) caseF = foyer_fiscal('caseF', period) caseG = foyer_fiscal('caseG', period) annee_naissance_pac_alterne = foyer_fiscal('annee_naissance_pac_alterne', period) caseK = foyer_fiscal('caseK', period) caseN = foyer_fiscal('caseN', period) caseP = foyer_fiscal('caseP', period) caseS = foyer_fiscal('caseS', period) caseT = foyer_fiscal('caseT', period) caseW = foyer_fiscal('caseW', period) nbF = foyer_fiscal('nbF', period) nbG = foyer_fiscal('nbG', period) nbH = foyer_fiscal('nbH', period) nbI = foyer_fiscal('nbI', period) nbR = foyer_fiscal('nbR', period) plafond_qf = parameters(period).impot_revenu.calcul_impot_revenu.plaf_qf A = ir_ss_qf I = ir_brut # noqa F741 aa0 = (nb_parts - nb_adult) * 2 # nombre de demi part excédant nbadult aa1 = min_((nb_parts - 1) * 2, 2) # deux première demi part excédants une part B1 = plafond_qf.plafond_avantages_procures_par_demi_part.celib_enf * aa1 / 2 + plafond_qf.plafond_avantages_procures_par_demi_part.general * (aa0 - aa1) B2 = plafond_qf.plafond_avantages_procures_par_demi_part.general * aa0 B3 = plafond_qf.plafond_avantages_procures_par_demi_part.celib condition61 = celibataire_ou_divorce & caseT condition63 = (celibataire_ou_divorce | (veuf & not_(jeune_veuf))) & not_(caseN) & (nb_pac == 0) & (caseK | caseE) & (annee_naissance_pac_alterne < int(period.start.year) - 25) B = B1 * condition61 +\ B2 * (not_(condition61 | condition63)) +\ B3 * (condition63 & not_(condition61)) C = max_(0, A - B) IP0 = max_(I, C) # Impôt après plafonnement # 6.2 réduction d'impôt pratiquée sur l'impot après plafonnement et le cas particulier des DOM # pas de réduction complémentaire condition62a = (I >= C) # noqa F741 # réduction complémentaire condition62b = (I < C) # celibataire_ou_divorce veuf condition62caa0 = (celibataire_ou_divorce | (veuf & not_(jeune_veuf))) condition62caa1 = (nb_pac == 0) & (caseP | caseG | caseF | caseW) condition62caa2 = caseP & ((nbF - nbG > 0) | (nbH - nbI > 0)) condition62caa3 = not_(caseN) & (caseE | caseK) & (annee_naissance_pac_alterne >= 1981) condition62caa = condition62caa0 & (condition62caa1 | condition62caa2 | condition62caa3) # marié pacs condition62cab = (maries_ou_pacses | jeune_veuf) & caseS & not_(caseP | caseF) condition62ca = (condition62caa | condition62cab) # plus de 590 euros si on a des plus de condition62cb = ((nbG + nbR + nbI) > 0) | caseP | caseF D = plafond_qf.plafond_avantages_procures_par_demi_part.reduc_postplafond * (condition62ca + ~condition62ca * condition62cb * ( 1 * caseP + 1 * caseF + nbG + nbR + nbI / 2)) E = max_(0, A - I - B) Fo = D * (D <= E) + E * (E < D) IP1 = IP0 - Fo # TODO: 6.3 Cas particulier: Contribuables domiciliés dans les DOM. # conditionGuadMarReu = # conditionGuyane= # conitionDOM = conditionGuadMarReu | conditionGuyane # postplafGuadMarReu = 5100 # postplafGuyane = 6700 # IP2 = IP1 - conditionGuadMarReu*min( postplafGuadMarReu,.3*IP1) - conditionGuyane*min(postplafGuyane,.4*IP1) # Récapitulatif return condition62a * IP0 + condition62b * IP1 # IP2 si DOM

    Formule OpenFisca sur Github

    Variables et paramètres inscrits dans la formule :

    Paramètres :

    Variables utilisées par le cas type :

    Variables et dispositifs influencés par la formule :

    La formule du dispositif "Impôt après plafonnement du quotient familial" peut avoir une influence sur d'autres dispositifs et variables :

    Caractéristiques avancées :

    Période de définition : year
    Entité : foyer_fiscal
    Type de valeur : float