diff --git a/api/artilleryio-config.yaml b/api/artilleryio-config.yaml
index 1d98c9fd7..99d15dc1b 100644
--- a/api/artilleryio-config.yaml
+++ b/api/artilleryio-config.yaml
@@ -16,7 +16,7 @@ scenarios:
],
"situation": {
"dirigeant": "non",
- "entreprise . catégorie juridique": "non",
+ "entreprise . catégorie juridique": "''",
"entreprise . imposition": "non",
"salarié . activité partielle": "non",
"impôt . méthode de calcul . par défaut": {
diff --git a/modele-social/règles/bénéficiaire.yaml b/modele-social/règles/bénéficiaire.yaml
index 71e469f48..857b6727d 100644
--- a/modele-social/règles/bénéficiaire.yaml
+++ b/modele-social/règles/bénéficiaire.yaml
@@ -1,13 +1,13 @@
bénéficiaire:
experimental: oui
applicable si: entreprise . imposition . IS
+ valeur: non
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).
- valeur: non
# [TODO] [dividendes-indep]
bénéficiaire . compte courant d'associé:
@@ -36,8 +36,6 @@ bénéficiaire . compte courant d'associé:
Circulaire RSI C2014-001: https://www.secu-independants.fr/uploads/tx_rsirss/C2014-001.pdf
bénéficiaire . dividendes:
- valeur: oui
- applicable si: entreprise . imposition = 'IS'
bénéficiaire . dividendes . bruts:
unité: €/an
diff --git a/modele-social/règles/dirigeant.yaml b/modele-social/règles/dirigeant.yaml
index ed2c7e07d..d78e66348 100644
--- a/modele-social/règles/dirigeant.yaml
+++ b/modele-social/règles/dirigeant.yaml
@@ -8,12 +8,6 @@ dirigeant . gérant minoritaire:
dirigeant . régime social:
experimental: oui
-
- non applicable si:
- une de ces conditions:
- - entreprise . catégorie juridique . SELARL #TODO NON IMPLEMENTE
- - entreprise . catégorie juridique . SELAS #TODO NON IMPLEMENTE
- - entreprise . catégorie juridique . autre
variations:
- si: entreprise . catégorie juridique . EI . auto-entrepreneur
alors: "'auto-entrepreneur'"
diff --git a/modele-social/règles/entreprise/activité.yaml b/modele-social/règles/entreprise/activité.yaml
index b2f60a1fe..9355cbed5 100644
--- a/modele-social/règles/entreprise/activité.yaml
+++ b/modele-social/règles/entreprise/activité.yaml
@@ -103,6 +103,7 @@ entreprise . activités:
Artisanale : {{ artisanale }} ;
Libérale : {{ libérale }} ;
Agricole : {{ agricole }}
+ par défaut: oui
plusieurs possibilités:
- artisanale
- commerciale
diff --git a/modele-social/règles/entreprise/catégorie-juridique.yaml b/modele-social/règles/entreprise/catégorie-juridique.yaml
index f16d6b3d1..6ddbae76f 100644
--- a/modele-social/règles/entreprise/catégorie-juridique.yaml
+++ b/modele-social/règles/entreprise/catégorie-juridique.yaml
@@ -26,7 +26,6 @@ entreprise . catégorie juridique:
note: On se base ici sur les catégories juridiques définies par l'INSEE
références:
Liste des catégories juridique de l'INSEE: https://www.insee.fr/fr/information/2028129
- # par défaut: "'SARL'"
une possibilité:
choix obligatoire: oui
possibilités:
@@ -58,6 +57,10 @@ entreprise . catégorie juridique . EI:
par: "'micro-entreprise'"
- règle: entreprise . imposition
par: "'IR'"
+ - règle: entreprise . imposition . IR
+ par: oui
+ - règle: entreprise . imposition . IS
+ par: non
par défaut:
nom: par défaut
experimental: oui
diff --git a/modele-social/règles/entreprise/imposition.yaml b/modele-social/règles/entreprise/imposition.yaml
index be41989bb..861e5edd3 100644
--- a/modele-social/règles/entreprise/imposition.yaml
+++ b/modele-social/règles/entreprise/imposition.yaml
@@ -5,15 +5,16 @@ entreprise . imposition:
possibilités:
- IR
- IS
+
par défaut:
variations:
- si:
une de ces conditions:
- catégorie juridique . SARL . EURL
+ - catégorie juridique . SELARL . SELARL
- catégorie juridique . EI
alors: "'IR'"
- sinon: "'IS'"
-
références:
Comment seront imposés mes bénéfices ?: https://bpifrance-creation.fr/moment-de-vie/comment-seront-imposes-mes-benefices?block_id=186
Quelle imposition selon mon statut ?: https://www.economie.gouv.fr/entreprises/impot-revenu-impot-societe-statut
diff --git a/site/source/pages/Simulateurs/Dividendes.tsx b/site/source/pages/Simulateurs/Dividendes.tsx
index 91f64948d..08856b2af 100644
--- a/site/source/pages/Simulateurs/Dividendes.tsx
+++ b/site/source/pages/Simulateurs/Dividendes.tsx
@@ -38,20 +38,6 @@ export default function DividendesSimulation() {
}>
-
* {
- margin-top: 0.6rem;
- }
- justify-content: center;
-
- @media (min-width: 590px) {
- justify-content: space-between;
- }
- `}
- >
>
@@ -110,12 +96,10 @@ const DividendesSimulationGoals = () => (
dottedName="impôt . foyer fiscal . revenu imposable . autres revenus imposables"
/>
-
-
-
+
)
diff --git a/site/source/pages/Simulateurs/configs/config.ts b/site/source/pages/Simulateurs/configs/config.ts
new file mode 100644
index 000000000..f1b3300f6
--- /dev/null
+++ b/site/source/pages/Simulateurs/configs/config.ts
@@ -0,0 +1,13 @@
+import { ImmutableType } from '@/types/utils'
+
+import { PageConfig } from './types'
+
+// Replace type by commented line when we upgrade to typescript v5:
+export function config<
+ // const Base extends ImmutableType
+ Base extends ImmutableType
+>(base: ImmutableType & Base) {
+ return {
+ [base.id]: base,
+ } as ImmutableType<{ [k in Base['id']]: Base }>
+}
diff --git a/site/source/pages/Simulateurs/configs/dividendes.ts b/site/source/pages/Simulateurs/configs/dividendes.ts
index 178ef2e56..d05ae6ffc 100644
--- a/site/source/pages/Simulateurs/configs/dividendes.ts
+++ b/site/source/pages/Simulateurs/configs/dividendes.ts
@@ -14,7 +14,8 @@ export const configDividendes: SimulationConfig = {
'unité par défaut': '€/an',
situation: {
bénéficiaire: 'oui',
- salarié: 'non',
+ 'entreprise . catégorie juridique': "'SAS'",
+ 'entreprise . associés': "'unique'",
'entreprise . imposition': "'IS'",
'impôt . méthode de calcul': "'PFU'",
'dirigeant . rémunération . net . imposable': '0 €/an',
diff --git a/site/source/pages/Simulateurs/configs/indépendant.ts b/site/source/pages/Simulateurs/configs/indépendant.ts
index 051fa560f..5363fe4d0 100644
--- a/site/source/pages/Simulateurs/configs/indépendant.ts
+++ b/site/source/pages/Simulateurs/configs/indépendant.ts
@@ -43,7 +43,6 @@ export const configIndépendant: SimulationConfig = {
"entreprise . chiffre d'affaires",
'entreprise . exercice . début',
'entreprise . exercice . fin',
- 'entreprise . catégorie juridique',
'entreprise . imposition . régime',
'entreprise . activités',
'entreprise . activités . revenus mixtes',
@@ -62,6 +61,7 @@ export const configIndépendant: SimulationConfig = {
situation: {
'dirigeant . régime social': "'indépendant'",
'entreprise . imposition': "'IR'",
+ 'entreprise . catégorie juridique': "''",
salarié: 'non',
},
}
@@ -69,19 +69,24 @@ export const configIndépendant: SimulationConfig = {
export const configEntrepriseIndividuelle: SimulationConfig = {
...configIndépendant,
situation: {
- ...configIndépendant.situation,
- 'entreprise . imposition': "'IR'",
+ 'entreprise . catégorie juridique': "'EI'",
+ 'entreprise . catégorie juridique . EI . auto-entrepreneur': 'non',
},
}
export const configEirl: SimulationConfig = {
...configIndépendant,
+ situation: {
+ 'entreprise . catégorie juridique': "'EI'",
+ 'entreprise . catégorie juridique . EI . auto-entrepreneur': 'non',
+ },
}
export const configEurl: SimulationConfig = {
...configIndépendant,
situation: {
- ...configIndépendant.situation,
+ 'entreprise . catégorie juridique': "'SARL'",
+ 'entreprise . associés': "'unique'",
'entreprise . imposition': "'IS'",
},
}
diff --git a/site/source/pages/Simulateurs/configs/salarié.ts b/site/source/pages/Simulateurs/configs/salarié.ts
index af2ec1d11..4487a1bb0 100644
--- a/site/source/pages/Simulateurs/configs/salarié.ts
+++ b/site/source/pages/Simulateurs/configs/salarié.ts
@@ -55,7 +55,7 @@ export const configSalarié: SimulationConfig = {
'unité par défaut': '€/mois',
situation: {
dirigeant: 'non',
- 'entreprise . catégorie juridique': 'non',
+ 'entreprise . catégorie juridique': "''",
'entreprise . imposition': 'non',
'salarié . activité partielle': 'non',
'impôt . méthode de calcul . par défaut': {
diff --git a/site/source/pages/Simulateurs/cout-creation-entreprise/_config.ts b/site/source/pages/Simulateurs/cout-creation-entreprise/_config.ts
index be62f0ff1..45487a2dd 100644
--- a/site/source/pages/Simulateurs/cout-creation-entreprise/_config.ts
+++ b/site/source/pages/Simulateurs/cout-creation-entreprise/_config.ts
@@ -1,10 +1,8 @@
-import { ImmutableType } from '@/types/utils'
-
import CoutCreationEntreprise from '.'
-import { PageConfig } from '../configs/types'
+import { config } from '../configs/config'
import { SimulatorsDataParams } from '../metadata'
-export function configCoûtCréationEntreprise({
+export function coûtCréationEntrepriseConfig({
t,
sitePaths,
}: SimulatorsDataParams) {
@@ -48,13 +46,3 @@ export function configCoûtCréationEntreprise({
// Remove this "as const" when we upgrade to typescript v5:
} as const)
}
-
-// Replace type by commented line when we upgrade to typescript v5:
-function config<
- // const Base extends ImmutableType
- Base extends ImmutableType
->(base: ImmutableType & Base) {
- return {
- [base.id]: base,
- } as ImmutableType<{ [k in Base['id']]: Base }>
-}
diff --git a/site/source/pages/Simulateurs/impot-societe/_config.tsx b/site/source/pages/Simulateurs/impot-societe/_config.tsx
new file mode 100644
index 000000000..283c03180
--- /dev/null
+++ b/site/source/pages/Simulateurs/impot-societe/_config.tsx
@@ -0,0 +1,33 @@
+import ISSimulation, { SeoExplanations } from '.'
+import { config } from '../configs/config'
+import { SimulatorsDataParams } from '../metadata'
+import ISSimulationConfig from './_simulationConfig'
+
+export function impôtSociétéConfig({ t, sitePaths }: SimulatorsDataParams) {
+ return config({
+ id: 'coût-création-entreprise',
+ beta: true,
+ icône: '🗓',
+ tracking: 'impot-societe',
+ pathId: 'simulateurs.is',
+ iframePath: 'impot-societe',
+ meta: {
+ title: t('pages.simulateurs.is.meta.title', 'Impôt sur les sociétés'),
+ description: t(
+ 'pages.simulateurs.is.meta.description',
+ 'Calculez votre impôt sur les sociétés'
+ ),
+ color: '#E71D66',
+ },
+ shortName: t('pages.simulateurs.is.meta.title', 'Impôt sur les sociétés'),
+ title: t(
+ 'pages.simulateurs.is.title',
+ "Simulateur d'impôt sur les sociétés"
+ ),
+ nextSteps: ['salarié', 'comparaison-statuts'],
+ path: sitePaths.simulateurs.is,
+ component: ISSimulation,
+ seoExplanations: SeoExplanations,
+ simulation: ISSimulationConfig,
+ })
+}
diff --git a/site/source/pages/Simulateurs/impot-societe/_simulationConfig.ts b/site/source/pages/Simulateurs/impot-societe/_simulationConfig.ts
new file mode 100644
index 000000000..c5e34a954
--- /dev/null
+++ b/site/source/pages/Simulateurs/impot-societe/_simulationConfig.ts
@@ -0,0 +1,14 @@
+import { SimulationConfig } from '../configs/types'
+
+const ISSimulationConfig: SimulationConfig = {
+ 'unité par défaut': '€/an',
+ situation: {
+ salarié: 'non',
+ 'entreprise . catégorie juridique': "''",
+ 'entreprise . imposition': "'IS'",
+ 'entreprise . imposition . IS . éligible taux réduit': 'oui',
+ 'entreprise . TVA . franchise de TVA': 'non',
+ },
+}
+
+export default ISSimulationConfig
diff --git a/site/source/pages/Simulateurs/ImpôtSociété.tsx b/site/source/pages/Simulateurs/impot-societe/index.tsx
similarity index 62%
rename from site/source/pages/Simulateurs/ImpôtSociété.tsx
rename to site/source/pages/Simulateurs/impot-societe/index.tsx
index a66f5b9ba..ff7f61334 100644
--- a/site/source/pages/Simulateurs/ImpôtSociété.tsx
+++ b/site/source/pages/Simulateurs/impot-societe/index.tsx
@@ -9,31 +9,13 @@ import { SimulationGoal, SimulationGoals } from '@/components/Simulation'
import RuleInput from '@/components/conversation/RuleInput'
import Warning from '@/components/ui/WarningBlock'
import { FromTop } from '@/components/ui/animate'
-import useSimulationConfig from '@/components/utils/useSimulationConfig'
+import { H2 } from '@/design-system/typography/heading'
import { Body, Intro } from '@/design-system/typography/paragraphs'
-import { SimulationConfig } from '@/reducers/rootReducer'
import { situationSelector } from '@/selectors/simulationSelectors'
-import { useSitePaths } from '@/sitePaths'
-import { TrackPage } from '../../ATInternetTracking'
-
-const configIS = {
- 'unité par défaut': '€/an',
- situation: {
- 'entreprise . imposition': "'IS'",
- 'entreprise . imposition . IS . éligible taux réduit': 'oui',
- 'entreprise . TVA . franchise de TVA': 'non',
- },
-} as SimulationConfig
+import { TrackPage } from '../../../ATInternetTracking'
export default function ISSimulation() {
- const { absoluteSitePaths } = useSitePaths()
-
- useSimulationConfig({
- path: absoluteSitePaths.simulateurs.is,
- config: configIS,
- })
-
return (
<>
)
}
+
+export const SeoExplanations = (
+
+ Comment est calculé l’impôt sur les sociétés ?
+
+ L’impôt sur les sociétés s’applique aux bénéfices réalisés par les
+ sociétés de capitaux (SA, SAS, SASU, SARL, etc.) et sur option facultative
+ pour certaines autres sociétés (EIRL, EURL, SNC, etc.).
+
+
+ Il est calculé sur la base des bénéfices réalisés en France au cours de
+ l’exercice comptable. La durée d’un exercice est normalement d’un an mais
+ il peut être plus court ou plus long (notamment en début d’activité ou à
+ la dissolution de l’entreprise). Dans ce cas le barème de l’impôt est
+ pro-ratisé en fonction de la durée de l’exercice, ce qui est pris en
+ compte dans le simulateur en modifiant les dates de début et de fin de
+ l’exercice.
+
+ Taux réduit et régimes spécifiques
+
+ Les PME réalisant moins de 7,63 millions d’euros de chiffre d’affaires et
+ dont le capital est détenu à 75% par des personnes physiques bénéficient
+ d’un taux réduit d’impôt sur les sociétés. Ce taux est pris en compte sur
+ le simulateur et il n’est pour l’instant pas possible de simuler
+ l’inéligibilité aux taux réduits.
+
+
+ Enfin il existe des régimes d’impositions spécifiques avec des taux dédiés
+ pour certains types de plus-values (cession de titres, cession de
+ brevets). Ces régimes ne sont pas intégrés dans le simulateur.
+
+
+)
diff --git a/site/source/pages/Simulateurs/metadata-src.ts b/site/source/pages/Simulateurs/metadata-src.ts
index 1c0e05d4a..f4d53353a 100644
--- a/site/source/pages/Simulateurs/metadata-src.ts
+++ b/site/source/pages/Simulateurs/metadata-src.ts
@@ -1,7 +1,8 @@
import { ImmutableType } from '@/types/utils'
import { PageConfig } from './configs/types'
-import { configCoûtCréationEntreprise } from './cout-creation-entreprise/_config.js'
+import { coûtCréationEntrepriseConfig } from './cout-creation-entreprise/_config.js'
+import { impôtSociétéConfig } from './impot-societe/_config'
import { SimulatorsDataParams } from './metadata'
/**
@@ -727,27 +728,7 @@ const getMetadataSrc = (params: SimulatorsDataParams) => {
},
shortName: t('pages.simulateurs.pamc.shortname', 'PAMC'),
},
- is: {
- icône: '🗓',
- tracking: 'impot-societe',
- pathId: 'simulateurs.is',
- iframePath: 'impot-societe',
- meta: {
- title: t('pages.simulateurs.is.meta.title', 'Impôt sur les sociétés'),
- description: t(
- 'pages.simulateurs.is.meta.description',
- 'Calculez votre impôt sur les sociétés'
- ),
- color: '#E71D66',
- },
- shortName: t('pages.simulateurs.is.meta.title', 'Impôt sur les sociétés'),
- title: t(
- 'pages.simulateurs.is.title',
- "Simulateur d'impôt sur les sociétés"
- ),
- nextSteps: ['salarié', 'comparaison-statuts'],
- },
dividendes: {
icône: '🎩',
tracking: 'dividendes',
@@ -796,7 +777,8 @@ const getMetadataSrc = (params: SimulatorsDataParams) => {
nextSteps: ['déclaration-charges-sociales-indépendant'],
},
- ...configCoûtCréationEntreprise(params),
+ ...coûtCréationEntrepriseConfig(params),
+ ...impôtSociétéConfig(params),
} as const
// TODO: remove this Omit
diff --git a/site/source/pages/Simulateurs/metadata.tsx b/site/source/pages/Simulateurs/metadata.tsx
index 7e90115a6..2b351882f 100644
--- a/site/source/pages/Simulateurs/metadata.tsx
+++ b/site/source/pages/Simulateurs/metadata.tsx
@@ -26,7 +26,6 @@ import SchemeComparaisonPage from './ComparateurStatuts'
import DividendesSimulation from './Dividendes'
import ÉconomieCollaborative from './EconomieCollaborative'
import ExonérationCovid from './ExonerationCovid'
-import ISSimulation from './ImpôtSociété'
import IndépendantSimulation, {
EntrepriseIndividuelle,
IndépendantPLSimulation,
@@ -558,6 +557,7 @@ function getSimulatorsData(params: SimulatorsDataParams) {
'économie-collaborative': {
...pureSimulatorsData['économie-collaborative'],
path: sitePaths.simulateurs.économieCollaborative.index,
+ beta: true,
component: ÉconomieCollaborative,
},
'choix-statut': {
@@ -639,46 +639,10 @@ function getSimulatorsData(params: SimulatorsDataParams) {
simulation: configProfessionLibérale,
component: PAMCHome,
},
- is: {
- ...pureSimulatorsData.is,
- path: sitePaths.simulateurs.is,
- component: ISSimulation,
- seoExplanations: (
-
- Comment est calculé l’impôt sur les sociétés ?
-
- L’impôt sur les sociétés s’applique aux bénéfices réalisés par les
- sociétés de capitaux (SA, SAS, SASU, SARL, etc.) et sur option
- facultative pour certaines autres sociétés (EIRL, EURL, SNC, etc.).
-
-
- Il est calculé sur la base des bénéfices réalisés en France au cours
- de l’exercice comptable. La durée d’un exercice est normalement d’un
- an mais il peut être plus court ou plus long (notamment en début
- d’activité ou à la dissolution de l’entreprise). Dans ce cas le
- barème de l’impôt est pro-ratisé en fonction de la durée de
- l’exercice, ce qui est pris en compte dans le simulateur en
- modifiant les dates de début et de fin de l’exercice.
-
- Taux réduit et régimes spécifiques
-
- Les PME réalisant moins de 7,63 millions d’euros de chiffre
- d’affaires et dont le capital est détenu à 75% par des personnes
- physiques bénéficient d’un taux réduit d’impôt sur les sociétés. Ce
- taux est pris en compte sur le simulateur et il n’est pour l’instant
- pas possible de simuler l’inéligibilité aux taux réduits.
-
-
- Enfin il existe des régimes d’impositions spécifiques avec des taux
- dédiés pour certains types de plus-values (cession de titres,
- cession de brevets). Ces régimes ne sont pas intégrés dans le
- simulateur.
-
-
- ),
- },
+
dividendes: {
...pureSimulatorsData.dividendes,
+ beta: true,
path: sitePaths.simulateurs.dividendes,
simulation: configDividendes,
component: DividendesSimulation,
@@ -740,6 +704,7 @@ function getSimulatorsData(params: SimulatorsDataParams) {
},
'coût-création-entreprise': pureSimulatorsData['coût-création-entreprise'],
+ is: pureSimulatorsData['coût-création-entreprise'],
} as const
return data satisfies ImmutableType<{ [key: string]: Omit }>
diff --git a/site/test/regressions/simulations-impôt-société.test.ts b/site/test/regressions/simulations-impôt-société.test.ts
index 8a38e6cce..06da0973e 100644
--- a/site/test/regressions/simulations-impôt-société.test.ts
+++ b/site/test/regressions/simulations-impôt-société.test.ts
@@ -1,5 +1,7 @@
import { it } from 'vitest'
+import ISSimulationConfig from '@/pages/Simulateurs/impot-societe/_simulationConfig'
+
import impotSocieteSituations from './simulations-impôt-société.yaml'
import { runSimulations } from './utils'
@@ -10,9 +12,6 @@ it('calculate simulations-impot-société', () => {
'entreprise . imposition . IS . montant',
'entreprise . imposition . IS . contribution sociale',
],
- {
- 'entreprise . imposition': "'IS'",
- 'entreprise . imposition . IS . éligible taux réduit': 'oui',
- }
+ ISSimulationConfig.situation
)
})
diff --git a/site/test/regressions/simulations-indépendant.test.ts b/site/test/regressions/simulations-indépendant.test.ts
index 2ddf02cf7..09ce1cc79 100644
--- a/site/test/regressions/simulations-indépendant.test.ts
+++ b/site/test/regressions/simulations-indépendant.test.ts
@@ -37,7 +37,6 @@ it('calculate simulations-indépendant', () => {
"entreprise . activité . nature",
"entreprise . activités",
"entreprise . activités . commerciale",
- "entreprise . catégorie juridique",
"entreprise . charges",
"entreprise . chiffre d'affaires",
"entreprise . date de création",