*********** simulation du nouvel IR *********** choix de l'année de simulation dans do_appel_parametres *********** Choix du répertoire racine dans do_appel_parametres (à exécuter en premier) clear set mem 500m set more off /******** appel des paramètres*/ do Programmes/do_appel_parametres /******** appel des variables*/ use Fichiers/indiv_rev_$annee, clear keep id_indiv rfon_irpp sort id_indiv merge id_indiv using Fichiers/indiv_ded_$annee keep id_indiv rfon_irpp pens_alim_rec pens_alim_ver sort id_indiv merge id_indiv using Fichiers/indiv_transferts_$annee keep id_indiv rfon_irpp pens_alim_rec pens_alim_ver ppe sort id_indiv merge id_indiv using Fichiers/indiv_irpp_$annee keep id_indiv rfon_irpp pens_alim_rec pens_alim_ver ppe irpp* qf sort id_indiv merge id_indiv using Fichiers/indiv_revcap_$annee keep id_indiv rfon_irpp pens_alim_rec pens_alim_ver irpp* ppe qf rfin_csg rfin_dist_cn rfon_cn rfon_reel_cn rfon_fictif_cn csg_yk pl sort id_indiv merge id_indiv using Fichiers/indiv_cotsoc_$annee keep id_indiv pondv rfon_irpp pens_alim_rec pens_alim_ver irpp* ppe qf rfin_csg rfin_dist_cn rfon_cn rfon_reel_cn rfon_fictif_cn csg_yk pl csg_ya csg_yr sal_brut_csg css nonsal_brut_csg cs_nonsal yr_csg gen calage=0 /*******************phase 1: calcul du revenu au sens du nouvel IR*/ /*********version 0: revenu nouvel IR = revenu CSG = revenu brut*/ gen sal=sal_brut_csg gen nonsal=nonsal_brut_csg gen ya=sal+nonsal gen yr=yr_csg gen yk=rfin_csg+rfon_irpp gen y=ya+yr+yk gen yk1=rfin_csg+rfon_cn gen yk2=rfin_dist_cn+rfon_irpp gen yk3=rfin_dist_cn+rfon_cn gen y1=ya+yr+yk1 gen y2=ya+yr+yk2 gen y3=ya+yr+yk3 /*********version alternative: revenu nouvel IR = revenu CSG net de cotisations sociales*/ /*********dans ce cas utiliser bareme alternatif*/ /*********gen sal=sal_brut_csg-css*/ /*********gen nonsal=nonsal_brut_csg-cs_nonsal*/ /******************phase 2: calcul du taux effectif d'imposition tx(y)*/ /*********phase 2-0: calcul avec le concept de revenu y*/ gen tx_ir=0 replace tx_ir=((y-$seuil0_ir)*$tx1_ir+($seuil1_ir-y)*$tx0_ir)/($seuil1_ir-$seuil0_ir) if y>=$seuil0_ir & y<=$seuil1_ir replace tx_ir=((y-$seuil1_ir)*$tx2_ir+($seuil2_ir-y)*$tx1_ir)/($seuil2_ir-$seuil1_ir) if y>=$seuil1_ir & y<=$seuil2_ir replace tx_ir=((y-$seuil2_ir)*$tx3_ir+($seuil3_ir-y)*$tx2_ir)/($seuil3_ir-$seuil2_ir) if y>=$seuil2_ir & y<=$seuil3_ir replace tx_ir=((y-$seuil3_ir)*$tx4_ir+($seuil4_ir-y)*$tx3_ir)/($seuil4_ir-$seuil3_ir) if y>=$seuil3_ir & y<=$seuil4_ir replace tx_ir=((y-$seuil4_ir)*$tx5_ir+($seuil5_ir-y)*$tx4_ir)/($seuil5_ir-$seuil4_ir) if y>=$seuil4_ir & y<=$seuil5_ir replace tx_ir=((y-$seuil5_ir)*$tx6_ir+($seuil6_ir-y)*$tx5_ir)/($seuil6_ir-$seuil5_ir) if y>=$seuil5_ir & y<=$seuil6_ir replace tx_ir=((y-$seuil6_ir)*$tx7_ir+($seuil7_ir-y)*$tx6_ir)/($seuil7_ir-$seuil6_ir) if y>=$seuil6_ir & y<=$seuil7_ir replace tx_ir=((y-$seuil7_ir)*$tx8_ir+($seuil8_ir-y)*$tx7_ir)/($seuil8_ir-$seuil7_ir) if y>=$seuil7_ir & y<=$seuil8_ir replace tx_ir=((y-$seuil8_ir)*$tx9_ir+($seuil9_ir-y)*$tx8_ir)/($seuil9_ir-$seuil8_ir) if y>=$seuil8_ir & y<=$seuil9_ir replace tx_ir=((y-$seuil9_ir)*$tx10_ir+($seuil10_ir-y)*$tx9_ir)/($seuil10_ir-$seuil9_ir) if y>=$seuil9_ir & y<=$seuil10_ir replace tx_ir=$tx10_ir if y>=$seuil10_ir /********phase 2-1: calcul avec le concept de revenu y1*/ gen tx_ir1=0 replace tx_ir1=((y1-$seuil0_ir)*$tx1_ir+($seuil1_ir-y1)*$tx0_ir)/($seuil1_ir-$seuil0_ir) if y1>=$seuil0_ir & y1<=$seuil1_ir replace tx_ir1=((y1-$seuil1_ir)*$tx2_ir+($seuil2_ir-y1)*$tx1_ir)/($seuil2_ir-$seuil1_ir) if y1>=$seuil1_ir & y1<=$seuil2_ir replace tx_ir1=((y1-$seuil2_ir)*$tx3_ir+($seuil3_ir-y1)*$tx2_ir)/($seuil3_ir-$seuil2_ir) if y1>=$seuil2_ir & y1<=$seuil3_ir replace tx_ir1=((y1-$seuil3_ir)*$tx4_ir+($seuil4_ir-y1)*$tx3_ir)/($seuil4_ir-$seuil3_ir) if y1>=$seuil3_ir & y1<=$seuil4_ir replace tx_ir1=((y1-$seuil4_ir)*$tx5_ir+($seuil5_ir-y1)*$tx4_ir)/($seuil5_ir-$seuil4_ir) if y1>=$seuil4_ir & y1<=$seuil5_ir replace tx_ir1=((y1-$seuil5_ir)*$tx6_ir+($seuil6_ir-y1)*$tx5_ir)/($seuil6_ir-$seuil5_ir) if y1>=$seuil5_ir & y1<=$seuil6_ir replace tx_ir1=((y1-$seuil6_ir)*$tx7_ir+($seuil7_ir-y1)*$tx6_ir)/($seuil7_ir-$seuil6_ir) if y1>=$seuil6_ir & y1<=$seuil7_ir replace tx_ir1=((y1-$seuil7_ir)*$tx8_ir+($seuil8_ir-y1)*$tx7_ir)/($seuil8_ir-$seuil7_ir) if y1>=$seuil7_ir & y1<=$seuil8_ir replace tx_ir1=((y1-$seuil8_ir)*$tx9_ir+($seuil9_ir-y1)*$tx8_ir)/($seuil9_ir-$seuil8_ir) if y1>=$seuil8_ir & y1<=$seuil9_ir replace tx_ir1=((y1-$seuil9_ir)*$tx10_ir+($seuil10_ir-y1)*$tx9_ir)/($seuil10_ir-$seuil9_ir) if y1>=$seuil9_ir & y1<=$seuil10_ir replace tx_ir1=$tx10_ir if y1>=$seuil10_ir /********phase 2-2: calcul avec le concept de revenu y2*/ gen tx_ir2=0 replace tx_ir2=((y2-$seuil0_ir)*$tx1_ir+($seuil1_ir-y2)*$tx0_ir)/($seuil1_ir-$seuil0_ir) if y2>=$seuil0_ir & y2<=$seuil1_ir replace tx_ir2=((y2-$seuil1_ir)*$tx2_ir+($seuil2_ir-y2)*$tx1_ir)/($seuil2_ir-$seuil1_ir) if y2>=$seuil1_ir & y2<=$seuil2_ir replace tx_ir2=((y2-$seuil2_ir)*$tx3_ir+($seuil3_ir-y2)*$tx2_ir)/($seuil3_ir-$seuil2_ir) if y2>=$seuil2_ir & y2<=$seuil3_ir replace tx_ir2=((y2-$seuil3_ir)*$tx4_ir+($seuil4_ir-y2)*$tx3_ir)/($seuil4_ir-$seuil3_ir) if y2>=$seuil3_ir & y2<=$seuil4_ir replace tx_ir2=((y2-$seuil4_ir)*$tx5_ir+($seuil5_ir-y2)*$tx4_ir)/($seuil5_ir-$seuil4_ir) if y2>=$seuil4_ir & y2<=$seuil5_ir replace tx_ir2=((y2-$seuil5_ir)*$tx6_ir+($seuil6_ir-y2)*$tx5_ir)/($seuil6_ir-$seuil5_ir) if y2>=$seuil5_ir & y2<=$seuil6_ir replace tx_ir2=((y2-$seuil6_ir)*$tx7_ir+($seuil7_ir-y2)*$tx6_ir)/($seuil7_ir-$seuil6_ir) if y2>=$seuil6_ir & y2<=$seuil7_ir replace tx_ir2=((y2-$seuil7_ir)*$tx8_ir+($seuil8_ir-y2)*$tx7_ir)/($seuil8_ir-$seuil7_ir) if y2>=$seuil7_ir & y2<=$seuil8_ir replace tx_ir2=((y2-$seuil8_ir)*$tx9_ir+($seuil9_ir-y2)*$tx8_ir)/($seuil9_ir-$seuil8_ir) if y2>=$seuil8_ir & y2<=$seuil9_ir replace tx_ir2=((y2-$seuil9_ir)*$tx10_ir+($seuil10_ir-y2)*$tx9_ir)/($seuil10_ir-$seuil9_ir) if y2>=$seuil9_ir & y2<=$seuil10_ir replace tx_ir2=$tx10_ir if y2>=$seuil10_ir /********phase 2-3: calcul avec le concept de revenu y3*/ gen tx_ir3=0 replace tx_ir3=((y3-$seuil0_ir)*$tx1_ir+($seuil1_ir-y3)*$tx0_ir)/($seuil1_ir-$seuil0_ir) if y3>=$seuil0_ir & y3<=$seuil1_ir replace tx_ir3=((y3-$seuil1_ir)*$tx2_ir+($seuil2_ir-y3)*$tx1_ir)/($seuil2_ir-$seuil1_ir) if y3>=$seuil1_ir & y3<=$seuil2_ir replace tx_ir3=((y3-$seuil2_ir)*$tx3_ir+($seuil3_ir-y3)*$tx2_ir)/($seuil3_ir-$seuil2_ir) if y3>=$seuil2_ir & y3<=$seuil3_ir replace tx_ir3=((y3-$seuil3_ir)*$tx4_ir+($seuil4_ir-y3)*$tx3_ir)/($seuil4_ir-$seuil3_ir) if y3>=$seuil3_ir & y3<=$seuil4_ir replace tx_ir3=((y3-$seuil4_ir)*$tx5_ir+($seuil5_ir-y3)*$tx4_ir)/($seuil5_ir-$seuil4_ir) if y3>=$seuil4_ir & y3<=$seuil5_ir replace tx_ir3=((y3-$seuil5_ir)*$tx6_ir+($seuil6_ir-y3)*$tx5_ir)/($seuil6_ir-$seuil5_ir) if y3>=$seuil5_ir & y3<=$seuil6_ir replace tx_ir3=((y3-$seuil6_ir)*$tx7_ir+($seuil7_ir-y3)*$tx6_ir)/($seuil7_ir-$seuil6_ir) if y3>=$seuil6_ir & y3<=$seuil7_ir replace tx_ir3=((y3-$seuil7_ir)*$tx8_ir+($seuil8_ir-y3)*$tx7_ir)/($seuil8_ir-$seuil7_ir) if y3>=$seuil7_ir & y3<=$seuil8_ir replace tx_ir3=((y3-$seuil8_ir)*$tx9_ir+($seuil9_ir-y3)*$tx8_ir)/($seuil9_ir-$seuil8_ir) if y3>=$seuil8_ir & y3<=$seuil9_ir replace tx_ir3=((y3-$seuil9_ir)*$tx10_ir+($seuil10_ir-y3)*$tx9_ir)/($seuil10_ir-$seuil9_ir) if y3>=$seuil9_ir & y3<=$seuil10_ir replace tx_ir3=$tx10_ir if y3>=$seuil10_ir /********phase 2-4: calcul de l'IR correspondant*/ gen ir=tx_ir*y gen ir1=tx_ir1*y1 gen ir2=tx_ir2*y2 gen ir3=tx_ir3*y3 /********phase 2-5: attribution d'un IR catégoriel*/ replace y=0.0001 if y==0 gen ir_trav=ir*ya/y gen ir_cap=ir*yk/y gen ir_remp=ir*yr/y /****************************phase 3: calcul de l'impôt à remplacer*/ gen csg=csg_ya+csg_yr+csg_yk gen ira=csg+irpp+pl-ppe gen ira_trav=csg_ya+irpp_sal+irpp_nonsal-ppe gen ira_cap=csg_yk+irpp_rfon+irpp_rfin+irpp_pv+pl gen ira_remp=csg_yr+irpp_chom+irpp_pens /****************************phase 4: sauvegarde du fichier simulé*/ keep id_indiv pondv y ya yr yk y1 y2 y3 yk1 yk2 yk3 ir* ir1 ir2 ir3 ira* csg irpp pl ppe sort id_indiv save Fichiers/indiv_nouvel_ir_$annee, replace