diff --git a/modele-social/règles/bénéficiaire.yaml b/modele-social/règles/bénéficiaire.yaml new file mode 100644 index 000000000..884d9033b --- /dev/null +++ b/modele-social/règles/bénéficiaire.yaml @@ -0,0 +1,76 @@ +bénéficiaire: + valeur: oui + description: | + Un bénéficiaire est un actionnaire dans une SAS ou un associé dans une SARL/EURL. + + Attention: nous ne prenons en compte ici que le cas de figure de l'associé unique (SASU et EURL). + +bénéficiaire . dividendes: + # Désactivé par défaut: + # [XXX] Ou sinon ne faudrait-il pas laisser soin aux simulateurs de faire liste-noire? + valeur: non + applicable si: entreprise . imposition = 'IS' + +bénéficiaire . dividendes . bruts: + unité: €/an + par défaut: 0 €/an + inversion numérique: + avec: + - nets d'impôt + titre: Dividendes bruts revenant au bénéficiaire + +bénéficiaire . dividendes . nets: + somme: + - bruts + - (- cotisations et contributions) + titre: Dividendes nets + +bénéficiaire . dividendes . nets d'impôt: + valeur: bruts - dividendes . cotisations et contributions - impôt . dividendes + titre: Dividendes nets de cotisations et d'impôts + +bénéficiaire . dividendes . cotisations et contributions: + produit: + assiette: bruts + composantes: + - attributs: + nom: CSG non déductible + taux: + variations: + - si: impôt . méthode de calcul . PFU + alors: 9.2% + - sinon: 2.4% + - attributs: + nom: CSG déductible + taux: + variations: + - si: impôt . méthode de calcul . PFU + alors: 0% + - sinon: 6.8% + - attributs: + nom: CRDS + taux: 0.5% + - attributs: + nom: prélèvement de solidarité + taux: 7.5% + titre: Cotisations et contributions sur dividendes + références: + Fiche impots.gouv.fr: https://www.impots.gouv.fr/portail/particulier/les-revenus-mobiliers + Fiche service-public.fr: https://www.service-public.fr/particuliers/vosdroits/F2329 + Article L 136-6 du code de la sécurité sociale: https://www.legifrance.gouv.fr/codes/id/LEGISCTA000006173130/ + Article L 136-7 du code de la sécurité sociale: https://www.legifrance.gouv.fr/codes/id/LEGISCTA000006173129/ + +bénéficiaire . dividendes . imposables: + somme: + - bruts + - (- cotisations et contributions . CSG déductible) + abattement: 40% + titre: Net imposable des dividendes auxquels s'applique le barème de l'impôt sur le revenu + description: | + Un abattement de 40% s'applique dans le cas où + + - la société distributrice des dividendes relève de l'IS + - la société distributrice est française ou a son siège en UE ou dans un état ayant conclu des accords en ce sens avec la France + - les dividendes sont décidés en assemblée générale. + références: + Fiche service-public.fr: https://www.service-public.fr/professionnels-entreprises/vosdroits/F32963 diff --git a/modele-social/règles/dirigeant.yaml b/modele-social/règles/dirigeant.yaml index 9477e1aeb..7a4dc6437 100644 --- a/modele-social/règles/dirigeant.yaml +++ b/modele-social/règles/dirigeant.yaml @@ -1168,6 +1168,7 @@ dirigeant . indépendant . cotisations et contributions . CSG et CRDS: fiche Urssaf: https://www.urssaf.fr/portail/home/indépendant/mes-cotisations/quelles-cotisations/les-contributions-csg-crds/taux-de-la-csg-crds.html IJSS (amelie.fr): https://www.ameli.fr/assure/remboursements/indemnites-journalieres/arret-maladie IJSS (service-public.fr): https://www.service-public.fr/particuliers/vosdroits/F2971 + Article 154 quiquies du Code Général des Impôts: https://www.legifrance.gouv.fr/codes/article_lc/LEGIARTI000038836652/ dirigeant . indépendant . revenus étrangers: description: | diff --git a/modele-social/règles/entreprise-établissement.yaml b/modele-social/règles/entreprise-établissement.yaml index f34d10e1b..d1d23c5fc 100644 --- a/modele-social/règles/entreprise-établissement.yaml +++ b/modele-social/règles/entreprise-établissement.yaml @@ -539,6 +539,9 @@ entreprise . charges . dirigeant: valeur: dirigeant . indépendant . cotisations et contributions abattement: dirigeant . indépendant . cotisations et contributions . non déductibles +# on ne prend en compte pour l'instant que le cas entreprise unipersonnelle +entreprise . dividendes: bénéficiaire . dividendes . bruts + entreprise . ACRE: description: >- L'aide à la création ou à la reprise d'une entreprise (Acre) consiste en une diff --git a/modele-social/règles/impôt.yaml b/modele-social/règles/impôt.yaml index bc41dc165..111d13f1f 100644 --- a/modele-social/règles/impôt.yaml +++ b/modele-social/règles/impôt.yaml @@ -1,14 +1,19 @@ impôt: + valeur: oui icônes: 🏛️ description: Cet ensemble de formules est un modèle simplifié de l'impôt sur le revenu. titre: impôt sur le revenu + +impôt . montant: somme: - produit: assiette: revenu imposable taux: taux d'imposition - dirigeant . auto-entrepreneur . impôt . versement libératoire . montant + - impôt . dividendes . PFU arrondi: oui unité: €/an + titre: Montant de l'impôt sur le revenu impôt . taux d'imposition: formule: @@ -42,6 +47,7 @@ impôt . méthode de calcul: - taux neutre - taux personnalisé - barème standard + - PFU références: différence taux neutre / personnalisé: https://www.impots.gouv.fr/portail/particulier/questions/quelles-sont-les-differences-entre-les-taux-de-prelevement-la-source-proposes calcul du taux d'imposition: https://www.economie.gouv.fr/files/files/ESPACE-EVENEMENTIEL/PAS/Fiche_de_calcul_taux_simplifiee.pdf @@ -61,6 +67,11 @@ impôt . méthode de calcul . barème standard: description: Le calcul "officiel" de l'impôt, celui sur lequel l'administration fiscal se base pour calculer votre taux d'imposition. formule: impôt . méthode de calcul = 'barème standard' +impôt . méthode de calcul . PFU: + titre: avec prélèvement forfaitaire unique + description: Calcul de l'impôt des revenus de capitaux mobiliers avec le prélèvement forfaitaire unique (ou "flat tax") + formule: impôt . méthode de calcul = 'PFU' + impôt . méthode de calcul . prélèvement à la source: formule: une de ces conditions: @@ -70,12 +81,14 @@ impôt . méthode de calcul . prélèvement à la source: impôt . revenu imposable: description: | C'est le revenu à prendre en compte pour calculer l'impôt avec un taux moyen d'imposition (neutre ou personnalisé). - variations: - - si: dirigeant - alors: dirigeant . rémunération . imposable - - sinon: - valeur: contrat salarié . rémunération . net imposable - abattement: abattement contrat court + somme: + - variations: + - si: dirigeant + alors: dirigeant . rémunération . imposable + - sinon: + valeur: contrat salarié . rémunération . net imposable + abattement: abattement contrat court + - bénéficiaire . dividendes . imposables impôt . revenu imposable . abattement contrat court: description: Lorsque la durée d'un contrat de travail est inférieure à 2 mois, il est possible d'appliquer un abattement pour diminuer le montant du prélèvement à la source. @@ -352,6 +365,7 @@ impôt . foyer fiscal . revenu imposable: - dirigeant . rémunération . imposable - entreprise . imposition . IR valeur: dirigeant . rémunération . imposable + - bénéficiaire . dividendes . imposables - autres revenus imposables impôt . foyer fiscal . revenu imposable . revenu d'activité abattu: @@ -398,11 +412,14 @@ impôt . foyer fiscal . impôt à payer: - impôt sur le revenu - CEHR +# [TODO] Il semble y avoir un soucis: selon la doc impot.gouv, le "revenu brut" (sur lequel est basé l'impôt brut ci-dessous sans doute?) ne doit pas contenir les revenus de capitaux mobiliers. Donc les dividendes imposables au barème ne devraient dans ce cas pas se voir appliquer de décote pour les bas revenus. Il faudrait sans doute revoir l'ensemble des règles de calcul autour du barème pour bien séparer celles qui ne s'appliquent qu'aux revenus brut. impôt . foyer fiscal . impôt sur le revenu: unité: €/an formule: - valeur: impôt brut - abattement: décote + somme: + - valeur: impôt brut + abattement: décote + - impôt . dividendes . PFU exemples: - nom: Salaire d'un cadre situation: @@ -451,7 +468,7 @@ impôt . foyer fiscal . impôt sur le revenu . impôt brut par part: Voici le fameux barème de l'impôt sur le revenu. C'est un barème marginal à 5 tranches. Une contribution sur les hauts revenus ajoute deux tranches supplémentaires. - Attention : pour un revenu de 100 000€ annuels, le contribuable ne paiera 41 000€ d'impôt (le taux de la 4ème tranche est 41%) ! Ces 41% sont appliqués uniquement à la part de ses revenus supérieure à 72 617€. + Attention : pour un revenu de 100 000€ annuels, le contribuable ne paiera pas 41 000€ d'impôt (le taux de la 4ème tranche est 41%) ! Ces 41% sont appliqués uniquement à la part de ses revenus supérieure à 72 617€. formule: barème: assiette: quotient familial @@ -485,10 +502,9 @@ impôt . foyer fiscal . impôt sur le revenu . impôt brut: - (- quotient familial . plafond avantage) impôt . foyer fiscal . impôt sur le revenu . impôt brut . sans plafonnement: - formule: - produit: - assiette: impôt brut par part - facteur: nombre de parts + produit: + assiette: impôt brut par part + facteur: nombre de parts impôt . foyer fiscal . CEHR: unité: €/an @@ -524,3 +540,34 @@ impôt . domiciliation étranger non implémentée: niveau: avertissement description: | La retenue à la source pour les non-résident n'est pas encore implémentée. Pour en savoir plus, se référer à la [documentation fiscale](https://www.impots.gouv.fr/portail/international-particulier/je-suis-non-resident-dois-je-declarer-des-revenus-et-payer-des-impots-en) + +# [XXX] [taux effectif] En fait le calcul n'est pas top, ça sous-estime l'impact des dividendes sur l'impôt dans le cas barème car ça utilise le taux effectif +# [XXX] [taux effectif] Si on est ok avec la règle, à virer. Simplement utiliser `impôt` d'autant plus que pr l'instant on ne peut pas avoir de concept du genre "partie de l'impôt", on ne peut avoir qu'un revenu principal soumis à la simulation (le reste étant dans foyer fiscal) +impôt . dividendes: + applicable si: bénéficiaire . dividendes . bruts > 0 + variations: + - si: méthode de calcul . PFU + alors: PFU + - sinon: impôt . montant + titre: Impôt sur dividendes + +impôt . dividendes . PFU: + applicable si: impôt . méthode de calcul . PFU + produit: + assiette: bénéficiaire . dividendes . bruts + taux: 12.8% + titre: Montant de l'impôt sur dividendes au titre du Prélèvement Forfaitaire Unique (ou "flat tax") + description: | + Ce montant est à verser sous forme d'acompte au moment du versement des dividendes. + + L'acompte n'est pas obligatoire au cas où le revenu fiscal n-2 est inférieur à + + - 50 000 € pour une personne seule, + - 75 000 € pour un couple soumis à l'imposition commune (mariés ou pacsés). + + Dans ce cas, le bénéficiaire peut faire la demande de dispense au plus tard le 30 novembre + de l'année précédant celle du paiement + références: + Fiche service-public.fr: https://www.service-public.fr/professionnels-entreprises/vosdroits/F32963 + Article 200 A du Code Général des Impôts: https://www.legifrance.gouv.fr/codes/id/LEGISCTA000006179579/ + Article 117 quater du Code Général des Impôts: https://www.legifrance.gouv.fr/codes/id/LEGIARTI000036428175/#LEGIARTI000036428175 diff --git a/modele-social/règles/salarié.yaml b/modele-social/règles/salarié.yaml index 7a8046b14..0b4ce633f 100644 --- a/modele-social/règles/salarié.yaml +++ b/modele-social/règles/salarié.yaml @@ -1902,7 +1902,7 @@ contrat salarié . rémunération . net après impôt: références: Explication de l'impôt à la source: https://www.economie.gouv.fr/prelevement-a-la-source - formule: net - impôt + formule: net - impôt . montant contrat salarié . prix du travail: titre: Coût total diff --git a/mon-entreprise/cypress/integration/mon-entreprise/simulateur-dividendes.js b/mon-entreprise/cypress/integration/mon-entreprise/simulateur-dividendes.js new file mode 100644 index 000000000..ddb1fe971 --- /dev/null +++ b/mon-entreprise/cypress/integration/mon-entreprise/simulateur-dividendes.js @@ -0,0 +1,16 @@ +const fr = Cypress.env('language') === 'fr' +const inputSelector = 'input.currencyInput__input:not([name$="charges"])' +const totalSelector = 'section:nth(2)' + +describe('Simulateur auto-entrepreneur', () => { + if (!fr) { + return + } + before(() => cy.visit('/simulateurs/dividendes')) + + it('should show by default the PFU calculation at 12.8 / 17.2', () => { + cy.get(inputSelector).first().type('{selectall}5000') + cy.get(totalSelector).contains(/[cC]otisations\s+17,2\s*%/) + cy.get(totalSelector).contains(/[Ii]mpôt\s+12,8\s*%/) + }) +}) diff --git a/mon-entreprise/source/components/SimulateurWarning.tsx b/mon-entreprise/source/components/SimulateurWarning.tsx index 35dcefbeb..20cb11495 100644 --- a/mon-entreprise/source/components/SimulateurWarning.tsx +++ b/mon-entreprise/source/components/SimulateurWarning.tsx @@ -59,14 +59,6 @@ export default function SimulateurWarning({ )} - {simulateur === 'sasu' && ( -
  • - - L'impôt sur les sociétés et la gestion des dividendes ne sont pas - encore implémentés. - -
  • - )} {simulateur === 'artiste-auteur' && ( <>
  • diff --git a/mon-entreprise/source/components/StackedBarChart.tsx b/mon-entreprise/source/components/StackedBarChart.tsx index 701bf6fd3..22a51c110 100644 --- a/mon-entreprise/source/components/StackedBarChart.tsx +++ b/mon-entreprise/source/components/StackedBarChart.tsx @@ -177,7 +177,7 @@ function InnerStackedBarChart({ data, precision }: InnerStackedBarChartProps) { type StackedRulesChartProps = { data: Array<{ color?: string; dottedName: Names; title?: string }> - precision: Precision + precision?: Precision } export default function StackedRulesChart({ diff --git a/mon-entreprise/source/locales/rules-en.yaml b/mon-entreprise/source/locales/rules-en.yaml index 8a8a6fbd2..4a4592c78 100644 --- a/mon-entreprise/source/locales/rules-en.yaml +++ b/mon-entreprise/source/locales/rules-en.yaml @@ -1515,6 +1515,83 @@ artiste-auteur . revenus . traitements et salaires: résumé.fr: Le montant brut hors TVA de vos droits d'auteur (recettes précomptées) titre.en: Income in wages and salaries titre.fr: Revenu en traitements et salaires +bénéficiaire: + description.en: > + [automatic] A beneficiary is a shareholder in a SAS or a partner in a + SARL/EURL. + + + Attention: we only consider here the case of the sole shareholder (SASU and EURL). + description.fr: > + Un bénéficiaire est un actionnaire dans une SAS ou un associé dans une + SARL/EURL. + + + Attention: nous ne prenons en compte ici que le cas de figure de l'associé unique (SASU et EURL). + titre.en: '[automatic] recipient' + titre.fr: bénéficiaire +bénéficiaire . compte courant d'associé: + description.en: > + [automatic] This value is necessary to calculate the maximum amount taxable + under the PFU for a beneficiary under the self-employed workers' scheme. + + The amount taken into account is the average annual balance of the current account. It is determined by the sum of the average monthly balances of the account, divided by the number of months included in the financial year. + + The average monthly balance is equal to the sum of the daily balances, divided by the number of days in the month. The average monthly balance therefore differs from the monthly balance shown in the company's accounts. + + If the account is opened or closed during the fiscal year, the number of months in the fiscal year will be reduced to the number of months the account is in operation. An account is considered to be "operating" even if it is not moved during the fiscal year. The date on which the sums paid into the current account must be assessed is the last day of the financial year preceding the payment of interest. + description.fr: > + Cette valeur est nécessaire à calculer le montant maximal imposable au PFU + pour un bénéficiaire au régime des travailleurs indépendants. + + Le montant pris en compte est le solde moyen annuel du compte courant. Il est déterminé par la somme des soldes moyens mensuels du compte, divisée par le nombre de mois compris dans l’exercice. + + Le solde moyen mensuel est égal à l’addition des soldes journaliers, divisée par le nombre de jours dans le mois. Le solde moyen mensuel diffère donc du solde mensuel figurant dans les comptes de la société. + + En cas d’ouverture ou de clôture du compte en cours d’exercice, le nombre de mois au cours de l’exercice sera réduit au nombre de mois de fonctionnement du compte. Un compte est considéré comme « fonctionnant », même s’il n’est pas mouvementé au cours de l’exercice. La date à laquelle les sommes versées en compte courant doivent être appréciées est le dernier jour de l’exercice précédant le versement des intérêts. + question.en: '[automatic] What are the amounts paid in current account by the partner?' + question.fr: Quelles sont les sommes versées en compte courant par l'associé ? + titre.en: "[automatic] Amounts paid into a partner's current account" + titre.fr: Sommes versées en compte courant d'associé +bénéficiaire . dividendes: + titre.en: '[automatic] dividends' + titre.fr: dividendes +bénéficiaire . dividendes . bruts: + titre.en: "[automatic] Beneficiary's share of dividends" + titre.fr: Part des dividendes revenant au bénéficiaire +bénéficiaire . dividendes . cotisations et contributions: + titre.en: '[automatic] Contributions on dividends' + titre.fr: Cotisations et contributions sur dividendes +bénéficiaire . dividendes . imposables: + description.en: > + [automatic] A deduction of 40% applies in the case of + + + - the company distributing the dividends is subject to corporation tax + + - the company distributing the dividends is French or has its registered office in the EU or in a country that has concluded agreements in this regard with France + + - the dividends are decided in a general meeting. + description.fr: > + Un abattement de 40% s'applique dans le cas où + + + - la société distributrice des dividendes relève de l'IS + + - la société distributrice est française ou a son siège en UE ou dans un état ayant conclu des accords en ce sens avec la France + + - les dividendes sont décidés en assemblée générale. + titre.en: '[automatic] Net taxable amount of dividends to which the income tax + scale applies' + titre.fr: + Net imposable des dividendes auxquels s'applique le barème de l'impôt + sur le revenu +bénéficiaire . dividendes . nets: + titre.en: '[automatic] Net dividends' + titre.fr: Dividendes nets +bénéficiaire . dividendes . nets d'impôt: + titre.en: '[automatic] Dividends net of contributions and taxes' + titre.fr: Dividendes nets de cotisations et d'impôts chômage partiel: titre.en: '[automatic] short-time working' titre.fr: chômage partiel @@ -7516,6 +7593,15 @@ entreprise . association non lucrative: question.fr: S'agit-il d'une association à but non lucratif ? titre.en: non-profit organisation titre.fr: association non lucrative +entreprise . capital social: + description.en: | + [automatic] This value must include the value of the share premiums. + description.fr: | + Cette valeur doit inclure la valeur des primes d'émission. + question.en: '[automatic] What is the share capital of the company?' + question.fr: Quele est le capital social de la société ? + titre.en: '[automatic] Share capital' + titre.fr: Capital social entreprise . charges: description.en: > [automatic] @@ -7887,6 +7973,9 @@ entreprise . date de création . contrôle date passée: pas vous être trompé dans la saisie ? titre.en: '[automatic] past date check' titre.fr: contrôle date passée +entreprise . dividendes: + titre.en: '[automatic] dividends' + titre.fr: dividendes entreprise . durée d'activité: titre.en: length of service titre.fr: durée d'activité @@ -8184,6 +8273,41 @@ impôt: description.fr: Cet ensemble de formules est un modèle simplifié de l'impôt sur le revenu. titre.en: income tax titre.fr: impôt sur le revenu +impôt . dividendes: + titre.en: '[automatic] Tax on dividends' + titre.fr: Impôt sur dividendes +impôt . dividendes . PFU: + description.en: > + [automatic] This amount is to be paid in the form of a deposit at the time + of the dividend payment. + + + The advance payment is not compulsory if the tax income n-2 is less than + + - 50,000 € for a single person, + - 75,000 € for a couple subject to joint taxation (married or civil union). + + In this case, the beneficiary may apply for exemption no later than 30 November + + of the year preceding the year of payment + description.fr: > + Ce montant est à verser sous forme d'acompte au moment du versement des + dividendes. + + + L'acompte n'est pas obligatoire au cas où le revenu fiscal n-2 est inférieur à + + - 50 000 € pour une personne seule, + - 75 000 € pour un couple soumis à l'imposition commune (mariés ou pacsés). + + Dans ce cas, le bénéficiaire peut faire la demande de dispense au plus tard le 30 novembre + + de l'année précédant celle du paiement + titre.en: '[automatic] Amount of tax on dividends under the Prélèvement + Forfaitaire Unique (or "flat tax")' + titre.fr: + Montant de l'impôt sur dividendes au titre du Prélèvement Forfaitaire + Unique (ou "flat tax") impôt . domiciliation étranger non implémentée: description.en: > [automatic] Non-resident withholding tax is not yet implemented. For more @@ -8225,13 +8349,13 @@ impôt . foyer fiscal . impôt sur le revenu . impôt brut . sans plafonnement: titre.fr: sans plafonnement impôt . foyer fiscal . impôt sur le revenu . impôt brut par part: description.en: > - [automatic] This is the famous income tax schedule. It's a five-bracket - marginal scale. + [automatic] Here is the famous income tax scale. It is a marginal scale with + 5 brackets. A contribution on high incomes adds two more brackets. - Attention: for an annual income of 100 000€, the taxpayer will only pay 41 000€ tax (the rate of the 4th bracket is 41%)! This 41% is only applied to the part of his income above 72 617€. + Attention: for an income of 100 000€ per year, the taxpayer will not pay 41 000€ of tax (the rate of the 4th bracket is 41%)! This 41% is only applied to the part of his income above 72 617€. description.fr: > Voici le fameux barème de l'impôt sur le revenu. C'est un barème marginal à 5 tranches. @@ -8239,7 +8363,7 @@ impôt . foyer fiscal . impôt sur le revenu . impôt brut par part: Une contribution sur les hauts revenus ajoute deux tranches supplémentaires. - Attention : pour un revenu de 100 000€ annuels, le contribuable ne paiera 41 000€ d'impôt (le taux de la 4ème tranche est 41%) ! Ces 41% sont appliqués uniquement à la part de ses revenus supérieure à 72 617€. + Attention : pour un revenu de 100 000€ annuels, le contribuable ne paiera pas 41 000€ d'impôt (le taux de la 4ème tranche est 41%) ! Ces 41% sont appliqués uniquement à la part de ses revenus supérieure à 72 617€. titre.en: '[automatic] gross tax per unit' titre.fr: impôt brut par part impôt . foyer fiscal . impôt sur le revenu . quotient familial: @@ -8331,6 +8455,9 @@ impôt . foyer fiscal . situation de famille . veuf: impôt . foyer fiscal . taux effectif: titre.en: '[automatic] yield rate' titre.fr: taux effectif +impôt . montant: + titre.en: '[automatic] Amount of income tax' + titre.fr: Montant de l'impôt sur le revenu impôt . méthode de calcul: description.en: > We have implemented three ways to calculate income tax: @@ -8357,6 +8484,13 @@ impôt . méthode de calcul: question.fr: Comment souhaitez-vous calculer l'impôt sur le revenu ? titre.en: calculation method titre.fr: méthode de calcul +impôt . méthode de calcul . PFU: + description.en: '[automatic] Calculation of the tax on income from movable + assets with the single flat rate tax (or "flat tax")' + description.fr: Calcul de l'impôt des revenus de capitaux mobiliers avec le + prélèvement forfaitaire unique (ou "flat tax") + titre.en: '[automatic] with one-time deduction' + titre.fr: avec prélèvement forfaitaire unique impôt . méthode de calcul . barème standard: description.en: '[automatic] The "official" tax calculation, the one the tax authorities use to calculate your tax rate.' diff --git a/mon-entreprise/source/locales/ui-en.yaml b/mon-entreprise/source/locales/ui-en.yaml index c0311a0b8..b19824c4b 100644 --- a/mon-entreprise/source/locales/ui-en.yaml +++ b/mon-entreprise/source/locales/ui-en.yaml @@ -83,6 +83,7 @@ Gérant minoritaire: Managing director Gérant minoritaire ou égalitaire: Minority or equal manager Habituellement: Usually Imprimer: Print +Impôt au barème: Tax on the scale Impôts: Taxes "Indemnité chômage partiel prise en charge par l'état :": "State-paid short-time working allowance :" Indépendant: Indépendant @@ -111,6 +112,7 @@ Non: No Nous n'avons rien trouvé: We didn't find any matching registered company. Oui: Yes Outils pour les développeurs: Tools for developers +PFU (<1>"flat tax"): Flat tax Pages associées: Related pages Par statut: By status Part du salaire net maintenue: Share of net salary maintained @@ -455,6 +457,13 @@ créer: titre: Create a company warningPL: "Note: the case of regulated liberal professions is not covered" d'aides: of aid +dividendes: + warning: <0>This simulation is only given as an indication. It only concerns + French companies subject to corporation tax (IS), and does not concern + managers affiliated to the self-employed workers' regime.<1>Please also + note that this simulator makes an approximate calculation of the share of + income tax resulting from dividends, based on the effective income tax rate. + domiciliation inconnue: unknown address domiciliée à: domiciled in déductible: deductible @@ -1250,6 +1259,30 @@ pages: this, simply enter the announced compensation in the total loaded box. The simulation can then be refined by answering the various questions." + dividendes: + meta: + description: Calculate the amount of tax and contributions on dividends received. + title: Dividends + seo: <0>Dividends and distributions<1>At the end of a company's financial + year, the result of the previous year can be kept in reserve (for future + investments) or paid out as dividends. From the point of view of the + beneficiaries, this is income from movable capital, subject to specific + contributions and taxation.<2>This simulator only takes into account + the case of the natural person beneficiary and the dividends decided by + the company.<3>How are the levies on dividends + calculated?<4>Dividends may be subject to a single flat-rate + withholding tax of 30% including tax and social security contributions + (also known as<1> flat tax). Optionally, the tax scale can be + chosen. This simulator can be used to compare the two systems.<5>An + advance payment of the amount of tax (12.8%) is deducted at the time of + payment of the dividends, unless the beneficiary meets <2>certain + criteria.<6>Particular case of the manager under the + self-employed worker regime<7> Under the self-employed worker's + regime, the portion of dividends exceeding 10% of the share capital will + be subject to contributions and levies in the same way as the manager's + income.<8>This case is not yet taken into account by this + simulator. + title: Dividend Payment Simulator ei: meta: description: Calculation of income from turnover, after deduction of diff --git a/mon-entreprise/source/locales/ui-fr.yaml b/mon-entreprise/source/locales/ui-fr.yaml index b0995dd0d..3043a92c4 100644 --- a/mon-entreprise/source/locales/ui-fr.yaml +++ b/mon-entreprise/source/locales/ui-fr.yaml @@ -31,6 +31,7 @@ Gestion des données personnelles: Gestion des données personnelles Gérant majoritaire: Gérant majoritaire Gérant minoritaire: Gérant minoritaire Gérant minoritaire ou égalitaire: Gérant minoritaire ou égalitaire +Impôt au barème: Impôt au barème Indépendant: Indépendant Indépendants et dirigeants: Indépendants et dirigeants International: International @@ -45,6 +46,7 @@ Montant de l'impôt sur les sociétés: Montant de l'impôt sur les sociétés Non: Non Oui: Oui Outils pour les développeurs: Outils pour les développeurs +PFU (<1>"flat tax"): PFU (<1>"flat tax") Part employeur: Part employeur Part salarié: Part salarié Pas en auto-entrepreneur: Pas en auto-entrepreneur @@ -253,6 +255,13 @@ créer: titre: Créer une entreprise warningPL: Le cas des professions libérales réglementées n'est pas encore traité d'aides: d'aides +dividendes: + warning: <0>Cette simulation est uniquement donnée à titre indicatif. Elle ne + concerne que les sociétés françaises à l'impôt sur les sociétés (IS), et ne + concerne pas les dirigeants affiliés au régime des travailleurs + indépendants.<1>Veuillez noter également que ce simulateur fait un + calcul approximatif de la part de l'impôt sur le revenu issu des dividendes, + basé sur le taux effectif de l'impôt sur le revenu. domiciliation inconnue: domiciliation inconnue domiciliée à: domiciliée à embauche: @@ -894,6 +903,32 @@ pages: shortname: Comparaison des statuts title: "Indépendant, assimilé salarié ou auto-entrepreneur : quel régime choisir ?" + dividendes: + meta: + description: Calculez le montant de l'impôt et des cotisations sur les + dividendes perçus. + title: Dividendes + seo: <0>Les dividendes et distributions<1>A la fin de l'exercice d'une + société, le résultat de l'exercice précédent peut être conservé en + réserve (pour de futurs investissements) ou bien être versé en + dividendes. Du point de vue des bénéficiaires, ce sont des revenus de + capitaux mobiliers, soumis à des cotisations et une imposition + spécifiques.<2>Ne sont pris en compte dans ce simulateur que les cas + de figure du bénéficiaire personne physique et des dividendes décidés + par la société.<3>Comment sont calculés les prélèvements sur les + dividendes ?<4>Les dividendes peuvent être soumis au prélèvement + forfaitaire unique de 30% incluant imposition et contributions sociales + (aussi appelé<1> flat tax). Par option, le barème de l'impôt peut + être choisi. Ce simulateur peut être utilisé pour comparer les deux + régimes.<5>Un acompte du montant de l'impôt (12,8%) est prélevé au + moment du versement des dividendes, sauf si le bénéficiaire remplit + <2>certains critères.<6>Cas particulier du dirigeant au régime + du travailleur indépendant<7> Au régime du travailleur indépendant, + la part des dividendes dépassant 10% du capital social sera soumise au + cotisations et contributions au même titre que les revenus du + dirigeant.<8>Ce cas de figure n'est pas encore pris en compte par ce + simulateur. + title: Simulateur de versement de dividendes ei: meta: description: Calcul du revenu à partir du chiffre d'affaires, après déduction diff --git a/mon-entreprise/source/pages/Simulateurs/Dividendes.tsx b/mon-entreprise/source/pages/Simulateurs/Dividendes.tsx new file mode 100644 index 000000000..cfb3cab09 --- /dev/null +++ b/mon-entreprise/source/pages/Simulateurs/Dividendes.tsx @@ -0,0 +1,177 @@ +import { useContext } from 'react' +import { Trans, useTranslation } from 'react-i18next' +import { DottedName } from 'modele-social' +import { Condition } from 'Components/EngineValue' +import { SimulationGoals, SimulationGoal } from 'Components/SimulationGoals' +import { ThemeColorsContext } from 'Components/utils/colors' +import Notifications from 'Components/Notifications' +import Simulation from 'Components/Simulation' +import StackedBarChart from 'Components/StackedBarChart' +import { useDispatch } from 'react-redux' +import { useEngine } from 'Components/utils/EngineContext' +import { updateSituation } from 'Actions/actions' +import { HiddenOptionContext } from 'Components/conversation/Question' +import Warning from 'Components/ui/WarningBlock' + +export default function DividendesSimulation() { + return ( + // [XXX] [taux effectif] Update warning + <> + + +

    + Cette simulation est uniquement donnée à titre indicatif. Elle ne + concerne que les sociétés françaises à l'impôt sur les sociétés + (IS), et ne concerne pas les dirigeants affiliés au régime des + travailleurs indépendants. +

    +

    + Veuillez noter également que ce simulateur fait un calcul + approximatif de la part de l'impôt sur le revenu issu des + dividendes, basé sur le taux effectif de l'impôt sur le revenu.{' '} +

    +
    +
    + + + }> +
    * { + margin-top: 0.6rem; + } + justify-content: center; + + @media (min-width: 590px) { + justify-content: space-between; + } + `} + > + +
    + +
    +
    + + ) +} + +function OptionBarèmeSwitch() { + const dispatch = useDispatch() + const engine = useEngine() + const dottedName = 'impôt . méthode de calcul' as DottedName + const currentOptionPFU = engine.evaluate(dottedName + ' . PFU').nodeValue + const currentOptionBarème = engine.evaluate(dottedName + ' . barème standard') + .nodeValue + + return ( + + + + + ) +} + +const DividendesSimulationGoals = () => ( + + + + + + + + + + + + +) + +const DividendesExplanation = () => { + const { t } = useTranslation() + const { palettes } = useContext(ThemeColorsContext) + + return ( + +
    +
    +

    + + Répartition du total chargé + +

    +
    + +
    +
    + ) +} diff --git a/mon-entreprise/source/pages/Simulateurs/Home.tsx b/mon-entreprise/source/pages/Simulateurs/Home.tsx index 359b0f349..b776cdb9b 100644 --- a/mon-entreprise/source/pages/Simulateurs/Home.tsx +++ b/mon-entreprise/source/pages/Simulateurs/Home.tsx @@ -85,6 +85,7 @@ export default function Simulateurs() {
    + {language === 'fr' && ( )} diff --git a/mon-entreprise/source/pages/Simulateurs/configs/auto-entrepreneur.yaml b/mon-entreprise/source/pages/Simulateurs/configs/auto-entrepreneur.yaml index 2b8ae8cae..270a86b38 100644 --- a/mon-entreprise/source/pages/Simulateurs/configs/auto-entrepreneur.yaml +++ b/mon-entreprise/source/pages/Simulateurs/configs/auto-entrepreneur.yaml @@ -14,7 +14,7 @@ questions: liste: - entreprise - dirigeant - - impôt + - impôt . montant - établissement - situation personnelle non prioritaires: diff --git a/mon-entreprise/source/pages/Simulateurs/configs/dirigeant-sasu.yaml b/mon-entreprise/source/pages/Simulateurs/configs/dirigeant-sasu.yaml index 6ded709f9..6c42247e2 100644 --- a/mon-entreprise/source/pages/Simulateurs/configs/dirigeant-sasu.yaml +++ b/mon-entreprise/source/pages/Simulateurs/configs/dirigeant-sasu.yaml @@ -2,7 +2,7 @@ objectifs: - dirigeant . rémunération . totale - contrat salarié . cotisations - contrat salarié . rémunération . net - - impôt + - impôt . montant - contrat salarié . rémunération . net après impôt questions: diff --git a/mon-entreprise/source/pages/Simulateurs/configs/dividendes.yaml b/mon-entreprise/source/pages/Simulateurs/configs/dividendes.yaml new file mode 100644 index 000000000..fa6701da3 --- /dev/null +++ b/mon-entreprise/source/pages/Simulateurs/configs/dividendes.yaml @@ -0,0 +1,18 @@ +objectifs: + - bénéficiaire . dividendes . bruts + - bénéficiaire . dividendes . nets d'impôt + +questions: + # [TODO] [dividendes-indep] + # à l'affiche: + # Régime social du dirigeant: dirigeant + liste noire: + - impôt . méthode de calcul + +unité par défaut: €/an +situation: + dirigeant: "'assimilé salarié'" # [XXX] [dividendes-indep] + bénéficiaire . dividendes: oui + entreprise . imposition: "'IS'" + impôt . méthode de calcul: "'PFU'" + dirigeant . rémunération . imposable: 0 €/an diff --git a/mon-entreprise/source/pages/Simulateurs/configs/indépendant.yaml b/mon-entreprise/source/pages/Simulateurs/configs/indépendant.yaml index f6d315bb4..0ae3db706 100644 --- a/mon-entreprise/source/pages/Simulateurs/configs/indépendant.yaml +++ b/mon-entreprise/source/pages/Simulateurs/configs/indépendant.yaml @@ -22,7 +22,7 @@ questions: - établissement - dirigeant . indépendant - situation personnelle - - impôt + - impôt . montant non prioritaires: - dirigeant . indépendant . IJSS - dirigeant . indépendant . cotisations et contributions . exonérations diff --git a/mon-entreprise/source/pages/Simulateurs/configs/profession-libérale.yaml b/mon-entreprise/source/pages/Simulateurs/configs/profession-libérale.yaml index 6eb78495a..b2549fc1c 100644 --- a/mon-entreprise/source/pages/Simulateurs/configs/profession-libérale.yaml +++ b/mon-entreprise/source/pages/Simulateurs/configs/profession-libérale.yaml @@ -3,7 +3,7 @@ objectifs: - entreprise . charges - dirigeant . indépendant . cotisations et contributions - dirigeant . rémunération . nette - - impôt + - impôt . montant - dirigeant . rémunération . nette après impôt questions: @@ -17,7 +17,7 @@ questions: - entreprise - établissement - situation personnelle - - impôt + - impôt . montant non prioritaires: - dirigeant . indépendant . cotisations facultatives - dirigeant . indépendant . IJSS diff --git a/mon-entreprise/source/pages/Simulateurs/metadata.tsx b/mon-entreprise/source/pages/Simulateurs/metadata.tsx index 3063c2240..0906d27d8 100644 --- a/mon-entreprise/source/pages/Simulateurs/metadata.tsx +++ b/mon-entreprise/source/pages/Simulateurs/metadata.tsx @@ -29,6 +29,8 @@ import RémunérationSASUPreview from './images/RémunérationSASUPreview.png' import salaireBrutNetPreviewEN from './images/SalaireBrutNetPreviewEN.png' import salaireBrutNetPreviewFR from './images/SalaireBrutNetPreviewFR.png' import ISSimulation from './ImpôtSociété' +import dividendesConfig from './configs/dividendes.yaml' +import DividendesSimulation from './Dividendes' import IndépendantSimulation, { EntrepriseIndividuelle, IndépendantPLSimulation, @@ -62,6 +64,7 @@ const simulateurs = [ 'pamc', 'is', 'aides-embauche', + 'dividendes', ] as const export type SimulatorId = typeof simulateurs[number] @@ -1094,7 +1097,78 @@ export function getSimulatorsData({

    ), - nextSteps: ['salarié', 'comparaison-statuts'], + nextSteps: ['salarié', 'dividendes', 'comparaison-statuts'], + }, + dividendes: { + icône: '🎩', + tracking: 'dividendes', + path: sitePaths.simulateurs.dividendes, + iframePath: 'dividendes', + meta: { + title: t('pages.simulateurs.dividendes.meta.title', 'Dividendes'), + description: t( + 'pages.simulateurs.dividendes.meta.description', + "Calculez le montant de l'impôt et des cotisations sur les dividendes perçus." + ), + color: '#E71D66', + }, + shortName: t('pages.simulateurs.dividendes.meta.title', 'Dividendes'), + title: t( + 'pages.simulateurs.dividendes.title', + 'Simulateur de versement de dividendes' + ), + component: DividendesSimulation, + config: dividendesConfig, + seoExplanations: ( + +

    Les dividendes et distributions

    +

    + A la fin de l'exercice d'une société, le résultat de l'exercice + précédent peut être conservé en réserve (pour de futurs + investissements) ou bien être versé en dividendes. Du point de vue + des bénéficiaires, ce sont des revenus de capitaux mobiliers, soumis + à des cotisations et une imposition spécifiques. +

    +

    + Ne sont pris en compte dans ce simulateur que les cas de figure du + bénéficiaire personne physique et des dividendes décidés par la + société. +

    +

    Comment sont calculés les prélèvements sur les dividendes ?

    +

    + Les dividendes peuvent être soumis au prélèvement forfaitaire unique + de 30% incluant imposition et contributions sociales (aussi appelé + flat tax). Par option, le barème de l'impôt peut être + choisi. Ce simulateur peut être utilisé pour comparer les deux + régimes. +

    +

    + Un acompte du montant de l'impôt (12,8%) est prélevé au moment du + versement des dividendes, sauf si le bénéficiaire remplit{' '} + + certains critères + + . +

    +

    + Cas particulier du dirigeant au régime du travailleur indépendant +

    +

    + {' '} + Au régime du travailleur indépendant, la part des dividendes + dépassant 10% du capital social sera soumise au cotisations et + contributions au même titre que les revenus du dirigeant. +

    +

    + Ce cas de figure n'est pas encore pris en compte par ce simulateur. +

    +
    + ), + nextSteps: ['salarié', 'is', 'comparaison-statuts'], }, } } diff --git a/mon-entreprise/source/sitePaths.ts b/mon-entreprise/source/sitePaths.ts index 00d976280..74d736646 100644 --- a/mon-entreprise/source/sitePaths.ts +++ b/mon-entreprise/source/sitePaths.ts @@ -75,6 +75,7 @@ const sitePathsFr = { }, is: '/impot-societe', 'aides-embauche': '/aides-embauche', + dividendes: '/dividendes', }, nouveautés: '/nouveautés', stats: '/stats', @@ -141,6 +142,7 @@ const sitePathsEn = { }, is: '/corporate-tax', 'aides-embauche': '/hiring-incentives', + dividendes: '/dividends', }, nouveautés: '/news', accessibilité: '/accessibility', diff --git a/mon-entreprise/test/cycles.test.js b/mon-entreprise/test/cycles.test.js index 58d56781f..7a4018470 100644 --- a/mon-entreprise/test/cycles.test.js +++ b/mon-entreprise/test/cycles.test.js @@ -24,10 +24,16 @@ describe('DottedNames graph', () => { ).to.deep.equal([ [ "entreprise . chiffre d'affaires", + 'dirigeant . rémunération . nette après impôt', + 'dirigeant . rémunération . nette', + 'dirigeant . rémunération . totale', 'dirigeant . rémunération . impôt', + "impôt . taux d'imposition", + "impôt . taux neutre d'impôt sur le revenu", + "impôt . taux neutre d'impôt sur le revenu . barème Guadeloupe Réunion Martinique", + 'impôt . revenu imposable', 'dirigeant . rémunération . imposable', 'dirigeant . auto-entrepreneur . impôt . revenu imposable', - "entreprise . chiffre d'affaires . vente restauration hébergement", ], ]) console.warn( diff --git a/mon-entreprise/test/regressions/__snapshots__/simulations.jest.ts.snap b/mon-entreprise/test/regressions/__snapshots__/simulations.jest.ts.snap index 375d96ca5..e4b162aa0 100644 --- a/mon-entreprise/test/regressions/__snapshots__/simulations.jest.ts.snap +++ b/mon-entreprise/test/regressions/__snapshots__/simulations.jest.ts.snap @@ -164,6 +164,18 @@ exports[`calculate simulations-auto-entrepreneur: échelle de revenus 10`] = ` Notifications affichées : entreprise . chiffre d'affaires . franchise de TVA . dépassement, entreprise . imposition . IR . micro-fiscal . alerte seuil dépassés" `; +exports[`calculate simulations-dividendes: barème 1`] = `"[200,166,34,0,112,112,0]"`; + +exports[`calculate simulations-dividendes: barème 2`] = `"[20000000,11112746,3440000,5447254,11184000,11184000,49]"`; + +exports[`calculate simulations-dividendes: barème 3`] = `"[200,119,34,47,112,112,42]"`; + +exports[`calculate simulations-dividendes: barème 4`] = `"[20000,14300,3440,2260,11184,11184,20]"`; + +exports[`calculate simulations-dividendes: pfu 1`] = `"[200,140,34,26,120,120,0]"`; + +exports[`calculate simulations-dividendes: pfu 2`] = `"[20000000,14000000,3440000,2560000,12000000,12000000,0]"`; + exports[`calculate simulations-impot-société: bénéfices 1`] = ` "[0,0] Notifications affichées : entreprise . imposition . IS . information sur le report de déficit" diff --git a/mon-entreprise/test/regressions/simulations-dividendes.yaml b/mon-entreprise/test/regressions/simulations-dividendes.yaml new file mode 100644 index 000000000..15b6f5a4f --- /dev/null +++ b/mon-entreprise/test/regressions/simulations-dividendes.yaml @@ -0,0 +1,23 @@ +pfu: + - bénéficiaire . dividendes . bruts: 200 €/an + impôt . méthode de calcul: "'PFU'" + dirigeant: "'assimilé salarié'" + - bénéficiaire . dividendes . bruts: 20000000 €/an + impôt . méthode de calcul: "'PFU'" + dirigeant: "'assimilé salarié'" + +barème: + - bénéficiaire . dividendes . bruts: 200 €/an + impôt . méthode de calcul: "'barème standard'" + dirigeant: "'assimilé salarié'" + - bénéficiaire . dividendes . bruts: 20000000 €/an + impôt . méthode de calcul: "'barème standard'" + dirigeant: "'assimilé salarié'" + - bénéficiaire . dividendes . bruts: 200 €/an + impôt . méthode de calcul: "'barème standard'" + dirigeant: "'assimilé salarié'" + impôt . foyer fiscal . revenu imposable . autres revenus imposables: 500000 €/an + - bénéficiaire . dividendes . bruts: 20000 €/an + impôt . méthode de calcul: "'barème standard'" + dirigeant: "'assimilé salarié'" + impôt . foyer fiscal . revenu imposable . autres revenus imposables: 50000 €/an diff --git a/mon-entreprise/test/regressions/simulations.jest.ts b/mon-entreprise/test/regressions/simulations.jest.ts index 920ae550b..69c5e6424 100644 --- a/mon-entreprise/test/regressions/simulations.jest.ts +++ b/mon-entreprise/test/regressions/simulations.jest.ts @@ -26,6 +26,8 @@ import independentSituations from './simulations-indépendant.yaml' import professionsLibéralesSituations from './simulations-professions-libérales.yaml' import remunerationDirigeantSituations from './simulations-rémunération-dirigeant.yaml' import employeeSituations from './simulations-salarié.yaml' +import dividendesSituations from './simulations-dividendes.yaml' +import dividendesConfig from '../../source/pages/Simulateurs/configs/dividendes.yaml' type SituationsSpecs = Record const roundResult = (arr: number[]) => arr.map((x) => Math.round(x)) @@ -85,7 +87,7 @@ it('calculate simulations-indépendant', () => { 'dirigeant . rémunération . cotisations', 'dirigeant . rémunération . nette', 'dirigeant . indépendant . revenu professionnel', - 'impôt', + 'impôt . montant', 'dirigeant . rémunération . nette après impôt', 'entreprise . charges', "entreprise . chiffre d'affaires", @@ -183,3 +185,18 @@ it('calculate simulations-impot-société', () => { } ) }) + +it('calculate simulations-dividendes', () => { + runSimulations( + dividendesSituations, + [ + ...dividendesConfig.objectifs, + 'bénéficiaire . dividendes . cotisations et contributions', + 'impôt . montant', + 'impôt . revenu imposable', + 'bénéficiaire . dividendes . imposables', + "impôt . taux d'imposition", + ], + dividendesConfig.situation + ) +})