From 23e35b6f2b7e933cf681102153af51e819e08635 Mon Sep 17 00:00:00 2001
From: OURY Sarah <sarah.oury@soprasteria.com>
Date: Thu, 30 May 2024 14:20:35 +0000
Subject: [PATCH] =?UTF-8?q?[SOY]=20Qualit=C3=A9=20donn=C3=A9es?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 CHANGELOG.md                                  |   1 +
 e2e/5_assert.sh                               |   8 +-
 e2e/input_template/Application.csv            |   4 +-
 e2e/input_template/DataCenter.csv             |  10 +-
 .../EquipementPhysique_hors_serveur.csv       | 202 +++++++++---------
 .../EquipementPhysique_serveur.csv            | 202 +++++++++---------
 e2e/input_template/EquipementVirtuel.csv      |   4 +-
 e2e/input_template/OperationNonIT.csv         |  42 ++--
 .../export/IndicateurController.java          |  11 +-
 .../repository/ApplicationRepository.java     |   1 +
 .../EquipementPhysiqueRepository.java         |   5 +-
 .../EquipementVirtuelRepository.java          |   1 +
 .../repository/IndicateurRepository.java      |  20 +-
 .../repository/OperationNonITRepository.java  |   1 +
 .../src/main/resources/schema.sql             | 157 +++++++-------
 ...issementEquipementPhysiqueServiceTest.java |   5 +-
 ...richissementOperationNonITServiceTest.java |   5 +-
 .../EquipementPhysiqueIntegrationConfig.java  |   5 +-
 .../OperationNonITIntegrationConfig.java      |   1 +
 .../test/resources/sql/equipment_physique.sql |   4 +-
 .../test/resources/sql/operation_non_it.sql   |   4 +-
 .../src/test/resources/sql/schema.sql         |  71 +++---
 .../domain/model/Application.java             |   1 +
 .../domain/model/DataCenter.java              |   2 +-
 .../domain/model/EquipementPhysique.java      |   1 +
 .../domain/model/EquipementVirtuel.java       |   1 +
 .../domain/model/OperationNonIT.java          |   1 +
 .../impl/ImportDonneesEntreePortImpl.java     |  79 +++++--
 .../config/ApplicationPortConfig.java         |   5 +-
 .../jpa/entity/ApplicationEntity.java         |  96 ++++-----
 .../jpa/entity/DataCenterEntity.java          |  12 +-
 .../jpa/entity/EquipementPhysiqueEntity.java  |   2 +
 .../jpa/entity/EquipementVirtuelEntity.java   |   2 +
 .../jpa/entity/OperationNonITEntity.java      |   1 +
 .../service/ErrorManagementService.java       |  30 ++-
 .../utils/Constants.java                      |   8 +
 .../src/main/resources/application.yaml       |   1 +
 .../src/main/resources/schema.sql             |  55 ++---
 .../src/main/resources/static/openapi.yaml    |  25 ++-
 .../ImportDonneesEntreePortImplTest.java      |   4 +-
 .../service/ErrorManagementServiceTest.java   |  19 ++
 .../domain/data/entree/Application.java       |  25 +--
 .../domain/data/entree/DataCenter.java        |  19 +-
 .../data/entree/EquipementPhysique.java       |   1 +
 .../domain/data/entree/EquipementVirtuel.java |  31 +--
 .../domain/data/entree/OperationNonIT.java    |   2 +-
 .../data/indicateurs/ImpactApplication.java   |   1 +
 .../indicateurs/ImpactEquipementPhysique.java |   1 +
 .../indicateurs/ImpactEquipementVirtuel.java  |   1 +
 .../indicateurs/ImpactOperationNonIT.java     |   1 +
 .../domain/data/indicateurs/ImpactReseau.java |   1 -
 .../CalculImpactApplicationServiceImpl.java   |   2 +
 ...ulImpactEquipementPhysiqueServiceImpl.java |   2 +
 ...culImpactEquipementVirtuelServiceImpl.java |   2 +
 ...CalculImpactOperationNonITServiceImpl.java |   2 +
 .../api-event-calculs-async-openapi.yaml      |  30 +++
 .../static/api-event-calculs-openapi.yaml     |  24 +++
 .../static/asyncapi_equipement_physique.yaml  |   6 +
 .../static/asyncapi_operation_non_it.yaml     |   3 +
 59 files changed, 739 insertions(+), 524 deletions(-)
 create mode 100644 services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/utils/Constants.java

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ea92694a..a185239d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,7 @@ Tous les changements de ce projet seront documentés dans ce document.
 
 ## [Non livré]
 - Pouvoir charger et lancer un calcul sur les opérations non IT -> [Issue3](https://gitlab-forge.din.developpement-durable.gouv.fr/pub/numeco/m4g/numecoeval/-/issues/3)
+- Pouvoir inclure dans l'évaluation d'impact des informations sur la qualité des données -> [Issue4](https://gitlab-forge.din.developpement-durable.gouv.fr/pub/numeco/m4g/numecoeval/-/issues/4)
 
 
 ## [1.3.0] - 2024-03-05
diff --git a/e2e/5_assert.sh b/e2e/5_assert.sh
index 87adfefb..03c217fb 100644
--- a/e2e/5_assert.sh
+++ b/e2e/5_assert.sh
@@ -15,11 +15,11 @@ export_table() {
 if [ -d actual ]; then rm -rf actual; fi
 mkdir actual
 
-export_table equipementPhysique conso_elec_moyenne,critere,etapeacv,impact_unitaire,nom_entite,nom_entite_discriminator,nom_equipement,nom_source_donnee,nom_source_donnee_discriminator,quantite,source,statut_equipement_physique,statut_indicateur,trace,type_equipement,unite,version_calcul
-export_table equipementVirtuel cluster,conso_elec_moyenne,critere,etapeacv,impact_unitaire,nom_entite,nom_entite_discriminator,nom_equipement,nom_equipement_virtuel,nom_source_donnee,nom_source_donnee_discriminator,source,statut_indicateur,trace,unite,version_calcul
-export_table application conso_elec_moyenne,critere,domaine,etapeacv,impact_unitaire,nom_application,nom_entite,nom_entite_discriminator,nom_equipement_physique,nom_equipement_virtuel,nom_source_donnee,nom_source_donnee_discriminator,source,sous_domaine,statut_indicateur,trace,type_environnement,unite,version_calcul
+export_table equipementPhysique conso_elec_moyenne,critere,etapeacv,impact_unitaire,nom_entite,nom_entite_discriminator,nom_equipement,nom_source_donnee,nom_source_donnee_discriminator,quantite,source,statut_equipement_physique,statut_indicateur,trace,type_equipement,unite,version_calcul,qualite
+export_table equipementVirtuel cluster,conso_elec_moyenne,critere,etapeacv,impact_unitaire,nom_entite,nom_entite_discriminator,nom_equipement,nom_equipement_virtuel,nom_source_donnee,nom_source_donnee_discriminator,source,statut_indicateur,trace,unite,version_calcul,qualite
+export_table application conso_elec_moyenne,critere,domaine,etapeacv,impact_unitaire,nom_application,nom_entite,nom_entite_discriminator,nom_equipement_physique,nom_equipement_virtuel,nom_source_donnee,nom_source_donnee_discriminator,source,sous_domaine,statut_indicateur,trace,type_environnement,unite,version_calcul,qualite
 export_table reseau etapeacv,critere,source,statut_indicateur,trace,version_calcul,impact_unitaire,unite,nom_entite,nom_equipement
-export_table operationNonIT conso_elec_moyenne,critere,etapeacv,impact_unitaire,nom_entite,nom_entite_discriminator,nom_item_non_it,nom_source_donnee,nom_source_donnee_discriminator,quantite,source,statut_indicateur,trace,type_item,unite,version_calcul
+export_table operationNonIT conso_elec_moyenne,critere,etapeacv,impact_unitaire,nom_entite,nom_entite_discriminator,nom_item_non_it,nom_source_donnee,nom_source_donnee_discriminator,quantite,source,statut_indicateur,trace,type_item,unite,version_calcul,qualite
 
 ALL_OK=true
 for file in $(ls actual/); do
diff --git a/e2e/input_template/Application.csv b/e2e/input_template/Application.csv
index f6d03dcd..ffc0f610 100644
--- a/e2e/input_template/Application.csv
+++ b/e2e/input_template/Application.csv
@@ -1,2 +1,2 @@
-nomApplication;typeEnvironnement;nomEquipementVirtuel;nomSourceDonneeEquipementVirtuel;domaine;sousDomaine;nomEntite;nomEquipementPhysique;nomSourceDonnee
-application-;##TYPE_ENV##;virtual-eq-;;Domain 1;Sub Domain 1;MY ENTERPRISE;physical-eq-srv-;;
+nomApplication;typeEnvironnement;nomEquipementVirtuel;nomSourceDonneeEquipementVirtuel;domaine;sousDomaine;nomEntite;nomEquipementPhysique;nomSourceDonnee;qualite
+application-;##TYPE_ENV##;virtual-eq-;;Domain 1;Sub Domain 1;MY ENTERPRISE;physical-eq-srv-;;haute
diff --git a/e2e/input_template/DataCenter.csv b/e2e/input_template/DataCenter.csv
index 11043f09..4a7e9258 100644
--- a/e2e/input_template/DataCenter.csv
+++ b/e2e/input_template/DataCenter.csv
@@ -1,8 +1,8 @@
-nomCourtDatacenter;nomLongDatacenter;pue;localisation;nomEntite;
-default;Default;1.75;France;;
-B1;B1;1.32;France;;
-F1;F1;1.43;France;;
-G1;G1;1.45;Spain;;
+nomCourtDatacenter;nomLongDatacenter;pue;localisation;nomEntite;qualite
+default;Default;1.75;France;;Haute
+B1;B1;1.32;France;;bAsse
+F1;F1;1.43;France;;Moyenne 
+G1;G1;1.45;Spain;;erreur
 X1;X1;1.42;Russia;;
 Y1;Y1;1.41;Germany;;
 Z2;Z2;1.75;France;;
diff --git a/e2e/input_template/EquipementPhysique_hors_serveur.csv b/e2e/input_template/EquipementPhysique_hors_serveur.csv
index f8963fae..557e28ba 100644
--- a/e2e/input_template/EquipementPhysique_hors_serveur.csv
+++ b/e2e/input_template/EquipementPhysique_hors_serveur.csv
@@ -1,101 +1,101 @@
-nomEquipementPhysique;modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;type;statut;paysDUtilisation;consoElecAnnuelle;utilisateur;nomSourceDonnee;nomEntite;nbCoeur;nbJourUtiliseAn;goTelecharge;modeUtilisation;tauxUtilisation
-physical-eq-001;P2719;1;;2021-03-30;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;COPE;
-physical-eq-002;P2719;2;;2021-03-30;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;BYOD;
-physical-eq-003;P2719;4;;2021-03-30;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;COB;
-physical-eq-004;HUB USB;10;;2023-04-01;2023-06-16;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;BYOD;0.1
-physical-eq-005;P2720DC;2;;2022-11-04;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;BYOD;12.1
-physical-eq-006;PIXEL 6;1;;2022-10-18;2023-06-16;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;test
-physical-eq-007;UP2516D;1;;2022-07-31;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;0.9
-physical-eq-008;UP2516D;2;;2022-03-10;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;COPE;0.6
-physical-eq-009;Unknown;3;;2021-08-09;2023-06-16;IP Router;In use;France;;;;MY ENTERPRISE;;365;;COPE;0
-physical-eq-010;Unknown;3;;2021-08-09;2023-06-16;IP Router;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-011;HP 8440p;1;;2021-08-05;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-012;HP 8440p;1;;2023-04-27;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-013;HP 8470w;2;;2025-08-23;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-014;OPPO A72;1;;2023-08-07;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-015;CROSSCALL;1;;2022-08-20;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-016;CROSSCALL;11;;2022-05-20;2023-06-16;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-017;CROSSCALL;8;;2022-05-28;2023-06-16;Communication Device;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-018;HUAWEI P9;11;;2021-01-28;2023-06-16;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-019;HUAWEI P9;4;;2022-08-18;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-020;HUAWEI P9;1;;2023-06-18;2023-06-16;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-021;HUAWEI P9;32;;2021-01-28;2023-06-16;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-022;HUAWEI P9;9;;2024-08-18;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-023;PRO MP242;50;;2022-06-21;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-024;SAC A DOS;534;;2023-02-18;2023-06-16;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-025;SAC A DOS;1;;2023-02-18;2023-06-16;Consumable;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-026;SPIDER X1;2;;2022-10-17;2023-06-16;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-027;DELL 1909W;5;;2022-11-20;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-028;DELL 1909W;1;;2021-12-20;2023-06-16;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-029;DELL 1909W;14;;2025-10-17;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-030;DELL 2412M;1;;2022-12-26;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-031;DELL 2717H;19;;2021-04-08;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-032;DELL 2717H;1;;2024-11-23;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-033;DELL E7440;5;;2023-03-19;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-034;DELL E7440;31;;2025-10-27;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-035;DELL E7440;11;;2022-04-24;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-036;DELL E7450;2;;2022-12-21;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-037;DELL E7450;14;;2025-10-31;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-038;DELL E7450;6;;2022-04-22;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-039;DELL E7470;33;;2023-02-11;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-040;DELL E7470;23;;2022-03-16;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-041;DELL E7470;9;;2022-03-16;2023-06-16;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-042;DELL E7470;4;;2022-03-16;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-043;DELL E7470;325;;2024-09-01;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-044;DELL E7470;2;;2025-03-03;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-045;DELL E7480;349;;2022-12-11;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-046;DELL E7480;49;;2021-10-26;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-047;DELL E7480;18;;2021-09-25;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-048;DELL E7480;141;;2023-11-04;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-049;DELL E7480;70;;2021-09-30;2023-06-16;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-050;DELL E7480;1;;2025-06-03;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-051;DELL E7490;248;;2022-03-21;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-052;DELL E7490;52;;2021-06-17;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-053;DELL E7490;421;;2021-06-01;2023-06-16;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-054;DELL E7490;51;;2021-06-19;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-055;DELL E7490;6;;2024-04-20;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-056;DELL P1911;8;;2022-07-25;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-057;DELL P1911;6;;2025-01-04;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-058;DELL P1913;4;;2022-11-02;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-059;DELL P1913;2;;2024-04-12;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-060;HUAWEI P20;1;;2021-12-24;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-061;LENOVO M73;13;;2024-01-25;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-062;LENOVO M73;13;;2022-01-25;2023-06-16;Personal Computer;In Use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-063;ANTIVOL MAC;1;;2023-01-14;2023-06-16;Consumable;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-064;ANTIVOL MAC;1;;2023-01-14;2023-06-16;Consumable;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-065;ANTIVOL MAC;10;;2023-01-14;2023-06-16;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-066;AOC U2879VF;10;;2022-11-27;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-067;DELL P2210T;1;;2022-12-29;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-068;DELL P2217H;286;;2021-03-13;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-069;DELL P2217H;1;;2021-03-13;2023-06-16;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-070;DELL P2217H;5;;2022-01-14;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-071;DELL P2217H;6;;2021-03-13;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-072;DELL P2217H;3;;2023-10-15;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-073;DELL P2319H;1;;2022-12-19;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-074;DELL P2319H;49;;2022-12-19;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-075;DELL P2412H;1;;2022-03-25;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-076;DELL P2412H;1;;2025-06-01;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-077;DELL P2415Q;7;;2022-03-13;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-078;DELL P2415Q;1;;2022-03-13;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-079;DELL P2417H;371;;2021-03-18;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-080;DELL P2417H;7;;2022-07-16;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-081;DELL P2417H;4;;2024-07-02;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-082;DELL P2417H;5;;2021-03-18;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-083;DELL P2419H;11;;2021-09-01;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-084;DELL P2419H;11;;2022-10-18;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-085;DELL P2419H;847;;2021-09-01;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-086;DELL P2419H;1;;2021-09-01;2023-06-16;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-087;DELL P2419H;32;;2024-05-15;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-088;DELL P2422H;7;;2023-04-23;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-089;DELL P2422H;2;;2023-09-30;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-090;DELL P2422H;588;;2022-09-25;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-091;DELL P2719H;1;;2022-04-04;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-092;DELL P2719H;43;;2021-07-29;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-093;DELL P2719H;2;;2021-07-29;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-094;DELL P2721Q;2;;2023-02-24;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-095;DELL S2216H;2;;2024-11-27;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-096;DELL S2216H;17;;2021-05-21;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-097;DELL S2216H;1;;2022-11-22;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-098;DELL S2240L;28;;2021-06-26;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-099;DELL S2240L;8;;2022-12-04;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
-physical-eq-100;DELL S2240L;4;;2024-12-09;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;
+nomEquipementPhysique;modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;type;statut;paysDUtilisation;consoElecAnnuelle;utilisateur;nomSourceDonnee;nomEntite;nbCoeur;nbJourUtiliseAn;goTelecharge;modeUtilisation;tauxUtilisation;qualite
+physical-eq-001;P2719;1;;2021-03-30;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;COPE;;Haute
+physical-eq-002;P2719;2;;2021-03-30;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;BYOD;;Basse
+physical-eq-003;P2719;4;;2021-03-30;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;COB;;Moyenne
+physical-eq-004;HUB USB;10;;2023-04-01;2023-06-16;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;BYOD;0.1;erreur
+physical-eq-005;P2720DC;2;;2022-11-04;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;BYOD;12.1;moyenne
+physical-eq-006;PIXEL 6;1;;2022-10-18;2023-06-16;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;test;haute
+physical-eq-007;UP2516D;1;;2022-07-31;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;0.9;basse
+physical-eq-008;UP2516D;2;;2022-03-10;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;COPE;0.6;
+physical-eq-009;Unknown;3;;2021-08-09;2023-06-16;IP Router;In use;France;;;;MY ENTERPRISE;;365;;COPE;0;
+physical-eq-010;Unknown;3;;2021-08-09;2023-06-16;IP Router;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-011;HP 8440p;1;;2021-08-05;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-012;HP 8440p;1;;2023-04-27;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-013;HP 8470w;2;;2025-08-23;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-014;OPPO A72;1;;2023-08-07;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-015;CROSSCALL;1;;2022-08-20;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-016;CROSSCALL;11;;2022-05-20;2023-06-16;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-017;CROSSCALL;8;;2022-05-28;2023-06-16;Communication Device;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-018;HUAWEI P9;11;;2021-01-28;2023-06-16;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-019;HUAWEI P9;4;;2022-08-18;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-020;HUAWEI P9;1;;2023-06-18;2023-06-16;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-021;HUAWEI P9;32;;2021-01-28;2023-06-16;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-022;HUAWEI P9;9;;2024-08-18;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-023;PRO MP242;50;;2022-06-21;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-024;SAC A DOS;534;;2023-02-18;2023-06-16;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-025;SAC A DOS;1;;2023-02-18;2023-06-16;Consumable;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-026;SPIDER X1;2;;2022-10-17;2023-06-16;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-027;DELL 1909W;5;;2022-11-20;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-028;DELL 1909W;1;;2021-12-20;2023-06-16;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-029;DELL 1909W;14;;2025-10-17;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-030;DELL 2412M;1;;2022-12-26;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-031;DELL 2717H;19;;2021-04-08;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-032;DELL 2717H;1;;2024-11-23;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-033;DELL E7440;5;;2023-03-19;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-034;DELL E7440;31;;2025-10-27;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-035;DELL E7440;11;;2022-04-24;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-036;DELL E7450;2;;2022-12-21;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-037;DELL E7450;14;;2025-10-31;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-038;DELL E7450;6;;2022-04-22;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-039;DELL E7470;33;;2023-02-11;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-040;DELL E7470;23;;2022-03-16;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-041;DELL E7470;9;;2022-03-16;2023-06-16;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-042;DELL E7470;4;;2022-03-16;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-043;DELL E7470;325;;2024-09-01;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-044;DELL E7470;2;;2025-03-03;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-045;DELL E7480;349;;2022-12-11;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-046;DELL E7480;49;;2021-10-26;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-047;DELL E7480;18;;2021-09-25;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-048;DELL E7480;141;;2023-11-04;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-049;DELL E7480;70;;2021-09-30;2023-06-16;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-050;DELL E7480;1;;2025-06-03;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-051;DELL E7490;248;;2022-03-21;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-052;DELL E7490;52;;2021-06-17;2023-06-16;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-053;DELL E7490;421;;2021-06-01;2023-06-16;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-054;DELL E7490;51;;2021-06-19;2023-06-16;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-055;DELL E7490;6;;2024-04-20;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-056;DELL P1911;8;;2022-07-25;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-057;DELL P1911;6;;2025-01-04;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-058;DELL P1913;4;;2022-11-02;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-059;DELL P1913;2;;2024-04-12;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-060;HUAWEI P20;1;;2021-12-24;2023-06-16;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-061;LENOVO M73;13;;2024-01-25;2023-06-16;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-062;LENOVO M73;13;;2022-01-25;2023-06-16;Personal Computer;In Use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-063;ANTIVOL MAC;1;;2023-01-14;2023-06-16;Consumable;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-064;ANTIVOL MAC;1;;2023-01-14;2023-06-16;Consumable;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-065;ANTIVOL MAC;10;;2023-01-14;2023-06-16;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-066;AOC U2879VF;10;;2022-11-27;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-067;DELL P2210T;1;;2022-12-29;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-068;DELL P2217H;286;;2021-03-13;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-069;DELL P2217H;1;;2021-03-13;2023-06-16;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-070;DELL P2217H;5;;2022-01-14;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-071;DELL P2217H;6;;2021-03-13;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-072;DELL P2217H;3;;2023-10-15;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-073;DELL P2319H;1;;2022-12-19;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-074;DELL P2319H;49;;2022-12-19;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-075;DELL P2412H;1;;2022-03-25;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-076;DELL P2412H;1;;2025-06-01;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-077;DELL P2415Q;7;;2022-03-13;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-078;DELL P2415Q;1;;2022-03-13;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-079;DELL P2417H;371;;2021-03-18;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-080;DELL P2417H;7;;2022-07-16;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-081;DELL P2417H;4;;2024-07-02;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-082;DELL P2417H;5;;2021-03-18;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-083;DELL P2419H;11;;2021-09-01;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-084;DELL P2419H;11;;2022-10-18;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-085;DELL P2419H;847;;2021-09-01;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-086;DELL P2419H;1;;2021-09-01;2023-06-16;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-087;DELL P2419H;32;;2024-05-15;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-088;DELL P2422H;7;;2023-04-23;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-089;DELL P2422H;2;;2023-09-30;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-090;DELL P2422H;588;;2022-09-25;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-091;DELL P2719H;1;;2022-04-04;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-092;DELL P2719H;43;;2021-07-29;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-093;DELL P2719H;2;;2021-07-29;2023-06-16;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-094;DELL P2721Q;2;;2023-02-24;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-095;DELL S2216H;2;;2024-11-27;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-096;DELL S2216H;17;;2021-05-21;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-097;DELL S2216H;1;;2022-11-22;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-098;DELL S2240L;28;;2021-06-26;2023-06-16;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-099;DELL S2240L;8;;2022-12-04;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-100;DELL S2240L;4;;2024-12-09;2023-06-16;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
diff --git a/e2e/input_template/EquipementPhysique_serveur.csv b/e2e/input_template/EquipementPhysique_serveur.csv
index 21333d8a..2c2e6f31 100644
--- a/e2e/input_template/EquipementPhysique_serveur.csv
+++ b/e2e/input_template/EquipementPhysique_serveur.csv
@@ -1,101 +1,101 @@
-nomEquipementPhysique;modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;type;statut;paysDUtilisation;consoElecAnnuelle;utilisateur;nomSourceDonnee;nomEntite;nbCoeur;nbJourUtiliseAn;goTelecharge;modeUtilisation;tauxUtilisation
-physical-eq-srv-001;blade-server--28;7;default;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-002;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;10;;
-physical-eq-srv-003;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;20;;
-physical-eq-srv-004;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;30;;
-physical-eq-srv-005;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;40;;
-physical-eq-srv-006;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;50;;
-physical-eq-srv-007;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-008;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-009;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-010;DATACENTER;2;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-011;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-012;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-013;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-014;DATACENTER;1;G1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-015;DATACENTER;1;G1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-016;DATACENTER;1;G1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-017;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-018;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-019;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-020;DATACENTER;8;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-021;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-022;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-023;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-024;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-025;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-026;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-027;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-028;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-029;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-030;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-031;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-032;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-033;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-034;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;
-physical-eq-srv-035;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-036;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-037;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-038;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-039;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-040;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-041;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-042;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-043;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-044;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-045;DATACENTER;26;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-046;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-047;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-048;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-049;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-050;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-051;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-052;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-053;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-054;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-055;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-056;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-057;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-058;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-059;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-060;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-061;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-062;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-063;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-064;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-065;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-066;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-067;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-068;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-069;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-070;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-071;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-072;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-073;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;
-physical-eq-srv-074;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-075;DATACENTER;122;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-076;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-077;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-078;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-079;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-080;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-081;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-082;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-083;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-084;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-085;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-086;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-087;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-088;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-089;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-090;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-091;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-092;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-093;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-094;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-095;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-096;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-097;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-098;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-099;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
-physical-eq-srv-100;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;
+nomEquipementPhysique;modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;type;statut;paysDUtilisation;consoElecAnnuelle;utilisateur;nomSourceDonnee;nomEntite;nbCoeur;nbJourUtiliseAn;goTelecharge;modeUtilisation;tauxUtilisation;qualite
+physical-eq-srv-001;blade-server--28;7;default;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;Haute
+physical-eq-srv-002;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;10;;;Basse
+physical-eq-srv-003;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;20;;;Moyenne
+physical-eq-srv-004;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;30;;;erreur
+physical-eq-srv-005;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;40;;;
+physical-eq-srv-006;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;50;;;
+physical-eq-srv-007;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-008;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-009;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-010;DATACENTER;2;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-011;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-012;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-013;DATACENTER;1;F1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-014;DATACENTER;1;G1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-015;DATACENTER;1;G1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-016;DATACENTER;1;G1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-017;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-018;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-019;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-020;DATACENTER;8;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-021;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-022;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-023;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-024;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-025;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-026;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-027;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-028;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-029;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-030;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-031;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-032;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-033;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-034;DATACENTER;1;X1;2016-06-17;2023-06-16;Server;In use;;;;;;;365;;;;
+physical-eq-srv-035;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-036;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-037;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-038;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-039;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-040;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-041;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-042;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-043;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-044;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-045;DATACENTER;26;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-046;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-047;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-048;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-049;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-050;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-051;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-052;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-053;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-054;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-055;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-056;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-057;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-058;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-059;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-060;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-061;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-062;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-063;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-064;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-065;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-066;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-067;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-068;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-069;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-070;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-071;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-072;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-073;DATACENTER;1;Y1;2016-06-17;2023-06-16;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-074;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-075;DATACENTER;122;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-076;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-077;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-078;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-079;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-080;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-081;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-082;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-083;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-084;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-085;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-086;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-087;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-088;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-089;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-090;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-091;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-092;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-093;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-094;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-095;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-096;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-097;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-098;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-099;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-100;DATACENTER;1;Z2;2016-06-17;2023-06-16;Server;In use;France;;;;;;365;;;;
diff --git a/e2e/input_template/EquipementVirtuel.csv b/e2e/input_template/EquipementVirtuel.csv
index c6754843..f3ca683e 100644
--- a/e2e/input_template/EquipementVirtuel.csv
+++ b/e2e/input_template/EquipementVirtuel.csv
@@ -1,2 +1,2 @@
-nomEquipementVirtuel;nomEquipementPhysique;nomSourceDonneeEquipementPhysique;cleRepartition;vCPU;cluster;consoElecAnnuelle;typeEqv;capaciteStockage;nomEntite;nomSourceDonnee
-virtual-eq-;physical-eq-srv-;;;##VCPU##;##TYPE_EQV##;;calcul;;;;
+nomEquipementVirtuel;nomEquipementPhysique;nomSourceDonneeEquipementPhysique;cleRepartition;vCPU;cluster;consoElecAnnuelle;typeEqv;capaciteStockage;nomEntite;nomSourceDonnee;qualite
+virtual-eq-;physical-eq-srv-;;;##VCPU##;##TYPE_EQV##;;calcul;;;;basse
diff --git a/e2e/input_template/OperationNonIT.csv b/e2e/input_template/OperationNonIT.csv
index ae3e4ec3..1cee0eb0 100644
--- a/e2e/input_template/OperationNonIT.csv
+++ b/e2e/input_template/OperationNonIT.csv
@@ -1,21 +1,21 @@
-nomItemNonIT;quantite;type;dureeDeVie;localisation;nomEntite;nomSourceDonnee;nomCourtDatacenter;description;consoElecAnnuelle
-reseau-fixe-1;100.0;Fixed Line FR ;;France;SSG;sourceTest;;description;
-reseau-fixe-2;20.0;Fixed Line EU;;Hungary;Entite;sourceTest2;;description;
-reseau-fixe-error;20.0;Fixed Line;;Hungary;Entite;sourceTest2;;description;
-reseau-mobile-1;445.0;Mobile Line;;France;EntiteTest;sourceTest3;;description;
-batiment-dsi-stMalo;1000.0;Batiment 1;45.0;France;EntiteTest;sourceTest4;;description;
-batiment-dsi-Rennes;1200.0;Batiment 1;;France;EntiteTest;sourceTest5;;description;
-batiment-dsi-Cesson;1060.0;Batiment 2;;France;EntiteTest;sourceTest6;;description;
-batiment-dc-stMalo;836.0;Batiment DC;25.0;France;EntiteTest;sourceTest7;fakeName;description;
-batiment-dc-Cesson;590.0;Batiment DC;;France;EntiteTest;sourceTest8;G1;description;
-maintenance-1;30.0;Maintenance 1;;France;EntiteTest;sourceTest9;;description;
-deplacement-velo;1230.0;Deplacement Velo;;France;EntiteTest;sourceTest10;;description;
-deplacement-trotinette;60.0;Deplacement Trotinette;;France;EntiteTest;sourceTest11;;description;
-deplacement-voiture-electrique;156.0;Deplacement Voiture Electrique;;France;EntiteTest;sourceTest12;;description;
-deplacement-voiture-hybride;3457.0;Deplacement Voiture Hybride;;France;EntiteTest;sourceTest13;;description;
-deplacement-voiture-essence;24678.0;Deplacement Voiture Essence;;France;EntiteTest;sourceTest14;;description;
-deplacement-voiture-diesel;2355.0;Deplacement Voiture Diesel;;France;EntiteTest;sourceTest15;;description;
-deplacement-avion;23000.0;Deplacement Avion;;France;EntiteTest;sourceTest16;;description;
-deplacement-train;27000.0;Deplacement Train;;France;EntiteTest;sourceTest17;;description;
-deplacement-bus-essence;352.0;Deplacement Bus Essence;;France;EntiteTest;sourceTest18;;description;
-deplacement-bus-electrique;352.0;Deplacement Bus Electrique;;France;EntiteTest;sourceTest18;;description;
+nomItemNonIT;quantite;type;dureeDeVie;localisation;nomEntite;nomSourceDonnee;nomCourtDatacenter;description;consoElecAnnuelle;qualite
+reseau-fixe-1;100.0;Fixed Line FR ;;France;SSG;sourceTest;;description;;moyenne 
+reseau-fixe-2;20.0;Fixed Line EU;;Hungary;Entite;sourceTest2;;description;;haUte
+reseau-fixe-error;20.0;Fixed Line;;Hungary;Entite;sourceTest2;;description;;
+reseau-mobile-1;445.0;Mobile Line;;France;EntiteTest;sourceTest3;;description;;erreur
+batiment-dsi-stMalo;1000.0;Batiment 1;45.0;France;EntiteTest;sourceTest4;;description;;HAUTE
+batiment-dsi-Rennes;1200.0;Batiment 1;;France;EntiteTest;sourceTest5;;description;;bas
+batiment-dsi-Cesson;1060.0;Batiment 2;;France;EntiteTest;sourceTest6;;description;;Basse
+batiment-dc-stMalo;836.0;Batiment DC;25.0;France;EntiteTest;sourceTest7;fakeName;description;;
+batiment-dc-Cesson;590.0;Batiment DC;;France;EntiteTest;sourceTest8;G1;description;;
+maintenance-1;30.0;Maintenance 1;;France;EntiteTest;sourceTest9;;description;;
+deplacement-velo;1230.0;Deplacement Velo;;France;EntiteTest;sourceTest10;;description;;
+deplacement-trotinette;60.0;Deplacement Trotinette;;France;EntiteTest;sourceTest11;;description;;
+deplacement-voiture-electrique;156.0;Deplacement Voiture Electrique;;France;EntiteTest;sourceTest12;;description;;
+deplacement-voiture-hybride;3457.0;Deplacement Voiture Hybride;;France;EntiteTest;sourceTest13;;description;;
+deplacement-voiture-essence;24678.0;Deplacement Voiture Essence;;France;EntiteTest;sourceTest14;;description;;
+deplacement-voiture-diesel;2355.0;Deplacement Voiture Diesel;;France;EntiteTest;sourceTest15;;description;;
+deplacement-avion;23000.0;Deplacement Avion;;France;EntiteTest;sourceTest16;;description;;
+deplacement-train;27000.0;Deplacement Train;;France;EntiteTest;sourceTest17;;description;;
+deplacement-bus-essence;352.0;Deplacement Bus Essence;;France;EntiteTest;sourceTest18;;description;;
+deplacement-bus-electrique;352.0;Deplacement Bus Electrique;;France;EntiteTest;sourceTest18;;description;;
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/export/IndicateurController.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/export/IndicateurController.java
index e3338c81..e3a93ebb 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/export/IndicateurController.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/controller/export/IndicateurController.java
@@ -170,14 +170,9 @@ public class IndicateurController {
             rows++;
             List<String> values = new ArrayList<>();
             for (int i = 1; i <= numCols; i++) {
-                try {
-                    var value = rs.getDouble(i);
-                    values.add(String.valueOf(value));
-                } catch (Exception e) {
-                    var value = rs.getString(i);
-                    if (value == null) value = "";
-                    values.add(value);
-                }
+                var value = rs.getString(i);
+                if (value == null) value = "";
+                values.add(value);
             }
             lines.add(String.join(",", values));
             if (rows >= MAX_ROWS) break;
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/ApplicationRepository.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/ApplicationRepository.java
index 574d0576..4e5220f5 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/ApplicationRepository.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/ApplicationRepository.java
@@ -53,6 +53,7 @@ public class ApplicationRepository {
                             .domaine(rs.getString("domaine"))
                             .sousDomaine(rs.getString("sous_domaine"))
                             .nomSourceDonnee(rs.getString("nom_source_donnee"))
+                            .qualite(rs.getString("qualite"))
                             .build());
                 }
             }
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementPhysiqueRepository.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementPhysiqueRepository.java
index 11864627..d29cb380 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementPhysiqueRepository.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementPhysiqueRepository.java
@@ -35,7 +35,8 @@ public class EquipementPhysiqueRepository {
                           dc.localisation as dc_localisation,
                           dc.nom_long_datacenter as dc_nom_long_datacenter,
                           dc.pue as dc_pue,
-                          dc.nom_entite as dc_nom_entite
+                          dc.nom_entite as dc_nom_entite,
+                          dc.qualite as dc_qualite
                         FROM en_equipement_physique eqp
                         LEFT JOIN en_data_center dc ON dc.nom_lot = eqp.nom_lot and dc.nom_court_datacenter = eqp.nom_court_datacenter
                         WHERE eqp.id = ANY (?)
@@ -69,6 +70,7 @@ public class EquipementPhysiqueRepository {
                             .nomSourceDonnee(rs.getString("nom_source_donnee"))
                             .modeUtilisation(rs.getString("mode_utilisation"))
                             .tauxUtilisation(ResultSetUtils.getDouble(rs, "taux_utilisation"))
+                            .qualite(rs.getString("qualite"))
                             .dataCenter(
                                     DataCenterDTO.builder()
                                             .id(rs.getLong("dc_id"))
@@ -79,6 +81,7 @@ public class EquipementPhysiqueRepository {
                                             .nomEntite(rs.getString("dc_nom_entite"))
                                             .nomOrganisation(rs.getString("nom_organisation"))
                                             .dateLot(ResultSetUtils.getLocalDate(rs, "date_lot"))
+                                            .qualite(rs.getString("dc_qualite"))
                                             .build()
                             )
                             .build());
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementVirtuelRepository.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementVirtuelRepository.java
index 574c2c8c..14c8c91d 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementVirtuelRepository.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/EquipementVirtuelRepository.java
@@ -54,6 +54,7 @@ public class EquipementVirtuelRepository {
                             .capaciteStockage(ResultSetUtils.getDouble(rs, "capacite_stockage"))
                             .cleRepartition(ResultSetUtils.getDouble(rs, "cle_repartition"))
                             .nomSourceDonnee(rs.getString("nom_source_donnee"))
+                            .qualite(rs.getString("qualite"))
                             .build());
                 }
             }
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/IndicateurRepository.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/IndicateurRepository.java
index aa070003..a2148ebc 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/IndicateurRepository.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/IndicateurRepository.java
@@ -30,8 +30,8 @@ public class IndicateurRepository {
                            critere, nom_equipement, nom_entite, nom_entite_discriminator, source,
                            statut_indicateur, trace, version_calcul, conso_elec_moyenne,
                            impact_unitaire, quantite, type_equipement, unite,
-                           statut_equipement_physique, nom_lot, nom_source_donnee, nom_source_donnee_discriminator)
-                         VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?)
+                           statut_equipement_physique, nom_lot, nom_source_donnee, nom_source_donnee_discriminator, qualite)
+                         VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?, ?, ?, ?, ?)
             """;
 
     private static final String INSERT_EQUIPEMENT_VIRTUEL_QUERY = """
