442 lines
12 KiB
YAML
442 lines
12 KiB
YAML
une de ces conditions:
|
|
description: >-
|
|
C'est un `ou` logique.
|
|
Contient une liste de conditions.
|
|
Renvoie `oui` si l'une des conditions est applicable.
|
|
retourne: Booléen
|
|
exemples:
|
|
base: >-
|
|
âge:
|
|
formule: 17 ans
|
|
|
|
mineur émancipé:
|
|
formule: oui
|
|
|
|
peut voter:
|
|
formule:
|
|
une de ces conditions:
|
|
- âge > 18 ans
|
|
- mineur émancipé
|
|
|
|
toutes ces conditions:
|
|
description: >-
|
|
C'est un `et` logique.
|
|
Contient une liste de conditions.
|
|
Renvoie `oui` si toutes les conditions sont applicables.
|
|
argument:
|
|
- '*'
|
|
- ...
|
|
exemples:
|
|
base: >-
|
|
âge:
|
|
formule: 17 ans
|
|
|
|
citoyenneté française:
|
|
formule: oui
|
|
|
|
peut voter:
|
|
formule:
|
|
toutes ces conditions:
|
|
- citoyenneté française
|
|
- âge > 18 ans
|
|
|
|
produit:
|
|
description: >-
|
|
C'est une multiplication un peu améliorée, très utile pour exprimer les
|
|
cotisations.
|
|
|
|
Sa propriété `assiette` est multipliée par un pourcentage, `taux`, ou par un
|
|
`facteur` quand ce nom est plus approprié.
|
|
|
|
La multiplication peut être plafonnée : ce plafond sépare l'assiette en
|
|
deux, et la partie au-dessus du plafond est tout simplement ignorée. Dans ce
|
|
cas, elle se comporte comme une barème en taux marginaux à deux tranches, la
|
|
deuxième au taux nul et allant de `plafond` à l'infini.
|
|
argument:
|
|
assiette: Valeur à multiplier
|
|
taux: Taux à appliquer
|
|
facteur: Facteur multiplicatif
|
|
plafond: Plafond au dessus duquel le taux appliqué est nul
|
|
|
|
exemples:
|
|
base: >-
|
|
cotisation:
|
|
formule:
|
|
produit:
|
|
assiette: 2000 €/mois
|
|
taux: 5%
|
|
|
|
assiette plafonnée: >-
|
|
plafond sécurité sociale:
|
|
formule: 3000 €/mois
|
|
|
|
assiette cotisation:
|
|
formule: 15000 €/mois
|
|
|
|
chômage:
|
|
formule:
|
|
produit:
|
|
assiette: assiette cotisation
|
|
plafond: 400% * plafond sécurité sociale
|
|
taux: 4%
|
|
|
|
variations:
|
|
description: >-
|
|
Contient une liste de conditions (`si`) et leurs conséquences associées
|
|
(`alors`).
|
|
|
|
Pour la première condition vraie dans la liste, on retient la valeur qui lui
|
|
est associée.
|
|
|
|
Si aucune condition n'est vraie, alors ce mécanisme renvoie implicitement
|
|
`non applicable`
|
|
|
|
Ce mécanisme peut aussi être utilisé au sein d'un mécanisme compatible, tel qu'un produit ou un barème.
|
|
arguments:
|
|
- si: condition à vérifier
|
|
alors: consequence évaluée si la condition est vrai
|
|
- ...
|
|
- sinon: consequence évaluée si aucune des conditions précédente n'était applicable
|
|
exemples:
|
|
base: >-
|
|
taux réduit:
|
|
formule: oui
|
|
|
|
taux allocation familiales:
|
|
formule:
|
|
variations:
|
|
- si: taux réduit
|
|
alors: 3.45%
|
|
- sinon: 5.25%
|
|
|
|
dans un produit: >-
|
|
assiette cotisation:
|
|
formule: 2300 €/mois
|
|
|
|
taux réduit:
|
|
formule: oui
|
|
|
|
allocation familiales:
|
|
formule:
|
|
produit:
|
|
assiette: assiette cotisation
|
|
variations:
|
|
- si: taux réduit
|
|
alors:
|
|
taux: 3.45%
|
|
- sinon:
|
|
taux: 5.25%
|
|
|
|
somme:
|
|
description: >-
|
|
C'est tout simplement la somme de chaque terme de la liste. Si un des terme
|
|
n'est pas applicable, il vaut zéro.
|
|
|
|
On peut aussi retrancher des valeurs avec l'opérateur unaire `-`
|
|
arguments:
|
|
- '*'
|
|
- ...
|
|
|
|
exemples:
|
|
base: >-
|
|
exemple:
|
|
formule:
|
|
somme:
|
|
- 15.89 €
|
|
- 12% * 14 €
|
|
- (-20 €)
|
|
terme non applicable: >-
|
|
a:
|
|
formule: 50 €
|
|
|
|
b:
|
|
applicable si: non
|
|
formule: 20 €
|
|
|
|
somme:
|
|
formule:
|
|
somme:
|
|
- a
|
|
- b
|
|
- 40 €
|
|
|
|
le maximum de:
|
|
description: >-
|
|
Renvoie la valeur numérique de la liste de propositions fournie qui est la
|
|
plus grande.
|
|
|
|
Pour ajouter un plancher à une valeur, préférer l'utilisation du
|
|
mécanisme `encadrement`.
|
|
exemples:
|
|
base: >-
|
|
max:
|
|
formule:
|
|
le maximum de:
|
|
- 50
|
|
- 100
|
|
|
|
le minimum de:
|
|
description: >-
|
|
Renvoie la valeur numérique de la liste de propositions fournie qui est la
|
|
plus petite.
|
|
|
|
Pour plafonner une valeur, préférer l'utilisation du mécanisme `encadrement`.
|
|
exemples:
|
|
base: >-
|
|
min:
|
|
formule:
|
|
le minimum de:
|
|
- 50
|
|
- 100
|
|
|
|
arrondi:
|
|
description: >-
|
|
Arrondi à l'entier le plus proche, ou à une précision donnée.
|
|
exemples:
|
|
base: >-
|
|
arrondi:
|
|
formule:
|
|
arrondi:
|
|
valeur: 12.45
|
|
décimales: 1
|
|
|
|
régularisation:
|
|
description: >-
|
|
Permet de régulariser progressivement un calcul de cotisation en fonction de
|
|
variables numérique mensuelle cumulée.
|
|
|
|
Ce mécanisme spécifique est utilisé pour le calcul des cotisations
|
|
mensuelles.
|
|
|
|
arguments:
|
|
règle: règle à régulariser
|
|
valeurs cumulées:
|
|
- liste de variables cumulée mensuellement pour calculer la régularisation. Doit être
|
|
numérique, et avoir une unité `/mois`
|
|
|
|
exemples:
|
|
base: >-
|
|
brut:
|
|
formule:
|
|
somme:
|
|
- 2000 €/mois | du 01/01/2020 | au 31/05/2020
|
|
- 4000 €/mois | du 01/06/2020 | au 31/12/2020
|
|
plafond:
|
|
formule: 3000 €/mois
|
|
|
|
cotisation:
|
|
formule:
|
|
régularisation:
|
|
règle:
|
|
produit:
|
|
assiette: brut
|
|
plafond: plafond
|
|
taux: 10%
|
|
valeurs cumulées:
|
|
- brut
|
|
- plafond
|
|
|
|
cotisation en mai:
|
|
formule: cotisation | du 01/05/2020 | au 31/05/2020
|
|
|
|
cotisation en juin:
|
|
formule: cotisation | du 01/06/2020 | au 30/06/2020
|
|
|
|
cotisation en novembre:
|
|
formule: cotisation | du 01/11/2020 | au 30/11/2020
|
|
|
|
recalcul:
|
|
description: >-
|
|
Relance le calcul d'une règle dans une situation différente de la situation
|
|
courante. Permet par exemple de calculer le montant des cotisations au niveau du
|
|
SMIC, même si le salaire est plus élevé dans la situation actuelle.
|
|
|
|
exemples:
|
|
base: >-
|
|
brut:
|
|
formule: 2000€
|
|
|
|
cotisations:
|
|
formule:
|
|
produit:
|
|
assiette: brut
|
|
taux: 20%
|
|
|
|
cotisations pour un SMIC:
|
|
formule:
|
|
recalcul:
|
|
règle: cotisations
|
|
avec:
|
|
brut: 1500 €
|
|
|
|
barème:
|
|
description: C'est un barème en taux marginaux, mécanisme de calcul connu son utilisation
|
|
dans le calcul de l'impôt sur le revenu.
|
|
|
|
L'assiette est décomposée en plusieurs tranches, qui sont multipliées par un
|
|
taux spécifique.
|
|
|
|
Les tranches sont souvent exprimées sous forme de facteurs d'une variable
|
|
que l'on appelle `multiplicateur`, par exemple `1 x le plafond de la
|
|
sécurité sociale`.
|
|
exemples:
|
|
base: >-
|
|
revenu imposable:
|
|
formule: 54126 €
|
|
|
|
impôt sur le revenu:
|
|
formule:
|
|
barème:
|
|
assiette: revenu imposable
|
|
tranches:
|
|
- taux: 0%
|
|
plafond: 9807 €
|
|
- taux: 14%
|
|
plafond: 27086 €
|
|
- taux: 30%
|
|
plafond: 72617 €
|
|
- taux: 41%
|
|
plafond: 153783 €
|
|
- taux: 45%
|
|
|
|
grille:
|
|
description: >-
|
|
C'est un barème sous la forme d'une grille de correspondance. C'est le
|
|
mécanisme de calcul de l'impôt neutre, aussi appelé impôt non personnalisé.
|
|
|
|
Il est composé de tranches qui se suivent. Il suffit de trouver l'assiette
|
|
qui correspond à la tranche, et de selectionner le montant associé à
|
|
l'assiette.
|
|
exemples:
|
|
grille avec multiplicateur et unité: >-
|
|
SMIC horaire:
|
|
formule: 10 €/heure
|
|
|
|
revenu moyen:
|
|
formule:
|
|
250 €/mois
|
|
|
|
trimestres validés:
|
|
formule:
|
|
grille:
|
|
unité: trimestres validés/an
|
|
assiette: revenu moyen
|
|
multiplicateur: SMIC horaire
|
|
tranches:
|
|
- montant: 0
|
|
plafond: 150 heures/an
|
|
- montant: 1
|
|
plafond: 300 heures/an
|
|
- montant: 2
|
|
plafond: 450 heures/an
|
|
- montant: 3
|
|
plafond: 600 heures/an
|
|
- montant: 4
|
|
|
|
taux progressif:
|
|
description: >-
|
|
Ce mécanisme permet de calculer un taux progressif. On spécifie pour chaque
|
|
tranche le plafond et le taux associé. Le taux effectif renvoyé est calculé
|
|
en lissant la différence de taux entre la borne inférieure et supérieure de
|
|
l'assiette
|
|
|
|
> Par exemple, si nous nous avons les tranches suivantes :
|
|
|
|
- taux: 50% / plafond: 0
|
|
- taux: 100% / plafond: 1000
|
|
|
|
> Pour une assiette de 500, le taux retourné sera 75%, car il correspond au
|
|
> taux situé à la moitié de la tranche correspondante.
|
|
exemples:
|
|
base: >-
|
|
chiffre d'affaires:
|
|
formule: 30000 €/an
|
|
|
|
plafond:
|
|
formule: 3000 €/mois
|
|
|
|
taux réduction de cotisation:
|
|
formule:
|
|
taux progressif:
|
|
assiette: chiffre d'affaires
|
|
multiplicateur: plafond
|
|
tranches:
|
|
- taux: 100%
|
|
plafond: 75%
|
|
- taux: 0%
|
|
plafond: 100%
|
|
composantes:
|
|
description: >-
|
|
Beaucoup de cotisations sont composées de deux parties qui partagent la
|
|
méthode de calcul mais diffèrent par des paramètres différents.
|
|
|
|
Pour ne pas définir deux variables presque redondantes, on utilise le
|
|
mécanisme de composante. Il se comportera comme une somme dans les calculs,
|
|
mais son affichage sur les pages /règle sera adapté.
|
|
|
|
Il est même possible, pour les mécanismes `barème` et `produit` de garder en
|
|
commun un paramètre comme l'assiette, puis de déclarer des composantes pour
|
|
le taux.
|
|
|
|
> L'exemple le plus courant de composantes, c'est la distinction part
|
|
employeur, part salarié (ex. retraite AGIRC).
|
|
|
|
allègement:
|
|
description: >-
|
|
Permet de réduire le montant d'une variable.
|
|
Très utilisé dans le contexte des impôts.
|
|
|
|
encadrement:
|
|
description: Permet d'ajouter un plafond et/ou un plancher à une valeur.
|
|
exemples:
|
|
base: >-
|
|
assiette plafonnée:
|
|
formule:
|
|
encadrement:
|
|
plancher: 0 €
|
|
valeur: 2000 €
|
|
plafond: 1500 €
|
|
|
|
durée:
|
|
description: Permet d'obtenir le nombre de jours entre deux dates
|
|
exemples:
|
|
base: >-
|
|
date d'embauche:
|
|
formule: 14/04/2008
|
|
|
|
ancienneté en fin d'année:
|
|
unité: an
|
|
formule:
|
|
durée:
|
|
depuis: date d'embauche
|
|
jusqu'à: 31/12/2020
|
|
|
|
synchronisation:
|
|
description: Pour éviter trop de saisies à l'utilisateur, certaines informations sont
|
|
récupérées à partir de ce que l'on appelle des API. Ce sont des services
|
|
auxquels ont fait appel pour obtenir des informations sur un sujet précis.
|
|
Par exemple, l'État français fournit gratuitement l'API géo, qui permet à
|
|
partir du nom d'une ville, d'obtenir son code postal, son département, la
|
|
population etc.
|
|
|
|
Ce mécanismes `synchronisation` permet de faire le lien entre les règles de
|
|
notre système et les réponses de ces API.
|
|
|
|
inversion numérique:
|
|
description: >-
|
|
La formule de calcul de cette variable n'est pas connue, souvent elle n'a
|
|
même pas de sens. Mais le mécanisme `inversion` indique qu'elle peut être
|
|
_estimée_ à partir de l'un des _objectifs_ listés sous l'attribut `avec`. Il
|
|
faut alors renseigner une valeur cible pour cet objectif.
|
|
|
|
Voilà comment ça marche : on va donner à la variable une valeur au hasard,
|
|
calculer _l'objectif_, puis grâce à des calculs savants améliorer notre
|
|
choix jusqu'à ce que l'écart entre le calcul et la valeur cible devienne
|
|
satisfaisant.
|
|
|
|
Concrètement, si l'on demande au moteur (même indirectement) la valeur d'une
|
|
variable qui a pour formule une inversion, il va vérifier qu'une des
|
|
possibilités d'inversion a bien une valeur calculée ou saisie, et procéder à
|
|
l'inversion décrite plus haut à partir de celle-ci. Sinon, ces possibilités
|
|
d'inversions seront listées comme manquantes.
|