`POPULATION_TABLE_PATH` est mis à jour en fonction de l'évolution des déciles de population. Au PLF 2021, cette étape employait une publication du Sénat. Au PLF 2022, nous employons POTE pour extraire les déciles : on extrait du CASD, `CalibPote.txt` (.txt qui contient des données au format .csv) que l'on renomme en `Simulation_engine/Calib/ResFinalCalibSenat.csv` par respect de la tradition. On met ensuite à jour le dépôt comme dans cette MR pour le PLF 2022 [MR!70](https://git.leximpact.dev/leximpact/leximpact-server/-/merge_requests/70/).
La population doit être mise à jour pour :
* la migration vers une nouvelle année de calcul
* ou à l'ajout d'un PLF : des pré-calculs de PLF permettent, à chaque calcul d'amendement, de prendre les résultats de la loi actuelle et du PLF dans la base de données (économie de temps de calcul).
Cette mise à jour de la population correspond à la mise à jour de la table désignée par `NAME_TABLE_BASE_RESULT`.
### Mise à jour de `NAME_TABLE_BASE_RESULT` et `POPULATION_TABLE_PATH`
`POPULATION_TABLE_PATH` est mis à jour en fonction de l'évolution des déciles de population.
Au PLF 2021, cette étape employait une publication du Sénat.
Au PLF 2022, nous employons POTE pour extraire les déciles : on extrait du CASD, `CalibPote.txt` (.txt qui contient des données au format .csv) que l'on renomme en `Simulation_engine/Calib/ResFinalCalibSenat.csv` par respect de la tradition.
On met ensuite à jour le dépôt comme dans cette MR pour le PLF 2022 [MR!70](https://git.leximpact.dev/leximpact/leximpact-server/-/merge_requests/70/).
> Cf. [cette documentation LexImpact](https://cloud.leximpact.dev/index.php/f/1573) concernant ces étapes (Fichier `Générer des données à partir d_un fichier ERFS-FPR.docx`)
...
...
@@ -11,9 +23,23 @@ La base de donnée doit être à jour de l'année de `base` de calcul (inflation
La [CI gitlab](https://git.leximpact.dev/leximpact/leximpact-server/-/blob/934f1c18c34624a30c430d6ca5bb2871f1474382/.gitlab-ci.yml#L106) calcule `base_result_cache` à chaque déploiement pour éviter les désynchronisations entre les paramètres du `.env` (calcule `NAME_TABLE_BASE_RESULT` en fonction de `POPULATION_TABLE_PATH`) tout comme entre la table et l'éventuelle évolution d'`openfisca-france`.
`base_result_cache` est équivalent à `base_results` où le préfixe `_cache` a été ajouté pour préciser que ce sont des données pré-calculées.
## Ajout d'un PLF, après mise à jour de la population
L'ajout d'un PLF nécessite une mise à jour du `.env`.
Extrait au PLF 2022 :
```ini
#RECETTES_ETAT_EURO="66_900_000_000" #Montant total sur lequel les résultats renvoyés seront ajustés en cas d'ajustement des résultats (cas par défaut). La valeur renseignée ici sera celle qui sera affichée pour les recettes de l'Etat totales avec le code existant.
YEAR_COMPUTATION="2021"#Année où s'opère le calcul du code existant et des réformes.
`base_result_cache` est équivalent à `base_results` où le préfixe `_cache` a été ajouté pour préciser que ce sont des données pré-calculées.
`RECETTES_ETAT_EURO` était initialement dans le `.env`. Il est maintenant inutile dans ce fichier parce que l'historique des valeurs a été inscrit en dur dans `Simulation_engine/simulate_pop_from_reform.py`.
Changement de `RECETTES_ETAT_EURO`, voir :
*[MR server!71 qui déplace l'information dans Simulation_engine/simulate_pop_from_reform.py](https://git.leximpact.dev/leximpact/leximpact-server/-/merge_requests/71)
### En développement
#### Ajouter le PLF
Exemple d'ajout du PLF 2022 avec la [MR!69](https://git.leximpact.dev/leximpact/leximpact-server/-/merge_requests/69)(où`YEAR_COMPUTATION` était en retard).
Exemple d'ajout du PLF 2022 avec la [MR!69](https://git.leximpact.dev/leximpact/leximpact-server/-/merge_requests/69) :
* Mise à jour du `.env` : `YEAR_COMPUTATION` (année+1) et `RECETTES_ETAT_EURO` pour la nouvelle valeur `YEAR_COMPUTATION`.
* Ajout de la réforme `reformes/reformePLF_2022.py`
## Désactivation d'un PLF
Il s'agit de désactiver le descriptif du PLF et de mettre à jour l'année de calcul.
## SANS PLF
> La population peut également être mise à jour. La meilleure période de mise à jour n'a pas encore été formalisée : quelques mois après le passage à la nouvelle année ? Au 2ème trimestre ?
### En production
Extrait de `.env` au PLF 2022 migré vers l'année 2022 :
### En développement
```ini
YEAR_COMPUTATION="2022"
# Année où s'opère le calcul du code existant et des réformes.
# Contient l'adresse où l'on peut trouver un dictionnaire représentant le PLF. Commenter cette variable pour désactiver le calcul du PLF.
# Et, commenter pour les tests.
```ini
# 2021 et 2021+PLF2022
YEAR_COMPUTATION="2021"# Année où s'opère le calcul du code existant et des réformes.
# RECETTES_ETAT_EURO="66_700_000_000"
# RECETTES_ETAT_EURO="82_400_000_000"
#RecettesprévisionnellesindiquéesdanslePLF2022.
```
> De même qu'en production, `RECETTES_ETAT_EURO` était initialement dans le `.env`. Il est maintenant inutile dans ce fichier parce que l'historique des valeurs a été inscrit en dur dans `Simulation_engine/simulate_pop_from_reform.py`.
\ No newline at end of file
Ainsi :
*`YEAR_COMPUTATION` a été incrémenté de 1 année
*`PLF_PATH` a été commenté
*`RECETTES_ETAT_EURO` reste identique à sa valeur durant le PLF. Il est commenté car il était initialement dans le `.env` mais il est maintenant inutile dans ce fichier : l'historique des valeurs a été inscrit en dur dans `Simulation_engine/simulate_pop_from_reform.py`.
Sachant que l''historique des valeurs de `RECETTES_ETAT_EURO` provient des PLF successifs où les valeurs les plus récentes sont publiées.
> Les valeurs anciennes pourraient être migrées vers les valeurs effectives d'impôt indiquées, par exemple, dans le [Mémo IR](https://documentation.leximpact.dev/leximpact_prepare_data/memo_irpp).