@@ -39,8 +39,8 @@ public class IndicateurRepository {
                     (date_calcul, date_lot, date_lot_discriminator, nom_organisation, nom_organisation_discriminator,
                       etapeacv, critere, nom_equipement, nom_equipement_virtuel, nom_entite, nom_entite_discriminator, 
                       source, statut_indicateur, trace, version_calcul, impact_unitaire, unite, conso_elec_moyenne, 
-                      cluster, nom_lot, nom_source_donnee, nom_source_donnee_discriminator )
-                    VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+                      cluster, nom_lot, nom_source_donnee, nom_source_donnee_discriminator, qualite )
+                    VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?)
             """;
 
     private static final String INSERT_APPLICATION_QUERY = """
@@ -49,8 +49,8 @@ public class IndicateurRepository {
                      nom_organisation_discriminator, nom_application, type_environnement, nom_equipement_physique,
                      nom_equipement_virtuel, nom_entite, nom_entite_discriminator, source, statut_indicateur, trace,
                      version_calcul, domaine, sous_domaine, impact_unitaire, unite, conso_elec_moyenne, nom_lot,
-                     nom_source_donnee, nom_source_donnee_discriminator)
-                VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+                     nom_source_donnee, nom_source_donnee_discriminator, qualite)
+                VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?)
             """;
 
     private static final String INSERT_OPERATION_NON_IT_QUERY = """
