Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ajoute l'exonération TO-DE du secteur agricole #1861

Merged
merged 43 commits into from
Mar 8, 2023
Merged

Ajoute l'exonération TO-DE du secteur agricole #1861

merged 43 commits into from
Mar 8, 2023

Conversation

sandcha
Copy link
Contributor

@sandcha sandcha commented Jun 29, 2022

  • Évolution du système socio-fiscal.
  • Périodes concernées : toutes.
  • Zones impactées :
    • model/prelevements_obligatoires/prelevements_sociaux/cotisations_sociales/exonerations.py
    • model/revenus/activite/salarie.py
    • parameters/prelevements_sociaux/reductions_cotisations_sociales/agricole/tode
  • Détails :
    • Ajoute à partir de 2019 l'exonération pour travailleur occasionnel demandeur d'emploi (TO-DE) du secteur agricole exoneration_cotisations_employeur_tode et la référence dans exonerations_et_allegements
    • Ajoute des caractéristiques du salarié : contrat_duree_determinee_type, taches_salarie_type et travailleur_occasionnel_agricole
    • Adapte allegement_cotisation_allocations_familiales et ajoute allegement_cotisation_allocations_familiales_base pour le non cumul avec allegement_fillon

Informations complémentaires :

L'exonération TO-DE s'étend jusqu'au 31 décembre 2025 depuis la promulgation de la LFSS pour 2023 (précédemment, la TO-DE s'achevait au 31 décembre 2022).

Dans openfisca-france, les barèmes de cotisations sont pré-processés.
Ainsi, si pour vérifier la cotisation employeur exonérée pour le travailleur agricole, on cherche un barème de cotisation employeur, son nom YAML ne sera pas identique à son nom en mémoire qui sera passé par l'étape de pré-processing au chargement du TaxBenefitSystem.

Ensuite, l'application du barème de cotisation employeur se fait par un appel à une fonction auxiliaire partagées par toutes les cotisations, apply_bareme. Cette fonction dépend du mode de recouvrement des cotisations choisi (d'où la présence de cette information dans les tests YAML de cette PR). Puis elle fait appel à compte_cotisation qui contient également l'assiette de ressources prises en considération pour la calcul des cotisations.

Néanmoins, si le calcul des cotisations est utile au test de l'exonération TO-DE, cette dernière s'applique d'un point de vue calcul après le calcul des cotisations. On ne fait pas donc pas directement mention du mode de recouvrement dans la TO-DE.


