diff --git a/.prettierrc b/.prettierrc index 97e514961..5adefc0b1 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,6 +1,14 @@ { - "bracketSpacing": true, - "useTabs": true, - "semi": false, - "singleQuote": true + "bracketSpacing": true, + "useTabs": true, + "semi": false, + "singleQuote": true, + "overrides": [ + { + "files": "*.yaml", + "options": { + "printWidth": 1000 + } + } + ] } diff --git a/source/components/utils/markdown.tsx b/source/components/utils/markdown.tsx index 36d45a3b2..92a4ef118 100644 --- a/source/components/utils/markdown.tsx +++ b/source/components/utils/markdown.tsx @@ -1,4 +1,5 @@ import React from 'react' +import emoji from 'react-easy-emoji' import ReactMarkdown, { ReactMarkdownProps } from 'react-markdown' import { Link } from 'react-router-dom' @@ -13,6 +14,7 @@ function LinkRenderer({ href, children }) { return {children} } } +const TextRenderer = ({ children }) => <>{emoji(children)} type MarkdownProps = ReactMarkdownProps & { source: string @@ -28,7 +30,7 @@ export const Markdown = ({ ) diff --git a/source/règles/base.yaml b/source/règles/base.yaml index e0ac32549..d7a38d5ea 100644 --- a/source/règles/base.yaml +++ b/source/règles/base.yaml @@ -565,6 +565,7 @@ contrat salarié . assimilé salarié: - réduction générale - allocations familiales . taux réduit - contrat salarié . maladie . taux employeur . taux réduit + - lodeom - AGS - APEC - contribution au dialogue social @@ -645,7 +646,8 @@ contrat salarié . stage: - statut JEI - réduction générale - allocations familiales . taux réduit - - contrat salarié . maladie . taux employeur . taux réduit + - maladie . taux employeur . taux réduit + - lodeom - contribution d'équilibre général - retraite complémentaire - chômage @@ -1539,6 +1541,7 @@ contrat salarié . cotisations . patronales . réductions de cotisations: formule: somme: - réduction générale + - lodeom . réduction outre-mer - statut JEI . exonération de cotisations - réduction ACRE - déduction heures supplémentaires @@ -1915,6 +1918,7 @@ contrat salarié . statut JEI: - réduction générale - allocations familiales . taux réduit - contrat salarié . maladie . taux employeur . taux réduit + - lodeom contrat salarié . statut JEI . exonération de cotisations: titre: Exonération JEI @@ -2669,7 +2673,6 @@ contrat salarié . taxe d'apprentissage . base: - sinon: 0.68% contrat salarié . taxe d'apprentissage . contribution supplémentaire: - applicable si: toutes ces conditions: - entreprise . effectif >= 250 @@ -3234,8 +3237,7 @@ entreprise . rémunération totale du dirigeant: question: Quel montant pensez-vous dégager pour votre rémunération ? résumé: Dépensé par l'entreprise unité: € - description: - C'est ce que l'entreprise dépense en tout pour la rémunération du dirigeant. + description: C'est ce que l'entreprise dépense en tout pour la rémunération du dirigeant. Cette rémunération "super-brute" inclut toutes les cotisations sociales à payer. On peut aussi considérer que c'est la valeur monétaire du travail du dirigeant. @@ -4074,7 +4076,6 @@ auto-entrepreneur . cotisations et contributions . cotisations . réduction ACRE Fiche URSSAF: https://www.urssaf.fr/portail/home/independant/je-beneficie-dexonerations/accre.html service-public.fr: https://www.service-public.fr/professionnels-entreprises/vosdroits/F32318 auto-entrepreneur . cotisations et contributions . cotisations . plafond ACRE: - formule: plafond sécurité sociale temps plein / impôt . abattement . taux inversé période: flexible @@ -4634,3 +4635,251 @@ situation personnelle . RSA: titre: allocataire RSA question: Êtes-vous allocataire du RSA ? par défaut: non + +contrat salarié . lodeom: + description: | + Un ensemble assez complexe de réductions de cotisation est disponible pour les salariés d'outre-mer. + Leur fonctionnement est similaire à celui de la réduction générale sur les bas salaires : pour un certain salaire donné, 100% de réduction. + Pour un autre salaire plus élevé, 0% de réduction. Entre les deux, on trace une ligne droite. + +contrat salarié . lodeom . zone un: + titre: Zone géographique 1 (Guadeloupe, Martinique, La Réunion, Guyane) + références: + - https://www.urssaf.fr/portail/home/outre-mer/employeur/exoneration-de-cotisations-di-1/employeurs-situes-en-guadeloupe.html + formule: + une de ces conditions: + - établissement . localisation . département = 'Guadeloupe' + - établissement . localisation . département = 'La Réunion' + - établissement . localisation . département = 'Martinique' + - établissement . localisation . département = 'Guyane' + +contrat salarié . lodeom . réduction outre-mer: + aide: + type: réduction de cotisations + thème: aide bas salaires + démarches: non + + applicable si: + toutes ces conditions: + - cotisations . assiette <= plafond de l'assiette + - zone un + - une de ces conditions: + - éligible barème compétitivité + - éligible barème compétitivité renforcée + - éligible barème innovation et croissance + + période: flexible + + formule: + le minimum de: + - contrat salarié . réduction générale . assiette + - variations: + - si: + toutes ces conditions: + - éligible barème innovation et croissance + - cotisations . assiette > borne inférieure + - cotisations . assiette < 2.5 * SMIC + alors: 1.7 * paramètre T * SMIC + - si: + toutes ces conditions: + - éligible barème innovation et croissance + - cotisations . assiette > 2.5 * SMIC + alors: ((borne inférieure * paramètre T) / (borne supérieure - 2.5)) * écart au plafond de l'assiette + - sinon: multiplicateur * écart au plafond de l'assiette + note: Nous utilisons la méthode de calcul officielle de la sécurité sociale. Il serait préférable ici de réduire directement les cotisations concernées, ce qui éviterait au calcul de reposer sur les paramètres `T` publiés chaque année (ils dépendent directement des cotisaitons réduites). + références: + Estimateur URSSAF: https://www.urssaf.fr/portail/home/utile-et-pratique/estimateur-exoneration-lodeom.html?ut= + exemples: + # Barème 1 + - nom: "Maximale dans le cas d'un SMIC" + situation: + zone un: oui + cotisations . assiette: 1521.22 + valeur attendue: 488.92 + - nom: 'Salaire proche du SMIC' + situation: + zone un: oui + cotisations . assiette: 1530 + valeur attendue: 491.74 + - nom: 'Résiduelle pour un salaire médian' + situation: + zone un: oui + cotisations . assiette: 2300 + valeur attendue: 485.99 + - nom: 'Nulle au-dessus du plafond' + situation: + zone un: oui + cotisations . assiette: 3400 + valeur attendue: 0 + + # Barème 2 + - nom: "Maximale dans le cas d'un SMIC" + situation: + zone un: oui + éligible barème compétitivité renforcée: oui + cotisations . assiette: 1521.22 + valeur attendue: 488.92 + - nom: 'Salaire proche du SMIC' + situation: + zone un: oui + éligible barème compétitivité renforcée: oui + cotisations . assiette: 2565 + valeur attendue: 824.39 + - nom: 'Résiduelle pour un salaire médian' + situation: + zone un: oui + éligible barème compétitivité renforcée: oui + cotisations . assiette: 3900 + valeur attendue: 113.26 + - nom: 'Résiduelle pour un salaire médian' + situation: + zone un: oui + éligible barème compétitivité renforcée: oui + cotisations . assiette: 3000 + valeur attendue: 605.10 + - nom: 'Nulle au-dessus du plafond' + situation: + zone un: oui + éligible barème compétitivité renforcée: oui + cotisations . assiette: 4200 + valeur attendue: 0 + + # Barème 3 + - nom: "Barème 3 Maximale dans le cas d'un SMIC" + situation: + zone un: oui + éligible barème innovation et croissance: oui + cotisations . assiette: 1521.22 + valeur attendue: 488.92 + - nom: 'Barème 3' + situation: + zone un: oui + éligible barème innovation et croissance: oui + cotisations . assiette: 2565 + valeur attendue: 824.39 + - nom: 'Barème 3' + situation: + zone un: oui + éligible barème innovation et croissance: oui + cotisations . assiette: 2800 + valeur attendue: 831.04 + - nom: 'Barème 3' + situation: + zone un: oui + éligible barème innovation et croissance: oui + cotisations . assiette: 4000 + valeur attendue: 723.60 + + - nom: 'Barème 3 Nulle au-dessus du plafond' + situation: + zone un: oui + éligible barème innovation et croissance: oui + cotisations . assiette: 5500 + valeur attendue: 0 + +contrat salarié . lodeom . plafond de l'assiette: + période: flexible + formule: borne supérieure * SMIC + +contrat salarié . lodeom . écart au plafond de l'assiette: + période: flexible + formule: plafond de l'assiette - cotisations . assiette + +contrat salarié . lodeom . éligible barème compétitivité: + titre: Eligibilité au barème de compétitivité + applicable si: zone un + rend non applicable: + - réduction générale + formule: + variations: + - si: entreprise . effectif < 11 + alors: oui + - sinon: secteurs d'activité + références: + Fiche URSSAF: https://www.urssaf.fr/portail/home/outre-mer/employeur/exoneration-de-cotisations-di-1/employeurs-situes-en-guadeloupe/bareme-dit-de-competitivite.html + +contrat salarié . lodeom . éligible barème compétitivité . secteurs d'activité: + question: Votre entreprise appartient-elle à l'un de ces secteurs ? + description: | + Pour être éligible au 1er barème de l'exonération LODEOM, dit barème de compétitivité, votre entreprise doit appartenir à l'un des secteurs suivants : + + - ✈ transport aérien assurant les liaisons entre les départements et régions d’Outre-mer et entre la métropole et ces territoires, ainsi que les dessertes intérieures + - ⛵ dessertes maritimes, fluviales ou les liaisons entre départements et régions d’Outre-mer + - 🏗 bâtiment et travaux publics + - 📰 la presse + - 🎥 la production audiovisuelle + - les secteurs éligibles aux régimes de compétitivité renforcée (barème 2) ou d’innovation et de croissance (barème 3), qui ne respectent pas les conditions d’effectifs (moins de 250 salariés) ou de chiffres d’affaires annuel (moins de 50 millions d’euros). + par défaut: non + +contrat salarié . lodeom . éligible barème compétitivité renforcée: + applicable si: zone un + rend non applicable: + - réduction générale + - éligible barème compétitivité + question: Êtes-vous éligibles au barème compétitivité renforcée ? + description: | + - Chiffre d'affaire de moins de 50 millions d'euros + - Les employeurs relevant des secteurs de l’industrie, de la restauration, de l’environnement, de l’agro nutrition, des énergies renouvelables, des nouvelles technologies de l’information et de la communication et des centres d’appel, de la pêche, des cultures marines, de l’aquaculture, de l’agriculture, du tourisme y compris les activités de loisirs s’y rapportant, du nautisme, de l’hôtellerie, de la recherche et du développement ; + - Les entreprises bénéficiaires du régime de perfectionnement actif défini à l’article 256 du règlement (UE) n° 952/2013 du parlement européen et du conseil du 9 octobre 2013 établissant le code des douanes de l’Union + - En Guyane, les employeurs ayant une activité principale relevant de l’un des secteurs d’activité éligibles à la réduction d’impôt prévue à l’article 199 undecies B du code général des impôts, ou correspondant à l’une des activités suivantes : comptabilité, conseil aux entreprises, ingénierie ou études techniques. + par défaut: non + références: + Fiche URSSAF: https://www.urssaf.fr/portail/home/outre-mer/employeur/exoneration-de-cotisations-di-1/employeurs-situes-en-guadeloupe/bareme-dit-de-competitivite-renf.html + +contrat salarié . lodeom . éligible barème innovation et croissance: + applicable si: zone un + rend non applicable: + - réduction générale + - éligible barème compétitivité + - éligible barème compétitivité renforcée + question: Êtes-vous éligibles au barème innovation et croissance ? + description: | + - Sont éligibles à ce barème les employeurs occupant moins de 250 salariés et ayant réalisé un chiffre d’affaires annuel inférieur à 50 millions d’euros, au titre de la rémunération des salariés concourant essentiellement à la réalisation de projets innovants dans le domaine des technologies de l’information et de la communication. + - Les projets innovants se définissent comme des projets ayant pour but l’introduction d’un bien, d’un service, d’une méthode de production ou de distribution nouveau ou sensiblement amélioré sur le plan des caractéristiques et de l’usage auquel il est destiné. Ces projets doivent être réalisés dans les domaines suivants : + - 📱 télécommunication ; + - informatique, dont notamment programmation, conseil en systèmes et logiciels, tierce maintenance de systèmes et d’applications, gestion d‘installations, traitement des données, hébergement et activités connexes ; + - édition de portails internet et de logiciels; + - infographie, notamment conception de contenus visuels et numériques ; + - conception d’objets connectés. + - Si ces conditions sont réunies, l’exonération s’applique aux rémunérations versées aux salariés occupés principalement à la réalisation de projets innovants. + - Sont donc exclues les fonctions supports : tâches administratives financières, logistiques et de ressources humaines. + par défaut: non + références: + Fiche URSSAF: https://www.urssaf.fr/portail/home/outre-mer/employeur/exoneration-de-cotisations-di-1/employeurs-situes-en-guadeloupe/bareme-dit-innovation-et-croissa.html + +contrat salarié . lodeom . borne inférieure: + formule: + variations: + - si: éligible barème compétitivité + alors: 1.3 + - sinon: 1.7 + +contrat salarié . lodeom . borne supérieure: + formule: + variations: + - si: éligible barème compétitivité + alors: 2.2 + - si: éligible barème compétitivité renforcée + alors: 2.7 + - si: éligible barème innovation et croissance + alors: 3.5 + +contrat salarié . lodeom . multiplicateur: + note: pour le barème 1 le dénominateur vaut 0,9 + période: flexible + formule: (borne inférieure * paramètre T) / (borne supérieure - borne inférieure) + +contrat salarié . lodeom . paramètre T: + formule: + variations: + - si: + toutes ces conditions: + - zone un + - entreprise . effectif < 20 + alors: 0.3214 + - si: + toutes ces conditions: + - zone un + - entreprise . effectif >= 20 + alors: 0.3254 + note: La valeur du paramètre `T` dépend du taux FNAL. Une meilleur implémentation consiste à calculer ce paramètre comme une somme de taux. diff --git a/test/regressions/__snapshots__/simulations.jest.js.snap b/test/regressions/__snapshots__/simulations.jest.js.snap index 4905587d3..3c10e812a 100644 --- a/test/regressions/__snapshots__/simulations.jest.js.snap +++ b/test/regressions/__snapshots__/simulations.jest.js.snap @@ -224,7 +224,7 @@ exports[`calculate simulations-salarié: impôt sur le revenu 2`] = `"[41765,0,0 exports[`calculate simulations-salarié: impôt sur le revenu 3`] = `"[4076,0,0,3000,2353,2270]"`; -exports[`calculate simulations-salarié: impôt sur le revenu 4`] = `"[4076,0,0,3000,2353,2205]"`; +exports[`calculate simulations-salarié: impôt sur le revenu 4`] = `"[3915,0,0,3000,2353,2205]"`; exports[`calculate simulations-salarié: impôt sur le revenu 5`] = `"[41765,0,0,30000,24267,14656]"`;