@@ -59,8 +59,8 @@ public class IndicateurRepository {
                            critere, nom_item_non_it, nom_entite, nom_entite_discriminator, source,
                            statut_indicateur, trace, version_calcul, conso_elec_moyenne,
                            impact_unitaire, quantite, type_item, unite,
-                           nom_lot, nom_source_donnee, nom_source_donnee_discriminator)
-                VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ,? ,?)
+                           nom_lot, nom_source_donnee, nom_source_donnee_discriminator,qualite)
+                VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ,? ,?,?)
             """;
     private static final String INSERT_MESSAGERIE_QUERY = """
             INSERT INTO ind_indicateur_impact_messagerie
@@ -122,6 +122,7 @@ public class IndicateurRepository {
                     ps.setString(21, indicateur.getNomLot());
                     ps.setString(22, indicateur.getNomSourceDonnee());
                     ps.setString(23, StringUtils.defaultString(indicateur.getNomSourceDonnee()));
+                    ps.setString(24, indicateur.getQualite());
                     ps.addBatch();
                 }
 
@@ -151,6 +152,7 @@ public class IndicateurRepository {
                     ps.setString(20, indicateur.getNomLot());
                     ps.setString(21, indicateur.getNomSourceDonnee());
                     ps.setString(22, StringUtils.defaultString(indicateur.getNomSourceDonnee()));
+                    ps.setString(23, indicateur.getQualite());
                     ps.addBatch();
                 }
 
@@ -184,6 +186,7 @@ public class IndicateurRepository {
                     ps.setString(23, indicateur.getNomLot());
                     ps.setString(24, indicateur.getNomSourceDonnee());
                     ps.setString(25, StringUtils.defaultString(indicateur.getNomSourceDonnee()));
+                    ps.setString(26, indicateur.getQualite());
                     ps.addBatch();
                 }
 
@@ -261,6 +264,7 @@ public class IndicateurRepository {
                     ps.setString(20, indicateur.getNomLot());
                     ps.setString(21, indicateur.getNomSourceDonnee());
                     ps.setString(22, StringUtils.defaultString(indicateur.getNomSourceDonnee()));
+                    ps.setString(23, indicateur.getQualite());
                     ps.addBatch();
                 }
 
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/OperationNonITRepository.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/OperationNonITRepository.java
index a267c358..dfda5caf 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/OperationNonITRepository.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/OperationNonITRepository.java
@@ -51,6 +51,7 @@ public class OperationNonITRepository {
                             .nomCourtDatacenter(rs.getString(COLUMN_NAME_NOM_COURT_DATACENTER))
                             .description(rs.getString("description"))
                             .consoElecAnnuelle(ResultSetUtils.getDouble(rs, "conso_elec_annuelle"))
+                            .qualite(rs.getString("qualite"))
                             .build());
                 }
             }
diff --git a/services/api-event-calculs/src/main/resources/schema.sql b/services/api-event-calculs/src/main/resources/schema.sql
index 24e2e71f..e388cfc1 100644
--- a/services/api-event-calculs/src/main/resources/schema.sql
+++ b/services/api-event-calculs/src/main/resources/schema.sql
@@ -1,25 +1,26 @@
 -- Creation des tables indicateurs
 CREATE TABLE IF NOT EXISTS ind_indicateur_impact_equipement_physique
 (
-    date_calcul                timestamp    NULL,
-    date_lot                   date         NULL,
-    nom_lot                    varchar(255) NULL,
-    etapeacv                   varchar(255) NULL,
-    critere                    varchar(255) NULL,
-    "source"                   varchar(255) NULL,
-    statut_indicateur          varchar(255) NULL,
-    trace                      text         NULL,
-    version_calcul             varchar(255) NULL,
-    conso_elec_moyenne         float8       NULL,
-    impact_unitaire            float8       NULL,
-    quantite                   int4         NULL,
-    statut_equipement_physique varchar(255) NULL,
-    type_equipement            varchar(255) NULL,
-    unite                      varchar(255) NULL,
-    nom_entite                 varchar(255) NULL,
-    nom_organisation           varchar(255) NULL,
-    nom_source_donnee          varchar(255) NULL,
-    nom_equipement             varchar(255) NULL
+    date_calcul                  timestamp        NULL,
+    date_lot                     date             NULL,
+    nom_lot                      varchar(255)     NULL,
+    etapeacv                     varchar(255)     NULL,
+    critere                      varchar(255)     NULL,
+    "source"                     varchar(255)     NULL,
+    statut_indicateur            varchar(255)     NULL,
+    trace                        text             NULL,
+    version_calcul               varchar(255)     NULL,
+    conso_elec_moyenne           float8           NULL,
+    impact_unitaire              float8           NULL,
+    quantite                     int4             NULL,
+    statut_equipement_physique   varchar(255)     NULL,
+    type_equipement              varchar(255)     NULL,
+    unite                        varchar(255)     NULL,
+    nom_entite                   varchar(255)     NULL,
+    nom_organisation             varchar(255)     NULL,
+    nom_source_donnee            varchar(255)     NULL,
+    nom_equipement               varchar(255)     NULL,
+    qualite                      varchar(255)     NULL
 );
 
 CREATE TABLE IF NOT EXISTS ind_indicateur_impact_equipement_virtuel
@@ -41,54 +42,57 @@ CREATE TABLE IF NOT EXISTS ind_indicateur_impact_equipement_virtuel
     impact_unitaire        float8       NULL,
     unite                  varchar(255) NULL,
     conso_elec_moyenne     float8       NULL,