Ces changements :

  • Ajoutent une fonctionnalité (par exemple ajout d'une variable).

Quelques conseils à prendre en compte :

definition_period = MONTH
set_input = set_input_divide_by_period
documentation = '''
Non modélisé (2022), tout employeur MSA sauf ces employeurs :
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ces types d'employeurs n'ont pas été modélisés ici parce que je n'ai pas su les catégoriser clairement. Toute suggestion est la bienvenue ; nous pourrions ajouter ça dans une PR suivante si ça ne vous semble pas bloquant.

documentation = '''
Exonération de cotisations et contributions employeur sur les bas salaires.

Non modélisé (2022):
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

De même que pour les catégories d'entreprises, la modélisation de cette règle n'était pas évidente pour cette première version de TO-DE dans la mesure où nous avons défini l'exonération au mois (par rapport aux cotisations/contrib en particulier). Mais l'absence de cette contrainte peut donner lieu à un montant erroné à l'année si on est éligible à l'année cc @eraviart.

# l'individu est le travailleur occasionnel
eligible = individu('exoneration_cotisations_employeur_tode_eligibilite', period)

# cotisations assurances sociales agricoles (ASA) - identiques régime général
Copy link
Contributor Author

@sandcha sandcha Jun 30, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Les cotisations et contributions ont été indiquées dans l'ordre de l'Article L741-16. Je n'y ai pas clairement vu les cotisations vieillesse mais elles figurent bien sur la page MSA.
Les commentaires par ligne de cotis/contrib peuvent être supprimés.

# Puis dégressive : 1,2 × C/0,40 × (1,6 × montant mensuel du SMIC/ rémunération mensuelle brute hors heures supplémentaires et complémentaires-1)
# Devient nulle à 1.6 SMIC

salaire_de_base = individu('salaire_de_base', period)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

salaire_de_base choisi au regard de la formule de calcul qui indique rémunération mensuelle brute hors heures supplémentaires et complémentaires.
D'un autre côté, La rémunération mensuelle brute correspond à celle retenue pour le calcul des cotisations de la réduction générale des cotisations patronales (réduction Fillon).
d'après la page TO-DE de la MSA.

@sandcha
Copy link
Contributor Author

sandcha commented Jul 5, 2022

Le régime agricole a quelques spécificités et l’exonération TO-DE s’applique à l’essentiel des cotisations de sécurité sociale pour l'employeur du secteur agricole.

C’est pourquoi, au cours de la revue de cette PR, vous serez peut-être amené à effectuer quelques recherches sur les sites internet de différentes institutions qui n’indiquent pas toujours clairement le contexte dans lequel elles s’inscrivent. Ce qui suit a pour vocation à vous apporter un peu de contexte, au cas où 🙂

En résumé :

Dans sa mission, la Sécurité Sociale adresse cinq types de risques, qui forment les six branches de la Sécurité sociale :
 

  • la branche maladie (maladie, maternité, invalidité, décès) ;
  • la branche famille (dont handicap et logement…) ;
  • la branche accidents du travail et maladies professionnelles ;
  • la branche retraite (vieillesse et veuvage) ;
  • la branche autonomie ;
  • la branche cotisations et recouvrement.

Source : solidarites-sante.gouv.fr

Pour chaque risque, dans cette PR, nous retrouvons une cotisation employeur.

La Mutualité sociale agricole (MSA) est un guichet unique qui gère l’ensemble des risques au profit de deux populations :

  • les non-salariés agricoles (exploitants et leurs familles)
  • les salariés agricoles.

Source : agriculture.gouv.fr

L'exonération TO-DE est une exonération de cotisations et contributions employeur pour un salarié agricole (ce sont donc les barèmes de cotisations s'appliquant aux salariés du secteur agricole qui s'appliquent).

Elle est organisée en :

  • Caisse Centrale MSA (CCMSA), la représentation nationale de la MSA
  • 35 MSA, un réseau qui couvre l’ensemble du territoire (et dispose de sites web locaux). Source : dépliant MSA

Si l’on compare avec le régime général, les personnes soumises au régime agricole ont un interlocuteur unique et local tout au long de leur vie. Source : MSA solidarite-responsabilite-democratie
Là où une personne au régime général dépend de la CNAM pour la maladie, les accidents du travail et les maladies professionnelles, la CNAF (via CAF) pour la famille, la CNAV pour la retraite, etc.

D’un point de vue seuils et taux de cotisations employeur, le régime agricole tend à se rapprocher du régime général. Du moins, c’est ce que l’on constate si l’on compare les barèmes employeur du régime général existants dans openfisca-france et ceux de la MSA pour les cotisations employeurs des salariés au 1er janvier 2022 (références législatives incluses en bas de pages ; document trouvé via cette page).
Il y a également le détail de la cotisation accidents du travail dans cet autre document indexé et ici.

En 2022, l'employeur bénéficiant de la TO-DE est exonéré de cotisations calculées selon les seuils et taux cités dans le document janvier 2022 ci-dessus. Cette PR n'inclut pas de revalorisation éventuelle de paramètre.

D’un point de vue maladie, deux termes sont récurrents : AMEXA et ASA.
Il s’agit simplement des assurances maladie, maternité, invalidité pour les deux populations du régime agricole :

L'exonération TO-DE exonère donc de cotisations donnant droit à l'ASA.

Enfin, la tendance au rapprochement avec le régime général est ancienne et a, par exemple, déjà été évoquée par le Sénat en 2007.

@sandcha
Copy link
Contributor Author

sandcha commented Jul 5, 2022

Mémo d'autres références consultées :

@sandcha
Copy link
Contributor Author

sandcha commented Jul 5, 2022

Rebase en cours pré-ouverture à la revue.

@sandcha sandcha marked this pull request as ready for review July 5, 2022 13:08
Comment on lines +117 to +127
exoneration_cotisations_employeur_tode_eligibilite: true
exoneration_cotisations_employeur_tode: 0
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

De mon interprétation de la documentation MSA, on peut être éligible à la TO-DE mais ne pas bénéficier d'exonération. C'est ce qu'on voit entre autre ici.

@sandcha
Copy link
Contributor Author

sandcha commented Jul 5, 2022

@clallemand Revue de PR proposée selon les recommandations de GitHub mais n'hésite pas à faire suivre au besoin. 😊

Copy link
Contributor

@benoit-cty benoit-cty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je ne suis pas entré dans le détail, j'ai plus des questions que des retours sur l'implémentation.

contrat_duree_determinee_type: contrat_saisonnier
categorie_salarie: prive_non_cadre
taches_salarie_type: travaux_forestiers
exposition_accident: faible
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je ne pense pas que cela ait une importance, mais le risque d'accident est plutôt élevé pour les travailleurs agricoles.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Effectivement, nous pourrions l'améliorer. Je le conserve juste pour le moment parce qu'il s'agit du seul niveau de risque pour lequel nous savons quel taux nous appliquons, à savoir, le taux "bureau" 😳 (cf. issue #2047).

allegement_cotisation_maladie: (1603.15 * 1.5) * (0.13 - 0.07) # sous 2.5 SMIC

famille: -1 * 1603.15 * 1.5 * 0.0525 # FIXME: à <= 3.5 SMIC devrait être au prelevements_sociaux.cotisations_securite_sociale_regime_general.famille.taux_reduit
accident_du_travail: -1 * 1603.15 * 1.5 * 0.009 # FIXME: taux 2018 à mettre à jour
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Les FIXME sont toujours d'actualités ? Il y a une issue ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La voici en #2047 et la situation s'avère un peu plus complexe qu'anticipé.

Je pensais mettre à jour les taux d'après la référence Barème des taux collectifs 2022 en fonction des catégories de risques donnée sur cleiss.fr ne fonctionne plus et la mise à jour 2023 résume bien la situation avec pour valeur de taux le mot Variable 🤣

taches_salarie_type: prolongement_production
exposition_accident: faible

salaire_de_base: 1603.15 * 2.6 # 4168.19
Copy link
Contributor

@benoit-cty benoit-cty Jul 5, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Le montant des paramètres est 1603.12 et non 1603.15. Pourquoi cet écart ?
  • Pourquoi * 2.6 et pas * 1.6 ?

Copy link
Contributor Author

@sandcha sandcha Mar 7, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pourquoi * 2.6 et pas * 1.6 ?

Effectivement, l'exonération de TO-DE est nulle à partir de 1.6 SMIC mais on ne sort pas pour autant de toutes les réductions de cotisations employeur. Ce n'était pas obligatoire pour ce test mais afin d'avoir un cas plus neutre, on choisit ici de sortir de toutes les exonérations, la TODE et les autres.

Celle s'appliquant au seuil le plus haut ici est a priori la réduction du taux de cotisations maladie : réduction de 6% jusqu'à 2.5 SMIC. C'est pourquoi les ressources choisies sont à 2.6 SMIC.

Copy link
Contributor Author

@sandcha sandcha Mar 7, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Le montant des paramètres est 1603.12 et non 1603.15. Pourquoi cet écart ?

Dans sa section 2/ Comment calculer l'exonération ?, la fiche MSA sur la TO-DE indique :

Précisions sur ce calcul

La rémunération mensuelle brute correspond à celle retenue pour le calcul des cotisations de la réduction générale des cotisations patronales. (Réduction générale à l'article L. 241-13 du code de sécurité sociale dans sa version en vigueur en 2010).
 
_Le montant mensuel du SMIC est égal à 151,67 fois le SMIC horaire._
Il doit être corrigé pour un salarié dont la rémunération contractuelle n'est pas fixée pour l'ensemble du mois considéré sur la base d'une durée hebdomadaire (ou rapportée à la durée du cycle) de 35 heures ou d'une durée annuelle de 1607 heures (ex : temps partiel, salarié non mensualisé, salariés dont la rémunération est calculée sur une base ne correspondant pas à la durée de 35 h hebdomadaire ou 1607h par an, situations d'entrées-sorties en cours de mois, salariés dont le contrat de travail est suspendu en raison de maladie avec maintien ou non de salaires, etc.).

Après correction éventuelle du SMIC, cette valeur ne doit pas être augmentée des heures supplémentaires et complémentaires non majorées.

Ce qui correspondrait donc au SMIC proratisé.
Or, en avril 2022 (période des tests), le SMIC horaire brut est de 10.57€.

Si on lui applique le facteur cité ci-dessus, nous obtenons :
10.57 * 151.67 = 1603.1519, soit le 1603.15 utilisé dans les tests.

@sandcha
Copy link
Contributor Author

sandcha commented Sep 8, 2022

@clallemand Revue de PR proposée selon les recommandations de GitHub mais n'hésite pas à faire suivre au besoin. 😊

Hello @clallemand, Est-ce que la revue est jouable pour toi ? :)

@sandcha
Copy link
Contributor Author

sandcha commented Sep 26, 2022

Test de la TO-DE sur une période annuelle :

from openfisca_core.simulation_builder import SimulationBuilder
from openfisca_france import FranceTaxBenefitSystem

tbs = FranceTaxBenefitSystem()

sb = SimulationBuilder()
simulation = sb.build_default_simulation(tbs, count=1)

year = 2022

simulation.set_input('secteur_activite_employeur', year, ['agricole'])
simulation.set_input('regime_securite_sociale', year, ['regime_agricole'])
simulation.set_input('choix_exoneration_cotisations_employeur_agricole', year, [True])
simulation.set_input('effectif_entreprise', year, [5])

simulation.set_input('contrat_de_travail_type', year, ['cdd'])
simulation.set_input('contrat_duree_determinee_type', year, ['contrat_saisonnier'])
simulation.set_input('categorie_salarie', year, ['prive_non_cadre'])

simulation.set_input('taches_salarie_type', year, ['travaux_forestiers'])
simulation.set_input('exposition_accident', year, ['faible'])
simulation.set_input('salaire_de_base', year, [1923 * 12])  # 1923.78


exoneration_cotisations_employeur_tode_eligibilite = simulation.calculate_add('exoneration_cotisations_employeur_tode_eligibilite', year)
print("exoneration_cotisations_employeur_tode_eligibilite :", exoneration_cotisations_employeur_tode_eligibilite)

exoneration_cotisations_employeur_tode = simulation.calculate_add('exoneration_cotisations_employeur_tode', year)
print("exoneration_cotisations_employeur_tode :", exoneration_cotisations_employeur_tode)
print("! attendu : ", 625.61 * 12)


allegement_fillon = simulation.calculate_add('allegement_fillon', year)
print("allegement_fillon :", allegement_fillon)

allegement_cotisation_maladie = simulation.calculate_add('allegement_cotisation_maladie', year)
print("allegement_cotisation_maladie :", allegement_cotisation_maladie)

exonerations_et_allegements = simulation.calculate_add('exonerations_et_allegements', year)
print("exonerations_et_allegements :", exonerations_et_allegements)

]
definition_period = MONTH
set_input = set_input_divide_by_period
end = '2025-12-31'
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La fiche MSA sur la TODE indique la prolongation du dispositif au 31 décembre 2025 (en place du 31 décembre 2022). On voit dans le suivi de versions de l'article L751-16 que l'article est abrogé au-delà de cette date. C'est un peu moins explicite sur l'article 8 de la LFSS pour 2023 😅

Au-delà de cette date, le mécanisme est inchangé comme l'indique la même page MSA : Au 1er janvier 2026, vous pourrez bénéficier de la réduction générale des cotisations patronales (réduction Fillon).

La page service-public, elle, semble avoir une erreur de date et parle de 2024.

sandcha and others added 26 commits March 8, 2023 16:38
Corrige le style des tests yaml
Et précision mineure de commentaire
La somme des exonérations doit être égale à la TO-DE
Corrige une typo limitée au CHANGELOG sur la version précédente
Corrige de la mise en forme mineure sur les versions antérieures dans le CHANGELOG
@sandcha
Copy link
Contributor Author

sandcha commented Mar 8, 2023

L'exonération TO-DE de cette PR a été revue à l'automne 2022, sur la base des tests par un administrateur expert des Affaires sociales qui a confirmé le mécanisme général.

Le dispositif est ainsi en production depuis cette date sur l'interface du simulateur socio-fiscal leximpact et, à l'exception de la prolongation du dispositif jusqu'à fin 2025 aucun changement n'a été apporté depuis.

De plus, à l'exception des questionnements soulevés au cours de la modélisation sur les taux pré-existants de cotisations (en particulier sur l'issue #2047), aucun autre problème n'a été relevé. Je merge donc 🙂

@sandcha sandcha merged commit 27d28db into master Mar 8, 2023
@sandcha sandcha deleted the tode branch March 8, 2023 16:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants