Skip to content

Commit

Permalink
fix: generate correct alternatives with the new rules
Browse files Browse the repository at this point in the history
  • Loading branch information
EmileRolley committed Sep 13, 2024
1 parent 2493d56 commit ab0e5b4
Show file tree
Hide file tree
Showing 9 changed files with 120 additions and 92 deletions.
2 changes: 0 additions & 2 deletions build.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,10 @@ writeFileSync(modelDestPath, JSON.stringify(resolvedRules))
console.log(`✅ ${modelDestPath} generated`)

const personas = getPersonas(model)

writeFileSync(personasDestPath, JSON.stringify(personas))
console.log(`✅ ${personasDestPath} generated`)

const ui = getUI(model)

writeFileSync(uiDestPath, JSON.stringify(ui))
console.log(`✅ ${uiDestPath} generated`)

Expand Down
7 changes: 0 additions & 7 deletions copy.js

This file was deleted.

1 change: 0 additions & 1 deletion personas.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# TODO: check if the rules are still valid at compile time

aller-retours travail électrique ville:
titre: Aller-retours travail en ville (électrique)
description: |
Expand Down
75 changes: 46 additions & 29 deletions rules/cout.publicodes
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,15 @@ coûts . voiture . coûts de possession . contrôle technique:
coûts . voiture . coûts de possession . entretien:
titre: Coût annuel de l'entretien de votre voiture
question: En moyenne, combien payez-vous pour l'entretien de votre voiture par an ?
question: Combien coûte l'entretien de votre voiture ?
description: |
Renseignez le coût annuel moyen de l'entretien de votre voiture hors
contrôle technique. Cela comprend les réparations occasionnelles,
changement de batterie, etc...
Si vous ne connaissez pas ce coût, vous pouvez laisser la valeur par
défaut.
par défaut: entretien estimé
plancher: 0
unité: €/an

coûts . voiture . coûts de possession . entretien estimé:
Expand Down Expand Up @@ -114,9 +120,13 @@ coûts . voiture . coûts de possession . entretien thermique moyen:
comptabilisé à part).
coûts . voiture . coûts de possession . assurance:
titre: Coût annuel de votre assurance
question: Coût annuel de votre assurance ?
question: Quel est le coût de l'assurance de votre voiture ?
description: |
Renseignez le coût annuel de l'assurance de votre voiture. Si vous ne
connaissez pas ce coût, vous pouvez laisser la valeur par défaut.
par défaut: assurance estimée
plancher: 0
unité: €/an

coûts . voiture . coûts de possession . assurance estimée:
titre: Coût annuel estimé de l'assurance
Expand Down Expand Up @@ -220,49 +230,50 @@ coûts . voiture . coûts d'utilisation . consommation:
titre: Coût de la consommation annuelle
valeur: consommation au km * usage . km annuels

coûts . voiture . coûts d'utilisation . consommation au km:
coûts . voiture . coûts d'utilisation . consommation . consommation au km:
titre: Coût de la consommation au km
formule:
variations:
- si: voiture . motorisation = 'électrique'
alors: consommation au km . électrique
alors: électrique
- si: voiture . motorisation = 'thermique'
alors: consommation au km . thermique
alors: thermique
- si: voiture . motorisation = 'hybride'
alors: consommation au km . hybride
alors: hybride
unité: €/km
note: |
Pour les voitures hybrides nous faisons la même hypothèse que pour la
note d'analyse [_Voiture électrique : à quel coût
?_](https://www.strategie.gouv.fr/sites/strategie.gouv.fr/files/atoms/files/fs-2022-na-115-voiture_electrique-annexe_methodo-novembre.pdf)
de France Stratégie.
avec:
thermique:
valeur: voiture . thermique . consommation carburant * voiture . thermique . prix carburant / 100
unité: €/km

coûts . voiture . coûts d'utilisation . consommation au km . thermique:
valeur: voiture . thermique . consommation * voiture . thermique . prix carburant / 100
unité: €/km

coûts . voiture . coûts d'utilisation . consommation au km . électrique:
valeur: voiture . électrique . consommation * voiture . électrique . prix kWh / 100
unité: €/km
électrique:
valeur: voiture . électrique . consommation électricité * voiture . électrique . prix kWh / 100
unité: €/km

coûts . voiture . coûts d'utilisation . consommation au km . hybride:
formule:
somme:
- consommation au km . thermique * 75%
- consommation au km . électrique * 25%
unité: €/km
note: |
Pour les voitures hybrides nous faisons la même hypothèse que pour la
note d'analyse [_Voiture électrique : à quel coût
?_](https://www.strategie.gouv.fr/sites/strategie.gouv.fr/files/atoms/files/fs-2022-na-115-voiture_electrique-annexe_methodo-novembre.pdf)
de France Stratégie.
hybride:
formule:
somme:
- consommation au km . thermique * 75%
- consommation au km . électrique * 25%
unité: €/km
note: |
Pour les voitures hybrides nous faisons la même hypothèse que pour la
note d'analyse [_Voiture électrique : à quel coût
?_](https://www.strategie.gouv.fr/sites/strategie.gouv.fr/files/atoms/files/fs-2022-na-115-voiture_electrique-annexe_methodo-novembre.pdf)
de France Stratégie.
coûts . voiture . coûts d'utilisation . stationnement:
question: Combien coûte le stationnement de votre voiture ?
description: |
Renseignez le coût annuel associé au stationnement de votre voiture
(parking, garage, place payante, etc...).
par défaut: 50 €/mois
plancher: 0
unité: €/an
note: |
Valeur par défaut basée sur le [baromètre de
Expand All @@ -280,8 +291,12 @@ coûts . voiture . coûts d'utilisation . stationnement:
coûts . voiture . coûts d'utilisation . péage:
titre: Coût annuel lié aux péages
question: Combien payez-vous en moyenne pour les péages par an ?
par défaut: estimé
question: Combien payez-vous en moyenne pour les péages ?
par défaut:
valeur: estimé
arrondi: oui
plancher: 0
unité: €/an
avec:
estimé:
titre: Coût annuel estimé des péages
Expand All @@ -302,7 +317,7 @@ coûts . voiture . coûts d'utilisation . péage:
comparant l'évolution des tarifs des autoroutes entre 2022 et 2023.
coûts . voiture . coûts d'utilisation . contraventions:
question: Quel le coût des contraventions que vous devez payer en moyenne par an ?
question: Quel le coût des contraventions que vous payez ?
description: |
Il s'agit ici de toutes les contraventions qui surviennent : parking,
vitesse, ivresse, feu cassé, stop grillé, etc.
Expand All @@ -312,6 +327,8 @@ coûts . voiture . coûts d'utilisation . contraventions:
par défaut:
valeur: recettes annuelles 2022 / parc français 2022
arrondi: oui
unité: €/an
plancher: 0
note: |
Cette question n'est pas évidente, mais elle est néanmoins non négligeable.
Les recettes des amendes diverses de circulation [ont atteint 1,8 milliards
Expand Down
12 changes: 6 additions & 6 deletions rules/empreinte.publicodes
Original file line number Diff line number Diff line change
Expand Up @@ -33,16 +33,16 @@ empreinte . voiture:
# Permet de forcer l'utilisation de la consommation estimée lors des
# recalculs pour les alternatives.
variations:
- si: voiture . thermique . consommation > 1
alors: voiture . thermique . consommation
- sinon: voiture . thermique . consommation . consommation estimée
- si: voiture . thermique . consommation carburant > 1
alors: voiture . thermique . consommation carburant
- sinon: voiture . thermique . consommation estimée
ngc . transport . voiture . électrique . consommation aux 100:
valeur:
# Permet de forcer l'utilisation de la consommation estimée lors des
# recalculs pour les alternatives.
variations:
- si: voiture . électrique . consommation > 1
alors: voiture . électrique . consommation
- sinon: voiture . électrique . consommation . consommation estimée
- si: voiture . électrique . consommation électricité > 1
alors: voiture . électrique . consommation électricité
- sinon: voiture . électrique . consommation estimée
# On souhaite estimer l'empreinte total de la voiture et non par personne.
ngc . transport . voiture . voyageurs: 1
2 changes: 1 addition & 1 deletion rules/usage.publicodes
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ usage . km annuels . estimés:
formule:
variations:
- si: voiture . thermique . carburant = 'gazole B7 ou B10'
alors: 953
alors: 9535
- si: voiture . thermique . carburant = 'essence E5 ou E10'
alors: 13975
- sinon: (13975 + 9535) / 2
Expand Down
49 changes: 26 additions & 23 deletions rules/voiture.publicodes
Original file line number Diff line number Diff line change
Expand Up @@ -116,10 +116,10 @@ voiture . prix d'achat . estimé:
unité:
note: |
La valeur du prix d'achat moyen d'une voiture neuve est importante pour le
calcul des coûts des alternatives et non vraiment pour le calcul de la
calcul des coûts des alternatives et pas vraiment pour le calcul de la
voiture actuelle. En effet, le prix d'achat de la voiture actuelle pourra
facilement être renseigné par l'utilisateurice. C'est pourquoi nous avons
choisi de nous baser sur des valeurs d'achat de voitures récentes, car ce
facilement être renseigné par l'utilisateurice. C'est **pourquoi nous avons
choisi de nous baser sur des valeurs d'achat de voitures récentes**, car ce
seront elles qui seront les plus susceptibles d'être achetées en
remplacement de la voiture actuelle.
Expand All @@ -146,7 +146,7 @@ voiture . prix d'achat . estimé:
carburants. Il faudrait alors trouver une source le détaillant. Cependant,
pour une première version, cela nous semble suffisant.
voiture . thermique . consommation:
voiture . thermique . consommation carburant:
question: Quelle est sa consommation moyenne ?
applicable si:
une de ces conditions:
Expand All @@ -159,40 +159,41 @@ voiture . thermique . consommation:
Renseignez la consommation moyenne de votre voiture en litre aux 100 km tel
que renseigné par le constructeur. Si vous ne la connaissez pas, vous
pouvez laisser la valeur par défaut.
avec:
consommation estimée:
titre: Consommation éstimée par défaut
valeur: ngc . transport . voiture . thermique . consommation estimée
unité: l/100km
contexte:
ngc . transport . voiture . utilisateur: "'propriétaire'"
ngc . transport . voiture . gabarit: voiture . gabarit
ngc . transport . voiture . motorisation: voiture . motorisation
ngc . transport . voiture . thermique . carburant: voiture . thermique . carburant
voiture . thermique . consommation estimée:
titre: Consommation estimée par défaut
valeur: ngc . transport . voiture . thermique . consommation estimée
unité: l/100km
contexte:
ngc . transport . voiture . utilisateur: "'propriétaire'"
ngc . transport . voiture . gabarit: voiture . gabarit
ngc . transport . voiture . motorisation: voiture . motorisation
ngc . transport . voiture . thermique . carburant: voiture . thermique . carburant

voiture . électrique:
titre: Voiture électrique

voiture . électrique . consommation:
voiture . électrique . consommation électricité:
question: Quelle est sa consommation électrique moyenne ?
applicable si:
une de ces conditions:
- motorisation = 'électrique'
- motorisation = 'hybride'
par défaut: consommation estimée
unité: kWh/100km
plancher: 1
description: |
Renseignez la consommation moyenne de votre voiture en kWh par 100 km tel
que renseigné par le constructeur. Si vous ne la connaissez pas, vous
pouvez laisser la valeur par défaut.
avec:
consommation estimée:
titre: Consommation estimée par défaut
valeur: ngc . transport . voiture . électrique . consommation estimée
unité: kWh/100km
contexte:
ngc . transport . voiture . utilisateur: "'propriétaire'"
ngc . transport . voiture . gabarit: voiture . gabarit
voiture . électrique . consommation estimée:
titre: Consommation estimée par défaut
valeur: ngc . transport . voiture . électrique . consommation estimée
unité: kWh/100km
contexte:
ngc . transport . voiture . utilisateur: "'propriétaire'"
ngc . transport . voiture . gabarit: voiture . gabarit

voiture . électrique . prix kWh:
question: Quel est le prix du kWh ?
Expand Down Expand Up @@ -381,6 +382,7 @@ voiture . thermique . prix carburant:
- motorisation = 'thermique'
- motorisation = 'hybride'
par défaut: prix carburant moyen
plancher: 0
description: |
Renseignez le prix moyen du carburant que vous avez dû payer cette année.
Si vous ne le connaissez pas, vous pouvez laisser la valeur par défaut.
Expand Down Expand Up @@ -411,6 +413,7 @@ voiture . thermique . prix carburant moyen:
voiture . durée de détention:
question: Depuis combien de temps possédez-vous votre voiture ?
par défaut: 5.5
plancher: 0
unité: an
description: |
Renseignez la durée totale de détention de votre voiture. Si vous la
Expand Down
58 changes: 38 additions & 20 deletions scripts/generate-alternatives.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,33 @@ export default function generateAlternatives(rules) {
const baseContexte = {
"voiture . gabarit": `'${gabarit}'`,
"voiture . motorisation": `'${motorisation}'`,
// Needed to force the use of the 'voiture . prix d'achat . estimé'
"voiture . prix d'achat": "non",
// Needed to force the use of the 'voiture . thermique . consommation . estimée'
"voiture . thermique . consommation": "non",
"voiture . électrique . consommation électricité": {
valeur: "voiture . électrique . consommation estimée",
contexte: {
"voiture . gabarit": `'${gabarit}'`,
},
},
}

if (motorisation !== "électrique") {
if (motorisation === "électrique") {
rules[`empreinte . ${motorisation} . ${gabarit}`] = {
titre: `Ensemble des ${gabarit} ${motorisation}`,
titre: `${gabaritTitle} ${motorisation}`,
unité: "kgCO2eq/an",
valeur: "empreinte . voiture",
contexte: baseContexte,
}
rules[`coûts . ${motorisation} . ${gabarit}`] = {
titre: `${gabaritTitle} ${motorisation}`,
unité: "€/an",
valeur: "coûts . voiture",
contexte: baseContexte,
}
} else {
rules[`empreinte . ${motorisation} . ${gabarit}`] = {
titre: `Ensemble des ${gabaritTitle} ${motorisation}`,
}
rules[`coûts . ${motorisation} . ${gabarit}`] = {
titre: `Ensemble des ${gabarit} ${motorisation}`,
titre: `Ensemble des ${gabaritTitle} ${motorisation}`,
}
for (const carburant of carburants) {
const carburantTitle =
Expand All @@ -70,6 +85,14 @@ export default function generateAlternatives(rules) {
contexte: {
...baseContexte,
"voiture . thermique . carburant": `'${carburant}'`,
"voiture . thermique . consommation carburant": {
valeur: "voiture . thermique . consommation estimée",
contexte: {
"voiture . gabarit": `'${gabarit}'`,
"voiture . motorisation": `'${motorisation}'`,
"voiture . thermique . carburant": `'${carburant}'`,
},
},
},
}
rules[`coûts . ${motorisation} . ${gabarit} . ${carburant}`] = {
Expand All @@ -79,22 +102,17 @@ export default function generateAlternatives(rules) {
contexte: {
...baseContexte,
"voiture . thermique . carburant": `'${carburant}'`,
"voiture . thermique . consommation carburant": {
valeur: "voiture . thermique . consommation estimée",
contexte: {
"voiture . gabarit": `'${gabarit}'`,
"voiture . motorisation": `'${motorisation}'`,
"voiture . thermique . carburant": `'${carburant}'`,
},
},
},
}
}
} else {
rules[`empreinte . ${motorisation} . ${gabarit}`] = {
titre: `${gabaritTitle} ${motorisation}`,
unité: "kgCO2eq/an",
valeur: "empreinte . voiture",
contexte: baseContexte,
}
rules[`coûts . ${motorisation} . ${gabarit}`] = {
titre: `${gabaritTitle} ${motorisation}`,
unité: "€/an",
valeur: "coûts . voiture",
contexte: baseContexte,
}
}
}
}
Expand Down
Loading

0 comments on commit ab0e5b4

Please sign in to comment.