-    "cluster"              varchar(255) NULL
+    "cluster"              varchar(255) NULL,
+    qualite                varchar(255) NULL
 );
 
 CREATE TABLE IF NOT EXISTS ind_indicateur_impact_application
 (
-    date_calcul               timestamp    NULL,
-    date_lot                  date         NULL,
-    nom_lot                   varchar(255) NULL,
-    etapeacv                  varchar(255) NULL,
-    critere                   varchar(255) NULL,
-    nom_organisation          varchar(255) NULL,
-    nom_source_donnee         varchar(255) NULL,
-    nom_application           varchar(255) NULL,
-    type_environnement        varchar(255) NULL,
-    nom_equipement_physique   varchar(255) NULL,
-    nom_equipement_virtuel    varchar(255) NULL,
-    nom_entite                varchar(255) NULL,
-    "source"                  varchar(255) NULL,
-    statut_indicateur         varchar(255) NULL,
-    trace                     text         NULL,
-    version_calcul            varchar(255) NULL,
-    domaine                   varchar(255) NULL,
-    sous_domaine              varchar(255) NULL,
-    impact_unitaire           float8       NULL,
-    unite                     varchar(255) NULL,
-    conso_elec_moyenne        float8       NULL
+    date_calcul               timestamp        NULL,
+    date_lot                  date             NULL,
+    nom_lot                   varchar(255)     NULL,
+    etapeacv                  varchar(255)     NULL,
+    critere                   varchar(255)     NULL,
+    nom_organisation          varchar(255)     NULL,
+    nom_source_donnee         varchar(255)     NULL,
+    nom_application           varchar(255)     NULL,
+    type_environnement        varchar(255)     NULL,
+    nom_equipement_physique   varchar(255)     NULL,
+    nom_equipement_virtuel    varchar(255)     NULL,
+    nom_entite                varchar(255)     NULL,
+    "source"                  varchar(255)     NULL,
+    statut_indicateur         varchar(255)     NULL,
+    trace                     text             NULL,
+    version_calcul            varchar(255)     NULL,
+    domaine                   varchar(255)     NULL,
+    sous_domaine              varchar(255)     NULL,
+    impact_unitaire           float8           NULL,
+    unite                     varchar(255)     NULL,
+    conso_elec_moyenne        float8           NULL,
+    qualite                   varchar(255)     NULL
 );
 
 CREATE TABLE IF NOT EXISTS ind_indicateur_impact_operation_non_it
 (
-    date_calcul                timestamp    NULL,
-    date_lot                   date         NULL,
-    nom_lot                    varchar(255) NULL,
-    etapeacv                   varchar(255) NULL,
-    critere                    varchar(255) NULL,
-    "source"                   varchar(255) NULL,
-    statut_indicateur          varchar(255) NULL,
-    trace                      text         NULL,
-    version_calcul             varchar(255) NULL,
-    conso_elec_moyenne         float8       NULL,
-    impact_unitaire            float8       NULL,
-    quantite                   int4         NULL,
-    type_item            varchar(255) NULL,
-    unite                      varchar(255) NULL,
-    nom_entite                 varchar(255) NULL,
-    nom_organisation           varchar(255) NULL,
-    nom_source_donnee          varchar(255) NULL,
-    nom_item_non_it             varchar(255) NULL
+    date_calcul                timestamp         NULL,
+    date_lot                   date              NULL,
+    nom_lot                    varchar(255)      NULL,
+    etapeacv                   varchar(255)      NULL,
+    critere                    varchar(255)      NULL,
+    "source"                   varchar(255)      NULL,
+    statut_indicateur          varchar(255)      NULL,
+    trace                      text              NULL,
+    version_calcul             varchar(255)      NULL,
+    conso_elec_moyenne         float8            NULL,
+    impact_unitaire            float8            NULL,
+    quantite                   int4              NULL,
+    type_item                  varchar(255)      NULL,
+    unite                      varchar(255)      NULL,
+    nom_entite                 varchar(255)      NULL,
+    nom_organisation           varchar(255)      NULL,
+    nom_source_donnee          varchar(255)      NULL,
+    nom_item_non_it            varchar(255)      NULL,
+    qualite                    varchar(255)      NULL
 );
 
 CREATE TABLE IF NOT EXISTS ind_indicateur_impact_messagerie
@@ -113,23 +117,28 @@ CREATE TABLE IF NOT EXISTS ind_indicateur_impact_messagerie
 
 CREATE TABLE IF NOT EXISTS ind_indicateur_impact_reseau
 (
-    date_calcul          timestamp    NULL,
-    date_lot             date         NULL,
-    nom_lot              varchar(255) NULL,
-    etapeacv             varchar(255) NULL,
-    critere              varchar(255) NULL,
-    "source"             varchar(255) NULL,
-    statut_indicateur    varchar(255) NULL,
-    trace                text         NULL,
-    version_calcul       varchar(255) NULL,
-    impact_unitaire      float8       NULL,
-    unite                varchar(255) NULL,
-    nom_entite           varchar(255) NULL,
-    nom_organisation     varchar(255) NULL,
-    nom_source_donnee    varchar(255) NULL,
-    nom_equipement       varchar(255) NULL
+    date_calcul          timestamp          NULL,
+    date_lot             date               NULL,
+    nom_lot              varchar(255)       NULL,
+    etapeacv             varchar(255)       NULL,
+    critere              varchar(255)       NULL,
+    "source"             varchar(255)       NULL,
+    statut_indicateur    varchar(255)       NULL,
+    trace                text               NULL,
+    version_calcul       varchar(255)       NULL,
+    impact_unitaire      float8             NULL,
+    unite                varchar(255)       NULL,
+    nom_entite           varchar(255)       NULL,
+    nom_organisation     varchar(255)       NULL,
+    nom_source_donnee    varchar(255)       NULL,
+    nom_equipement       varchar(255)       NULL
 );
 
+ALTER TABLE IF EXISTS ind_indicateur_impact_equipement_physique ADD COLUMN IF NOT EXISTS qualite varchar(255)  NULL DEFAULT '';
+ALTER TABLE IF EXISTS ind_indicateur_impact_application ADD COLUMN IF NOT EXISTS qualite varchar(255)  NULL DEFAULT '';
+ALTER TABLE IF EXISTS ind_indicateur_impact_equipement_virtuel ADD COLUMN IF NOT EXISTS qualite varchar(255)  NULL DEFAULT '';
+ALTER TABLE IF EXISTS ind_indicateur_impact_operation_non_it ADD COLUMN IF NOT EXISTS qualite varchar(255)  NULL DEFAULT '';
+
 CREATE INDEX IF NOT EXISTS idx_ind_eq_p__nom_lot_nom_equipement   ON ind_indicateur_impact_equipement_physique (nom_lot, nom_equipement);
 CREATE INDEX IF NOT EXISTS idx_ind_eq_v__nom_lot_nom_equipement   ON ind_indicateur_impact_equipement_virtuel (nom_lot, nom_equipement);
 CREATE INDEX IF NOT EXISTS idx_ind_app__nom_lot_nom_equipement    ON ind_indicateur_impact_application (nom_lot, nom_equipement_physique);
diff --git a/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementEquipementPhysiqueServiceTest.java b/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementEquipementPhysiqueServiceTest.java
index 791717ec..579474dc 100644
--- a/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementEquipementPhysiqueServiceTest.java
+++ b/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementEquipementPhysiqueServiceTest.java
@@ -70,7 +70,8 @@ class EnrichissementEquipementPhysiqueServiceTest {
                 "localisation": "France",
                 "dateLot": "2023-10-26",
                 "nomOrganisation": "org"
-              }
+              },
+              "qualite":"HAUTE"
             }
             """, EquipementPhysiqueDTO.class);
 
@@ -144,6 +145,7 @@ class EnrichissementEquipementPhysiqueServiceTest {
         Assertions.assertEquals(1, actual.getMixElectriques().size());
         Assertions.assertEquals("FR", actual.getMixElectriques().get(0).getPays());
         Assertions.assertEquals(1.1, actual.getImpactsEquipement().get(0).getValeur());
+        Assertions.assertEquals("HAUTE", actual.getEquipementPhysique().getQualite());
     }
 
 
@@ -171,5 +173,6 @@ class EnrichissementEquipementPhysiqueServiceTest {
         Assertions.assertEquals(1, actual.getMixElectriques().size());
         Assertions.assertEquals("FR", actual.getMixElectriques().get(0).getPays());
         Assertions.assertEquals(2.2, actual.getImpactsEquipement().get(0).getValeur());
+        Assertions.assertEquals("HAUTE", actual.getEquipementPhysique().getQualite());
     }
 }
diff --git a/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementOperationNonITServiceTest.java b/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementOperationNonITServiceTest.java
index 393ff04c..55f4b387 100644
--- a/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementOperationNonITServiceTest.java
+++ b/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/EnrichissementOperationNonITServiceTest.java
@@ -55,7 +55,8 @@ class EnrichissementOperationNonITServiceTest {
               "consoElecAnnuelle": null,
               "nomLot": "lot1",
               "dateLot": "2024-04-24",
-              "nomOrganisation": "org"
+              "nomOrganisation": "org",
+              "qualite":"BASSE"
             }
             """, OperationNonITDTO.class);
 
@@ -146,5 +147,7 @@ class EnrichissementOperationNonITServiceTest {
 
         Assertions.assertEquals("France", actual.getFacteurCaracterisations().get(1).getLocalisation());
         Assertions.assertEquals(0.0813225, actual.getFacteurCaracterisations().get(1).getValeur());
+        Assertions.assertEquals("BASSE", actual.getOperationNonIT().getQualite());
+
     }
 }
diff --git a/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/EquipementPhysiqueIntegrationConfig.java b/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/EquipementPhysiqueIntegrationConfig.java
index f826d65e..392f44f6 100644
--- a/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/EquipementPhysiqueIntegrationConfig.java
+++ b/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/EquipementPhysiqueIntegrationConfig.java
@@ -97,7 +97,8 @@ public class EquipementPhysiqueIntegrationConfig {
                           dc.localisation as dc_localisation,
                           dc.nom_long_datacenter as dc_nom_long_datacenter,
                           dc.pue as dc_pue,
-                          dc.nom_entite as dc_nom_entite
+                          dc.nom_entite as dc_nom_entite,
+                          dc.qualite as dc_qualite
                         FROM en_equipement_physique eqp
                         LEFT JOIN en_data_center dc ON dc.nom_lot = eqp.nom_lot and dc.nom_court_datacenter = eqp.nom_court_datacenter
                         WHERE eqp.statut_traitement = 'A_INGERER'
@@ -130,6 +131,7 @@ public class EquipementPhysiqueIntegrationConfig {
                         .utilisateur(rs.getString("utilisateur"))
                         .nomCourtDatacenter(rs.getString(COLUMN_NAME_NOM_COURT_DATACENTER))
                         .nomSourceDonnee(rs.getString("nom_source_donnee"))
+                        .qualite(rs.getString("qualite"))
                         .dataCenter(
                                 DataCenterDTO.builder()
                                         .id(rs.getLong("dc_id"))
@@ -140,6 +142,7 @@ public class EquipementPhysiqueIntegrationConfig {
                                         .nomEntite(rs.getString("dc_nom_entite"))
                                         .nomOrganisation(rs.getString("nom_organisation"))
                                         .dateLot(ResultSetUtils.getLocalDate(rs, "date_lot"))
+                                        .qualite(rs.getString("dc_qualite"))
                                         .build()
                         )
                         .build()
diff --git a/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/OperationNonITIntegrationConfig.java b/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/OperationNonITIntegrationConfig.java
index a27c7c0f..bde9876c 100644
--- a/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/OperationNonITIntegrationConfig.java
+++ b/services/api-event-donneesentrees/src/main/java/org/mte/numecoeval/donneesentrees/infrastructure/config/OperationNonITIntegrationConfig.java
@@ -113,6 +113,7 @@ public class OperationNonITIntegrationConfig {
                         .nomCourtDatacenter(rs.getString(COLUMN_NAME_NOM_COURT_DATACENTER))
                         .description(rs.getString("description"))
                         .consoElecAnnuelle(ResultSetUtils.getDouble(rs, "conso_elec_annuelle"))
+                        .qualite(rs.getString("qualite"))
                         .build()
         );
         return adapter;
diff --git a/services/api-event-donneesentrees/src/test/resources/sql/equipment_physique.sql b/services/api-event-donneesentrees/src/test/resources/sql/equipment_physique.sql
index 4d532f98..b100c694 100644
--- a/services/api-event-donneesentrees/src/test/resources/sql/equipment_physique.sql
+++ b/services/api-event-donneesentrees/src/test/resources/sql/equipment_physique.sql
@@ -7,8 +7,8 @@ INSERT INTO en_equipement_physique (id, date_creation, nom_lot, date_lot, nom_or
                                     date_achat, date_retrait, duree_vie_defaut, go_telecharge, modele, nb_coeur, mode_utilisation, taux_utilisation,
                                     nb_jour_utilise_an, nom_court_datacenter, nom_entite,
                                     nom_equipement_physique, pays_utilisation, quantite, serveur, statut, "type",
-                                    utilisateur, statut_traitement, date_update, nom_source_donnee)
+                                    utilisateur, statut_traitement, date_update, nom_source_donnee, qualite)
 VALUES (376826, '2023-03-23 15:53:51.179031', 'ENTITE|2022-01-01', '2022-01-01', 'ENTITE', NULL, '2022-01-01', NULL, 8.0, 0.0,
         'computer monitor-01-55', '','BYOD',0.4, 365.0, '', 'ENTITE', '2023-03-09-Ecran-105', 'France', 13.0, false, 'actif', 'Ecran',
-        '', 'EN_ATTENTE', NULL, 'SOURCE_A');
+        '', 'EN_ATTENTE', NULL, 'SOURCE_A','HAUTE');
 
diff --git a/services/api-event-donneesentrees/src/test/resources/sql/operation_non_it.sql b/services/api-event-donneesentrees/src/test/resources/sql/operation_non_it.sql
index 4960722a..f4da7a7a 100644
--- a/services/api-event-donneesentrees/src/test/resources/sql/operation_non_it.sql
+++ b/services/api-event-donneesentrees/src/test/resources/sql/operation_non_it.sql
@@ -1,4 +1,4 @@
 INSERT INTO en_operation_non_it (id, date_creation, nom_lot, date_lot, nom_organisation,nom_item_non_it, quantite, type,
-duree_de_vie, localisation, nom_entite,nom_source_donnee,nom_court_datacenter,description,conso_elec_annuelle,statut_traitement,date_update)
+duree_de_vie, localisation, nom_entite,nom_source_donnee,nom_court_datacenter,description,conso_elec_annuelle,statut_traitement,date_update,qualite)
 VALUES (11002, '2023-03-23 15:53:37.073851', 'nomlot', '2022-01-01', 'nomOrga', 'nomitem', 32, 'type', 31,
-        'Localisation', 'Entite', 'Source','nomCourtDatacenter','description',100,'EN_ATTENTE',NULL);
+        'Localisation', 'Entite', 'Source','nomCourtDatacenter','description',100,'EN_ATTENTE',NULL,'HAUTE');
diff --git a/services/api-event-donneesentrees/src/test/resources/sql/schema.sql b/services/api-event-donneesentrees/src/test/resources/sql/schema.sql
index 1460b631..27d5cb5e 100644
--- a/services/api-event-donneesentrees/src/test/resources/sql/schema.sql
+++ b/services/api-event-donneesentrees/src/test/resources/sql/schema.sql
@@ -28,6 +28,7 @@ CREATE TABLE IF NOT EXISTS en_data_center
     nom_entite           varchar(255) NULL,
     nom_long_datacenter  varchar(255) NULL,
     pue                  float8       NULL,
