def formula_2015(individu, period, parameters): plafond_securite_sociale_annuel = parameters(period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name = 'famille') bareme.add_bracket(0, 0) bareme.add_bracket(1.4, .031) # TODO parsing des paramèters pas à jour bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( (categorie_non_salarie == TypesCategorieNonSalarie.artisan) + (categorie_non_salarie == TypesCategorieNonSalarie.commercant) + (categorie_non_salarie == TypesCategorieNonSalarie.profession_liberale) ) * individu('rpns_individu', period) taux = ( 0 + (.031) * min_( max_( assiette / plafond_securite_sociale_annuel - 1.1, 0 ), (1.4 - 1.1) ) / (1.4 - 1.1) ) return - ( taux * assiette * (assiette < 1.4 * plafond_securite_sociale_annuel) + bareme.calc(assiette) )
def formula(individu, period, parameters): plafond_securite_sociale_annuel = parameters(period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name = 'maladie_maternite') bareme.add_bracket(0, 0) bareme.add_bracket(1.1, .065) # TODO parsing des paramèters IPP pas à jour bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( (categorie_non_salarie == TypesCategorieNonSalarie.profession_liberale) * individu('rpns_individu', period) ) taux = ( .015 + (.065 - .015) * min_( max_( assiette / plafond_securite_sociale_annuel, 0 ), 1.1 ) / 1.1 ) return - ( taux * assiette * (assiette < 1.1 * plafond_securite_sociale_annuel) + bareme.calc(assiette) )
def formula_2013(individu, period, parameters): plafond_securite_sociale_annuel = parameters( period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name='retraite_complementaire') bareme.add_bracket(0, .09) # TODO taux à la louche car hétérogène bareme.add_bracket(5, 0) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = (+(categorie_non_salarie == TypesCategorieNonSalarie. profession_liberale)) * individu('rpns_individu', period) return -bareme.calc(assiette)
def formula_2013(individu, period, parameters): plafond_securite_sociale_annuel = parameters(period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name = 'retraite_complementaire') bareme.add_bracket(0, .09) # TODO taux à la louche car hétérogène bareme.add_bracket(5, 0) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( + (categorie_non_salarie == TypesCategorieNonSalarie.profession_liberale) ) * individu('rpns_individu', period) return -bareme.calc(assiette)
def formula(individu, period, parameters): plafond_securite_sociale_annuel = parameters(period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name = 'formation_profession_liberale') taux = parameters(period).prelevements_sociaux.formation_pl.formation_professionnelle.sous_pss bareme.add_bracket(0, taux) bareme.add_bracket(1, 0) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( + (categorie_non_salarie == TypesCategorieNonSalarie.profession_liberale) ) * individu('rpns_individu', period) return -bareme.calc(assiette)
def formula_2015(individu, period, parameters): plafond_securite_sociale_annuel = parameters(period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name = 'vieillesse') assurance_vieillesse = parameters(period).prelevements_sociaux.ret_pl.assurance_vieillesse bareme.add_bracket(0, assurance_vieillesse.sous_1_pss) bareme.add_bracket(1, assurance_vieillesse.entre_1_et_5_pss) bareme.add_bracket(5, 0) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( + (categorie_non_salarie == TypesCategorieNonSalarie.profession_liberale) ) * individu('rpns_individu', period) return -bareme.calc(assiette)
def formula_2014(individu, period, parameters): plafond_securite_sociale_annuel = parameters(period).cotsoc.gen.plafond_securite_sociale * 12 vieillesse_artisan_commercant = parameters(period).prelevements_sociaux.ret_ac bareme = MarginalRateTaxScale(name = 'vieillesse') bareme.add_bracket(0, vieillesse_artisan_commercant.artisans.sous_pss + vieillesse_artisan_commercant.tous_independants.tout_salaire) bareme.add_bracket(1, vieillesse_artisan_commercant.tous_independants.tout_salaire) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( (categorie_non_salarie == TypesCategorieNonSalarie.artisan) + (categorie_non_salarie == TypesCategorieNonSalarie.commercant) ) * individu('rpns_individu', period) return -bareme.calc(assiette)
def formula_2015(individu, period, parameters): plafond_securite_sociale_annuel = parameters( period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name='vieillesse') assurance_vieillesse = parameters( period).prelevements_sociaux.ret_pl.assurance_vieillesse bareme.add_bracket(0, assurance_vieillesse.sous_1_pss) bareme.add_bracket(1, assurance_vieillesse.entre_1_et_5_pss) bareme.add_bracket(5, 0) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = (+(categorie_non_salarie == TypesCategorieNonSalarie. profession_liberale)) * individu('rpns_individu', period) return -bareme.calc(assiette)
def formula_2015(individu, period, parameters): plafond_securite_sociale_annuel = parameters(period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name = 'deces') deces = parameters(period).prelevements_sociaux.deces_ac.artisans bareme.add_bracket(0, deces.sous_pss) bareme.add_bracket(1, 0) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( (categorie_non_salarie == TypesCategorieNonSalarie.artisan) + (categorie_non_salarie == TypesCategorieNonSalarie.commercant) ) * individu('rpns_individu', period) return -bareme.calc(assiette)
def formula(individu, period, parameters): plafond_securite_sociale_annuel = parameters( period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name='formation_profession_liberale') taux = parameters( period ).prelevements_sociaux.formation_pl.formation_professionnelle.sous_pss bareme.add_bracket(0, taux) bareme.add_bracket(1, 0) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = (+(categorie_non_salarie == TypesCategorieNonSalarie. profession_liberale)) * individu('rpns_individu', period) return -bareme.calc(assiette)
def formula_2015(individu, period, parameters): plafond_securite_sociale_annuel = parameters( period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name='deces') deces = parameters(period).prelevements_sociaux.deces_ac.artisans bareme.add_bracket(0, deces.sous_pss) bareme.add_bracket(1, 0) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( (categorie_non_salarie == TypesCategorieNonSalarie.artisan) + (categorie_non_salarie == TypesCategorieNonSalarie.commercant) ) * individu('rpns_individu', period) return -bareme.calc(assiette)
def formula(individu, period, parameters): plafond_securite_sociale_annuel = parameters( period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name='maladie_maternite') bareme.add_bracket(0, 0) bareme.add_bracket(1.1, .065) # TODO parsing des paramèters IPP pas à jour bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ((categorie_non_salarie == TypesCategorieNonSalarie.profession_liberale) * individu('rpns_individu', period)) taux = (.015 + (.065 - .015) * min_( max_(assiette / plafond_securite_sociale_annuel, 0), 1.1) / 1.1) return -(taux * assiette * (assiette < 1.1 * plafond_securite_sociale_annuel) + bareme.calc(assiette))
def formula_2014(individu, period, parameters): plafond_securite_sociale_annuel = parameters( period).cotsoc.gen.plafond_securite_sociale * 12 vieillesse_artisan_commercant = parameters( period).prelevements_sociaux.ret_ac bareme = MarginalRateTaxScale(name='vieillesse') bareme.add_bracket( 0, vieillesse_artisan_commercant.artisans.sous_pss + vieillesse_artisan_commercant.tous_independants.tout_salaire) bareme.add_bracket( 1, vieillesse_artisan_commercant.tous_independants.tout_salaire) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( (categorie_non_salarie == TypesCategorieNonSalarie.artisan) + (categorie_non_salarie == TypesCategorieNonSalarie.commercant) ) * individu('rpns_individu', period) return -bareme.calc(assiette)
def formula_2017(individu, period, parameters): plafond_securite_sociale_annuel = parameters(period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name = 'famille') bareme.add_bracket(0, 0) bareme.add_bracket(.7, .065) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( (categorie_non_salarie == TypesCategorieNonSalarie.artisan) + (categorie_non_salarie == TypesCategorieNonSalarie.commercant) ) * individu('rpns_individu', period) cotisation_sous_1_1_pss = assiette * ( (assiette < .7 * plafond_securite_sociale_annuel) * ( (.065 - .035) * assiette / (.7 * plafond_securite_sociale_annuel) + .035 # TODO check taux non nul à assiette quasi nulle ) ) return -(cotisation_sous_1_1_pss + bareme.calc(assiette))
def formula_2015(individu, period, parameters): plafond_securite_sociale_annuel = parameters(period).cotsoc.gen.plafond_securite_sociale * 12 formation = parameters(period).prelevements_sociaux.formation_ac # Artisan bareme_artisan = MarginalRateTaxScale(name = 'formation_artisan') bareme_artisan.add_bracket(0, formation.artisans_sous_pss) bareme_artisan.add_bracket(1, 0) bareme_artisan.multiply_thresholds(plafond_securite_sociale_annuel) # Comemrcant bareme_commercant = MarginalRateTaxScale(name = 'formation_commercant') bareme_commercant.add_bracket(0, formation.commercants_industriels.sous_pss) bareme_commercant.add_bracket(1, 0) bareme_commercant.multiply_thresholds(plafond_securite_sociale_annuel) assiette = individu('rpns_individu', period) categorie_non_salarie = individu('categorie_non_salarie', period) artisan = (categorie_non_salarie == TypesCategorieNonSalarie.artisan) commercant = (categorie_non_salarie == TypesCategorieNonSalarie.commercant) return -bareme_artisan.calc(assiette * artisan) - bareme_commercant.calc(assiette * commercant)
def formula_2017(individu, period, parameters): plafond_securite_sociale_annuel = parameters( period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name='famille') bareme.add_bracket(0, 0) bareme.add_bracket(.7, .065) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( (categorie_non_salarie == TypesCategorieNonSalarie.artisan) + (categorie_non_salarie == TypesCategorieNonSalarie.commercant) ) * individu('rpns_individu', period) cotisation_sous_1_1_pss = assiette * ( (assiette < .7 * plafond_securite_sociale_annuel) * ((.065 - .035) * assiette / (.7 * plafond_securite_sociale_annuel) + .035 # TODO check taux non nul à assiette quasi nulle )) return -(cotisation_sous_1_1_pss + bareme.calc(assiette))
def formula_2015(individu, period, parameters): plafond_securite_sociale_annuel = parameters( period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name='famille') bareme.add_bracket(0, 0) bareme.add_bracket(1.4, .031) # TODO parsing des paramèters pas à jour bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( (categorie_non_salarie == TypesCategorieNonSalarie.artisan) + (categorie_non_salarie == TypesCategorieNonSalarie.commercant) + (categorie_non_salarie == TypesCategorieNonSalarie.profession_liberale)) * individu( 'rpns_individu', period) taux = (0 + (.031) * min_(max_(assiette / plafond_securite_sociale_annuel - 1.1, 0), (1.4 - 1.1)) / (1.4 - 1.1)) return -(taux * assiette * (assiette < 1.4 * plafond_securite_sociale_annuel) + bareme.calc(assiette))
def formula_2015(individu, period, parameters): plafond_securite_sociale_annuel = parameters( period).cotsoc.gen.plafond_securite_sociale * 12 formation = parameters(period).prelevements_sociaux.formation_ac # Artisan bareme_artisan = MarginalRateTaxScale(name='formation_artisan') bareme_artisan.add_bracket(0, formation.artisans_sous_pss) bareme_artisan.add_bracket(1, 0) bareme_artisan.multiply_thresholds(plafond_securite_sociale_annuel) # Comemrcant bareme_commercant = MarginalRateTaxScale(name='formation_commercant') bareme_commercant.add_bracket( 0, formation.commercants_industriels.sous_pss) bareme_commercant.add_bracket(1, 0) bareme_commercant.multiply_thresholds(plafond_securite_sociale_annuel) assiette = individu('rpns_individu', period) categorie_non_salarie = individu('categorie_non_salarie', period) artisan = (categorie_non_salarie == TypesCategorieNonSalarie.artisan) commercant = ( categorie_non_salarie == TypesCategorieNonSalarie.commercant) return -bareme_artisan.calc( assiette * artisan) - bareme_commercant.calc(assiette * commercant)
def formula_2018(individu, period, parameters): plafond_securite_sociale_annuel = parameters( period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name='famille') bareme.add_bracket(0, 0) bareme.add_bracket(1.1, .072) bareme.add_bracket(5, .065) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( (categorie_non_salarie == TypesCategorieNonSalarie.artisan) + (categorie_non_salarie == TypesCategorieNonSalarie.commercant) ) * individu('rpns_individu', period) cotisation_sous_1_1_pss = assiette * ( (assiette > .4 * plafond_securite_sociale_annuel) * (assiette <= 1.1 * plafond_securite_sociale_annuel) * ((.072 - .022) * assiette / (1.1 * plafond_securite_sociale_annuel) + .022) + (assiette <= .4 * plafond_securite_sociale_annuel) * ((.022 - .085) * assiette / (0.4 * plafond_securite_sociale_annuel) + .085)) return -(cotisation_sous_1_1_pss + bareme.calc(assiette))
def formula_2018(individu, period, parameters): plafond_securite_sociale_annuel = parameters(period).cotsoc.gen.plafond_securite_sociale * 12 bareme = MarginalRateTaxScale(name = 'famille') bareme.add_bracket(0, 0) bareme.add_bracket(1.1, .072) bareme.add_bracket(5, .065) bareme.multiply_thresholds(plafond_securite_sociale_annuel) categorie_non_salarie = individu('categorie_non_salarie', period) assiette = ( (categorie_non_salarie == TypesCategorieNonSalarie.artisan) + (categorie_non_salarie == TypesCategorieNonSalarie.commercant) ) * individu('rpns_individu', period) cotisation_sous_1_1_pss = assiette * ( (assiette > .4 * plafond_securite_sociale_annuel) * (assiette <= 1.1 * plafond_securite_sociale_annuel) * ( (.072 - .022) * assiette / (1.1 * plafond_securite_sociale_annuel) + .022 ) + (assiette <= .4 * plafond_securite_sociale_annuel) * ( (.022 - .085) * assiette / (0.4 * plafond_securite_sociale_annuel) + .085 ) ) return - (cotisation_sous_1_1_pss + bareme.calc(assiette))