diff --git a/brouillon b/brouillon new file mode 100644 index 000000000..d7f22b89d --- /dev/null +++ b/brouillon @@ -0,0 +1,15 @@ +Séparer la définition de cotisation des entités. + +https://cs.stackexchange.com/questions/45383/which-research-languages-have-a-stronger-typesystem-than-haskell-and-why +https://news.ycombinator.com/item?id=3117776 + +http://stackoverflow.com/questions/19081904/scala-difference-between-a-typeclass-and-an-adt + +Learn you a Haskell define your own... + +Ce que je fais c'est je définis des types qui sont des Records, mais de façon éclatée, ou des ADT (motif). +Et pour les listes ? Plusieurs contrat par individu ? Comment ils font en Haskell ? +Les cotisations sont des listes ? +Les namespaces ? +Et polymorphisme des record ? +Faudrait que je teste de coder ça en Haskell... diff --git a/package.json b/package.json index 3167448f8..9749382f8 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "react-router-dom": "^4.1.1", "reduce-reducers": "^0.1.2", "redux": "^3.6.0", - "redux-form": "^6.4.3", + "redux-form": "^6.6.3", "redux-saga": "^0.14.3", "reselect": "^2.5.2", "whatwg-fetch": "^2.0.2" diff --git a/règles/documentation/des-regles-au-formulaire.md b/règles/documentation/des-regles-au-formulaire.md new file mode 100644 index 000000000..a25302527 --- /dev/null +++ b/règles/documentation/des-regles-au-formulaire.md @@ -0,0 +1,55 @@ +Supposons qu'il y ait deux variables dans notre système. + + +```yaml +Variable: motif CDD +valeur: + une possibilité: + - motif B + - motif Z + - motif H +``` + +```yaml +Variable: CIF CDD +valeur: + multiplication: + assiette: salaire brut + taux: 29% +``` + +Si tu n'as pas à disposition la valeur de cette variable, le moteur peut utiliser la formule de la propriété `valeur` pour la calculer, _et_ s'il lui manque la valeur des dépendances (ex. pour 1. motif B, Z = `non` mais H = `null` donc inconnue; pour 2. salaire brut est `null`), il proposera un formulaire pour la récupérer. + + +### Demander les valeurs manquantes + +Ajoutons un mécanisme à la formule 2. + +```yaml +Variable: CIF CDD +formule: + non applicable si: motif H + multiplication: + assiette: salaire brut + taux: 29% +``` + +Pour la calculer, il nous faut maintenant la valeur de motif H, car elle n'est pas renseignée et donc cette variable n'est pas calculable : sa valeur est `null`. Comme dit précédemment, cela nous permet de proposer un formulaire de saisie à l'utilisateur : + +``` +Motif H est-il vrai pour vous ? +[Oui] [Non] +``` + +C'est une première étape, mais elle n'est pas parfaite : étant donné que `motif H` appartient à une liste de possibilités exclusives dans la variable `Motif CDD`, peut-être qu'il serait préférable de poser cette question : + + +``` +Quel est votre motif ? +[Motif B] [Motif Z] [Motif H] +``` + +Le moteur doit pour cela vérifier si motif H intervient dans un mécanisme de type `une possibilité` pour construire son formulaire de saisie. + + +> la note "éclatement des variables et espaces de noms" continue en complexifiant de modèle. diff --git a/règles/documentation/type-contrainte-ou-formule-de-calcul.md b/règles/documentation/type-contrainte-ou-formule-de-calcul.md new file mode 100644 index 000000000..ddf8da8a6 --- /dev/null +++ b/règles/documentation/type-contrainte-ou-formule-de-calcul.md @@ -0,0 +1,43 @@ +Supposons que dans notre système, il y ait deux variables. C'est notre point de départ. + +C'est un peu abstrait tout ça, mais ça permet de justifier certains choix de conception. + +La première : + +```yaml +Variable: motif CDD +contrainte: + une possibilité: + - motif B + - motif Z + - motif H +``` + +La deuxième : + +```yaml +Variable: CIF CDD +formule de calcul: + multiplication: + assiette: salaire brut + taux: 29% +``` + +# Contrainte ou formule de calcul ? + +Si tu veux renseigner directement la valeur de cette variable, la propriété `contrainte` cette propriété me permet de contraindre la saisie à 3 possibilités. + +A l'opposé, la variable CIF CDD a une propriété `formule de calcul` qui nous donne un algorithme de calcul utile quand tu ne peux renseigner directement la valeur de la variable. + +Mais en y regardant de plus près, le fait que cette formule soit exprimée sous forme de _donnée_ (facile à _parser_, déclaratif) nous permettraient potentiellement aussi de _contraindre_ la saisie de la valeur de la variable. + +> implicitement, je contraint ton entrée à une valeur compatible avec le mécanisme multiplication. On pourrait même pousser jusqu'à vérifier que la valeur est compatible avec le domaine qu'autorise la multiplication (par exemple si on sait que l'assiette est toujours positive). + + +Et de même, le mécanisme `une possibilité` (et une seule) nous donne l'information suivant : si l'utilisateur a saisi `motif Z = oui`, alors motif CDD = motif Z. On retrouve donc une notion d'algorithme de calcul. + + +La frontière est floue entre `contrainte/type` et `formule de calcul`. On va donc pour l'instant utiliser une unique propriété, `valeur`, qui rassemble ces deux usages. + + +> Voir la note "des règles au formulaire" diff --git a/règles/documentation/typer-les-variables.md b/règles/documentation/typer-les-variables.md new file mode 100644 index 000000000..1f8a2224b --- /dev/null +++ b/règles/documentation/typer-les-variables.md @@ -0,0 +1,101 @@ +> On atteint dans cette note le bout actuel de la réfléxion... + +Pour l'instant, on n'avait considéré seulement des versions simplifiées des variables : + +```yaml +Variable: CIF CDD +valeur: + multiplication: + assiette: salaire brut + taux: 29% +``` + +Or il y a pas mal de variables du système qui se ressembleront, et donc partageront des propriétés en commun. + +Par exemples les cotisations, qui sont des obligations de verser une fraction du salaire à des organismes de protection sociale. + +```yaml + activité . contrat salarié : AGIRC + description: AGIRC + références: article B-vingt-douze + dû par: salarié + branche: retraite + applicable si: Contrat . statut cadre + valeur: + multiplication: + assiette: ... + taux: ... +``` + +On peut remarquer que certaines des propriétés de cet objet sont relativement génériques, alors que d'autres dépendent directement du fait que notre objet est une cotisation. On pourrait la réécrire ainsi : + +```yaml + activité . contrat salarié : AGIRC + meta: + description: AGIRC + références: article B-vingt-douze + cotisation: + dû par: salarié + branche: retraite + valeur: + applicable si: Contrat . statut cadre + multiplication: + assiette: ... + taux: ... +``` + +Finalement ici, on _renseigne_ les données d'une entité de type `Cotisation`. Tout comme quand on va fournir une situation au système, en renseignant les données d'un `Salarié` (âge, expérience...) et de son `Contrat` (appelé pour l'instant `Salariat`, qui a un salaire, ...) qui le lie à son `Entreprise` (effectif, ...). + +Il faudra donc dans (TODO dans le futur) définir le _schéma_ de notre entité `Cotisation`. Pourquoi ne pas réutiliser ce que l'on a fait jusqu'à présent par exemple en définissant le schéma de `CDD . mofif` ? + +```yaml +- entité: cotisation + +# Ici on ajoute des propriétés à l'espace de nom `cotisation`. +# Comme si on créait et peuplait un _record_ en Haskell/Ocaml, ou encore d'un type produit en maths. +- cotisation: dû par + valeur: + # Ici, ce serait l'équivalent des _variant types_ des ADTs d'Haskell/Ocaml, ou d'une type somme en maths. + une possibilité: + - salarié + - entreprise + +- cotisation . dû par: salarié + meta: + description: Les salariés ont l'obligation de verser des cotisations, mais c'est normalement l'employeur qui s'en charge. + +# ... + +- cotisation : branche + valeur: + une possibilité: + - maladie + - retraite + - ... + +``` + +Il est très intéressant de noter qu'ici on définit le `schéma cotisation` pour pouvoir en faire des instance avec des données respectant ce schéma (cotisation.branche=maladie, etc.)... tout comme nous avons précédemment défini le `schéma contrat salarié` pour pouvoir par la suite en faire une instance avec des données (contrat salarié . type de contrat = CDD). + + + +De la même façon que le schéma cotisation, on définirait le schéma de `meta`, qui ferait lui souvent appel à des types plus élémentaires (et "terminaux"), des _strings_ (chaines de caractères). + +Pour être parfait, le modèle définirait aussi le schéma de `valeur`. + + +```yaml + +- valeur : applicable si + type: # mécanisme ou variable de type booléen + + +- valeur : formule + type: + une possibilité: # mécanismes de type numérique + - multiplication + - barème + - ... +``` + +A ce stade, on aurait finalement besoin d'un langage de programmation complet (par exemple introduisant un certain polymorphisme : une cotisation et une indemnité partagent des propriété !), ce qui est un but non souhaitable pour le moment. `meta` et `valeur` peuvent dans un premier temps rester dynamiques (sans type bien défini) et types par leur implémentation en Javascript. diff --git a/règles/documentation/éclatement-des-variables-et-espace-de-nom.md b/règles/documentation/éclatement-des-variables-et-espace-de-nom.md new file mode 100644 index 000000000..5f64b7a5e --- /dev/null +++ b/règles/documentation/éclatement-des-variables-et-espace-de-nom.md @@ -0,0 +1,119 @@ +Supposons qu'il y ait deux variables dans notre système. + +```yaml +Variable: motif CDD +valeur: + une possibilité: + - motif B + - motif Z + - motif H +``` + +```yaml +Variable: CIF CDD +valeur: + multiplication: + assiette: salaire brut + taux: 29% +``` + +Rapprochons-nous encore de la réalité. La formule de `motif CDD` est en fait une imbrication de possibilités : + +```yaml +motif CDD: + - motif classique + - motif remplacement + - motif accroissement d'activité + - motif saisonnier + - motif contrat aidé + - motif complément formation + - motif issue d'apprentissage +``` + +Les formules d'autres variables, par exemple `indemnité fin de contrat` ou `CID CDD` peuvent alors dépendre des éléments de cette liste de possibilités imbriquées : + +```yaml +formule: + non applicable si: + une de ces conditions: + - motif saisonnier + - motif contrat aidé # on cite une catégorie de motifs, mais qui est une variable utilisable en soi +``` + +Alors on pourrait représenter la variable `motif CDD` ainsi : + +```yaml +Variable: motif CDD +formule: + une possibilité parmi: + - Variable: classique + formule: + une possibilité parmi: + - Variable: remplacement + titre: Contrat de remplacement + + - Variable: usage + titre: Contrat d'usage + # formule... + - Variable: accroissement d'activité + titre: Motif accroissement temporaire d'activité + - Variable: contrat aidé + formule: + une possibilité parmi: + - A + - B + - Variable: complément formation + description: le motif complément formation c'est... + - Variable: issue d'apprentissage + description: le motif d'issue d'apprentissage c'est ... +``` + +- L'avantage de cette modélisation, c'est que tout est au même endroit; on évite, pour chaque descente de niveau de l'imbrication, de répéter le _chemin_ de la variable : on factorise de l'information. +- Le problème, c'est que cela nuit vraiment à la lisibilité de la formule `motif` : on perd complètement la vue très synthétique de notre pseudo modèle de départ : + +```yaml +Variable: motif +une possibilité parmi: + - classique + - contrat aidé + - complément formation + - issue d'apprentissage +``` + +Et finalement, contrairement au mécanisme de `composantes` utilisé dans le corps des `Cotisations`, l'information factorisée n'est pas très conséquent : ce n'est que le chemin. + +Une autre modélisation, que l'on retient, consiste donc à éclater les variables en utilisant un système d'**espace de nom**: + +```yaml +Salariat . CDD . motif: classique +# espace de nom : nom de la variable +formule: + une possibilité: + - remplacement + - accroissement d'activité + - saisonnier +``` + +```yaml +Salariat . CDD . motif : issue d'apprentissage +description: | + A l'issue d'un contrat d'apprentissage, un contrat de travail à durée déterminée peut être conclu lorsque l'apprenti doit satisfaire aux obligations du service national dans un délai de moins d'un an après l'expiration du contrat d'apprentissage. +``` + + +On pourrait même définir l'espace de nom commun `Salariat . CDD . motif` en en-tête du fichier où est stocké la variable... mais cela nous rendrait trop dépendant du système de fichiers, qui deviendront superflus quand l'édition se fera dans une interface Web. + +Pour beaucoup de variables au nom spécifique, il n'est pas souhaitable d'utiliser des espaces de nom, pour ne pas alourdir le code. + +> Par exemple, on pourrait définir la variable CDD comme `activité . contrat salarié . CDD`. Mais CDD est un terme non ambigue dans le contexte français. + +> À l'inverse, `motif` ou `effectif` sont trop spécifiques pour être laissés dans l'espace de nom global. Quand une variable contiendra `motif` dans son sous-espace de nom, c'est celle-ci qui sera utilisée plutôt que celle d'un autre espace, si elle existe. + +Pas de panique, une variable globale pourra quand même être rattachée à quelque chose ! Même si elle n'est pas définie dans un espace de noms, `CDD` sera quand même utilisée dans `contrat salarié` commune une des valeurs de `type de contrat` (ou mieux à l'avenir !). Le moteur se chargera de retrouver son attache. + + +Quand on créée par exemple la variable `CDD: motif`, donc la variable motif dans l'espace de nom CDD, et qu'on continue avec une variable `CDD . motif . classique` on fait deux choses : +- si la variable `motif` a une propriété `valeur`, on créée un espace pour pour stocker la valeur de cette variable +- on créée aussi un espace de nom associé à cette variable, qui va héberger des variables qui y sont liées et vont souvent intervenir dans la formule de la valeur de `motif` + +> la note "typer les variables" peut être lue à la suite de celle-ci. diff --git a/règles/entités/1.Individu.yaml b/règles/entités/1.Individu.yaml deleted file mode 100644 index 2def069d1..000000000 --- a/règles/entités/1.Individu.yaml +++ /dev/null @@ -1,21 +0,0 @@ -# Individu est le concept représentant une personne. -# C'est un 'record', une collection de champs nommés -Individu - # Ce concept a des propriétés non calculables. - # On peut parler de variables d'entrée, à saisir par l'utilisateur de la simulation. - date de naissance: YYYY-MM-JJ - # Et d'autres calculables. Mais toujours saisissables. - # On parle alors simplement de variables. - age = calc(date de naissance): nombre positif - # A ce concept est associée une liste d'un autre concept, l'Activité. - # La liste dénote le fait qu'elles peuvent se cumuler. - activités: liste Activité - -# Lors de l'éxecution du simulateur, ce concept sera instancié avec des données, -# potentiellement plusieurs fois pour construire une population : -# { -# date de naissance: 1989-08-01, -# activités: [a1, a2] -# } - -# -------> allez voir le concept Activité diff --git a/règles/entités/2.Activité.yaml b/règles/entités/2.Activité.yaml deleted file mode 100644 index c1428712a..000000000 --- a/règles/entités/2.Activité.yaml +++ /dev/null @@ -1,18 +0,0 @@ -Activité - # L'activité d'un individu, souvent rémunérée. - - durée déterminée: Booléen (Non) # peut être un calcul allant chercher les propriétés des types : CDD pour le salariat, durée du stage, etc. - - - type: - | Salariat - | Indépendant - | Fonction publique - | Stage - | Demandeur Emploi - - # Cette syntaxe indique que l'activité est une alternative entre plusieurs autres concepts incompatibles : c'est ce que l'on appelle une variante. - # Ce qui ne veux pas dire que le cumul de plusieurs activités est impossible (etc. Salariat et Indépendant), mais celui-ci est défini en amont dans le concept d'Individu. - - # C'est aux TODO fonctions de contrôle que revient la tâche de vérifier la cohérence des données - # Par exemple, un on peut cumuler un emploi dans la fonction publique et une activité d'indépendant que sous certaines conditions. diff --git a/règles/entités/4.Entreprise.yaml b/règles/entités/4.Entreprise.yaml deleted file mode 100644 index 63573a528..000000000 --- a/règles/entités/4.Entreprise.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# Le nom de ce fichier n'est qu'un guide : plusieurs concepts sont ici définis - -Établissement - Entreprise - effectif: nombre positif - SIRET: entier à - code commune: entier à 5 chiffres - code Postal = calc(code commune) : entier à 5 chiffres - compte AT/MP: Compte AT/MP - salariés: liste Salariat - -Compte AT/MP - code risque: caractères - appréciation du risque: très élevé | élevé | moyen | bureau - taux de risque: calc(code risque) nombre positif - -Entreprise - # l'effectif est par défaut automatiquement rempli de cette façon - effectif: (sum(Établissements.effectif) | count(Individus)): nombre positif - employés: join(établissements.salariés) - établissements: liste Établissements - nombre apprenti: nombre positif - masse salariale: sum(employés.salaire brut) - - taxe sur les salaires(Cotisation, Impôt) = sum(Employés.Taxe sur les salaires) - calcule la taxe sur les salaires de mes employés - si resultat < franchise (2000) : 0 - si résultat < abattement (20 000): lissage diff --git a/règles/entités/Salariat.alsace-moselle.yaml b/règles/entités/Salariat.alsace-moselle.yaml deleted file mode 100644 index 75c10acce..000000000 --- a/règles/entités/Salariat.alsace-moselle.yaml +++ /dev/null @@ -1,28 +0,0 @@ -- Variable: Régime Alsace Moselle - # Il aurait été possible d'attacher ces propriétés directement au concept Salariat, mais la définition de sous-concepts nous donne de l'ordre. C'est en quelque sorte un espace de nom. - attache: Salariat . régime alsace moselle - description: Appartenance au régime local de sécurité sociale Alsace-Moselle - référence: http://regime-local.fr/salaries/ - logique: - - affiliation 2012 conservée - - département activité salarié ⊂ [57 67 68] - - itinérance en Alsace Moselle: - - departement établissement ⊂ [57 67 68] - - itinérance en Alsace Moselle contractualisée - - -- Variable: affiliation 2012 conservée - type: booléen - -- Variable: département activité salarié - attache: Salariat - description: Département d'activité du salarié - type: numerique - -- Variable: itinérance en Alsace Moselle - description: Le salarié effectue une itinérance en Alsace-Moselle - type: booléen - -- Variable: itinérance en Alsace Moselle contractualisée - description: Le salarié effectue une itinérance en Alsace-Moselle, et celle-ci est définie explicitement dans le contrat de travail - type: booléen diff --git a/règles/note-sur-les-variables.md b/règles/note-sur-les-variables.md deleted file mode 100644 index 2de2b91aa..000000000 --- a/règles/note-sur-les-variables.md +++ /dev/null @@ -1,202 +0,0 @@ -Prenons deux variables, simplifiées, du système. - -La première - -```yaml -Variable: motif CDD -formule: - une possibilité: - - motif B - - motif Z - - motif H -``` - -La deuxième - -```yaml -Variable: CIF CDD -formule: - multiplication: - assiette: salaire brut - taux: 29% -``` - -Voilà ce qu'on peut faire avec ces informations. - -### Contraindre la saisie - -Si tu veux renseigner directement la valeur de cette variable, - -1. je contraint ton entrée à 3 possibilités (et tu ne peux en choisir qu'une, mais c'est un autre sujet). -2. implicitement, je contraint ton entrée à une valeur compatible avec le mécanisme multiplication. On pourrait même pousser jusqu'à vérifier que la valeur est compatible avec le domaine qu'autorise la multiplication (par exemple si on sait que l'assiette est toujours positive). - -### Calculer la valeur - -Si tu n'as pas à disposition la valeur de cette variable, - -1 et 2. le moteur peut utiliser la formule pour la calculer, _et_ s'il lui manque la valeur des dépendances (ex. pour 1. motif B, Z = `non` mais H = `null` donc inconnue; pour 2. salaire brut est `null`), il proposera un formulaire pour la récupérer. - - -### Demander les valleurs manquantes - -Ajoutons un mécanisme à la formule 2. - -```yaml -Variable: CIF CDD -formule: - non applicable si: motif H - multiplication: - assiette: salaire brut - taux: 29% -``` - -Pour la calculer, il nous faut maintenant la valeur de motif H, car elle n'est pas renseignée et donc cette variable n'est pas calculable : sa valeur est `null`. Comme dit précédemment, cela nous permet de proposer un formulaire de saisie à l'utilisateur : - -``` -Motif H est-il vrai pour vous ? -[Oui] [Non] -``` - -C'est une première étape, mais elle n'est pas parfaite : étant donné que `motif H` appartient à une liste de possibilités exclusives dans la variable `Motif CDD`, peut-être qu'il serait préféreable de poser cette question : - - -``` -Quel est votre motif ? -[Motif B] [Motif Z] [Motif H] -``` - -Le moteur doit pour cela vérifier si motif H intervient dans un mécanisme de type `une possibilité` pour construire son formulaire de saisie. - - -### Et si `motif CDD` est une liste de possibilités mais avec des catégories ? - -Rapprochons-nous encore de la réalité. La formule de `motif CDD` ressemble en fait plutôt à cela : - -```yaml -Variable: motif CDD -formule: - une possibilité: - - motif classique - - motif contrat aidé - - motif complément formation - - motif issue d'apprentissage -``` - -Chaque élément peut alors être lui-même une liste de possibilités, - -```yaml -Variable: motif classique -formule: - une possibilité: - - motif remplacement - - motif accroissement d'activité - - motif saisonnier -``` -ou une variable sans formule, booléenne, avec une description permetant d'indiquer à l'utilisateur comment y répondre (parce que c'est une feuille, ou parce qu'on n'a pas eu le temps de définir sa formule...) : - -```yaml -Variable: motif issue d'apprentissage -description: | - A l'issue d'un contrat d'apprentissage, un contrat de travail à durée déterminée peut être conclu lorsque l'apprenti doit satisfaire aux obligations du service national dans un délai de moins d'un an après l'expiration du contrat d'apprentissage. -``` - -Les formules d'autres variables, par exemple `indemnité fin de contrat` ou `CID CDD` peuvent alors dépendre des éléments de cette liste de possibilités imbriquée : - -```yaml -formule: - non applicable si: - une de ces conditions: - - motif saisonnier - - motif contrat aidé # on cite une catégorie de motifs, mais qui est une variable intéressante en soi -``` - - -```yaml -Variable: motif -attache: Salariat . CDD -formule: - une possibilité parmi: - - Variable: classique - formule: - une possibilité parmi: - - Variable: remplacement - titre: Contrat de remplacement - - - Variable: usage - titre: Contrat d'usage - # formule... - - Variable: accroissement d'activité - titre: Motif accroissement temporaire d'activité - - Variable: contrat aidé - formule: - une possibilité parmi: - - A - - B - - Variable: complément formation - description: le motif complément formation c'est... - - Variable: issue d'apprentissage - description: le motif d'issue d'apprentissage c'est ... -``` - -On peut alors utiliser ces variables dans les formules ainsi: - -```yaml -Variable: CIF -attache: Salariat . CDD -formule: - non applicable si: - une de ces conditions: - - motif . usage - - motif . contrat aidé # on cite une catégorie de motifs, qui est quand même une variable exploitable -``` - -- L'avantage de cette modélisation, c'est que l'on évite, pour chaque descente de niveau de l'imbrication, de répéter le _chemin_ de la variable : on factorise de l'information. -- Le désavantage, c'est que cela nuit à la lisibilité de la formule `motif` : on perd complètement la vue très synthétique de départ : - -```yaml -Variable: motif -une possibilité parmi: - - classique - - contrat aidé - - complément formation - - issue d'apprentissage -``` - -Et finalement, contrairement au mécanisme de `composantes` utilisé dans le corps des `Cotisations`, l'information factorisée n'est pas très conséquent : ce n'est que le chemin. - -Une autre modélisation consiste donc à éclater les variables. Par exemple : - -```yaml -Salariat . CDD . motif : issue d'apprentissage -description: | - A l'issue d'un contrat d'apprentissage, un contrat de travail à durée déterminée peut être conclu lorsque l'apprenti doit satisfaire aux obligations du service national dans un délai de moins d'un an après l'expiration du contrat d'apprentissage. -``` - -> On pourrait même définir le chemin commun en en-tête du fichier où est stocké la variable... mais cela nous rendrait trop dépendant des fichiers, superflus quand l'édition se fera dans une interface Web. - - -# TODO sauf que ça remet en cause notre format : - -```yaml -Cotisation: CIF -attributs: - dû par: employeur - branche: yayaya lorde -``` - -`Cotisation` / `Variable` / `Indemnité` ? - -Si le CIF est une Cotisation rattachée à Salariat . CDD, -si l'indemnité de fin de contrat est une Indemnité rattachée à Salariat . CDD, -fillon est une Réduction attachée à Salariat, -alors qu'est-ce que issue d'apprentissage ? - - -Voir le fichier 'la cotisation est une entité' - -Mais ne faudrait-il pas réserver les qualifications de type Cotisation aux règles ? - - -#TODO Cas où motif H appartient à plusieurs variables de possibilités. - -Par exemple, si on considère que parmi les motifs du CDD, il y a des contrats aidés, et que ces contrats aidés peuvent être utilisés à d'autre endroits. C'est flou pour l'instant. diff --git a/règles/recherche/TNS.yaml b/règles/recherche-en-cours/TNS.yaml similarity index 100% rename from règles/recherche/TNS.yaml rename to règles/recherche-en-cours/TNS.yaml diff --git a/règles/entités/Variables.yaml b/règles/recherche-en-cours/Variables.yaml similarity index 87% rename from règles/entités/Variables.yaml rename to règles/recherche-en-cours/Variables.yaml index dfbd64932..98ab8dfbe 100644 --- a/règles/entités/Variables.yaml +++ b/règles/recherche-en-cours/Variables.yaml @@ -1,3 +1,5 @@ +# Voilà un brouillon de la définition des "types de variables". Reste à coder ça d'une façon ou d'une autre. + Variable | Cotisation | Réduction de Cotisation diff --git a/règles/recherche/assimilé-salarié.yaml b/règles/recherche-en-cours/assimilé-salarié.yaml similarity index 100% rename from règles/recherche/assimilé-salarié.yaml rename to règles/recherche-en-cours/assimilé-salarié.yaml diff --git a/règles/recherche/periods.md b/règles/recherche-en-cours/periods.md similarity index 100% rename from règles/recherche/periods.md rename to règles/recherche-en-cours/periods.md diff --git a/règles/recherche/régimes-juridiques.yaml b/règles/recherche-en-cours/régimes-juridiques.yaml similarity index 100% rename from règles/recherche/régimes-juridiques.yaml rename to règles/recherche-en-cours/régimes-juridiques.yaml diff --git a/règles/destinataires/URSSAF.png b/règles/ressources/destinataires/URSSAF.png similarity index 100% rename from règles/destinataires/URSSAF.png rename to règles/ressources/destinataires/URSSAF.png diff --git a/règles/destinataires/URSSAF.svg b/règles/ressources/destinataires/URSSAF.svg similarity index 100% rename from règles/destinataires/URSSAF.svg rename to règles/ressources/destinataires/URSSAF.svg diff --git a/règles/destinataires/agirc.png b/règles/ressources/destinataires/agirc.png similarity index 100% rename from règles/destinataires/agirc.png rename to règles/ressources/destinataires/agirc.png diff --git a/règles/destinataires/destinataires.yaml b/règles/ressources/destinataires/destinataires.yaml similarity index 100% rename from règles/destinataires/destinataires.yaml rename to règles/ressources/destinataires/destinataires.yaml diff --git a/règles/destinataires/salarié.png b/règles/ressources/destinataires/salarié.png similarity index 100% rename from règles/destinataires/salarié.png rename to règles/ressources/destinataires/salarié.png diff --git a/règles/références/URSSAF.png b/règles/ressources/références/URSSAF.png similarity index 100% rename from règles/références/URSSAF.png rename to règles/ressources/références/URSSAF.png diff --git a/règles/références/marianne.png b/règles/ressources/références/marianne.png similarity index 100% rename from règles/références/marianne.png rename to règles/ressources/références/marianne.png diff --git a/règles/références/références.yaml b/règles/ressources/références/références.yaml similarity index 100% rename from règles/références/références.yaml rename to règles/ressources/références/références.yaml diff --git a/règles/ressources/todo.md b/règles/ressources/todo.md new file mode 100644 index 000000000..75bfce070 --- /dev/null +++ b/règles/ressources/todo.md @@ -0,0 +1,4 @@ +#TODO + +Il faudra migrer les éléments des dossiers destinataires et références dans une définition de type des propriétés `cotisation` et `meta`. +Lire la note `typer les variables`. diff --git a/règles/aiguillage.md b/règles/réflexions-sur-les-mécanismes/aiguillage.md similarity index 100% rename from règles/aiguillage.md rename to règles/réflexions-sur-les-mécanismes/aiguillage.md diff --git a/règles/barèmes.syntaxe.md b/règles/réflexions-sur-les-mécanismes/barèmes.md similarity index 100% rename from règles/barèmes.syntaxe.md rename to règles/réflexions-sur-les-mécanismes/barèmes.md diff --git a/règles/conditions-logiques.syntaxe.yaml b/règles/réflexions-sur-les-mécanismes/conditions-logiques.yaml similarity index 95% rename from règles/conditions-logiques.syntaxe.yaml rename to règles/réflexions-sur-les-mécanismes/conditions-logiques.yaml index 85e18cfcf..d8185e8b3 100644 --- a/règles/conditions-logiques.syntaxe.yaml +++ b/règles/réflexions-sur-les-mécanismes/conditions-logiques.yaml @@ -58,15 +58,15 @@ toutes ces conditions: - effectif entreprise <= 200 - chiffre d'affaires < 50 000 000 - - et l'une de ces conditions: + - et une de ces conditions: - entreprise . région = Alsace - établissement . secteur = éducation # On peut imaginer que 'toutes ces conditions' devienne en fonction du contexte: toutes ces situations: # On peut aussi légèrement adapter par exemple: - l'une de ces conditions: # devient : - et l'une de ces conditions: + une de ces conditions: # devient : + et une de ces conditions: # OPTIONS ABANDONNÉES diff --git a/règles/multiplication.md b/règles/réflexions-sur-les-mécanismes/multiplication.md similarity index 100% rename from règles/multiplication.md rename to règles/réflexions-sur-les-mécanismes/multiplication.md diff --git a/règles/périodes.syntaxe.yaml b/règles/réflexions-sur-les-mécanismes/périodes.yaml similarity index 100% rename from règles/périodes.syntaxe.yaml rename to règles/réflexions-sur-les-mécanismes/périodes.yaml diff --git a/règles/rémunération-travail/cdd/CIF.yaml b/règles/rémunération-travail/cdd/CIF.yaml index 3d95e7a55..25afdd74d 100644 --- a/règles/rémunération-travail/cdd/CIF.yaml +++ b/règles/rémunération-travail/cdd/CIF.yaml @@ -1,13 +1,10 @@ -- Cotisation: CIF CDD - attache: Salariat . CDD +- espace: contrat salarié . CDD + nom: CIF description: Contribution au financement du congé individuel de formation spécifique aux CDD. - attributs: + cotisation: destinataire: OPCA dû par: employeur - références: - Code du travail - Article L6322-37 : https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000022234996&cidTexte=LEGITEXT000006072050 - non applicable si: une de ces conditions: - événement . CDD poursuivi en CDI @@ -19,3 +16,6 @@ multiplication: assiette: assiette cotisations sociales taux: 1% + + références: + Code du travail - Article L6322-37 : https://www.legifrance.gouv.fr/affichCodeArticle.do?idArticle=LEGIARTI000022234996&cidTexte=LEGITEXT000006072050 diff --git a/règles/rémunération-travail/cdd/agirc.yaml b/règles/rémunération-travail/cdd/agirc.yaml index 3f14046de..f73bc8947 100644 --- a/règles/rémunération-travail/cdd/agirc.yaml +++ b/règles/rémunération-travail/cdd/agirc.yaml @@ -1,6 +1,6 @@ -- Cotisation: AGIRC - attache: Salariat - attributs: +- espace: contrat salarié + nom: AGIRC + cotisation: branche: retraite type de retraite: complémentaire destinataire: AGIRC diff --git a/règles/rémunération-travail/cdd/apec.yaml b/règles/rémunération-travail/cdd/apec.yaml index c500a235c..4da9cdf1a 100644 --- a/règles/rémunération-travail/cdd/apec.yaml +++ b/règles/rémunération-travail/cdd/apec.yaml @@ -1,6 +1,6 @@ -- Cotisation: APEC - attache: Salariat - attributs: +- espace: contrat salarié + nom: APEC + cotisation: branche: retraite type de retraite: complémentaire destinataire: APEC diff --git a/règles/rémunération-travail/cdd/indemnité_compensatrice_congés_payés.yaml b/règles/rémunération-travail/cdd/indemnité_compensatrice_congés_payés.yaml index 4ae572eea..7ac70aa3d 100644 --- a/règles/rémunération-travail/cdd/indemnité_compensatrice_congés_payés.yaml +++ b/règles/rémunération-travail/cdd/indemnité_compensatrice_congés_payés.yaml @@ -1,6 +1,6 @@ -- Indemnité: compensation des congés payés - attache: Salariat . CDD - attributs: +- espace: contrat salarié . CDD + nom: compensation des congés payés + indemnité: destinataire: salarié dû par: employeur description: | @@ -8,14 +8,9 @@ Il est cependant courant que le salarié ne puisse pas prendre tous ses congés avant le terme de son contrat, il bénéficie d'une indemnité compensatrice de congés payés. - references: - Fiche service-public.gouv.fr: https://www.service-public.fr/particuliers/vosdroits/F2931 - Code du travail - Article L3141-24: https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006072050&idArticle=LEGIARTI000006902661&dateTexte=&categorieLien=cid - Congés payés et contrat CDD: https://www.easycdd.com/LEGISLATION-CDD/L-embauche-le-suivi-du-contrat-CDD-les-incidents-frequents/Conges-payes-et-contrat-CDD - non applicable si: - l'une de ces conditions: - - événements . CDD poursuivi en CDI + une de ces conditions: + - événement . CDD poursuivi en CDI # TODO Y a-t-il d'autres conditions ? Sinon supprimer la liste # TODO aspect temporel @@ -55,3 +50,9 @@ À noter, la loi El Khomri modifie l'article L3141-12: - avant : Les congés peuvent être pris dès l'ouverture des droits [...] - maintenant : Les congés peuvent être pris dès l’embauche [...] + + + references: + Fiche service-public.gouv.fr: https://www.service-public.fr/particuliers/vosdroits/F2931 + Code du travail - Article L3141-24: https://www.legifrance.gouv.fr/affichCodeArticle.do?cidTexte=LEGITEXT000006072050&idArticle=LEGIARTI000006902661&dateTexte=&categorieLien=cid + Congés payés et contrat CDD: https://www.easycdd.com/LEGISLATION-CDD/L-embauche-le-suivi-du-contrat-CDD-les-incidents-frequents/Conges-payes-et-contrat-CDD diff --git a/règles/rémunération-travail/cdd/indemnité_fin_contrat.yaml b/règles/rémunération-travail/cdd/indemnité_fin_contrat.yaml index ab81dd962..ad580e7f5 100644 --- a/règles/rémunération-travail/cdd/indemnité_fin_contrat.yaml +++ b/règles/rémunération-travail/cdd/indemnité_fin_contrat.yaml @@ -1,40 +1,34 @@ -- Indemnité: prime de fin de contrat - attache: Salariat . CDD - attributs: - type: indemnité +- espace: contrat salarié . CDD + nom: prime de fin de contrat + indemnité: destinataire: salarié alias: prime de précarité description: Somme versée en fin de CDD comme compensation de précarité. - notes: Attention, les exceptions sont légion. Conventions collectives. + notes: | + Attention, les exceptions sont légion. Conventions collectives... + + - Dans les faits, les CDD Senior perçoivent une indemnité d’un montant équivalent à l’indemnité de précarité : [line](https://www.easycdd.com/LEGISLATION-CDD/Fin-ou-rupture-du-contrat-CDD/La-prime-de-precarite/La-prime-de-precarite-n-est-pas-due-si) non applicable si: - l'une de ces conditions: + une de ces conditions: # Evènements particuliers - - événements . CDD poursuivi en CDI - - événements . refus CDI avantageux + - événement . CDD poursuivi en CDI + - événement . refus CDI avantageux - # Rupture - - événements . rupture anticipée salarié - - événements . rupture pour faute grave ou force majeure - - événements . rupture pendant période essai + # Rupture TODO regrouper celà dans une nouvelle variante + - événement . rupture anticipée salarié + - événement . rupture pour faute grave ou force majeure + - événement . rupture pendant période essai - - engagement employeur complément formation + - motif . classique . usage + - motif . classique . saisonnier + - motif . complément formation + - motif . contrat aidé - # types de contrat - - contrat aidé - - motif . usage - - motif . jeune vacances - - motif . saisonnier - # https://www.easycdd.com/LEGISLATION-CDD/Fin-ou-rupture-du-contrat-CDD/La-prime-de-precarite/La-prime-de-precarite-n-est-pas-due-si Dans les faits, les CDD Senior perçoivent une indemnité d’un montant équivalent à l’indemnité de précarité. + - contrat jeune vacances - # - CDD . type = vendanges - # cas du contrat vendanges !! différent du saisonnier ? - # du Code rural et de la pêche maritime : https://www.easycdd.com/LEGISLATION-CDD/Avant-de-rediger-un-contrat-CDD/Les-cas-de-recours-au-contrat-CDD/Cas-de-recours-Detaille/Le-contrat-CDD-vendanges - - # Les contrats d'extras dans l'hôtellerie restauration - # - CDD . type = extras restauration # TODO Il faudrait pouvoir afficher les indemnités comme une somme de fin de contrat. # Ici elle est étalée sur un mois moyen diff --git a/règles/rémunération-travail/cdd/majoration-chomage.yaml b/règles/rémunération-travail/cdd/majoration-chomage.yaml index fb5736e87..141dd698b 100644 --- a/règles/rémunération-travail/cdd/majoration-chomage.yaml +++ b/règles/rémunération-travail/cdd/majoration-chomage.yaml @@ -1,27 +1,31 @@ -- Cotisation: majoration chômage CDD - attache: Salariat . CDD - attributs: +- espace: contrat salarié . CDD + nom: majoration chômage + cotisation: dû par: employeur type: majoration destinataire: URSSAF description: Majoration des contributions patronales d’assurance chômage pour les contrats à durée déterminée courts (CDD) + non applicable si: - l'une de ces conditions: + une de ces conditions: - durée contrat > 3 #cette information est déjà contenue dans la formule, mais ça ne fait pas de mal de l'expliciter ici - - événements . CDD poursuivi en CDI + - événement . CDD poursuivi en CDI + formule: multiplication: assiette: assiette cotisations sociales plafond: 4 * plafond sécurité sociale taux: logique numérique: - motif . accroissement temporaire activité: + motif . classique . accroissement activité: durée contrat <= 1: 3% # TODO 1 mois, pas 1 rien, évidemment durée contrat <= 3: 1.5% - motif . usage: + motif . classique . usage: durée contrat <= 3: 0.5% + + références: La mojoration de la contribution chômage: https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/les-taux-de-cotisations/lassurance-chomage-et-lags/la-majoration-de-la-contribution.html Circulaire Unédic: http://www.unedic.org/sites/default/files/ci201317_1.pdf diff --git a/règles/rémunération-travail/cotisations/agirc.yaml b/règles/rémunération-travail/cotisations/agirc.yaml index 7c3d149d1..544f787e3 100644 --- a/règles/rémunération-travail/cotisations/agirc.yaml +++ b/règles/rémunération-travail/cotisations/agirc.yaml @@ -1,6 +1,5 @@ -- Cotisation: AGIRC - attache: Salariat - attributs: +- contrat salarié: AGIRC + cotisation: branche: retraite type de retraite: complémentaire destinataire: AGIRC diff --git a/règles/rémunération-travail/cotisations/ancienne-notation/agff.1.yaml b/règles/rémunération-travail/cotisations/ancienne-notation/agff.1.yaml deleted file mode 100644 index c7f3728fb..000000000 --- a/règles/rémunération-travail/cotisations/ancienne-notation/agff.1.yaml +++ /dev/null @@ -1,96 +0,0 @@ -- variable: AGFF - description: | - Cotisation de retraite complémentaire - (Cotisation pour l'Association pour la Gestion du Fonds de Financement de l’AGIRC et de l’ARRCO) - tags: - branche: retraite - type de retraite: complémentaire - destinataire: AGFF - référence: http://www.agirc-arrco.fr/l-agirc-et-larrco/chiffres-cles - notes: | - Attention: les tranches du barème sont différentes pour les cadres et non-cadres, en valeur et en nombres. - - marginalRateTaxScale: - assiette: assiette cotisations sociales - -- variable: AGFF - tags: - dû par: employeur - concerne: - - categorie salarié = privé non cadre - - marginalRateTaxScale: - - threshold: 0 - rate: - historique: - 2001-04-01: .008 - - threshold: 1 - rate: - historique: - 2001-04-01: .009 - - threshold: 3 - rate: 0 - -- variable: AGFF - tags: - dû par: salarié - concerne: - - categorie salarié = privé non cadre - - marginalRateTaxScale: - - threshold: 0 - rate: - historique: - 2001-04-01: .008 - - threshold: 1 - rate: - historique: - 2001-04-01: .009 - - threshold: 3 - rate: 0 - -- variable: AGFF - tags: - dû par: salarié - concerne: - - categorie salarié = privé cadre - - marginalRateTaxScale: - - threshold: 0 - rate: - historique: - 2001-04-01: .008 - - threshold: 1 - rate: - historique: - 2001-04-01: .009 - - threshold: 4 - rate: - historique: - 2016-01-01: .009 - 2001-04-01: 0 - - threshold: 8 - rate: 0 - -- variable: AGFF - tags: - dû par: employeur - concerne: - - categorie salarié = privé cadre - - marginalRateTaxScale: - - threshold: 0 - rate: - historique: - 2001-04-01: .012 - - threshold: 1 - rate: - historique: - 2001-04-01: .013 - - threshold: 4 - rate: - historique: - 2016-01-01: .013 - 2001-04-01: 0 - - threshold: 8 - rate: 0 diff --git a/règles/rémunération-travail/cotisations/ancienne-notation/agirc.1.yaml b/règles/rémunération-travail/cotisations/ancienne-notation/agirc.1.yaml deleted file mode 100644 index 95fdea01d..000000000 --- a/règles/rémunération-travail/cotisations/ancienne-notation/agirc.1.yaml +++ /dev/null @@ -1,62 +0,0 @@ -- variable: AGIRC - description: | - Cotisation de retraite complémentaire cadre, complémentant le régime ARRCO - (pour l'Association Générale des Institutions de Retraite des Cadres) - tags: - branche: retraite - type de retraite: complémentaire - destinataire: AGIRC - référence: http://www.agirc-arrco.fr/l-agirc-et-larrco/chiffres-cles - concerne: - - categorie salarié = privé cadre - notes: | - Il éxiste une tranche C, de 4 à 8 fois la base, sur laquelle la répartition des cotisations est décidée au sein de l’entreprise jusqu’à 20 %. De 20 % à 20,30 %, la répartition est la suivante : 66,67 % à la charge du salarié et 33,33 % pour l’employeur. - - marginalRateTaxScale: - assiette: assiette cotisations sociales - -- variable: AGIRC - tags: - dû par: employeur - marginalRateTaxScale: - - threshold: 0 - rate: 0 - - threshold: 1 - rate: - historique: - 2016-01-01: .1275 - 2015-01-01: .1275 - 2014-01-01: .1268 - 2006-01-01: .126 - 1999-01-01: .125 - 1998-01-01: .11875 - 1997-01-01: .1125 - 1996-01-01: .10625 - 1995-01-01: .10 - 1994-01-01: .0847 - 1993-01-01: .0702 - - threshold: 8 - rate: 0 - -- variable: AGIRC - tags: - dû par: salarié - marginalRateTaxScale: - - threshold: 0 - rate: 0 - - threshold: 1 - rate: - historique: - 2016-01-01: .078 - 2015-01-01: .078 - 2014-01-01: .0775 - 2006-01-01: .077 - 1999-01-01: .075 - 1998-01-01: .06875 - 1997-01-01: .0625 - 1996-01-01: .05625 - 1995-01-01: .05 - 1994-01-01: .0363 - 1993-07-01: .0234 - - threshold: 8 - rate: 0 diff --git a/règles/rémunération-travail/cotisations/ancienne-notation/ags.1.yaml b/règles/rémunération-travail/cotisations/ancienne-notation/ags.1.yaml deleted file mode 100644 index 2974fb06c..000000000 --- a/règles/rémunération-travail/cotisations/ancienne-notation/ags.1.yaml +++ /dev/null @@ -1,35 +0,0 @@ -- variable: AGS - description: Cotisation au Régime de Garantie des Salaires - tags: - - plafonnée - - dû par: employeur - ne concerne pas: - - assimilé salarié - reference: https://www.service-public.fr/professionnels-entreprises/vosdroits/F31409 - linear: - assiette: assiette cotisations sociales - limit: 4 * plafond sécurité sociale - historique: - 2017-01-01: 0.0025 - 2016-01-01: 0.0025 - 2011-04-01: 0.003 - 2009-11-01: 0.004 - 2009-08-01: 0.003 - 2006-07-01: 0.0015 - 2006-01-01: 0.0025 - 2005-04-01: 0.0035 - 2003-09-01: 0.0045 - 2003-01-01: 0.0035 - 2002-07-01: 0.003 - 2002-01-01: 0.002 - 2001-01-01: 0.001 - 2000-07-01: 0.0015 - 1999-07-01: 0.002 - 1995-07-01: 0.0025 - 1993-07-01: 0.0035 - notes: | - - taux différent pour le personnel intérimaire des entreprises de travail temporaire - - Ne sont pas assujetties : - - les personnes morales de droit public, - - les syndicats de copropriété, - - les particuliers employeurs. diff --git a/règles/rémunération-travail/cotisations/ancienne-notation/apec.1.yaml b/règles/rémunération-travail/cotisations/ancienne-notation/apec.1.yaml deleted file mode 100644 index 35ff0f124..000000000 --- a/règles/rémunération-travail/cotisations/ancienne-notation/apec.1.yaml +++ /dev/null @@ -1,48 +0,0 @@ -- variable: APEC - description: | - Cotisation de retraite complémentaire cadre, pour le fonctionnement de l'APEC - (Association Pour l’Emploi des Cadres) - tags: - branche: retraite - type de retraite: complémentaire - destinataire: APEC - - référence: http://www.agirc-arrco.fr/l-agirc-et-larrco/chiffres-cles - avertissements: | - Avant 2011, il y avait une cotisation forfaitaire au lieu de la tranche A - -- variable: APEC - tags: - dû par: employeur - marginalRateTaxScale: - - threshold: 0 - rate: - historique: - 2016-01-01: 0.00036 - 2011-01-01: 0.00036 - 1993-07-01: 0 - - threshold: 0 - rate: - historique: - 2016-01-01: 0.00036 - 1993-07-01: 0.00036 - - threshold: 4 - rate: 0 - -- variable: APEC - tags: - dû par: salarié - marginalRateTaxScale: - - threshold: 0 - rate: - historique: - 2016-01-01: 0.00024 - 2011-01-01: 0.00024 - 1993-07-01: 0 - - threshold: 0 - rate: - historique: - 2016-01-01: 0.00024 - 1993-07-01: 0.00024 - - threshold: 4 - rate: 0 diff --git a/règles/rémunération-travail/cotisations/ancienne-notation/arcco.1.yaml b/règles/rémunération-travail/cotisations/ancienne-notation/arcco.1.yaml deleted file mode 100644 index d910c43ba..000000000 --- a/règles/rémunération-travail/cotisations/ancienne-notation/arcco.1.yaml +++ /dev/null @@ -1,113 +0,0 @@ -- variable: ARRCO - description: > - Cotisation de retraite complémentaire pour tous les salariés du secteur prive, - (pour l'Association pour le Régime de Retraite Complémentaire des salariés) - référence: http://www.agirc-arrco.fr/l-agirc-et-larrco/chiffres-cles - tags: - branche: retraite - type de retraite: complémentaire - destinataire: ARRCO - - marginalRateTaxScale: - assiette: assiette cotisations sociales - - -- variable: ARRCO - tags: - dû par: employeur - concerne: - - categorie salarié = privé cadre - marginalRateTaxScale: - - threshold: 0 - rate: - historique: - 2016-01-01: .0465 - 2015-01-01: .0465 - 2014-01-01: .0458 - 1999-01-01: .045 - 1998-01-01: .04125 - 1997-01-01: .0375 - 1996-01-01: .03375 - 1993-01-01: .02952 - - threshold: 1 - rate: 0 - -- variable: ARRCO - tags: - dû par: salarié - concerne: - - categorie salarié = privé cadre - marginalRateTaxScale: - - threshold: 0 - rate: - historique: - 2016-01-01: .031 - 2015-01-01: .031 - 2014-01-01: .0305 - 1999-01-01: .03 - 1998-01-01: .0275 - 1997-01-01: .025 - 1996-01-01: .0225 - 1993-01-01: .01968 - - threshold: 1 - rate: 0 - -- variable: ARRCO - tags: - dû par: employeur - concerne: - - categorie salarié = privé non cadre - marginalRateTaxScale: - - threshold: 0 - rate: - historique: - 2016-01-01: .0465 - 2015-01-01: .0465 - 2014-01-01: .0458 - 1999-01-01: .045 - 1998-01-01: .04125 - 1997-01-01: .0375 - 1996-01-01: .03375 - 1993-07-01: .02952 - - threshold: 1 - rate: - historique: - 2016-01-01: .1215 - 2015-01-01: .1215 - 2014-01-01: .1208 - 2005-01-01: .12 - 2004-01-01: .105 - 2002-01-01: .09 - 2000-01-01: .075 - - threshold: 3 - rate: 0 - -- variable: ARRCO - tags: - dû par: salarié - concerne: - - categorie salarié = privé non cadre - marginalRateTaxScale: - - threshold: 0 - rate: - historique: - 2016-01-01: .031 - 2015-01-01: .031 - 2014-01-01: .0305 - 1999-01-01: .03 - 1998-01-01: .0275 - 1997-01-01: .025 - 1996-01-01: .0225 - 1993-01-01: .01968 - - threshold: 1 - rate: - historique: - 2016-01-01: .081 - 2015-01-01: .081 - 2014-01-01: .0805 - 2005-01-01: .08 - 2004-01-01: .07 - 2002-01-01: .06 - 1993-01-01: .05 - - threshold: 3 - rate: 0 diff --git a/règles/rémunération-travail/cotisations/ancienne-notation/chomage.1.yaml b/règles/rémunération-travail/cotisations/ancienne-notation/chomage.1.yaml deleted file mode 100644 index f10b8a210..000000000 --- a/règles/rémunération-travail/cotisations/ancienne-notation/chomage.1.yaml +++ /dev/null @@ -1,71 +0,0 @@ -- variable: chomage - description: Cotisation d’assurance chômage - tags: - - plafonnée - - branche: chomage - collecteur: URSSAF - destinataire: Pôle emploi - ne concerne pas: - - assimilé salarié - linear: - assiette: assiette cotisations sociales - limit: 4 * plafond sécurité sociale - -- variable: chomage - tags: - dû par: employeur - linear: - historique: - 2015-01-01: 0.04 - 2007-01-01: 0.04 - 2006-01-01: 0.0404 - 2003-01-01: 0.04 - 2002-07-01: 0.037 - 2002-01-01: 0.036 - 2001-04-01: 0.037 - 2001-01-01: 0.0499 - 1997-01-01: 0.0526 - 1994-01-01: 0.0547 - 1993-08-01: 0.0538 - 1993-07-01: 0.0483 - -- variable: chomage - tags: - dû par: salarié - linear: - historique: - 2015-01-01: .024 - 2007-01-01: .024 - 2006-01-01: .0244 - 2003-01-01: .024 - 2002-07-01: .021 - 2002-01-01: .02 - 2001-07-01: .021 - 2001-04-01: .026 - 2001-01-01: .0349 - 1997-01-01: .036 - 1994-01-01: .0386 - 1993-07-01: .03770 - -- variable: chomage - description: Majoration des contributions patronales d’assurance chômage - complément: oui - tags: - dû par: employeur - références: - - circulaire Unédic du 29 juillet 2013 précise les modalités d’application du dispositif - - https://www.urssaf.fr/portail/home/employeur/calculer-les-cotisations/les-taux-de-cotisations/lassurance-chomage-et-lags/la-majoration-de-la-contribution.html - notes: | - - L'URSSAF liste à la fois des conditions pour "Les CDD concernés par l’application de la majoration" et pour "Les contrats de travail exclus de la majoration". Un doute persiste : difficile de savoir si les premières suffisent au calcul (donc que les deuxièmes sont là pour enlever les doutes) ou si les deuxièmes peuvent faire exception... - - Depuis le 1er juillet 2013 - - l'URSSAF explique longuement la notion de durée du CDD : "Comment déterminer la durée du CDD ?" - concerne: - - catégorie salarié = CDD - logique numérique: # première valeur trouvée, sinon 0 - contrat de travail durée = CDD: - - embauche en CDI suivant le CDD: 0 - - CDD type accroissement temporaire d'activité: - contrat de travail durée ≤ 1 mois: 0.03 - contrat de travail durée ≤ 3 mois: 0.015 - - CDD type usage # faire le calcul !! - contrat de travail durée ≤ 3 mois: 0.005 diff --git a/règles/rémunération-travail/cotisations/ancienne-notation/cotisation_exceptionnelle_temporaire.1.yaml b/règles/rémunération-travail/cotisations/ancienne-notation/cotisation_exceptionnelle_temporaire.1.yaml deleted file mode 100644 index 48b48c0f8..000000000 --- a/règles/rémunération-travail/cotisations/ancienne-notation/cotisation_exceptionnelle_temporaire.1.yaml +++ /dev/null @@ -1,34 +0,0 @@ -- variable: cotisation exceptionnelle temporaire - tags: - branche: retraite - type de retraite: complémentaire - destinataire: AGIRC - concerne: - - categorie salarié = privé cadre - linear: - assiette: assiette cotisations sociales - limit: 8 * plafond sécurité sociale - -- variable: cotisation exceptionnelle temporaire - tags: - dû par: employeur - linear: - historique: - 2016-01-01: .0022 - 2001-01-01: .0022 - 2000-01-01: .0017 - 1999-01-01: .0013 - 1998-01-01: .0009 - 1997-01-01: .00044 - -- variable: cotisation exceptionnelle temporaire - tags: - dû par: salarié - linear: - historique: - 2016-01-01: .0013 - 2001-01-01: .0013 - 2000-01-01: .0011 - 1999-01-01: .0008 - 1998-01-01: .0005 - 1997-01-01: .00026 diff --git a/règles/rémunération-travail/cotisations/ancienne-notation/formation_professionnelle.1.yaml b/règles/rémunération-travail/cotisations/ancienne-notation/formation_professionnelle.1.yaml deleted file mode 100644 index 3871b2ff8..000000000 --- a/règles/rémunération-travail/cotisations/ancienne-notation/formation_professionnelle.1.yaml +++ /dev/null @@ -1,34 +0,0 @@ -- variable: contribution formation professionnelle - tags: - dû par: employeur - collecteur: OPCA - notes: | - - Le seuil supérieur disparaît en 2016 et se confond avec le seuil des TPE - - A faire : majoration pour les entreprises de travail temporaire - local: - seuil: - historique: - 2016-01-01: 11 - passé: 10 - concerne: - effectif entreprise >= 20: - historique: - 2016-01-01: 0.01 - 2015-01-01: 0.01 - 2004-01-01: 0.016 - 1993-01-01: 0.015 - 1992-01-01: 0.014 - effectif entreprise >= seuil: - historique: - 2016-01-01: 0.01 - 2015-01-01: 0.01 - 2005-01-01: 0.0105 - 2004-01-01: 0.016 - 1993-01-01: 0.015 - 1992-01-01: 0.014 - effectif entreprise < seuil:: - historique: - 2016-01-01: 0.0055 - 2005-01-01: 0.0055 - 2004-01-01: 0.004 - 1993-01-01: 0.0015 diff --git a/règles/rémunération-travail/cotisations/ancienne-notation/maladie.1.yaml b/règles/rémunération-travail/cotisations/ancienne-notation/maladie.1.yaml deleted file mode 100644 index f24b02f98..000000000 --- a/règles/rémunération-travail/cotisations/ancienne-notation/maladie.1.yaml +++ /dev/null @@ -1,78 +0,0 @@ -- variable: maladie - tags: - branche: maladie - linear: - assiette: assiette cotisations sociales - -- variable: maladie - tags: - dû par: employeur - linear: - historique: - 2016-01-01: 0.04 - 2007-01-01: 0.04 - 2006-01-01: 0.0404 - 2003-01-01: 0.04 - 2002-07-01: 0.037 - 2002-01-01: 0.036 - 2001-04-01: 0.037 - 2001-01-01: 0.0499 - 1997-01-01: 0.0526 - 1994-01-01: 0.0547 - 1993-08-01: 0.0538 - 1993-07-01: 0.0483 - -- variable: maladie - tags: - dû par: salarié - linear: - historique: - 2016-01-01: .024 - 2007-01-01: .024 - 2006-01-01: .0244 - 2003-01-01: .024 - 2002-07-01: .021 - 2002-01-01: .02 - 2001-07-01: .021 - 2001-04-01: .026 - 2001-01-01: .0349 - 1997-01-01: .036 - 1994-01-01: .0386 - 1993-07-01: .03770 - -# TODO pourquoi pas "s'ajoute à : maladie" ? -- variable: maladie - complément: oui - # Ceci signifie que cette spécification ne remplace pas - # la variable de base du même nom, mais s'y ajoute ! - # Pourrait aussi être exprimé comme - # règle: + - # par opposition au défaut d'écrasement par spécificité de tags - # description: Complément de cotisation maladie spécifique au régime de sécurité sociale d'Alsace-Moselle - # référence: https://baseircantec.retraites.fr/cotisations-assurance-maladie-alsace-moselle.html - tags: - dû par: salarié - concerne: - - régime géographique = Alsace Moselle - linear: - # base: selon cette source, la base est l'assiette de la CSG : https://baseircantec.retraites.fr/cotisations-assurance-maladie-alsace-moselle.html - # information non retrouvée ailleurs - historique: - 2012-01-01: 1.5 - 2008-01-01: 1.6 - 2007-07-01: 1.7 - 2006-01-01: 1.8 - 2003-01-01: 1.7 - 1999-07-01: 1.5 - 1998-01-07: 1.25 - 1994-01-01: 1 - 1989-09-01: 0.75 - # - # exception: - # si: régime = agricole - # historique: - # 2014-01-01: 1.1 - # 2011-07-01: 1.2 - # 2008-07-01: 1.3 - # 2007-01-01: 1.4 - # 2003-01-01: 1.5 diff --git a/règles/rémunération-travail/cotisations/ancienne-notation/participation_effort_construction.yaml b/règles/rémunération-travail/cotisations/ancienne-notation/participation_effort_construction.yaml deleted file mode 100644 index ae2682e97..000000000 --- a/règles/rémunération-travail/cotisations/ancienne-notation/participation_effort_construction.yaml +++ /dev/null @@ -1,25 +0,0 @@ -- variable: participation effort construction - description: - - Participation des employeurs à l'effort de construction - - Dispositif du 1 % logement - - référence: https://www.service-public.fr/professionnels-entreprises/vosdroits/F22583 - # TODO c'est une cotisation à versement particulier : plusieurs possibilités - tags: - branche: aucune idée - dû par: employeur - concerne: - - régime = général: - - effectif entreprise >= 20 - - régime = agricole: - - effectif entreprise >= 50 - # Cette syntaxe (retour à la ligne pour un OU et indentation pour un ET) permet d'exprimer : - # l'une des concerne: - # - "régime = général et effectif_entreprise >= 20" - # - "régime = agricole et effectif_entreprise >= 50" - - linear: - assiette: assiette cotisations sociales - historique: - 2015-01: 0.0045 - 1992-01: 0.0045 diff --git a/règles/rémunération-travail/cotisations/ancienne-notation/taxe-apprentissage.1.yaml b/règles/rémunération-travail/cotisations/ancienne-notation/taxe-apprentissage.1.yaml deleted file mode 100644 index aab286381..000000000 --- a/règles/rémunération-travail/cotisations/ancienne-notation/taxe-apprentissage.1.yaml +++ /dev/null @@ -1,76 +0,0 @@ -- variable: apprentissage - description: Taxes d'apprentissage - référence: https://www.service-public.fr/professionnels-entreprises/vosdroits/F22574 - tags: - branche: aucune idée - ne concerne pas: - - entreprise_est_association_non_lucrative - linear: - assiette: assiette cotisations sociales - -- variable: apprentissage - tags: - apprentissage: taxe de base - # TODO introduire la répartition entre part régionale, quota d'app., hors quota - # https://www.service-public.fr/professionnels-entreprises/vosdroits/F22574 - linear: - historique: - 2017-01-01: 0.0068 - 2014-01-01: 0.0068 - 1993-07-01: 0.005 - -- variable: apprentissage - tags: - - régime géographique = Alsace Moselle - linear: - historique: - 2017-01-01: 0.0044 - - -- variable: apprentissage - description: Contribution supplémentaire à l'apprentissage - abbreviation: CSA - tags: - apprentissage: contribution supplémentaire - linear: - var: - - condition: "(ratio_alternants < .01) & (effectif_entreprise < 2000)" - historique: - 2016-01-01: .005 - 2013-01-01: .004 - - condition: "(ratio_alternants < .01) & (effectif_entreprise >= 2000)" - historique: - 2016-01-01: .006 - 2014-01-01: .006 - 2013-01-01: .005 - - condition: "ratio_alternants < .02" - historique: - 2016-01-01: .002 - 2015-01-01: .002 - 2013-01-01: .001 - - condition: "ratio_alternants < .03" - historique: - 2016-01-01: .002 - 2015-01-01: .002 - 2013-01-01: .001 - - condition: "ratio_alternants < .04" - historique: - 2016-01-01: .0005 - 2015-01-01: .0005 - - condition: "ratio_alternants < .05" - historique: - 2016-01-01: .0005 - 2015-01-01: 0 - -- variable: apprentissage - description: Contribution additionnelle au développement de l'apprentissage - tags: - - obsolète - - apprentissage: contribution additionnelle - linear: - historique: - 2017-01-01: 0 - 2014-01-01: 0 - 2006-01-01: 0.0018 - 2005-01-01: 0.0012 - 2004-01-01: 0.0006 diff --git a/règles/rémunération-travail/cotisations/ancienne-notation/vieillesse.1.yaml b/règles/rémunération-travail/cotisations/ancienne-notation/vieillesse.1.yaml deleted file mode 100644 index 638306264..000000000 --- a/règles/rémunération-travail/cotisations/ancienne-notation/vieillesse.1.yaml +++ /dev/null @@ -1,70 +0,0 @@ -- Cotisation: vieillesse - description: Cotisation au régime de retraite de base des salariés. - tags: - branche: retraite - type de retraite: de base - collecteur: URSSAF - destinataire: CNAV - # CTP: 100 - linear: - assiette: assiette cotisations sociales - -- variable: vieillesse - tags: - dû par: salarié - plafonnée: non - linear: - historique: - 2018-01-01: .004 - 2017-01-01: .004 - 2016-01-01: .0035 - 2015-01-01: .003 - 2014-01-01: .0025 - 2004-07-01: .001 - -- variable: vieillesse - tags: - dû par: employeur - plafonnée: non - linear: - historique: - 2018-01-01: 0.019 - 2017-01-01: 0.019 - 2016-01-01: 0.0185 - 2015-01-01: 0.018 - 2014-01-01: 0.0175 - 1991-02-01: 0.016 - -- variable: vieillesse - tags: - - plafonnée - linear: - limit: 4 * plafond sécurité sociale - -- variable: vieillesse - tags: - - plafonnée - - dû par: salarié - linear: - historique: - 2017-01-01: .0690 - 2016-01-01: .0690 - 2015-01-01: .0685 - 2014-01-01: .0680 - 2012-11-01: .0675 - 2006-01-01: .0665 - 1993-07-01: .0655 - -- variable: vieillesse - tags: - - plafonnée - - dû par: employeur - linear: - historique: - 2017-01-01: .0855 - 2016-01-01: .0855 - 2015-01-01: .085 - 2014-01-01: .0845 - 2012-11-01: .084 - 2006-01-01: .083 - 1979-01-01: .082 diff --git a/règles/rémunération-travail/cotisations/arrco.yaml b/règles/rémunération-travail/cotisations/arrco.yaml index 019eb7533..953e028fd 100644 --- a/règles/rémunération-travail/cotisations/arrco.yaml +++ b/règles/rémunération-travail/cotisations/arrco.yaml @@ -1,10 +1,9 @@ -- Cotisation: ARRCO - attache: Salariat - attributs: +- contrat salarié: ARRCO + cotisation: branche: retraite type de retraite: complémentaire destinataire: ARRCO - description: > + description: | Cotisation de retraite complémentaire pour tous les salariés du secteur privé, gérée par l'Association pour le Régime de Retraite Complémentaire des salariés références: calcul des cotisations: http://www.agirc-arrco.fr/entreprises/gerer-les-salaries/calcul-des-cotisations/ diff --git a/règles/rémunération-travail/cotisations/atmp.yaml b/règles/rémunération-travail/cotisations/atmp.yaml index 71e15d48e..a0ecd3a6b 100644 --- a/règles/rémunération-travail/cotisations/atmp.yaml +++ b/règles/rémunération-travail/cotisations/atmp.yaml @@ -1,7 +1,7 @@ -- Cotisation: ATMP +- contrat salarié: ATMP nom: Cotisation d'Accidents du Travail et Maladies Professionnelles description: Cotisation due au titre des Accidents du Travail et Maladies Professionnelles - attributs: + cotisation: branche: maladie collecteur: URSSAF responsable: CARSAT @@ -48,8 +48,7 @@ Il est accessible en ligne sur [net-entreprise](http://www.net-entreprises.fr/html/compte-accident-travail.htm) ou reçu par courrier. taux: Établissement . taux collectif ATMP -- Variable: taux collectif ATMP - attache: Établissement +- contrat salarié . ATMP : taux collectif ATMP saisie: selection: # affichera une saisie utilisateur de type