+    qualite              varchar(255) NULL,
     CONSTRAINT en_data_center_pkey PRIMARY KEY (id)
 );
 
@@ -59,6 +60,7 @@ CREATE TABLE IF NOT EXISTS en_equipement_physique
     taux_utilisation          float8       NULL,
     "type"                    varchar(255) NULL,
     utilisateur               varchar(255) NULL,
+    qualite                   varchar(255) NULL,
     CONSTRAINT en_equipement_physique_pkey PRIMARY KEY (id)
 );
 
@@ -75,46 +77,49 @@ CREATE TABLE IF NOT EXISTS en_equipement_virtuel
     nom_equipement_physique varchar(255) NULL,
     nom_equipement_virtuel  varchar(255) NULL,
     vcpu                    int4         NULL,
+    qualite                 varchar(255) NULL,
     CONSTRAINT en_equipement_virtuel_pkey PRIMARY KEY (id)
 );
 
 CREATE TABLE IF NOT EXISTS en_application
 (
-    id                      int8         NOT NULL,
-    date_creation           timestamp    NULL,
-    date_lot                date         NULL,
-    nom_lot                 varchar(255) NULL,
-    nom_organisation        varchar(255) NULL,
-    nom_source_donnee       varchar(255) NULL,
-    domaine                 varchar(255) NULL,
-    nom_application         varchar(255) NULL,
-    nom_entite              varchar(255) NULL,
-    nom_equipement_virtuel  varchar(255) NULL,
-    nom_equipement_physique varchar(255) NULL,
-    sous_domaine            varchar(255) NULL,
-    type_environnement      varchar(255) NULL,
+    id                      int8                 NOT NULL,
+    date_creation           timestamp            NULL,
+    date_lot                date                 NULL,
+    nom_lot                 varchar(255)         NULL,
+    nom_organisation        varchar(255)         NULL,
+    nom_source_donnee       varchar(255)         NULL,
+    domaine                 varchar(255)         NULL,
+    nom_application         varchar(255)         NULL,
+    nom_entite              varchar(255)         NULL,
+    nom_equipement_virtuel  varchar(255)         NULL,
+    nom_equipement_physique varchar(255)         NULL,
+    sous_domaine            varchar(255)         NULL,
+    type_environnement      varchar(255)         NULL,
+    qualite                 varchar(255)         NULL,
     CONSTRAINT en_application_pkey PRIMARY KEY (id)
 );
 
 CREATE TABLE IF NOT EXISTS en_operation_non_it
 (
-    id                      int8         NOT NULL,
-    date_creation           timestamp    NULL,
-    date_update          timestamp    NULL,
-    date_lot                date         NULL,
-    nom_lot                 varchar(255) NULL,
-    nom_organisation        varchar(255) NULL,
-    nom_source_donnee       varchar(255) NULL,
-    nom_item_non_it         varchar(255) NULL,
-    quantite                float8       NULL,
-    type                    varchar(255) NULL,
-    duree_de_vie            float8       NULL,
-    localisation            varchar(255) NULL,
-    nom_entite              varchar(255) NULL,
-    nom_court_datacenter    varchar(255) NULL,
-    description             varchar(255) NULL,
-    conso_elec_annuelle       float8       NULL,
-    statut_traitement       varchar(255) NULL,
+    id                            int8              NOT NULL,
+    date_creation                 timestamp         NULL,
+    date_update                   timestamp         NULL,
+    date_lot                      date              NULL,
+    nom_lot                       varchar(255)      NULL,
+    nom_organisation              varchar(255)      NULL,
+    nom_source_donnee             varchar(255)      NULL,
+    nom_item_non_it               varchar(255)      NULL,
+    quantite                      float8            NULL,
+    type                          varchar(255)      NULL,
+    duree_de_vie                  float8            NULL,
+    localisation                  varchar(255)      NULL,
+    nom_entite                    varchar(255)      NULL,
+    nom_court_datacenter          varchar(255)      NULL,
+    description                   varchar(255)      NULL,
+    conso_elec_annuelle           float8            NULL,
+    statut_traitement             varchar(255)      NULL,
+    qualite                       varchar(255)      NULL,
     CONSTRAINT en_operation_non_it_pkey PRIMARY KEY (id)
 );
 
@@ -157,3 +162,9 @@ ALTER TABLE IF EXISTS en_equipement_physique ADD COLUMN IF NOT EXISTS statut_tra
 ALTER TABLE IF EXISTS en_equipement_virtuel ADD COLUMN IF NOT EXISTS statut_traitement varchar(255);
 ALTER TABLE IF EXISTS en_application ADD COLUMN IF NOT EXISTS statut_traitement varchar(255);
 ALTER TABLE IF EXISTS en_messagerie ADD COLUMN IF NOT EXISTS statut_traitement varchar(255);
+
+ALTER TABLE IF EXISTS en_equipement_physique ADD COLUMN IF NOT EXISTS qualite varchar(255);
+ALTER TABLE IF EXISTS en_application ADD COLUMN IF NOT EXISTS qualite varchar(255);
+ALTER TABLE IF EXISTS en_operation_non_it ADD COLUMN IF NOT EXISTS qualite varchar(255);
+ALTER TABLE IF EXISTS en_equipement_virtuel ADD COLUMN IF NOT EXISTS qualite varchar(255);
+ALTER TABLE IF EXISTS en_data_center ADD COLUMN IF NOT EXISTS qualite varchar(255);
\ No newline at end of file
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/Application.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/Application.java
index cc7bb1c3..fed992c5 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/Application.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/Application.java
@@ -22,4 +22,5 @@ public class Application extends AbstractEntree {
     String sousDomaine;
     String nomEntite;
     String nomEquipementPhysique;
+    String qualite;
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/DataCenter.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/DataCenter.java
index cc5a9929..a533289d 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/DataCenter.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/DataCenter.java
@@ -20,5 +20,5 @@ public class DataCenter extends AbstractEntree {
     Double pue;
     String localisation;
     String nomEntite;
-
+    String qualite;
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementPhysique.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementPhysique.java
index cab21acc..a596d24f 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementPhysique.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementPhysique.java
@@ -34,4 +34,5 @@ public class EquipementPhysique extends AbstractEntree {
     Double quantite;
     String modeUtilisation;
     Double tauxUtilisation;
+    String qualite;
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementVirtuel.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementVirtuel.java
index e93006d0..05adcde9 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementVirtuel.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/EquipementVirtuel.java
@@ -24,4 +24,5 @@ public class EquipementVirtuel extends AbstractEntree {
     String typeEqv;
     Double capaciteStockage;
     Double cleRepartition;
+    String qualite;
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/OperationNonIT.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/OperationNonIT.java
index 60c1ab2d..aaf89e26 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/OperationNonIT.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/OperationNonIT.java
@@ -23,4 +23,5 @@ public class OperationNonIT extends AbstractEntree {
     String nomCourtDatacenter;
     String description;
     Double consoElecAnnuelle;
+    String qualite;
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/ports/input/impl/ImportDonneesEntreePortImpl.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/ports/input/impl/ImportDonneesEntreePortImpl.java
index 7e0510ef..ef9066ef 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/ports/input/impl/ImportDonneesEntreePortImpl.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/ports/input/impl/ImportDonneesEntreePortImpl.java
@@ -16,7 +16,6 @@ import org.mte.numecoeval.expositiondonneesentrees.referentiels.generated.api.mo
 import org.mte.numecoeval.expositiondonneesentrees.referentiels.generated.api.model.TypeItemDTO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.FileNotFoundException;
@@ -54,10 +53,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
 
     final Map<String, String> errorMessages;
 
-    @Value("#{'${constraints.mode-utilisation}'.split(',')}")
-    private List<String> modeUtilisationList;
-
-
     @Override
     public ResultatImport importCsv(String nomOrganisation, String nomLot, String dateLot,
                                     MultipartFile csvDataCenter,
@@ -140,22 +135,33 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
                 } else {
                     String localisation = CSVHelper.safeString(csvRecord, "localisation");
                     String nomLongDataCenter = CSVHelper.safeString(csvRecord, "nomLongDatacenter");
+                    String nomCourtDataCenter = CSVHelper.safeString(csvRecord, "nomCourtDatacenter");
+
+                    String qualite = CSVHelper.safeString(csvRecord, "qualite");
+                    if (qualite != null) qualite = qualite.toUpperCase();
+
+                    String checkQualite = errorManagementService.checkQualiteDonnees(qualite, "Le datacenter", nomCourtDataCenter);
+                    if (checkQualite != null) {
+                        qualite = null;
+                        rapportImport.getAvertissements().add(checkQualite);
+                    }
+
                     var dataCenter = DataCenter.builder()
                             .statutTraitement(STATUT_TRAITEMENT_EN_ATTENTE)
                             .nomLot(nomLot)
                             .dateLot(dateLot)
                             .nomOrganisation(nomOrganisation)
-                            .nomCourtDatacenter(CSVHelper.safeString(csvRecord, "nomCourtDatacenter"))
+                            .nomCourtDatacenter(nomCourtDataCenter)
                             .nomLongDatacenter(nomLongDataCenter)
                             .pue(CSVHelper.safeDouble(csvRecord, "pue"))
                             .localisation(localisation)
                             .nomEntite(CSVHelper.safeString(csvRecord, HEADER_NOM_ENTITE))
                             .nomSourceDonnee(CSVHelper.safeString(csvRecord, HEADER_NOM_SOURCE_DONNEE))
+                            .qualite(qualite)
                             .build();
 
                     domainModels.add(dataCenter);
                     rapportImport.getErreurs().addAll(errorManagementService.checkDataCenter(dataCenter));
-
                 }
             });
 
@@ -177,7 +183,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
         }
 
         rapportImport.setNbrLignesImportees(domainModels.size());
-
         return Pair.of(rapportImport, domainModels);
     }
 
@@ -216,6 +221,16 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
                     Float goTelecharge = goTelechargeStr == null ? null : NumberUtils.toFloat(goTelechargeStr);
                     var tauxUtilisationStr = CSVHelper.safeString(csvRecord, "tauxUtilisation");
                     Double tauxUtilisation = NumberUtils.isCreatable(tauxUtilisationStr) ? NumberUtils.toDouble(tauxUtilisationStr) : null;
+                    String nomEquipementPhysique = CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_PHYSIQUE, "equipement");
+
+                    String qualite = CSVHelper.safeString(csvRecord, "qualite");
+                    if (qualite != null) qualite = qualite.toUpperCase();
+
+                    String checkQualite = errorManagementService.checkQualiteDonnees(qualite, "L'équipement physique", nomEquipementPhysique);
+                    if (checkQualite != null) {
+                        qualite = null;
+                        avertissements.add(checkQualite);
+                    }
 
                     EquipementPhysique equipementToAdd = EquipementPhysique.builder()
                             .statutTraitement(STATUT_TRAITEMENT_EN_ATTENTE)
@@ -225,7 +240,7 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
                             .modele(CSVHelper.safeString(csvRecord, "modele", "refEquipement"))
                             .type(csvRecord.get("type"))
                             .quantite(CSVHelper.safeDouble(csvRecord, "quantite"))
-                            .nomEquipementPhysique(CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_PHYSIQUE, "equipement"))
+                            .nomEquipementPhysique(nomEquipementPhysique)
                             .statut(CSVHelper.safeString(csvRecord, "statut"))
                             .paysDUtilisation(CSVHelper.safeString(csvRecord, "paysDUtilisation"))
                             .utilisateur(CSVHelper.safeString(csvRecord, "utilisateur"))
@@ -241,6 +256,7 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
                             .serveur(refTypeEquipementOpt.get().isServeur())
                             .nomEntite(CSVHelper.safeString(csvRecord, HEADER_NOM_ENTITE))
                             .nomSourceDonnee(CSVHelper.safeString(csvRecord, HEADER_NOM_SOURCE_DONNEE))
+                            .qualite(qualite)
                             .build();
 
                     var erreurs = errorManagementService.checkEquipementPhysique(equipementToAdd, refTypeEquipementOpt.get().getRefEquipementParDefaut());
@@ -270,7 +286,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
 
         rapportImport.setNbrLignesImportees(domainModels.size());
         rapportImport.setAvertissements(avertissements.stream().toList());
-
         return Pair.of(rapportImport, domainModels);
     }
 
@@ -296,12 +311,22 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
                 if (!isRecordOK) {
                     rapportImport.getErreurs().add(errorMessages.get(LIGNE_INCONSISTENTE).formatted(csvEquipementVirtuel.getOriginalFilename(), csvRecord.getRecordNumber() + 1));
                 } else {
+                    String nomEquipementVirtuel = CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_VIRTUEL, LABEL_NOM_VM);
+                    String qualite = CSVHelper.safeString(csvRecord, "qualite");
+                    if (qualite != null) qualite = qualite.toUpperCase();
+
+                    String checkQualite = errorManagementService.checkQualiteDonnees(qualite, "L'équipement virtuel", nomEquipementVirtuel);
+                    if (checkQualite != null) {
+                        qualite = null;
+                        rapportImport.getAvertissements().add(checkQualite);
+                    }
+
                     EquipementVirtuel equipementVirtuel = EquipementVirtuel.builder()
                             .statutTraitement(STATUT_TRAITEMENT_EN_ATTENTE)
                             .nomLot(nomLot)
                             .dateLot(dateLot)
                             .nomOrganisation(nomOrganisation)
-                            .nomEquipementVirtuel(CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_VIRTUEL, LABEL_NOM_VM))
+                            .nomEquipementVirtuel(nomEquipementVirtuel)
                             .nomEquipementPhysique(CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_PHYSIQUE))
                             .nomSourceDonneeEquipementPhysique(CSVHelper.safeString(csvRecord, "nomSourceDonneeEquipementPhysique"))
                             .vCPU(CSVHelper.safeInteger(csvRecord, "vCPU"))
@@ -312,6 +337,7 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
                             .cleRepartition(CSVHelper.safeDouble(csvRecord, "cleRepartition"))
                             .nomEntite(CSVHelper.safeString(csvRecord, HEADER_NOM_ENTITE))
                             .nomSourceDonnee(CSVHelper.safeString(csvRecord, HEADER_NOM_SOURCE_DONNEE))
+                            .qualite(qualite)
                             .build();
 
                     domainModels.add(equipementVirtuel);
@@ -336,7 +362,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
         }
 
         rapportImport.setNbrLignesImportees(domainModels.size());
-
         return Pair.of(rapportImport, domainModels);
 
     }
