Formule de calcul

Exonération de cotisations employeur pour l'embauche en zone franche urbaine (ZFU)

Source : source (consulté le lundi 1 janvier 1)

Valeur du dispositif pour le cas type :

Exonération de cotisations employeur pour l'embauche en zone franche urbaine (ZFU)

Adulte 1

    Ce dispositif est à jour !
    La dernière date de relecture du dispositif est lundi 15 janvier 2024.

    Formule de calcul OpenFisca :

    def formula(individu, period, parameters): assiette_allegement = individu('assiette_allegement', period) contrat_de_travail_type = individu('contrat_de_travail_type', period) TypesContrat = contrat_de_travail_type.possible_values contrat_de_travail_debut = individu('contrat_de_travail_debut', period) contrat_de_travail_fin = individu('contrat_de_travail_fin', period) effectif_entreprise = individu('effectif_entreprise', period) entreprise_chiffre_affaire = individu('entreprise_chiffre_affaire', period) entreprise_bilan = individu('entreprise_bilan', period) taux_versement_transport = individu('taux_versement_transport', period) # TODO: move to parameters file entreprise_eligible = (entreprise_chiffre_affaire <= 1e7) | (entreprise_bilan <= 1e7) smic_proratise = individu('smic_proratise', period) zone_franche_urbaine = individu('zone_franche_urbaine', period) duree_cdd_eligible = (contrat_de_travail_fin > contrat_de_travail_debut + timedelta64(365, 'D')) # TODO: move to parameters file contrat_de_travail_eligible = (contrat_de_travail_debut <= datetime64('2014-12-31')) * ((contrat_de_travail_type == TypesContrat.cdi) + ((contrat_de_travail_type == TypesContrat.cdd) * (duree_cdd_eligible))) # TODO: move to parameters file eligible = ( contrat_de_travail_eligible * (effectif_entreprise <= 50) * zone_franche_urbaine * entreprise_eligible ) bareme_by_name = parameters(period).cotsoc.cotisations_employeur['prive_non_cadre'] if period.start.year < 2007: fnal_contrib = parameters(period).prelevements_sociaux.autres_taxes_participations_assises_salaires.fnal.contribution_plus_de_10_salaries fnal_contrib_seuil = 10 elif period.start.year >= 2007 and period.start.year < 2020: fnal_contrib = parameters(period).prelevements_sociaux.autres_taxes_participations_assises_salaires.fnal.contribution_plus_de_20_salaries fnal_contrib_seuil = 20 else: fnal_contrib = parameters(period).prelevements_sociaux.autres_taxes_participations_assises_salaires.fnal.contribution_plus_de_50_salaries fnal_contrib_seuil = 50 if period.start.year < 2019: taux_maladie = bareme_by_name['maladie'].rates[0] else: taux_maladie = 0 if period.start.year < 2015: fnal_cotisation = parameters(period).prelevements_sociaux.autres_taxes_participations_assises_salaires.fnal.cotisation.rates[0] else: fnal_cotisation = 0 taux_max = ( bareme_by_name['vieillesse_deplafonnee'].rates[0] + bareme_by_name['vieillesse_plafonnee'].rates[0] + taux_maladie + bareme_by_name['famille'].rates[0] + fnal_cotisation + fnal_contrib.rates[0] * (effectif_entreprise >= fnal_contrib_seuil) + taux_versement_transport ) # TODO: move to parameters file : voir http://www.urssaf.fr/images/ref_lc2009-077.pdf seuil_max = 2 seuil_min = 1.4 taux_exoneration = compute_taux_exoneration(assiette_allegement, smic_proratise, taux_max, seuil_max, seuil_min) exoneration_relative_year_passed = exoneration_relative_year(period, contrat_de_travail_debut) large_rate_by_year_passed = { 0: 1, 1: 1, 2: 1, 3: 1, 4: 1, 5: .60, 6: .40, 7: .20, } # TODO: move to parameters file small_rate_by_year_passed = { 0: 1, 1: 1, 2: 1, 3: 1, 4: 1, 5: .60, 6: .60, 7: .60, 8: .60, 9: .60, 10: .40, 11: .40, 12: .20, 13: .20, } # TODO: move to parameters file large_taux_exoneration = eligible * 0.0 small_taux_exoneration = eligible * 0.0 for year_passed, rate in large_rate_by_year_passed.items(): condition_on_year_passed = exoneration_relative_year_passed == timedelta64(year_passed, 'Y') if condition_on_year_passed.any(): large_taux_exoneration[condition_on_year_passed] = rate * taux_exoneration for year_passed, rate in small_rate_by_year_passed.items(): condition_on_year_passed = exoneration_relative_year_passed == timedelta64(year_passed, 'Y') if condition_on_year_passed.any(): small_taux_exoneration[condition_on_year_passed] = rate * taux_exoneration exoneration_cotisations_zfu = ( eligible * assiette_allegement * ( small_taux_exoneration * (effectif_entreprise <= 5) + large_taux_exoneration * (effectif_entreprise > 5) ) ) return exoneration_cotisations_zfu # TODO: propager dans le temps

    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 "en ZFU (zone franche urbaine)" peut avoir une influence sur d'autres dispositifs et variables :

    Caractéristiques avancées :

    Période de définition : month
    Entité : individu
    Type de valeur : float