Dans le précédent billet, nous avons vu ensemble un exemple plutôt simpliste de paramétrage et d'utilisation des services RuleShake. Nous allons ici voir un exemple un peu plus complexe.
Pour les impatients, voici le lien vers cet exemple : https://demo.ruleshake.com/car-insurance-quote
Besoin
Prenons l'exemple d'un tarif pour un produit d'assurance automobile. Nous aurons besoin de définir :
- Un véhicule, à sélectionner à partir d'un référentiel.
- L'usage de ce véhicule (ex. Pro, Privée, etc)
- Le mode et le lieu de stationnement du véhicule, à sélectionner à partir d'un référentiel
- Les informations des conducteurs : date de naissance, date d'obtention du permis, profession
- Les antécédents du conducteur : résiliation pour sinistre, fausse déclaration, impayés ou autre raison
Nous souhaitons calculer une matrice de tarif de plusieurs formules MINI
, MEDIUM
et MAXI
avec plusieurs
fractionnements Mensuel
et Annuel
. Les garanties couvertes sont réparties dans les formules comme suit :
Mini | Medium | Maxi | |
---|---|---|---|
Responsabilité civile | ✔️ | ✔️ | ✔️ |
Bris de glace | ✔️ | ✔️ | ✔️ |
Protection juridique | ✔️ | ✔️ | ✔️ |
Incendie | ❌ | ✔️ | ✔️ |
Vol | ❌ | ✔️ | ✔️ |
Dommages tous accidents | ❌ | ❌ | ✔️ |
Les formules de calcul pour chaque garantie ont été définies de façon arbitraire pour cet exemple. Voir la partie Implémentation pour plus de détails.
Analyse
Partant de ce besoin, d'un point de vue RuleShake, on va identifier :
- Un dataset représentant la liste des véhicules
- Un dataset représentant la liste des communes (pour le lieu de stationnement)
- Une collection permettant le calcul de la matrice de tarif.
En prime, afin que l'exemple soit le plus complet possible, on va ajouter un classier associé au dataset des communes. Le classier permet de déduire une valeur à partir des données d'un record du classier auquel il est associé.
Implémentation
Référentiel des véhicules
On va commencer par créer un nouveau dataset contenant la liste des véhicules qu'on va appeler VEHICULES
:
Les propriétés de ce dataset sont :
MARQUE
: la marque du véhiculeMODELE
: le modèle du véhiculeENERGIE
: l'énergie ou type du moteur du véhiculePUISSANCE
: la puissance du véhiculeANNEE
: l'année de mise en circulation du véhicule
A cette liste de propriétés, va s'ajouter le CODE
qui est une propriété obligatoire pour chaque record d'un dataset.
Pour VEHICULES
, le CODE
contiendra le code SRA du véhicule.
Maintenant, il ne nous reste plus qu'à remplir ce dataset par des records (véhicules) :
Référentiel des communes
Passons maintenant au référentiel des communes qui va nous servir à déterminer le lieu de stationnement du véhicule.
Ce dataset, que nous appellerons COMMUNES
, va avoir comme propriétés :
PAYS
: le pays de la communeDEPARTEMENT
: le département de la communeCOMMUNE
: le nom de la commune
Nous ajoutons quelques communes de France :
Zonier
Nous allons maintenant définir le classier que nous appellerons ZONIER
lié au dataset COMMUNES
dont le but
est de calculer une valeur numérique à partir des données d'un record du dataset. Lors de l'évaluation de la collection
la valeur calculée du classier sera stockée dans la sous-variable ZONIER
de la variable de type Record
liée au
dataset COMMUNES
.
Le calcul de la valeur se fera la correspondance la plus proche dans l'ordre des propriétés :
COMMUNE
DEPARTEMENT
PAYS
Les valeurs que nous allons définir dans ce classier doivent être liées à une ou plusieurs valeurs de ces propriétés
présentes dans le dataset COMMUNES
. Pour cet exemple, nous allons créer les valeurs :
BONUS
=-10
siCOMMUNE
=BRON
ouDEPARTEMENT
=HERAULT
MALUS
=+10
siDEPARTEMENT
=AIN
AUTRE
=0
siPAYS
=FRANCE
Regardons de plus près le paramétrage de la valeur BONUS
qui est liée à plusieurs valeurs de plusieurs propriétés :
Voici quelques exemples de résolution de ce classier :
Code | Pays | Département | Commune | Zonier |
---|---|---|---|---|
59350 | FRANCE | NORD | LILLE | AUTRE |
69029 | FRANCE | RHONE | BRON | BONUS |
34172 | FRANCE | HERAULT | MONTPELLIER | BONUS |
01202 | FRANCE | AIN | LAGNIEU | MALUS |
01053 | FRANCE | AIN | BOURG EN BRESSE | MALUS |
Nous avons maintenant terminé le paramétrage dans RuleShake Referential.
Calcul de la matrice de tarif
Nous allons maintenant créer une collection dans RuleShake Catalog que nous appellerons ASSURANCE_AUTO
:
Celle-ci contiendra les variables :
VEHICULE
: une variable d'entrée de typeComposite
et contient les sous-variables :INFOS
: une variable d'entrée obligatoire de typeRecord
liée au datasetVEHICULES
USAGE
: une variable d'entrée de typeChaîne
avec comme valeurs possibles :Pro
,Privé
etPrivé et pro
:MODE_STATIONNEMENT
: une variable d'entrée de typeChaîne
avec comme valeurs possibles :Parking collectif
,Voie publique
etBox
LIEU_STATIONNEMENT
: une variable d'entée obligatoire de typeRecord
liée au datasetCOMMUNES
et incluant le classierZONIER
Ainsi, les sous-variables fournies pour la variableLIEU_STATIONNEMENT
sont :
CONDUCTEUR
: une variable d'entrée de typeComposite
et multiple, elle contient les sous-variables :PRINCIPAL
: une variable d'entrée de typeBooléen
DATE_NAISSANCE
: une variable d'entrée de typeDate
DATE_PERMIS
: une variable d'entrée de typeDate
PROFESSION
: une variable d'entrée de typeChaîne
avec comme valeurs possibles :Edutiant
,Indépendant
,Retraité
,Salarié
etRecherche d'emploi
AGE
: une variable calculée de typeNombre
qui calcul l'âge du conducteur : L'usage du mot clé_parent
permet de faire référence à l'instance deCONDUCTEUR
parente. En effet,CONDUCTEUR
étant une variable multiple, utiliserCONDUCTEUR.DATE_NAISSANCE
n'est pas possible. Cependant, si on souhaite toujours accéder au premier conducteur par exemple, on peut utiliserCONDUCTEUR[0].DATE_NAISSANCE
ANTECEDENTS
: une variable d'entée de typeComposite
et contient les sous-variables :RESIL_SINISTRE
: une variable d'entrée de typeBooléen
RESIL_FAUSSE_DECLA
: une variable d'entrée de typeBooléen
RESIL_IMPAYES
: une variable d'entrée de typeBooléen
RESIL_AUTRE
: une variable d'entrée de typeBooléen
FORMULES
: une variable d'entrée multiple de typeChaîne
avec comme valeurs possibles :Mini
,Medium
etMaxi
FRACTIONNEMENTS
: une variable d'entrée multiple de typeChaîne
avec comme valeurs possibles :Mensuel
etAnnuel
TARIF
: une variable calculée multiple de typeCOMPOSITE
que nous allons détaillez tout de suite.
La particularité de la variable multiple TARIF
est que, contrairement aux variables d'entrées, les instances ne sont
pas
renseignées en entrée du calcul, mais sont calculées à partir des valeurs des autres variables multiples.
Dans cet exemple, TARIF
boucle sur les valeurs des variables multiples FORMULES
et FRACTIONNEMENTS
ce qui nous
permet donc d'obtenir notre matrice de tarif.
Pour chaque instance de la variable TARIF
, les valeurs des variables FORMULES
et FRACTIONNEMENTS
de l'instance
sont accessibles sous le code FORMULE
et FRACTIONNEMENT
respectivement.
La variable COEF_FRACTIONNEMENT
sous TARIF
utilise FRACTIONNEMENT
et a comme formule :
if (FRACTIONNEMENT.value == "Annuel") {
return 1.1
} else {
return 0.1
}
Les formules sont écrites dans le langage mvel.
On a également la variable GARANTIES
sous TARIF
de type Composite
et inclut les sous-variables représentants les
garanties :
Toutes les garanties sont représentées par une variable de type Composite
composée de 3 sous-variables :
-
INCLUSE
: variable calculée de typeBooléen
qui indique si la garantie est incluse dans la formule/fractionnement en coursGarantie Valeur de INCLUSE
Responsabilité civile true
Bris de glace true
Protection juridique true
Incendie FORMULE.value == "Medium" || FORMULE.value == "Maxi"
Vol FORMULE.value == "Medium" || FORMULE.value == "Maxi"
Dommages tous accidents FORMULE.value == "Maxi"
-
BASE
: variable calculée de typeNumber
qui calcule le tarif de base de la garantie. Dans cet exemple, le choix des formules de calcul pour les garanties a été fait de façon complètement arbitraire :Garantie Valeur de BASE
Responsabilité civile 100 + MultipleHelper.maxBy(CONDUCTEUR, "AGE").AGE.value
Bris de glace 50 + DateHelper.extract(DateHelper.today(), "d")
Protection juridique montant = 10;
if (ANTECENDENTS.RESIL_AUTRE.value == true) {
montant += 2;
}
if (ANTECENDENTS.RESIL_FAUSSE_DECLA.value == true) {
montant += 2;
}
if (ANTECENDENTS.RESIL_IMPAYES.value == true) {
montant += 2;
}
if (ANTECENDENTS.RESIL_SINISTRE.value == true) {
montant += 2;
}
return montant;Incendie if (VEHICULE.USAGE.value == "Pro") {
return 36 + VEHICULE.LIEU_STATIONNEMENT.ZONIER.value
} else {
return 30 + VEHICULE.LIEU_STATIONNEMENT.ZONIER.value
}Vol if (VEHICULE.MODE_STATIONNEMENT.value == "Voie publique") {
return 40 + (1.8 * VEHICULE.LIEU_STATIONNEMENT.ZONIER.value)
} else {
return 40 + (0.8 * VEHICULE.LIEU_STATIONNEMENT.ZONIER.value)
}Dommages tous accidents 50 + (2 * VEHICULE.INFOS.PUISSANCE.value) -
(DateHelper.period(CONDUCTEUR[0].DATE_PERMIS.value, "y")) -
MONTANT
: variable calculée de typeNumber
qui calcule le montant final de la garantie pour la formule/fractionnement en cours. Concrètement, il s'agit d'une multiplication deBASE
parCOEF_FRACTIONNEMENT
:_parent._parent._parent.COEF_FRACTIONNEMENT.value * _parent.BASE.value
La variable
COEF_FRACTIONNEMENT
étant défini sousTARIF
directement, il faut ici utiliser le mot clé_parent
3 fois pour remonter jusqu'à l'instance deTARIF
(à partir deMONTANT
) et accéder à la valeur deCOEF_FRACTIONNEMENT
.
Utilisation
Nous avons maintenant terminé le paramétrage du produit d'assurance automobile, on peut maintenant calculer des tarifs.
Il est possible de faire des simulations de calcul dans RuleShake Catalog directement en cliquant sur le
bouton Simuler
en haut à droite de la fiche de la collection ASSURANCE_AUTO
:
Ce formulaire est généré automatiquement à partir des variables définies dans la collection. Il permet de valider le bon calcul des variables avant de pouvoir le publier dans RuleShake Runner.
La publication dans RuleShake Runner se fait par le clic sur le bouton Publier
en haut à droite de la fiche de la
collection puis en renseigner le formulaire :
On peut maintenant interroger l'API de RuleShake Runner afin d'évaluer la collection ASSURANCE_AUTO
et obtenir des
tarifs.
Exemple de requête :
POST ruleshake-runner/api/v1/evaluations
Cliquer pour développer la requête
{
"requestTime": "2023-06-14T00:00",
"collectionCode": "ASSURANCE_AUTO",
"inputs": [
{
"reference": "VEHICULE/INFOS",
"value": "CI63033",
"type": "record"
},
{
"reference": "VEHICULE/LIEU_STATIONNEMENT",
"value": "69029",
"type": "record"
},
{
"reference": "VEHICULE/USAGE",
"value": "Privé",
"type": "string"
},
{
"reference": "VEHICULE/MODE_STATIONNEMENT",
"value": "Box",
"type": "string"
},
{
"reference": "CONDUCTEUR[0]/PRINCIPAL",
"value": "true",
"type": "boolean"
},
{
"reference": "CONDUCTEUR[0]/DATE_NAISSANCE",
"value": "1989-11-04",
"type": "date"
},
{
"reference": "CONDUCTEUR[0]/DATE_PERMIS",
"value": "2008-01-01",
"type": "date"
},
{
"reference": "CONDUCTEUR[0]/PROFESSION",
"value": "Indépendant",
"type": "string"
},
{
"reference": "CONDUCTEUR[1]/PRINCIPAL",
"value": "false",
"type": "boolean"
},
{
"reference": "CONDUCTEUR[1]/DATE_NAISSANCE",
"value": "1992-07-11",
"type": "date"
},
{
"reference": "CONDUCTEUR[1]/DATE_PERMIS",
"value": "2011-01-01",
"type": "date"
},
{
"reference": "CONDUCTEUR[1]/PROFESSION",
"value": "Salarié",
"type": "string"
},
{
"reference": "ANTECENDENTS/RESIL_SINISTRE",
"value": "false",
"type": "boolean"
},
{
"reference": "ANTECENDENTS/RESIL_FAUSSE_DECLA",
"value": "false",
"type": "boolean"
},
{
"reference": "ANTECENDENTS/RESIL_IMPAYES",
"value": "false",
"type": "boolean"
},
{
"reference": "ANTECENDENTS/RESIL_AUTRE",
"value": "false",
"type": "boolean"
},
{
"reference": "FORMULES[0]",
"value": "Mini",
"type": "string"
},
{
"reference": "FORMULES[1]",
"value": "Medium",
"type": "string"
},
{
"reference": "FORMULES[2]",
"value": "Maxi",
"type": "string"
},
{
"reference": "FRACTIONNEMENTS[0]",
"value": "Mensuel",
"type": "string"
},
{
"reference": "FRACTIONNEMENTS[1]",
"value": "Annuel",
"type": "string"
}
]
}
Nous obtenons la réponse suivante (attention, contenu long!) :
Cliquer pour développer la réponse
{
"reference": {
"code": "ASSURANCE_AUTO",
"version": 1
},
"variables": [
{
"runtimeReference": "CONDUCTEUR[0]",
"definitionReference": "CONDUCTEUR",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "CONDUCTEUR[0]/DATE_NAISSANCE",
"definitionReference": "CONDUCTEUR/DATE_NAISSANCE",
"type": "DATE",
"value": "1989-11-04",
"properties": {
"LIBELLE": "Date de naissance"
}
},
{
"runtimeReference": "CONDUCTEUR[0]/DATE_PERMIS",
"definitionReference": "CONDUCTEUR/DATE_PERMIS",
"type": "DATE",
"value": "2008-01-01",
"properties": {
"LIBELLE": "Date de permis"
}
},
{
"runtimeReference": "CONDUCTEUR[0]/PROFESSION",
"definitionReference": "CONDUCTEUR/PROFESSION",
"type": "STRING",
"value": "Indépendant",
"properties": {
"LIBELLE": "Profession"
},
"validValues": [
"Etudiant",
"Indépendant",
"Retraité",
"Salarié",
"Recherche d'emploi"
]
},
{
"runtimeReference": "CONDUCTEUR[0]/PRINCIPAL",
"definitionReference": "CONDUCTEUR/PRINCIPAL",
"type": "BOOLEAN",
"value": true,
"properties": {
"LIBELLE": "Conducteur principal"
}
},
{
"runtimeReference": "CONDUCTEUR[0]/AGE",
"definitionReference": "CONDUCTEUR/AGE",
"type": "NUMBER",
"value": 33
}
],
"properties": {
"ONGLET": "Conducteur"
}
},
{
"runtimeReference": "CONDUCTEUR[1]",
"definitionReference": "CONDUCTEUR",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "CONDUCTEUR[1]/DATE_NAISSANCE",
"definitionReference": "CONDUCTEUR/DATE_NAISSANCE",
"type": "DATE",
"value": "1992-07-11",
"properties": {
"LIBELLE": "Date de naissance"
}
},
{
"runtimeReference": "CONDUCTEUR[1]/DATE_PERMIS",
"definitionReference": "CONDUCTEUR/DATE_PERMIS",
"type": "DATE",
"value": "2011-01-01",
"properties": {
"LIBELLE": "Date de permis"
}
},
{
"runtimeReference": "CONDUCTEUR[1]/PROFESSION",
"definitionReference": "CONDUCTEUR/PROFESSION",
"type": "STRING",
"value": "Salarié",
"properties": {
"LIBELLE": "Profession"
},
"validValues": [
"Etudiant",
"Indépendant",
"Retraité",
"Salarié",
"Recherche d'emploi"
]
},
{
"runtimeReference": "CONDUCTEUR[1]/PRINCIPAL",
"definitionReference": "CONDUCTEUR/PRINCIPAL",
"type": "BOOLEAN",
"value": false,
"properties": {
"LIBELLE": "Conducteur principal"
}
},
{
"runtimeReference": "CONDUCTEUR[1]/AGE",
"definitionReference": "CONDUCTEUR/AGE",
"type": "NUMBER",
"value": 30
}
],
"properties": {
"ONGLET": "Conducteur"
}
},
{
"runtimeReference": "ANTECENDENTS",
"definitionReference": "ANTECENDENTS",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "ANTECENDENTS/RESIL_SINISTRE",
"definitionReference": "ANTECENDENTS/RESIL_SINISTRE",
"type": "BOOLEAN",
"value": false,
"properties": {
"LIBELLE": "Résiliation pour sinistre ?"
}
},
{
"runtimeReference": "ANTECENDENTS/RESIL_FAUSSE_DECLA",
"definitionReference": "ANTECENDENTS/RESIL_FAUSSE_DECLA",
"type": "BOOLEAN",
"value": false,
"properties": {
"LIBELLE": "Résiliation pour fausse déclaration ?"
}
},
{
"runtimeReference": "ANTECENDENTS/RESIL_IMPAYES",
"definitionReference": "ANTECENDENTS/RESIL_IMPAYES",
"type": "BOOLEAN",
"value": false,
"properties": {
"LIBELLE": "Résiliation pour impayés"
}
},
{
"runtimeReference": "ANTECENDENTS/RESIL_AUTRE",
"definitionReference": "ANTECENDENTS/RESIL_AUTRE",
"type": "BOOLEAN",
"value": false,
"properties": {
"LIBELLE": "Résiliation pour une autre raison ? "
}
}
],
"properties": {
"ONGLET": "Antécédents"
}
},
{
"runtimeReference": "FRACTIONNEMENTS[0]",
"definitionReference": "FRACTIONNEMENTS",
"type": "STRING",
"value": "Mensuel",
"validValues": [
"Mensuel",
"Annuel"
]
},
{
"runtimeReference": "FRACTIONNEMENTS[1]",
"definitionReference": "FRACTIONNEMENTS",
"type": "STRING",
"value": "Annuel",
"validValues": [
"Mensuel",
"Annuel"
]
},
{
"runtimeReference": "FORMULES[0]",
"definitionReference": "FORMULES",
"type": "STRING",
"value": "Mini",
"validValues": [
"Maxi",
"Mini",
"Medium"
]
},
{
"runtimeReference": "FORMULES[1]",
"definitionReference": "FORMULES",
"type": "STRING",
"value": "Medium",
"validValues": [
"Maxi",
"Mini",
"Medium"
]
},
{
"runtimeReference": "FORMULES[2]",
"definitionReference": "FORMULES",
"type": "STRING",
"value": "Maxi",
"validValues": [
"Maxi",
"Mini",
"Medium"
]
},
{
"runtimeReference": "TARIF[0]",
"definitionReference": "TARIF",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[0]/COEF_FRACTIONNEMENT",
"definitionReference": "TARIF/COEF_FRACTIONNEMENT",
"type": "NUMBER",
"value": 0.1
},
{
"runtimeReference": "TARIF[0]/GARANTIES",
"definitionReference": "TARIF/GARANTIES",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[0]/GARANTIES/RC",
"definitionReference": "TARIF/GARANTIES/RC",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[0]/GARANTIES/RC/INCLUSE",
"definitionReference": "TARIF/GARANTIES/RC/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[0]/GARANTIES/RC/MONTANT",
"definitionReference": "TARIF/GARANTIES/RC/MONTANT",
"type": "NUMBER",
"value": 13.3
},
{
"runtimeReference": "TARIF[0]/GARANTIES/RC/BASE",
"definitionReference": "TARIF/GARANTIES/RC/BASE",
"type": "NUMBER",
"value": 133
}
],
"properties": {
"LIBELLE": "Responsabilité civile"
}
},
{
"runtimeReference": "TARIF[0]/GARANTIES/BDG",
"definitionReference": "TARIF/GARANTIES/BDG",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[0]/GARANTIES/BDG/INCLUSE",
"definitionReference": "TARIF/GARANTIES/BDG/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[0]/GARANTIES/BDG/MONTANT",
"definitionReference": "TARIF/GARANTIES/BDG/MONTANT",
"type": "NUMBER",
"value": 6.4
},
{
"runtimeReference": "TARIF[0]/GARANTIES/BDG/BASE",
"definitionReference": "TARIF/GARANTIES/BDG/BASE",
"type": "NUMBER",
"value": 64
}
],
"properties": {
"LIBELLE": "Bris de glace"
}
},
{
"runtimeReference": "TARIF[0]/GARANTIES/INC",
"definitionReference": "TARIF/GARANTIES/INC",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[0]/GARANTIES/INC/INCLUSE",
"definitionReference": "TARIF/GARANTIES/INC/INCLUSE",
"type": "BOOLEAN",
"value": false
},
{
"runtimeReference": "TARIF[0]/GARANTIES/INC/MONTANT",
"definitionReference": "TARIF/GARANTIES/INC/MONTANT",
"type": "NUMBER",
"value": 2
},
{
"runtimeReference": "TARIF[0]/GARANTIES/INC/BASE",
"definitionReference": "TARIF/GARANTIES/INC/BASE",
"type": "NUMBER",
"value": 20
}
],
"properties": {
"LIBELLE": "Incendie"
}
},
{
"runtimeReference": "TARIF[0]/GARANTIES/VOL",
"definitionReference": "TARIF/GARANTIES/VOL",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[0]/GARANTIES/VOL/INCLUSE",
"definitionReference": "TARIF/GARANTIES/VOL/INCLUSE",
"type": "BOOLEAN",
"value": false
},
{
"runtimeReference": "TARIF[0]/GARANTIES/VOL/MONTANT",
"definitionReference": "TARIF/GARANTIES/VOL/MONTANT",
"type": "NUMBER",
"value": 3.2
},
{
"runtimeReference": "TARIF[0]/GARANTIES/VOL/BASE",
"definitionReference": "TARIF/GARANTIES/VOL/BASE",
"type": "NUMBER",
"value": 32
}
],
"properties": {
"LIBELLE": "Vol"
}
},
{
"runtimeReference": "TARIF[0]/GARANTIES/DTA",
"definitionReference": "TARIF/GARANTIES/DTA",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[0]/GARANTIES/DTA/INCLUSE",
"definitionReference": "TARIF/GARANTIES/DTA/INCLUSE",
"type": "BOOLEAN",
"value": false
},
{
"runtimeReference": "TARIF[0]/GARANTIES/DTA/MONTANT",
"definitionReference": "TARIF/GARANTIES/DTA/MONTANT",
"type": "NUMBER",
"value": 4.7
},
{
"runtimeReference": "TARIF[0]/GARANTIES/DTA/BASE",
"definitionReference": "TARIF/GARANTIES/DTA/BASE",
"type": "NUMBER",
"value": 47
}
],
"properties": {
"LIBELLE": "Dommages tous accidents"
}
},
{
"runtimeReference": "TARIF[0]/GARANTIES/PJ",
"definitionReference": "TARIF/GARANTIES/PJ",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[0]/GARANTIES/PJ/INCLUSE",
"definitionReference": "TARIF/GARANTIES/PJ/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[0]/GARANTIES/PJ/MONTANT",
"definitionReference": "TARIF/GARANTIES/PJ/MONTANT",
"type": "NUMBER",
"value": 1
},
{
"runtimeReference": "TARIF[0]/GARANTIES/PJ/BASE",
"definitionReference": "TARIF/GARANTIES/PJ/BASE",
"type": "NUMBER",
"value": 10
}
],
"properties": {
"LIBELLE": "Protection juridique"
}
}
]
},
{
"runtimeReference": "TARIF[0]/TOTAL",
"definitionReference": "TARIF/TOTAL",
"type": "NUMBER",
"value": 20.7
}
],
"loopStep": {
"FORMULE": "FORMULES[0]",
"FRACTIONNEMENT": "FRACTIONNEMENTS[0]"
}
},
{
"runtimeReference": "TARIF[1]",
"definitionReference": "TARIF",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[1]/COEF_FRACTIONNEMENT",
"definitionReference": "TARIF/COEF_FRACTIONNEMENT",
"type": "NUMBER",
"value": 1.1
},
{
"runtimeReference": "TARIF[1]/GARANTIES",
"definitionReference": "TARIF/GARANTIES",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[1]/GARANTIES/RC",
"definitionReference": "TARIF/GARANTIES/RC",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[1]/GARANTIES/RC/INCLUSE",
"definitionReference": "TARIF/GARANTIES/RC/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[1]/GARANTIES/RC/MONTANT",
"definitionReference": "TARIF/GARANTIES/RC/MONTANT",
"type": "NUMBER",
"value": 146.3
},
{
"runtimeReference": "TARIF[1]/GARANTIES/RC/BASE",
"definitionReference": "TARIF/GARANTIES/RC/BASE",
"type": "NUMBER",
"value": 133
}
],
"properties": {
"LIBELLE": "Responsabilité civile"
}
},
{
"runtimeReference": "TARIF[1]/GARANTIES/BDG",
"definitionReference": "TARIF/GARANTIES/BDG",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[1]/GARANTIES/BDG/INCLUSE",
"definitionReference": "TARIF/GARANTIES/BDG/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[1]/GARANTIES/BDG/MONTANT",
"definitionReference": "TARIF/GARANTIES/BDG/MONTANT",
"type": "NUMBER",
"value": 70.4
},
{
"runtimeReference": "TARIF[1]/GARANTIES/BDG/BASE",
"definitionReference": "TARIF/GARANTIES/BDG/BASE",
"type": "NUMBER",
"value": 64
}
],
"properties": {
"LIBELLE": "Bris de glace"
}
},
{
"runtimeReference": "TARIF[1]/GARANTIES/INC",
"definitionReference": "TARIF/GARANTIES/INC",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[1]/GARANTIES/INC/INCLUSE",
"definitionReference": "TARIF/GARANTIES/INC/INCLUSE",
"type": "BOOLEAN",
"value": false
},
{
"runtimeReference": "TARIF[1]/GARANTIES/INC/MONTANT",
"definitionReference": "TARIF/GARANTIES/INC/MONTANT",
"type": "NUMBER",
"value": 22
},
{
"runtimeReference": "TARIF[1]/GARANTIES/INC/BASE",
"definitionReference": "TARIF/GARANTIES/INC/BASE",
"type": "NUMBER",
"value": 20
}
],
"properties": {
"LIBELLE": "Incendie"
}
},
{
"runtimeReference": "TARIF[1]/GARANTIES/VOL",
"definitionReference": "TARIF/GARANTIES/VOL",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[1]/GARANTIES/VOL/INCLUSE",
"definitionReference": "TARIF/GARANTIES/VOL/INCLUSE",
"type": "BOOLEAN",
"value": false
},
{
"runtimeReference": "TARIF[1]/GARANTIES/VOL/MONTANT",
"definitionReference": "TARIF/GARANTIES/VOL/MONTANT",
"type": "NUMBER",
"value": 35.2
},
{
"runtimeReference": "TARIF[1]/GARANTIES/VOL/BASE",
"definitionReference": "TARIF/GARANTIES/VOL/BASE",
"type": "NUMBER",
"value": 32
}
],
"properties": {
"LIBELLE": "Vol"
}
},
{
"runtimeReference": "TARIF[1]/GARANTIES/DTA",
"definitionReference": "TARIF/GARANTIES/DTA",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[1]/GARANTIES/DTA/INCLUSE",
"definitionReference": "TARIF/GARANTIES/DTA/INCLUSE",
"type": "BOOLEAN",
"value": false
},
{
"runtimeReference": "TARIF[1]/GARANTIES/DTA/MONTANT",
"definitionReference": "TARIF/GARANTIES/DTA/MONTANT",
"type": "NUMBER",
"value": 51.7
},
{
"runtimeReference": "TARIF[1]/GARANTIES/DTA/BASE",
"definitionReference": "TARIF/GARANTIES/DTA/BASE",
"type": "NUMBER",
"value": 47
}
],
"properties": {
"LIBELLE": "Dommages tous accidents"
}
},
{
"runtimeReference": "TARIF[1]/GARANTIES/PJ",
"definitionReference": "TARIF/GARANTIES/PJ",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[1]/GARANTIES/PJ/INCLUSE",
"definitionReference": "TARIF/GARANTIES/PJ/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[1]/GARANTIES/PJ/MONTANT",
"definitionReference": "TARIF/GARANTIES/PJ/MONTANT",
"type": "NUMBER",
"value": 11
},
{
"runtimeReference": "TARIF[1]/GARANTIES/PJ/BASE",
"definitionReference": "TARIF/GARANTIES/PJ/BASE",
"type": "NUMBER",
"value": 10
}
],
"properties": {
"LIBELLE": "Protection juridique"
}
}
]
},
{
"runtimeReference": "TARIF[1]/TOTAL",
"definitionReference": "TARIF/TOTAL",
"type": "NUMBER",
"value": 227.7
}
],
"loopStep": {
"FORMULE": "FORMULES[0]",
"FRACTIONNEMENT": "FRACTIONNEMENTS[1]"
}
},
{
"runtimeReference": "TARIF[2]",
"definitionReference": "TARIF",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[2]/COEF_FRACTIONNEMENT",
"definitionReference": "TARIF/COEF_FRACTIONNEMENT",
"type": "NUMBER",
"value": 0.1
},
{
"runtimeReference": "TARIF[2]/GARANTIES",
"definitionReference": "TARIF/GARANTIES",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[2]/GARANTIES/RC",
"definitionReference": "TARIF/GARANTIES/RC",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[2]/GARANTIES/RC/INCLUSE",
"definitionReference": "TARIF/GARANTIES/RC/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[2]/GARANTIES/RC/MONTANT",
"definitionReference": "TARIF/GARANTIES/RC/MONTANT",
"type": "NUMBER",
"value": 13.3
},
{
"runtimeReference": "TARIF[2]/GARANTIES/RC/BASE",
"definitionReference": "TARIF/GARANTIES/RC/BASE",
"type": "NUMBER",
"value": 133
}
],
"properties": {
"LIBELLE": "Responsabilité civile"
}
},
{
"runtimeReference": "TARIF[2]/GARANTIES/BDG",
"definitionReference": "TARIF/GARANTIES/BDG",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[2]/GARANTIES/BDG/INCLUSE",
"definitionReference": "TARIF/GARANTIES/BDG/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[2]/GARANTIES/BDG/MONTANT",
"definitionReference": "TARIF/GARANTIES/BDG/MONTANT",
"type": "NUMBER",
"value": 6.4
},
{
"runtimeReference": "TARIF[2]/GARANTIES/BDG/BASE",
"definitionReference": "TARIF/GARANTIES/BDG/BASE",
"type": "NUMBER",
"value": 64
}
],
"properties": {
"LIBELLE": "Bris de glace"
}
},
{
"runtimeReference": "TARIF[2]/GARANTIES/INC",
"definitionReference": "TARIF/GARANTIES/INC",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[2]/GARANTIES/INC/INCLUSE",
"definitionReference": "TARIF/GARANTIES/INC/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[2]/GARANTIES/INC/MONTANT",
"definitionReference": "TARIF/GARANTIES/INC/MONTANT",
"type": "NUMBER",
"value": 2
},
{
"runtimeReference": "TARIF[2]/GARANTIES/INC/BASE",
"definitionReference": "TARIF/GARANTIES/INC/BASE",
"type": "NUMBER",
"value": 20
}
],
"properties": {
"LIBELLE": "Incendie"
}
},
{
"runtimeReference": "TARIF[2]/GARANTIES/VOL",
"definitionReference": "TARIF/GARANTIES/VOL",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[2]/GARANTIES/VOL/INCLUSE",
"definitionReference": "TARIF/GARANTIES/VOL/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[2]/GARANTIES/VOL/MONTANT",
"definitionReference": "TARIF/GARANTIES/VOL/MONTANT",
"type": "NUMBER",
"value": 3.2
},
{
"runtimeReference": "TARIF[2]/GARANTIES/VOL/BASE",
"definitionReference": "TARIF/GARANTIES/VOL/BASE",
"type": "NUMBER",
"value": 32
}
],
"properties": {
"LIBELLE": "Vol"
}
},
{
"runtimeReference": "TARIF[2]/GARANTIES/DTA",
"definitionReference": "TARIF/GARANTIES/DTA",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[2]/GARANTIES/DTA/INCLUSE",
"definitionReference": "TARIF/GARANTIES/DTA/INCLUSE",
"type": "BOOLEAN",
"value": false
},
{
"runtimeReference": "TARIF[2]/GARANTIES/DTA/MONTANT",
"definitionReference": "TARIF/GARANTIES/DTA/MONTANT",
"type": "NUMBER",
"value": 4.7
},
{
"runtimeReference": "TARIF[2]/GARANTIES/DTA/BASE",
"definitionReference": "TARIF/GARANTIES/DTA/BASE",
"type": "NUMBER",
"value": 47
}
],
"properties": {
"LIBELLE": "Dommages tous accidents"
}
},
{
"runtimeReference": "TARIF[2]/GARANTIES/PJ",
"definitionReference": "TARIF/GARANTIES/PJ",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[2]/GARANTIES/PJ/INCLUSE",
"definitionReference": "TARIF/GARANTIES/PJ/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[2]/GARANTIES/PJ/MONTANT",
"definitionReference": "TARIF/GARANTIES/PJ/MONTANT",
"type": "NUMBER",
"value": 1
},
{
"runtimeReference": "TARIF[2]/GARANTIES/PJ/BASE",
"definitionReference": "TARIF/GARANTIES/PJ/BASE",
"type": "NUMBER",
"value": 10
}
],
"properties": {
"LIBELLE": "Protection juridique"
}
}
]
},
{
"runtimeReference": "TARIF[2]/TOTAL",
"definitionReference": "TARIF/TOTAL",
"type": "NUMBER",
"value": 25.9
}
],
"loopStep": {
"FORMULE": "FORMULES[1]",
"FRACTIONNEMENT": "FRACTIONNEMENTS[0]"
}
},
{
"runtimeReference": "TARIF[3]",
"definitionReference": "TARIF",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[3]/COEF_FRACTIONNEMENT",
"definitionReference": "TARIF/COEF_FRACTIONNEMENT",
"type": "NUMBER",
"value": 1.1
},
{
"runtimeReference": "TARIF[3]/GARANTIES",
"definitionReference": "TARIF/GARANTIES",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[3]/GARANTIES/RC",
"definitionReference": "TARIF/GARANTIES/RC",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[3]/GARANTIES/RC/INCLUSE",
"definitionReference": "TARIF/GARANTIES/RC/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[3]/GARANTIES/RC/MONTANT",
"definitionReference": "TARIF/GARANTIES/RC/MONTANT",
"type": "NUMBER",
"value": 146.3
},
{
"runtimeReference": "TARIF[3]/GARANTIES/RC/BASE",
"definitionReference": "TARIF/GARANTIES/RC/BASE",
"type": "NUMBER",
"value": 133
}
],
"properties": {
"LIBELLE": "Responsabilité civile"
}
},
{
"runtimeReference": "TARIF[3]/GARANTIES/BDG",
"definitionReference": "TARIF/GARANTIES/BDG",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[3]/GARANTIES/BDG/INCLUSE",
"definitionReference": "TARIF/GARANTIES/BDG/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[3]/GARANTIES/BDG/MONTANT",
"definitionReference": "TARIF/GARANTIES/BDG/MONTANT",
"type": "NUMBER",
"value": 70.4
},
{
"runtimeReference": "TARIF[3]/GARANTIES/BDG/BASE",
"definitionReference": "TARIF/GARANTIES/BDG/BASE",
"type": "NUMBER",
"value": 64
}
],
"properties": {
"LIBELLE": "Bris de glace"
}
},
{
"runtimeReference": "TARIF[3]/GARANTIES/INC",
"definitionReference": "TARIF/GARANTIES/INC",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[3]/GARANTIES/INC/INCLUSE",
"definitionReference": "TARIF/GARANTIES/INC/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[3]/GARANTIES/INC/MONTANT",
"definitionReference": "TARIF/GARANTIES/INC/MONTANT",
"type": "NUMBER",
"value": 22
},
{
"runtimeReference": "TARIF[3]/GARANTIES/INC/BASE",
"definitionReference": "TARIF/GARANTIES/INC/BASE",
"type": "NUMBER",
"value": 20
}
],
"properties": {
"LIBELLE": "Incendie"
}
},
{
"runtimeReference": "TARIF[3]/GARANTIES/VOL",
"definitionReference": "TARIF/GARANTIES/VOL",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[3]/GARANTIES/VOL/INCLUSE",
"definitionReference": "TARIF/GARANTIES/VOL/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[3]/GARANTIES/VOL/MONTANT",
"definitionReference": "TARIF/GARANTIES/VOL/MONTANT",
"type": "NUMBER",
"value": 35.2
},
{
"runtimeReference": "TARIF[3]/GARANTIES/VOL/BASE",
"definitionReference": "TARIF/GARANTIES/VOL/BASE",
"type": "NUMBER",
"value": 32
}
],
"properties": {
"LIBELLE": "Vol"
}
},
{
"runtimeReference": "TARIF[3]/GARANTIES/DTA",
"definitionReference": "TARIF/GARANTIES/DTA",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[3]/GARANTIES/DTA/INCLUSE",
"definitionReference": "TARIF/GARANTIES/DTA/INCLUSE",
"type": "BOOLEAN",
"value": false
},
{
"runtimeReference": "TARIF[3]/GARANTIES/DTA/MONTANT",
"definitionReference": "TARIF/GARANTIES/DTA/MONTANT",
"type": "NUMBER",
"value": 51.7
},
{
"runtimeReference": "TARIF[3]/GARANTIES/DTA/BASE",
"definitionReference": "TARIF/GARANTIES/DTA/BASE",
"type": "NUMBER",
"value": 47
}
],
"properties": {
"LIBELLE": "Dommages tous accidents"
}
},
{
"runtimeReference": "TARIF[3]/GARANTIES/PJ",
"definitionReference": "TARIF/GARANTIES/PJ",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[3]/GARANTIES/PJ/INCLUSE",
"definitionReference": "TARIF/GARANTIES/PJ/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[3]/GARANTIES/PJ/MONTANT",
"definitionReference": "TARIF/GARANTIES/PJ/MONTANT",
"type": "NUMBER",
"value": 11
},
{
"runtimeReference": "TARIF[3]/GARANTIES/PJ/BASE",
"definitionReference": "TARIF/GARANTIES/PJ/BASE",
"type": "NUMBER",
"value": 10
}
],
"properties": {
"LIBELLE": "Protection juridique"
}
}
]
},
{
"runtimeReference": "TARIF[3]/TOTAL",
"definitionReference": "TARIF/TOTAL",
"type": "NUMBER",
"value": 284.9
}
],
"loopStep": {
"FORMULE": "FORMULES[1]",
"FRACTIONNEMENT": "FRACTIONNEMENTS[1]"
}
},
{
"runtimeReference": "TARIF[4]",
"definitionReference": "TARIF",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[4]/COEF_FRACTIONNEMENT",
"definitionReference": "TARIF/COEF_FRACTIONNEMENT",
"type": "NUMBER",
"value": 0.1
},
{
"runtimeReference": "TARIF[4]/GARANTIES",
"definitionReference": "TARIF/GARANTIES",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[4]/GARANTIES/RC",
"definitionReference": "TARIF/GARANTIES/RC",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[4]/GARANTIES/RC/INCLUSE",
"definitionReference": "TARIF/GARANTIES/RC/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[4]/GARANTIES/RC/MONTANT",
"definitionReference": "TARIF/GARANTIES/RC/MONTANT",
"type": "NUMBER",
"value": 13.3
},
{
"runtimeReference": "TARIF[4]/GARANTIES/RC/BASE",
"definitionReference": "TARIF/GARANTIES/RC/BASE",
"type": "NUMBER",
"value": 133
}
],
"properties": {
"LIBELLE": "Responsabilité civile"
}
},
{
"runtimeReference": "TARIF[4]/GARANTIES/BDG",
"definitionReference": "TARIF/GARANTIES/BDG",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[4]/GARANTIES/BDG/INCLUSE",
"definitionReference": "TARIF/GARANTIES/BDG/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[4]/GARANTIES/BDG/MONTANT",
"definitionReference": "TARIF/GARANTIES/BDG/MONTANT",
"type": "NUMBER",
"value": 6.4
},
{
"runtimeReference": "TARIF[4]/GARANTIES/BDG/BASE",
"definitionReference": "TARIF/GARANTIES/BDG/BASE",
"type": "NUMBER",
"value": 64
}
],
"properties": {
"LIBELLE": "Bris de glace"
}
},
{
"runtimeReference": "TARIF[4]/GARANTIES/INC",
"definitionReference": "TARIF/GARANTIES/INC",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[4]/GARANTIES/INC/INCLUSE",
"definitionReference": "TARIF/GARANTIES/INC/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[4]/GARANTIES/INC/MONTANT",
"definitionReference": "TARIF/GARANTIES/INC/MONTANT",
"type": "NUMBER",
"value": 2
},
{
"runtimeReference": "TARIF[4]/GARANTIES/INC/BASE",
"definitionReference": "TARIF/GARANTIES/INC/BASE",
"type": "NUMBER",
"value": 20
}
],
"properties": {
"LIBELLE": "Incendie"
}
},
{
"runtimeReference": "TARIF[4]/GARANTIES/VOL",
"definitionReference": "TARIF/GARANTIES/VOL",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[4]/GARANTIES/VOL/INCLUSE",
"definitionReference": "TARIF/GARANTIES/VOL/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[4]/GARANTIES/VOL/MONTANT",
"definitionReference": "TARIF/GARANTIES/VOL/MONTANT",
"type": "NUMBER",
"value": 3.2
},
{
"runtimeReference": "TARIF[4]/GARANTIES/VOL/BASE",
"definitionReference": "TARIF/GARANTIES/VOL/BASE",
"type": "NUMBER",
"value": 32
}
],
"properties": {
"LIBELLE": "Vol"
}
},
{
"runtimeReference": "TARIF[4]/GARANTIES/DTA",
"definitionReference": "TARIF/GARANTIES/DTA",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[4]/GARANTIES/DTA/INCLUSE",
"definitionReference": "TARIF/GARANTIES/DTA/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[4]/GARANTIES/DTA/MONTANT",
"definitionReference": "TARIF/GARANTIES/DTA/MONTANT",
"type": "NUMBER",
"value": 4.7
},
{
"runtimeReference": "TARIF[4]/GARANTIES/DTA/BASE",
"definitionReference": "TARIF/GARANTIES/DTA/BASE",
"type": "NUMBER",
"value": 47
}
],
"properties": {
"LIBELLE": "Dommages tous accidents"
}
},
{
"runtimeReference": "TARIF[4]/GARANTIES/PJ",
"definitionReference": "TARIF/GARANTIES/PJ",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[4]/GARANTIES/PJ/INCLUSE",
"definitionReference": "TARIF/GARANTIES/PJ/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[4]/GARANTIES/PJ/MONTANT",
"definitionReference": "TARIF/GARANTIES/PJ/MONTANT",
"type": "NUMBER",
"value": 1
},
{
"runtimeReference": "TARIF[4]/GARANTIES/PJ/BASE",
"definitionReference": "TARIF/GARANTIES/PJ/BASE",
"type": "NUMBER",
"value": 10
}
],
"properties": {
"LIBELLE": "Protection juridique"
}
}
]
},
{
"runtimeReference": "TARIF[4]/TOTAL",
"definitionReference": "TARIF/TOTAL",
"type": "NUMBER",
"value": 30.6
}
],
"loopStep": {
"FORMULE": "FORMULES[2]",
"FRACTIONNEMENT": "FRACTIONNEMENTS[0]"
}
},
{
"runtimeReference": "TARIF[5]",
"definitionReference": "TARIF",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[5]/COEF_FRACTIONNEMENT",
"definitionReference": "TARIF/COEF_FRACTIONNEMENT",
"type": "NUMBER",
"value": 1.1
},
{
"runtimeReference": "TARIF[5]/GARANTIES",
"definitionReference": "TARIF/GARANTIES",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[5]/GARANTIES/RC",
"definitionReference": "TARIF/GARANTIES/RC",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[5]/GARANTIES/RC/INCLUSE",
"definitionReference": "TARIF/GARANTIES/RC/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[5]/GARANTIES/RC/MONTANT",
"definitionReference": "TARIF/GARANTIES/RC/MONTANT",
"type": "NUMBER",
"value": 146.3
},
{
"runtimeReference": "TARIF[5]/GARANTIES/RC/BASE",
"definitionReference": "TARIF/GARANTIES/RC/BASE",
"type": "NUMBER",
"value": 133
}
],
"properties": {
"LIBELLE": "Responsabilité civile"
}
},
{
"runtimeReference": "TARIF[5]/GARANTIES/BDG",
"definitionReference": "TARIF/GARANTIES/BDG",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[5]/GARANTIES/BDG/INCLUSE",
"definitionReference": "TARIF/GARANTIES/BDG/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[5]/GARANTIES/BDG/MONTANT",
"definitionReference": "TARIF/GARANTIES/BDG/MONTANT",
"type": "NUMBER",
"value": 70.4
},
{
"runtimeReference": "TARIF[5]/GARANTIES/BDG/BASE",
"definitionReference": "TARIF/GARANTIES/BDG/BASE",
"type": "NUMBER",
"value": 64
}
],
"properties": {
"LIBELLE": "Bris de glace"
}
},
{
"runtimeReference": "TARIF[5]/GARANTIES/INC",
"definitionReference": "TARIF/GARANTIES/INC",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[5]/GARANTIES/INC/INCLUSE",
"definitionReference": "TARIF/GARANTIES/INC/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[5]/GARANTIES/INC/MONTANT",
"definitionReference": "TARIF/GARANTIES/INC/MONTANT",
"type": "NUMBER",
"value": 22
},
{
"runtimeReference": "TARIF[5]/GARANTIES/INC/BASE",
"definitionReference": "TARIF/GARANTIES/INC/BASE",
"type": "NUMBER",
"value": 20
}
],
"properties": {
"LIBELLE": "Incendie"
}
},
{
"runtimeReference": "TARIF[5]/GARANTIES/VOL",
"definitionReference": "TARIF/GARANTIES/VOL",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[5]/GARANTIES/VOL/INCLUSE",
"definitionReference": "TARIF/GARANTIES/VOL/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[5]/GARANTIES/VOL/MONTANT",
"definitionReference": "TARIF/GARANTIES/VOL/MONTANT",
"type": "NUMBER",
"value": 35.2
},
{
"runtimeReference": "TARIF[5]/GARANTIES/VOL/BASE",
"definitionReference": "TARIF/GARANTIES/VOL/BASE",
"type": "NUMBER",
"value": 32
}
],
"properties": {
"LIBELLE": "Vol"
}
},
{
"runtimeReference": "TARIF[5]/GARANTIES/DTA",
"definitionReference": "TARIF/GARANTIES/DTA",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[5]/GARANTIES/DTA/INCLUSE",
"definitionReference": "TARIF/GARANTIES/DTA/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[5]/GARANTIES/DTA/MONTANT",
"definitionReference": "TARIF/GARANTIES/DTA/MONTANT",
"type": "NUMBER",
"value": 51.7
},
{
"runtimeReference": "TARIF[5]/GARANTIES/DTA/BASE",
"definitionReference": "TARIF/GARANTIES/DTA/BASE",
"type": "NUMBER",
"value": 47
}
],
"properties": {
"LIBELLE": "Dommages tous accidents"
}
},
{
"runtimeReference": "TARIF[5]/GARANTIES/PJ",
"definitionReference": "TARIF/GARANTIES/PJ",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "TARIF[5]/GARANTIES/PJ/INCLUSE",
"definitionReference": "TARIF/GARANTIES/PJ/INCLUSE",
"type": "BOOLEAN",
"value": true
},
{
"runtimeReference": "TARIF[5]/GARANTIES/PJ/MONTANT",
"definitionReference": "TARIF/GARANTIES/PJ/MONTANT",
"type": "NUMBER",
"value": 11
},
{
"runtimeReference": "TARIF[5]/GARANTIES/PJ/BASE",
"definitionReference": "TARIF/GARANTIES/PJ/BASE",
"type": "NUMBER",
"value": 10
}
],
"properties": {
"LIBELLE": "Protection juridique"
}
}
]
},
{
"runtimeReference": "TARIF[5]/TOTAL",
"definitionReference": "TARIF/TOTAL",
"type": "NUMBER",
"value": 336.6
}
],
"loopStep": {
"FORMULE": "FORMULES[2]",
"FRACTIONNEMENT": "FRACTIONNEMENTS[1]"
}
},
{
"runtimeReference": "VEHICULE",
"definitionReference": "VEHICULE",
"type": "COMPOSITE",
"value": [
{
"runtimeReference": "VEHICULE/USAGE",
"definitionReference": "VEHICULE/USAGE",
"type": "STRING",
"value": "Privé",
"properties": {
"LIBELLE": "Usage"
},
"minLength": 0,
"maxLength": 2147483647,
"validValues": [
"Privé",
"Privé et pro",
"Pro"
]
},
{
"runtimeReference": "VEHICULE/MODE_STATIONNEMENT",
"definitionReference": "VEHICULE/MODE_STATIONNEMENT",
"type": "STRING",
"value": "Box",
"properties": {
"LIBELLE": "Mode de stationnement"
},
"minLength": 0,
"maxLength": 2147483647,
"validValues": [
"Parking collectif",
"Voie publique",
"Box"
]
},
{
"runtimeReference": "VEHICULE/LIEU_STATIONNEMENT",
"definitionReference": "VEHICULE/LIEU_STATIONNEMENT",
"type": "RECORD",
"value": "69029",
"properties": {
"LIBELLE": "Lieu de stationnement"
},
"datasetCode": "COMMUNES",
"subVariables": [
{
"runtimeReference": "VEHICULE/LIEU_STATIONNEMENT/COMMUNE",
"definitionReference": "VEHICULE/LIEU_STATIONNEMENT/COMMUNE",
"type": "STRING",
"value": "BRON"
},
{
"runtimeReference": "VEHICULE/LIEU_STATIONNEMENT/PAYS",
"definitionReference": "VEHICULE/LIEU_STATIONNEMENT/PAYS",
"type": "STRING",
"value": "FRANCE"
},
{
"runtimeReference": "VEHICULE/LIEU_STATIONNEMENT/DEPARTEMENT",
"definitionReference": "VEHICULE/LIEU_STATIONNEMENT/DEPARTEMENT",
"type": "STRING",
"value": "RHONE"
},
{
"runtimeReference": "VEHICULE/LIEU_STATIONNEMENT/ZONIER",
"definitionReference": "VEHICULE/LIEU_STATIONNEMENT/ZONIER",
"type": "NUMBER",
"value": -10
}
]
},
{
"runtimeReference": "VEHICULE/INFOS",
"definitionReference": "VEHICULE/INFOS",
"type": "RECORD",
"value": "CI63033",
"properties": {
"LIBELLE": "Véhicule"
},
"datasetCode": "VEHICULES",
"subVariables": [
{
"runtimeReference": "VEHICULE/INFOS/MODELE",
"definitionReference": "VEHICULE/INFOS/MODELE",
"type": "STRING",
"value": "C4"
},
{
"runtimeReference": "VEHICULE/INFOS/PUISSANCE",
"definitionReference": "VEHICULE/INFOS/PUISSANCE",
"type": "NUMBER",
"value": 6
},
{
"runtimeReference": "VEHICULE/INFOS/ENERGIE",
"definitionReference": "VEHICULE/INFOS/ENERGIE",
"type": "STRING",
"value": "ESSENCE"
},
{
"runtimeReference": "VEHICULE/INFOS/ANNEE",
"definitionReference": "VEHICULE/INFOS/ANNEE",
"type": "DATE"
},
{
"runtimeReference": "VEHICULE/INFOS/MARQUE",
"definitionReference": "VEHICULE/INFOS/MARQUE",
"type": "STRING",
"value": "CITROEN"
}
]
}
],
"properties": {
"ONGLET": "Véhicule"
}
}
]
}
Comme pour l'exemple précédent, une interface graphique de démo a été réalisée afin de faciliter la lecture du tarif et de rendre tout ça plus user friendly 😄 :