@@ -363,12 +388,21 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
                 if (!isRecordOK) {
                     rapportImport.getErreurs().add(errorMessages.get(LIGNE_INCONSISTENTE).formatted(csvApplication.getOriginalFilename(), csvRecord.getRecordNumber() + 1));
                 } else {
+                    String nomApplication = CSVHelper.safeString(csvRecord, "nomApplication");
+                    String qualite = CSVHelper.safeString(csvRecord, "qualite");
+                    if (qualite != null) qualite = qualite.toUpperCase();
+
+                    String checkQualite = errorManagementService.checkQualiteDonnees(qualite, "L'application", nomApplication);
+                    if (checkQualite != null) {
+                        qualite = null;
+                        rapportImport.getAvertissements().add(checkQualite);
+                    }
                     Application application = Application.builder()
                             .statutTraitement(STATUT_TRAITEMENT_EN_ATTENTE)
                             .nomLot(nomLot)
                             .dateLot(dateLot)
                             .nomOrganisation(nomOrganisation)
-                            .nomApplication(CSVHelper.safeString(csvRecord, "nomApplication"))
+                            .nomApplication(nomApplication)
                             .typeEnvironnement(CSVHelper.safeString(csvRecord, "typeEnvironnement"))
                             .nomEquipementVirtuel(CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_VIRTUEL, LABEL_NOM_VM))
                             .nomSourceDonneeEquipementVirtuel(CSVHelper.safeString(csvRecord, "nomSourceDonneeEquipementVirtuel"))
@@ -377,6 +411,7 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
                             .nomEntite(CSVHelper.safeString(csvRecord, HEADER_NOM_ENTITE))
                             .nomEquipementPhysique(CSVHelper.safeString(csvRecord, LABEL_NOM_EQUIPEMENT_PHYSIQUE))
                             .nomSourceDonnee(CSVHelper.safeString(csvRecord, HEADER_NOM_SOURCE_DONNEE))
+                            .qualite(qualite)
                             .build();
 
                     domainModels.add(application);
@@ -401,7 +436,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
         }
 
         rapportImport.setNbrLignesImportees(domainModels.size());
-
         return Pair.of(rapportImport, domainModels);
     }
 
@@ -412,7 +446,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
         rapportImport.setFichier(csvOperationNonIT.getOriginalFilename());
         rapportImport.setType("operation_non_it");
         List<TypeItemDTO> typesItem = referentielServicePort.getAllTypesItem();
-        Set<String> avertissements = new HashSet<>();
 
         try (Reader reader = new InputStreamReader(csvOperationNonIT.getInputStream())) {
             Iterable<CSVRecord> records = CSVFormat.DEFAULT.builder()
@@ -435,6 +468,16 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
                 } else if (refTypeItemOpt.isEmpty()) {
                     rapportImport.getErreurs().add(errorMessages.get("TYPE_ITEM_INCONNU").formatted(csvRecord.get("type"), nomItem));
                 } else {
+
+                    String qualite = CSVHelper.safeString(csvRecord, "qualite");
+                    if (qualite != null) qualite = qualite.toUpperCase();
+
+                    String checkQualite = errorManagementService.checkQualiteDonnees(qualite, "L'item", nomItem);
+                    if (checkQualite != null) {
+                        qualite = null;
+                        rapportImport.getAvertissements().add(checkQualite);
+                    }
+
                     OperationNonIT operationToAdd = OperationNonIT.builder()
                             .statutTraitement(STATUT_TRAITEMENT_EN_ATTENTE)
                             .nomLot(nomLot)
@@ -450,12 +493,13 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
                             .nomCourtDatacenter(CSVHelper.safeString(csvRecord, "nomCourtDatacenter", "refDatacenter"))
                             .description(CSVHelper.safeString(csvRecord, "description"))
                             .consoElecAnnuelle(CSVHelper.safeDouble(csvRecord, "consoElecAnnuelle"))
+                            .qualite(qualite)
                             .build();
 
                     var erreurs = errorManagementService.checkOperationNonIT(operationToAdd, refTypeItemOpt.get().getRefItemParDefaut());
 
                     rapportImport.getErreurs().addAll(erreurs.getKey());
-                    avertissements.addAll(erreurs.getValue());
+                    rapportImport.getAvertissements().addAll(erreurs.getValue());
 
                     domainModels.add(operationToAdd);
                 }
@@ -477,7 +521,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
             );
         }
         rapportImport.setNbrLignesImportees(domainModels.size());
-        rapportImport.setAvertissements(avertissements.stream().toList());
         return Pair.of(rapportImport, domainModels);
     }
 
@@ -536,7 +579,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
         }
 
         rapportImport.setNbrLignesImportees(domainModels.size());
-
         return Pair.of(rapportImport, domainModels);
     }
 
@@ -593,7 +635,6 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
         }
 
         rapportImport.setNbrLignesImportees(domainModels.size());
-
         return Pair.of(rapportImport, domainModels);
     }
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/config/ApplicationPortConfig.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/config/ApplicationPortConfig.java
index 3a321cd0..33a0df3c 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/config/ApplicationPortConfig.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/config/ApplicationPortConfig.java
@@ -10,8 +10,6 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 
-import java.util.List;
-
 @Configuration
 @AllArgsConstructor
 @ComponentScan(basePackages = "org.mte.numecoeval.expositiondonneesentrees.infrastructure.adapters")
@@ -21,10 +19,9 @@ public class ApplicationPortConfig {
     private ErrorManagementService errorManagementService;
     private DefaultValueService defaultValueService;
     private MessageProperties messageProperties;
-    private List<String> modeUtilisationList;
 
     @Bean
     public ImportDonneesEntreePort importDonneesEntreePort() {
-        return new ImportDonneesEntreePortImpl(referentielServicePort, errorManagementService, defaultValueService, messageProperties.getMessages(), modeUtilisationList);
+        return new ImportDonneesEntreePortImpl(referentielServicePort, errorManagementService, defaultValueService, messageProperties.getMessages());
     }
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/ApplicationEntity.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/ApplicationEntity.java
index 687361b3..c492326e 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/ApplicationEntity.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/ApplicationEntity.java
@@ -1,17 +1,7 @@
 package org.mte.numecoeval.expositiondonneesentrees.infrastructure.jpa.entity;
 
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
-import jakarta.persistence.Id;
-import jakarta.persistence.SequenceGenerator;
-import jakarta.persistence.Table;
-import lombok.AllArgsConstructor;
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
+import jakarta.persistence.*;
+import lombok.*;
 import lombok.experimental.SuperBuilder;
 
 /**
@@ -25,50 +15,56 @@ import lombok.experimental.SuperBuilder;
 @EqualsAndHashCode
 @Table(name = "EN_APPLICATION")
 @Entity
-public class ApplicationEntity extends AbstractEntreeEntity{
-   @Id
-   @GeneratedValue(generator = "SEQ_EN_APPLICATION", strategy = GenerationType.SEQUENCE)
-   @SequenceGenerator(name = "SEQ_EN_APPLICATION", sequenceName="SEQ_EN_APPLICATION",allocationSize=1000)
-   @Column(nullable = false)
-   private Long id;
+public class ApplicationEntity extends AbstractEntreeEntity {
+    @Id
+    @GeneratedValue(generator = "SEQ_EN_APPLICATION", strategy = GenerationType.SEQUENCE)
+    @SequenceGenerator(name = "SEQ_EN_APPLICATION", sequenceName = "SEQ_EN_APPLICATION", allocationSize = 1000)
+    @Column(nullable = false)
+    private Long id;
 
-   /**
-    * Nom de l'application
-    */
-   private String nomApplication;
+    /**
+     * Nom de l'application
+     */
+    private String nomApplication;
 
-   /**
-    * Type d'environnement de l'instance de l'application
-    */
-   private String typeEnvironnement;
+    /**
+     * Type d'environnement de l'instance de l'application
+     */
+    private String typeEnvironnement;
 
-   /**
-    * Référence de l'équipement virtuel rattaché
-    */
-   private String nomEquipementVirtuel;
+    /**
+     * Référence de l'équipement virtuel rattaché
+     */
+    private String nomEquipementVirtuel;
 
-   /**
-    * Référence de l'équipement physique rattaché
-    */
-   private String nomEquipementPhysique;
+    /**
+     * Référence de l'équipement physique rattaché
+     */
+    private String nomEquipementPhysique;
 
-   /**
-    * Nom de la source de données pour l'équipement physique rattaché
-    */
-   private String nomSourceDonneeEquipementVirtuel;
+    /**
+     * Nom de la source de données pour l'équipement physique rattaché
+     */
+    private String nomSourceDonneeEquipementVirtuel;
 
-   /**
-    * Domaine ou catégorie principale de l'application
-    */
-   private String domaine;
+    /**
+     * Domaine ou catégorie principale de l'application
+     */
+    private String domaine;
 
-   /**
-    * Domaine ou catégorie secondaire de l'application
-    */
-   private String sousDomaine;
+    /**
+     * Domaine ou catégorie secondaire de l'application
+     */
+    private String sousDomaine;
+
+    /**
+     * Nom de l'entité rattachée à l'application
+     */
+    private String nomEntite;
+    
+    /**
+     * Qualité de la donnée collectée
+     */
+    private String qualite;
 
-   /**
-    * Nom de l'entité rattachée à l'application
-    */
-   private String nomEntite;
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/DataCenterEntity.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/DataCenterEntity.java
index 6f9a6f4b..c354056a 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/DataCenterEntity.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/DataCenterEntity.java
@@ -1,12 +1,6 @@
 package org.mte.numecoeval.expositiondonneesentrees.infrastructure.jpa.entity;
 
-import jakarta.persistence.Column;
-import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
-import jakarta.persistence.Id;
-import jakarta.persistence.SequenceGenerator;
-import jakarta.persistence.Table;
+import jakarta.persistence.*;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
@@ -24,7 +18,7 @@ public class DataCenterEntity extends AbstractEntreeEntity {
 
     @Id
     @GeneratedValue(generator = "SEQ_EN_DATA_CENTER", strategy = GenerationType.SEQUENCE)
-    @SequenceGenerator(name = "SEQ_EN_DATA_CENTER", sequenceName="SEQ_EN_DATA_CENTER",allocationSize=1000)
+    @SequenceGenerator(name = "SEQ_EN_DATA_CENTER", sequenceName = "SEQ_EN_DATA_CENTER", allocationSize = 1000)
     @Column(nullable = false)
     protected Long id;
 
@@ -33,6 +27,6 @@ public class DataCenterEntity extends AbstractEntreeEntity {
     private Double pue;
     private String localisation;
     private String nomEntite;
-
+    private String qualite;
 
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementPhysiqueEntity.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementPhysiqueEntity.java
index 75cd3f41..addeb447 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementPhysiqueEntity.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementPhysiqueEntity.java
@@ -49,4 +49,6 @@ public class EquipementPhysiqueEntity extends AbstractEntreeEntity {
     private Double quantite;
     private String modeUtilisation;
     private Double tauxUtilisation;
+    private String qualite;
+
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementVirtuelEntity.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementVirtuelEntity.java
index 3fb7ec06..77a29ffc 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementVirtuelEntity.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/EquipementVirtuelEntity.java
@@ -30,4 +30,6 @@ public class EquipementVirtuelEntity extends AbstractEntreeEntity {
     private String typeEqv;
     private Double capaciteStockage;
     private Double cleRepartition;
+    private String qualite;
+
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/OperationNonITEntity.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/OperationNonITEntity.java
index 07915c7b..4fee9d7d 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/OperationNonITEntity.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/OperationNonITEntity.java
@@ -32,5 +32,6 @@ public class OperationNonITEntity extends AbstractEntreeEntity {
     private String nomCourtDatacenter;
     private String description;
     private Double consoElecAnnuelle;
+    private String qualite;
 
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementService.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementService.java
index 89a8ee0a..4d499bb4 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementService.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementService.java
@@ -9,10 +9,12 @@ import org.mte.numecoeval.expositiondonneesentrees.domain.model.OperationNonIT;
 import org.mte.numecoeval.expositiondonneesentrees.domain.ports.output.ReferentielServicePort;
 import org.mte.numecoeval.expositiondonneesentrees.infrastructure.config.MessageProperties;
 import org.mte.numecoeval.expositiondonneesentrees.referentiels.generated.api.model.CorrespondanceRefEquipementDTO;
+import org.mte.numecoeval.expositiondonneesentrees.utils.Constants;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
 
 
@@ -27,6 +29,22 @@ public class ErrorManagementService {
     @Value("#{'${constraints.mode-utilisation}'.split(',')}")
     private List<String> modeUtilisationList;
 
+    /**
+     * Vérifie si la qualité de la donnée d'un item d'un inventaire fait partie de cette enum (BASSE, MOYENNE, HAUTE)
+     * si ce n'est pas le cas, on lance un avertissement
+     * la valeur qualite est déjà en majuscule
+     *
+     * @param qualite la qualité  en majuscule
+     * @param type    le type d'item
+     * @param nom     le nom de l'équipement
+     * @return l'avertissement associé ou null
+     */
+    public String checkQualiteDonnees(String qualite, String type, String nom) {
+        if (qualite == null) return null;
+        if (Constants.QUALITES_DONNEES.contains(qualite)) return null;
+        return messageProperties.getMessages().get("QUALITE_INVALIDE").formatted(type, nom, qualite);
+    }
+
     /**
      * Vérifie si la localisation du datacenter existe dans la table ref_MixElec.pays
      *
@@ -97,13 +115,13 @@ public class ErrorManagementService {
 
             erreurs.add(messageProperties.getMessages().get("EQUIPEMENT_DATE_INCOHERENTE").formatted(equipementPhysique.getNomEquipementPhysique()));
         }
-        //CA 4.1
-        //L'ajout d'un équipement dont le mode d'utilisation est autre que COPE, BYOD ou null
+        // CA 4.1
+        // L'ajout d'un équipement dont le mode d'utilisation est autre que COPE, BYOD ou null
         if (equipementPhysique.getModeUtilisation() != null && !modeUtilisationList.contains(equipementPhysique.getModeUtilisation())) {
             avertissements.add(messageProperties.getMessages().get("EQUIPEMENT_MODE_UTILISATION_INCONNU").formatted(equipementPhysique.getModeUtilisation()));
         }
-        //CA 5.1
-        //L'ajout d'un équipement dont le taux d'utilisation n'est pas compris entre 0 et 1
+        // CA 5.1
+        // L'ajout d'un équipement dont le taux d'utilisation n'est pas compris entre 0 et 1
         Double taux = equipementPhysique.getTauxUtilisation();
         if (taux != null && (taux < 0 || taux > 1)) {
             avertissements.add(messageProperties.getMessages().get("EQUIPEMENT_TAUX_UTILISATION_INVALIDE").formatted(taux));
@@ -121,7 +139,7 @@ public class ErrorManagementService {
      */
     public Pair<List<String>, List<String>> checkOperationNonIT(OperationNonIT operationNonIT, String type) {
         var erreurs = new ArrayList<String>();
-        var avertissements = new ArrayList<String>();
+        var avertissements = new HashSet<String>();
         // L'ajout d'une operation non it dont le type n'est pas renseigné sort une erreur
         if (StringUtils.isBlank(type)) {
             erreurs.add(messageProperties.getMessages().get("ITEM_CORRESPONDANCE_INCONNUE").formatted(operationNonIT.getNomItemNonIT(), operationNonIT.getType()));
@@ -138,7 +156,7 @@ public class ErrorManagementService {
                 }
             }
         }
-        return Pair.of(erreurs, avertissements);
+        return Pair.of(erreurs, avertissements.stream().toList());
     }
 
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/utils/Constants.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/utils/Constants.java
new file mode 100644
index 00000000..ca102130
--- /dev/null
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/utils/Constants.java
@@ -0,0 +1,8 @@
+package org.mte.numecoeval.expositiondonneesentrees.utils;
+
+import java.util.List;
+
+public class Constants {
+    public static final List<String> QUALITES_DONNEES = List.of("BASSE", "MOYENNE", "HAUTE");
+
+}
diff --git a/services/api-expositiondonneesentrees/src/main/resources/application.yaml b/services/api-expositiondonneesentrees/src/main/resources/application.yaml
index 2f720681..5bb0c2c1 100644
--- a/services/api-expositiondonneesentrees/src/main/resources/application.yaml
+++ b/services/api-expositiondonneesentrees/src/main/resources/application.yaml
@@ -90,5 +90,6 @@ messages:
   EQUIPEMENT_VIRTUEL_INCONNU: "L'équipement virtuel %s n'est supporté par aucun équipement physique"
   APPLICATION_AVEC_EQUIPEMENT_PHYSIQUE_INCONNU: "L'application %s n'est supporté par aucun équipement physique"
   APPLICATION_AVEC_EQUIPEMENT_VIRTUEL_INCONNU: "L'application %s n'est supporté par aucun équipement virtuel"
+  QUALITE_INVALIDE: "%s '%s' possède une valeur de qualité invalide renseignée. La valeur '%s' est ignorée car elle n'est pas l'une de ces valeurs: BASSE, MOYENNE, HAUTE"
 constraints:
   mode-utilisation: "BYOD,COPE"
diff --git a/services/api-expositiondonneesentrees/src/main/resources/schema.sql b/services/api-expositiondonneesentrees/src/main/resources/schema.sql
index da79c386..0e8d5631 100644
--- a/services/api-expositiondonneesentrees/src/main/resources/schema.sql
+++ b/services/api-expositiondonneesentrees/src/main/resources/schema.sql
@@ -16,18 +16,19 @@ CREATE TABLE IF NOT EXISTS en_donnees_entrees
 
 CREATE TABLE IF NOT EXISTS en_data_center
 (
-    id                   int8         NOT NULL,
-    date_creation        timestamp    NULL,
-    date_update          timestamp    NULL,
-    date_lot             date         NULL,
-    nom_lot              varchar(255) NULL,
-    nom_organisation     varchar(255) NULL,
-    nom_source_donnee    varchar(255) NULL,
-    localisation         varchar(255) NULL,
-    nom_court_datacenter varchar(255) NULL,
-    nom_entite           varchar(255) NULL,
-    nom_long_datacenter  varchar(255) NULL,
-    pue                  float8       NULL,
+    id                   int8                NOT NULL,
+    date_creation        timestamp           NULL,
+    date_update          timestamp           NULL,
+    date_lot             date                NULL,
+    nom_lot              varchar(255)        NULL,
+    nom_organisation     varchar(255)        NULL,
+    nom_source_donnee    varchar(255)        NULL,
+    localisation         varchar(255)        NULL,
+    nom_court_datacenter varchar(255)        NULL,
+    nom_entite           varchar(255)        NULL,
+    nom_long_datacenter  varchar(255)        NULL,
+    pue                  float8              NULL,
+    qualite              varchar(255)        NULL,
     CONSTRAINT en_data_center_pkey PRIMARY KEY (id)
 );
 
@@ -59,6 +60,7 @@ CREATE TABLE IF NOT EXISTS en_equipement_physique
     utilisateur               varchar(255) NULL,
     mode_utilisation          varchar(255) NULL,
     taux_utilisation          float8       NULL,
+    qualite                   varchar(255)        NULL,
     CONSTRAINT en_equipement_physique_pkey PRIMARY KEY (id)
 );
 
@@ -75,24 +77,26 @@ CREATE TABLE IF NOT EXISTS en_equipement_virtuel
     nom_equipement_physique varchar(255) NULL,
     nom_equipement_virtuel  varchar(255) NULL,
     vcpu                    int4         NULL,
+    qualite                 varchar(255)        NULL,
     CONSTRAINT en_equipement_virtuel_pkey PRIMARY KEY (id)
 );
 
 CREATE TABLE IF NOT EXISTS en_application
 (
-    id                      int8         NOT NULL,
-    date_creation           timestamp    NULL,
-    date_lot                date         NULL,
-    nom_lot                 varchar(255) NULL,
-    nom_organisation        varchar(255) NULL,
-    nom_source_donnee       varchar(255) NULL,
-    domaine                 varchar(255) NULL,
-    nom_application         varchar(255) NULL,
-    nom_entite              varchar(255) NULL,
-    nom_equipement_virtuel  varchar(255) NULL,
-    nom_equipement_physique varchar(255) NULL,
-    sous_domaine            varchar(255) NULL,
-    type_environnement      varchar(255) NULL,
+    id                      int8              NOT NULL,
+    date_creation           timestamp         NULL,
+    date_lot                date              NULL,
+    nom_lot                 varchar(255)      NULL,
+    nom_organisation        varchar(255)      NULL,
+    nom_source_donnee       varchar(255)      NULL,
+    domaine                 varchar(255)      NULL,
+    nom_application         varchar(255)      NULL,
+    nom_entite              varchar(255)      NULL,
+    nom_equipement_virtuel  varchar(255)      NULL,
+    nom_equipement_physique varchar(255)      NULL,
+    sous_domaine            varchar(255)      NULL,
+    type_environnement      varchar(255)      NULL,
+    qualite                 varchar(255)      NULL,
     CONSTRAINT en_application_pkey PRIMARY KEY (id)
 );
 
@@ -116,6 +120,7 @@ CREATE TABLE IF NOT EXISTS en_operation_non_it
     description                varchar(255)     NULL,
     conso_elec_annuelle        float8           NULL,
     statut_traitement          varchar(255)     NULL,
+    qualite                    varchar(255)     NULL,
     CONSTRAINT en_operation_non_it_pkey PRIMARY KEY (id)
 );
 
diff --git a/services/api-expositiondonneesentrees/src/main/resources/static/openapi.yaml b/services/api-expositiondonneesentrees/src/main/resources/static/openapi.yaml
index e7627b35..afe64246 100644
--- a/services/api-expositiondonneesentrees/src/main/resources/static/openapi.yaml
+++ b/services/api-expositiondonneesentrees/src/main/resources/static/openapi.yaml
@@ -176,15 +176,15 @@ paths:
         
         Les colonnes facultatives sont notées entre parenthèses, toutes les autres sont obligatoires !  <br/>
         
-        Le Header du CSV des data centers est : nomCourtDatacenter;nomLongDatacenter;pue;localisation;(nomEntite).  <br/> 
+        Le Header du CSV des data centers est : nomCourtDatacenter;nomLongDatacenter;pue;localisation;(nomEntite);(qualite).  <br/> 
         
-        Le Header du CSV des équipements physiques est : nomEquipementPhysique,modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;type;statut;paysDUtilisation;consoElecAnnuelle;utilisateur;(nomSourceDonnee);(nomEntite);nbCoeur;nbJourUtiliseAn;goTelecharge;(modeUtilisation);(tauxUtilisation).  <br/>
+        Le Header du CSV des équipements physiques est : nomEquipementPhysique,modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;type;statut;paysDUtilisation;consoElecAnnuelle;utilisateur;(nomSourceDonnee);(nomEntite);nbCoeur;nbJourUtiliseAn;goTelecharge;(modeUtilisation);(tauxUtilisation);(qualite).  <br/>
         
-        Le Header du CSV des équipements virtuels est : nomEquipementVirtuel;nomEquipementPhysique;(nomSourceDonneeEquipementPhysique);(cleRepartition);vCPU;cluster;(consoElecAnnuelle);(typeEqv);(capaciteStockage);(nomEntite).  <br/>
+        Le Header du CSV des équipements virtuels est : nomEquipementVirtuel;nomEquipementPhysique;(nomSourceDonneeEquipementPhysique);(cleRepartition);vCPU;cluster;(consoElecAnnuelle);(typeEqv);(capaciteStockage);(nomEntite);(qualite).  <br/>
         
-        Le Header du CSV des application est : nomApplication;typeEnvironnement;(nomEquipementVirtuel);(nomSourceEquipementVirtuel);domaine;sousDomaine;(nomEntite);nomEquipementPhysique;(nomSourceDonnee).  <br/>
+        Le Header du CSV des application est : nomApplication;typeEnvironnement;(nomEquipementVirtuel);(nomSourceEquipementVirtuel);domaine;sousDomaine;(nomEntite);nomEquipementPhysique;(nomSourceDonnee);(qualite).  <br/>
         
-        Le Header du CSV des opérations non IT est : nomItemNonIT;quantite;type;dureeDeVie;localisation;(nomEntite);(nomSourceDonnee);nomCourtDatacenter;description;consoElecAnnuelle.  <br/>
+        Le Header du CSV des opérations non IT est : nomItemNonIT;quantite;type;dureeDeVie;localisation;(nomEntite);(nomSourceDonnee);nomCourtDatacenter;description;consoElecAnnuelle;(qualite).  <br/>
 
         Le Header du CSV de la messagerie est : nombreMailEmis;nombreMailEmisXDestinataires;volumeTotalMailEmis;MoisAnnee;(nomEntite).  <br/>
         
@@ -422,6 +422,9 @@ components:
         nomSourceDonnee:
           description: "Nom de la source de la donnée"
           type: string
+        qualite:
+          description: "Qualite de la donnée collectée (BASSE, MOYENNE ou HAUTE)"
+          type: string
     EquipementPhysiqueRest:
       description: Représentation d'un équipement physique dans NumEcoEval
       properties:
@@ -485,6 +488,9 @@ components:
           description: ""
           items:
             $ref: "#/components/schemas/EquipementVirtuelRest"
+        qualite:
+          description: "Qualite de la donnée collectée (BASSE, MOYENNE ou HAUTE)"
+          type: string
     EquipementVirtuelRest:
       description: Représentation d'un équipement virtuel dans NumEcoEval
       properties:
@@ -534,6 +540,9 @@ components:
             Consommation électrique annuelle de l'équipement virtuel.
           type: number
           format: double
+        qualite:
+          description: "Qualite de la donnée collectée (BASSE, MOYENNE ou HAUTE)"
+          type: string
     ApplicationRest:
       description: Représentation d'une application dans NumEcoEval
       properties:
@@ -561,6 +570,9 @@ components:
         nomSourceDonneeEquipementVirtuel:
           description: "Nom de la source de la donnée pour l'équipement virtuel"
           type: string
+        qualite:
+          description: "Qualite de la donnée collectée (BASSE, MOYENNE ou HAUTE)"
+          type: string
     OperationNonITRest:
       description: Représentation d'une opération non IT dans NumEcoEval
       properties:
@@ -595,6 +607,9 @@ components:
           description: ""
           type: number
           format: double
+        qualite:
+          description: "Qualite de la donnée collectée (BASSE, MOYENNE ou HAUTE)"
+          type: string
     MessagerieRest:
       description: Représentation d'éléments de messagerie dans NumEcoEval
       properties:
diff --git a/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/domain/port/input/ImportDonneesEntreePortImplTest.java b/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/domain/port/input/ImportDonneesEntreePortImplTest.java
index 1bad50ad..d76085c3 100644
--- a/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/domain/port/input/ImportDonneesEntreePortImplTest.java
+++ b/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/domain/port/input/ImportDonneesEntreePortImplTest.java
@@ -34,12 +34,10 @@ class ImportDonneesEntreePortImplTest {
     ErrorManagementService errorManagementService;
     DefaultValueService defaultValueService;
 
-    private List<String> modeUtilisationList;
-
     @BeforeEach
     public void init() {
         MockitoAnnotations.openMocks(this);
-        importDonneesEntreePort = new ImportDonneesEntreePortImpl(referentielServicePort, errorManagementService, defaultValueService, errorMessages, modeUtilisationList);
+        importDonneesEntreePort = new ImportDonneesEntreePortImpl(referentielServicePort, errorManagementService, defaultValueService, errorMessages);
     }
 
     @Test
diff --git a/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementServiceTest.java b/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementServiceTest.java
index dc59827e..0a12a87f 100644
--- a/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementServiceTest.java
+++ b/services/api-expositiondonneesentrees/src/test/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/ErrorManagementServiceTest.java
@@ -164,4 +164,23 @@ public class ErrorManagementServiceTest {
         Pair<List<String>, List<String>> actual = errorManagementService.checkOperationNonIT(eq1, eq1.getType());
         Assertions.assertEquals(0, actual.getKey().size());
     }
+
+    @Test
+    void importDataCenter_with_QualiteGoodValue_shouldWork() {
+        Assertions.assertNull(errorManagementService.checkQualiteDonnees("BASSE", "L'équipement physique", "eq1"));
+    }
+
+    @Test
+    void importDataCenter_with_QualiteNull_shouldNotReportWarning() {
+        Assertions.assertNull(errorManagementService.checkQualiteDonnees(null, "L'équipement physique", "eq1"));
+    }
+
+    @Test
+    void importDataCenter_with_QualiteWrongValue_shouldReturnReportWith1Warning() {
+        Assertions.assertEquals(
+                "L'équipement physique 'eq1' possède une valeur de qualité invalide renseignée. La valeur 'SUPER BASSE' est ignorée car elle n'est pas l'une de ces valeurs: BASSE, MOYENNE, HAUTE",
+                errorManagementService.checkQualiteDonnees("SUPER BASSE", "L'équipement physique", "eq1")
+        );
+    }
+
 }
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/Application.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/Application.java
index 74624e54..dfb8e864 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/Application.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/Application.java
@@ -8,17 +8,18 @@ import java.time.LocalDate;
 @Data
 @Builder
 public class Application {
-   private String nomApplication;
-   private String typeEnvironnement;
-   private String nomEquipementVirtuel;
-   private String nomSourceDonneeEquipementVirtuel;
+    private String nomApplication;
+    private String typeEnvironnement;
+    private String nomEquipementVirtuel;
+    private String nomSourceDonneeEquipementVirtuel;
 
-   private String nomEquipementPhysique;
-   private String domaine;
-   private String sousDomaine;
-   private String nomLot;
-   private LocalDate dateLot;
-   private String nomOrganisation;
-   private String nomEntite;
-   private String nomSourceDonnee;
+    private String nomEquipementPhysique;
+    private String domaine;
+    private String sousDomaine;
+    private String nomLot;
+    private LocalDate dateLot;
+    private String nomOrganisation;
+    private String nomEntite;
+    private String nomSourceDonnee;
+    private String qualite;
 }
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/DataCenter.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/DataCenter.java
index 48255278..ace69d69 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/DataCenter.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/DataCenter.java
@@ -9,13 +9,14 @@ import java.time.LocalDate;
 @Builder
 public class DataCenter {
 
-   private String nomCourtDatacenter;
-   private String nomLongDatacenter;
-   private Double pue;
-   private String localisation;
-   private String nomLot;
-   private LocalDate dateLot;
-   private String nomOrganisation;
-   private String nomEntite;
-   private String nomSourceDonnee;
+    private String nomCourtDatacenter;
+    private String nomLongDatacenter;
+    private Double pue;
+    private String localisation;
+    private String nomLot;
+    private LocalDate dateLot;
+    private String nomOrganisation;
+    private String nomEntite;
+    private String nomSourceDonnee;
+    private String qualite;
 }
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementPhysique.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementPhysique.java
index 5a054b52..d3fa26e6 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementPhysique.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementPhysique.java
@@ -36,4 +36,5 @@ public class EquipementPhysique {
     private Integer nbTotalVCPU;
     private String modeUtilisation;
     private Double tauxUtilisation;
+    private String qualite;
 }
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementVirtuel.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementVirtuel.java
index dad80c1a..6b9efa6f 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementVirtuel.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/EquipementVirtuel.java
@@ -9,19 +9,20 @@ import java.time.LocalDate;
 @Data
 @Builder
 public class EquipementVirtuel {
-   private Long id;
-   private String nomEquipementVirtuel;
-   private String nomEquipementPhysique;
-   private String nomSourceDonneeEquipementPhysique;
-   private Integer vCPU;
-   private String cluster;
-   private String nomLot;
-   private LocalDate dateLot;
-   private String nomOrganisation;
-   private String nomEntite;
-   private String nomSourceDonnee;
-   private Double consoElecAnnuelle;
-   private String typeEqv;
-   private Double capaciteStockage;
-   private Double cleRepartition;
+    private Long id;
+    private String nomEquipementVirtuel;
+    private String nomEquipementPhysique;
+    private String nomSourceDonneeEquipementPhysique;
+    private Integer vCPU;
+    private String cluster;
+    private String nomLot;
+    private LocalDate dateLot;
+    private String nomOrganisation;
+    private String nomEntite;
+    private String nomSourceDonnee;
+    private Double consoElecAnnuelle;
+    private String typeEqv;
+    private Double capaciteStockage;
+    private Double cleRepartition;
+    private String qualite;
 }
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/OperationNonIT.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/OperationNonIT.java
index c20ed65c..0c9f54e2 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/OperationNonIT.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/entree/OperationNonIT.java
@@ -24,5 +24,5 @@ public class OperationNonIT {
     private String nomOrganisation;
     private String nomSourceDonnee;
     private String statut;
-
+    private String qualite;
 }
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactApplication.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactApplication.java
index 7f615258..37eac607 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactApplication.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactApplication.java
@@ -35,4 +35,5 @@ public class ImpactApplication {
     Double impactUnitaire;
     Double consoElecMoyenne;
     Long idEntree;
+    String qualite;
 }
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementPhysique.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementPhysique.java
index 610d6bd2..84ef4b30 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementPhysique.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementPhysique.java
@@ -33,4 +33,5 @@ public class ImpactEquipementPhysique {
     Double consoElecMoyenne;
     Double quantite;
     String statutEquipementPhysique;
+    String qualite;
 }
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementVirtuel.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementVirtuel.java
index 03965dc4..9eae4a74 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementVirtuel.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactEquipementVirtuel.java
@@ -32,4 +32,5 @@ public class ImpactEquipementVirtuel {
     Double impactUnitaire;
     Double consoElecMoyenne;
     Long idEntree;
+    String qualite;
 }
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactOperationNonIT.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactOperationNonIT.java
index deb3ee08..2177daec 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactOperationNonIT.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactOperationNonIT.java
@@ -32,4 +32,5 @@ public class ImpactOperationNonIT {
     Double impactUnitaire;
     Double consoElecMoyenne;
     Double quantite;
+    String qualite;
 }
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactReseau.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactReseau.java
index b439f953..5922d030 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactReseau.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/indicateurs/ImpactReseau.java
@@ -31,5 +31,4 @@ public class ImpactReseau {
     String unite;
     Double impactUnitaire;
     String reference;
-
 }
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactApplicationServiceImpl.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactApplicationServiceImpl.java
index a73c5271..f4da1f2f 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactApplicationServiceImpl.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactApplicationServiceImpl.java
@@ -72,6 +72,7 @@ public class CalculImpactApplicationServiceImpl implements CalculImpactApplicati
                 .sousDomaine(demandeCalcul.getApplication().getSousDomaine())
                 .impactUnitaire(null)
                 .consoElecMoyenne(null)
+                .qualite(demandeCalcul.getApplication().getQualite())
                 .build();
     }
 
@@ -117,6 +118,7 @@ public class CalculImpactApplicationServiceImpl implements CalculImpactApplicati
                 .trace(TraceUtils.getTraceFromTraceur(TraceCalculImpactApplicationUtils.buildTrace(demandeCalcul)))
                 .impactUnitaire(resultCalcul.valeurImpact)
                 .consoElecMoyenne(resultCalcul.consoElecMoyenne)
+                .qualite(demandeCalcul.getApplication().getQualite())
                 .build();
     }
 
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementPhysiqueServiceImpl.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementPhysiqueServiceImpl.java
index 91a7cd60..5c0d96c4 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementPhysiqueServiceImpl.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementPhysiqueServiceImpl.java
@@ -132,6 +132,7 @@ public class CalculImpactEquipementPhysiqueServiceImpl implements CalculImpactEq
                 .dateLot(demandeCalcul.getEquipementPhysique().getDateLot())
                 .nomEntite(demandeCalcul.getEquipementPhysique().getNomEntite())
                 .nomOrganisation(demandeCalcul.getEquipementPhysique().getNomOrganisation())
+                .qualite(demandeCalcul.getEquipementPhysique().getQualite())
                 .build();
     }
 
@@ -156,6 +157,7 @@ public class CalculImpactEquipementPhysiqueServiceImpl implements CalculImpactEq
                 .dateLot(demandeCalcul.getEquipementPhysique().getDateLot())
                 .nomEntite(demandeCalcul.getEquipementPhysique().getNomEntite())
                 .nomOrganisation(demandeCalcul.getEquipementPhysique().getNomOrganisation())
+                .qualite(demandeCalcul.getEquipementPhysique().getQualite())
                 .trace(TraceUtils.getTraceFromTraceur(TraceCalculImpactEquipementPhysiqueUtils.buildTraceErreur(exception)))
                 .build();
     }
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementVirtuelServiceImpl.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementVirtuelServiceImpl.java
index f06f606d..06915a5d 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementVirtuelServiceImpl.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactEquipementVirtuelServiceImpl.java
@@ -86,6 +86,7 @@ public class CalculImpactEquipementVirtuelServiceImpl implements CalculImpactEqu
                 .impactUnitaire(result.valeurImpactUnitaire())
                 .consoElecMoyenne(result.consoElecMoyenne())
                 .idEntree(demandeCalcul.getEquipementVirtuel().getId())
+                .qualite(demandeCalcul.getEquipementVirtuel().getQualite())
                 .build();
     }
 
@@ -109,6 +110,7 @@ public class CalculImpactEquipementVirtuelServiceImpl implements CalculImpactEqu
                 .impactUnitaire(null)
                 .consoElecMoyenne(null)
                 .idEntree(demandeCalcul.getEquipementVirtuel().getId())
+                .qualite(demandeCalcul.getEquipementVirtuel().getQualite())
                 .build();
     }
 
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactOperationNonITServiceImpl.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactOperationNonITServiceImpl.java
index 2b4449e2..c7e4414b 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactOperationNonITServiceImpl.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/CalculImpactOperationNonITServiceImpl.java
@@ -193,6 +193,7 @@ public class CalculImpactOperationNonITServiceImpl implements CalculImpactOperat
                 .dateLot(demandeCalcul.getOperationNonIT().getDateLot())
                 .nomEntite(demandeCalcul.getOperationNonIT().getNomEntite())
                 .nomOrganisation(demandeCalcul.getOperationNonIT().getNomOrganisation())
+                .qualite(demandeCalcul.getOperationNonIT().getQualite())
                 .build();
         if (traceCalculImpactOperationNonIT.getConsoElecAnMoyenne() != null) {
             result.setConsoElecMoyenne(traceCalculImpactOperationNonIT.getConsoElecAnMoyenne().getValeur());
@@ -221,6 +222,7 @@ public class CalculImpactOperationNonITServiceImpl implements CalculImpactOperat
                 .nomEntite(demandeCalcul.getOperationNonIT().getNomEntite())
                 .nomOrganisation(demandeCalcul.getOperationNonIT().getNomOrganisation())
                 .trace(TraceUtils.getTraceFromTraceur(TraceCalculImpactOperationNonITUtils.buildTraceErreur(exception)))
+                .qualite(demandeCalcul.getOperationNonIT().getQualite())
                 .build();
     }
 
diff --git a/services/common/src/main/resources/static/api-event-calculs-async-openapi.yaml b/services/common/src/main/resources/static/api-event-calculs-async-openapi.yaml
index c5c6fe06..80d49ce7 100644
--- a/services/common/src/main/resources/static/api-event-calculs-async-openapi.yaml
+++ b/services/common/src/main/resources/static/api-event-calculs-async-openapi.yaml
@@ -296,6 +296,9 @@ components:
           type: number
           format: double
           default: 1.0
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
         consoElecAnnuelle:
           description: ""
           type: number
@@ -324,6 +327,9 @@ components:
         localisation:
           description: ""
           type: string
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     EquipementVirtuelRest:
       description: Représentation d'un équipement virtuel dans NumEcoEval
       properties:
@@ -359,6 +365,9 @@ components:
             Consommation électrique annuelle de l'équipement virtuel.
           type: number
           format: double
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     ApplicationRest:
       description: Représentation d'une application dans NumEcoEval
       properties:
@@ -380,6 +389,9 @@ components:
         sousDomaine:
           description: ""
           type: string
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     OperationNonITRest:
       description: Représentation d'opérations non IT dans NumEcoEval
       properties:
@@ -416,6 +428,9 @@ components:
           description: ""
           type: number
           format: double
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     MessagerieRest:
       description: Représentation d'éléments de messagerie dans NumEcoEval
       properties:
@@ -649,6 +664,9 @@ components:
           format: int32
         statutEquipementPhysique:
           type: string
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     IndicateurImpactReseauRest:
       type: object
       properties:
@@ -680,6 +698,9 @@ components:
         impactUnitaire:
           type: number
           format: double
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     IndicateurImpactEquipementVirtuelRest:
       description: Indicateur d'impact écologique d'un équipement virtuel
       type: object
@@ -723,6 +744,9 @@ components:
         consoElecMoyenne:
           type: number
           format: double
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     IndicateurImpactApplicationRest:
       description: Impact d'application
       properties:
@@ -771,6 +795,9 @@ components:
         consoElecMoyenne:
           type: number
           format: double
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     IndicateurImpactOperationNonITRest:
       type: object
       properties:
@@ -814,6 +841,9 @@ components:
           format: int32
         statutItem:
           type: string
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     IndicateurImpactMessagerieRest:
       description: Indicateur d'impact de messagerie
       properties:
diff --git a/services/common/src/main/resources/static/api-event-calculs-openapi.yaml b/services/common/src/main/resources/static/api-event-calculs-openapi.yaml
index 05125bcc..b066c967 100644
--- a/services/common/src/main/resources/static/api-event-calculs-openapi.yaml
+++ b/services/common/src/main/resources/static/api-event-calculs-openapi.yaml
@@ -264,6 +264,9 @@ components:
         nbTotalVCPU:
           description: "Nombre total de VCPU (correspond à la somme des vCPU définis dans les équipements virtuels) ou null si un des équipements virtuels n'a pas de vCPU - Utilisé dans les traitements"
           type: integer
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
         dataCenter:
           $ref: "#/components/schemas/DataCenterRest"
     DataCenterRest:
@@ -282,6 +285,9 @@ components:
         localisation:
           description: ""
           type: string
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     EquipementVirtuelRest:
       description: Représentation d'un équipement virtuel dans NumEcoEval
       properties:
@@ -317,6 +323,9 @@ components:
             Consommation électrique annuelle de l'équipement virtuel.
           type: number
           format: double
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     ApplicationRest:
       description: Représentation d'une application dans NumEcoEval
       properties:
@@ -338,6 +347,9 @@ components:
         sousDomaine:
           description: ""
           type: string
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     MessagerieRest:
       description: Représentation d'éléments de messagerie dans NumEcoEval
       properties:
@@ -520,6 +532,9 @@ components:
           format: int32
         statutEquipementPhysique:
           type: string
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     IndicateurImpactReseauRest:
       type: object
       properties:
@@ -551,6 +566,9 @@ components:
         impactUnitaire:
           type: number
           format: double
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     IndicateurImpactEquipementVirtuelRest:
       description: Indicateur d'impact écologique d'un équipement virtuel
       type: object
@@ -594,6 +612,9 @@ components:
         consoElecMoyenne:
           type: number
           format: double
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     IndicateurImpactApplicationRest:
       description: Impact d'application
       properties:
@@ -642,6 +663,9 @@ components:
         consoElecMoyenne:
           type: number
           format: double
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     IndicateurImpactMessagerieRest:
       description: Indicateur d'impact de messagerie
       properties:
diff --git a/services/common/src/main/resources/static/asyncapi_equipement_physique.yaml b/services/common/src/main/resources/static/asyncapi_equipement_physique.yaml
index 704d8b3c..ce45ab1f 100644
--- a/services/common/src/main/resources/static/asyncapi_equipement_physique.yaml
+++ b/services/common/src/main/resources/static/asyncapi_equipement_physique.yaml
@@ -154,6 +154,9 @@ components:
         nomSourceDonnee:
           description: "Nom de la source de la donnée"
           type: string
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
         nomLot:
           description: "Nom du lot rattaché"
           type: string
@@ -215,6 +218,9 @@ components:
         nomOrganisation:
           description: ""
           type: string
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     CorrespondanceRefEquipementDTO:
       type: object
       properties:
diff --git a/services/common/src/main/resources/static/asyncapi_operation_non_it.yaml b/services/common/src/main/resources/static/asyncapi_operation_non_it.yaml
index 594eb70c..bd130605 100644
--- a/services/common/src/main/resources/static/asyncapi_operation_non_it.yaml
+++ b/services/common/src/main/resources/static/asyncapi_operation_non_it.yaml
@@ -120,6 +120,9 @@ components:
         nomOrganisation:
           description: ""
           type: string
+        qualite:
+          description: "Qualité de la donnée"
+          type: string
     TypeItemDTO:
       type: object
       properties:
-- 
GitLab