diff --git a/CHANGELOG.md b/CHANGELOG.md
index a185239d785e008b7a135ab428c2da566aa48c34..5f8fbbe5e6101f5d1104581af5224161e7be4ec1 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)
+- Intégrer la durée d'usage amont et aval des équipements physiques & ajout d'un paramètre pour choisir la méthode de calcul de la durée d'usage d'un équipement physique -> [Issue5](https://gitlab-forge.din.developpement-durable.gouv.fr/pub/numeco/m4g/numecoeval/-/issues/5)
 - 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)
 
 
diff --git a/docs/DonneeEntree.plantuml b/docs/DonneeEntree.plantuml
index 31f11aef4a526fb91739c26d0fb74d1c15dd6fb4..64ee36e406478db430b8b912da063022600fb289 100644
--- a/docs/DonneeEntree.plantuml
+++ b/docs/DonneeEntree.plantuml
@@ -18,6 +18,7 @@ List<en_EqP> equipementsPhysiques
 List<en_DC> dataCenters
 List<en_Messagerie> messageries
 List<en_Entite> entites
+String dureeUsage
 }
 
 class en_Entite {
@@ -58,6 +59,9 @@ String paysDUtilisation
 String utilisateur
 Date dateAchat
 Data dateRetrait
+Double dureeUsageInterne
+Double dureeUsageAmont
+Double dureeUsageAval
 Double consoElecAnnuelle
 Float nbJourUtiliseAn
 Float goTelecharge
diff --git a/docs/MoteurDeCalculG4IT_V1.1.adoc b/docs/MoteurDeCalculG4IT_V1.1.adoc
index 95ff08188f2a6e65be01c54e39339170733dd267..d993a1b931b412f85cbf165b4e930a9a5f3adb9b 100644
--- a/docs/MoteurDeCalculG4IT_V1.1.adoc
+++ b/docs/MoteurDeCalculG4IT_V1.1.adoc
@@ -246,6 +246,11 @@ pour obtenir l'objet ref_Hypothese correspondant
 == Moteur de calcul
 
 Le déclenchement des règles présentes dans le Bloc Calcul se réalise à la soumission des calculs sur un lot donné via le endpoint POST /entrees/calculs/soumission.
+Il existe 2 paramètres associés à cette requête :
+
+* mode : le mode de traitement, SYNC ou ASYNC (ASYNC est la valeur par défaut)
+* dureeUsage : la méthode de calcul de la durée de vie des équipements physique utilisée, FIXE : la méthode de calcul de la durée de vie se base sur l'attribut 'dureeUsageInterne' de l'équipement physique ou REEL : la méthode de calcul de la durée de vie se base sur l'âge réel de l'équipement physique (dateRetrait-dateAchat) (FIXE est la valeur par défaut)
+
 NumEcoEval lance alors les calculs des indicateurs et les sauvegarde dans la base correspondante.
 
 La cinématique globale est décrite ci-dessous :
@@ -419,21 +424,34 @@ Elle est exprimée en années et autorise les décimales.
 
 [pseudocode]
 ----
-Règle RG_DureeVieItem(equipementPhysique,dureeVieItem) {
-	
-	'dans le cas où il est possible de calculer l'age réel de l'item, ce dernier fait foi
-	SI equipementPhysique.DateAchat est correcte et renseignée ET equipementPhysique.DateRetrait est correcte et renseignée
+Règle RG_DureeVieItem(equipementPhysique,dureeVieItem,methodeDureeUsage) {
+
+	SI methodeDureeUsage=="REEL"
 	ALORS
-		SI (equipementPhysique.DateRetrait - equipementPhysique.DateAchat) < 1
-		ALORS RENVOYER 1
-		SINON RENVOYER ((equipementPhysique.DateRetrait - equipementPhysique.DateAchat) / 365)
-	'dans le cas où seul la date d'achat est disponible, la règle du "Pseudo-amortissement" prévaut (impact de 100% sur l'année d'achat, 50% l'année 2, 33% l'année 3, etc... )
-	SINON SI equipementPhysique.DateAchat est correcte et equipementPhysique.DateRetrait non reseignée
-		ALORS RENVOYER ((equipementPhysique.DateAchat - date du jour) / 365)
-	
-	'dans les autres cas, une durée de vie moyenne de l'équipement est déduite
+		'dans le cas où il est possible de calculer l'age réel de l'item, ce dernier fait foi
+		SI equipementPhysique.DateAchat est correcte et renseignée ET equipementPhysique.DateRetrait est correcte et renseignée
+		ALORS
+			SI (equipementPhysique.DateRetrait - equipementPhysique.DateAchat) < 1
+			ALORS RENVOYER (1 + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
+			SINON RENVOYER (((equipementPhysique.DateRetrait - equipementPhysique.DateAchat) / 365) + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
+		'dans le cas où seul la date d'achat est disponible, la règle du "Pseudo-amortissement" prévaut (impact de 100% sur l'année d'achat, 50% l'année 2, 33% l'année 3, etc... )
+		SINON SI equipementPhysique.DateAchat est correcte et equipementPhysique.DateRetrait non reseignée
+			ALORS RENVOYER (((equipementPhysique.DateAchat - date du jour) / 365) + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
+
+		'dans les autres cas, une durée de vie moyenne de l'équipement est déduite
+		SINON
+			RENVOYER (RG_DureeVieEqP_Defaut(equipementPhysique)+ equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
+		FIN SI
 	SINON
-		RENVOYER RG_DureeVieEqP_Defaut(equipementPhysique)
+		'dans le cas où nous connaissons la durée d'usage interne par défaut, cette dernière fait foi
+		SI equipementPhysique.DureeUsageInterne est renseignée et supérieure à 0
+		ALORS
+			SI (equipementPhysique.DureeUsageInterne<1)
+			ALORS RENVOYER (1 + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
+			SINON RENVOYER (equipementPhysique.DureeUsageInterne + equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
+		SINON
+			RENVOYER (RG_DureeVieEqP_Defaut(equipementPhysique)+ equipementPhysique.DureeUsageAmont + equipementPhysique.DureeUsageAval)
+		FIN SI
 	FIN SI
 }
 
diff --git a/docs/Traces.plantuml b/docs/Traces.plantuml
index a85ed6426340c60d839ecf1e7f518ff0c5c97e78..b5242f95d7b3a696ba624b9b080c0470e9fba154 100644
--- a/docs/Traces.plantuml
+++ b/docs/Traces.plantuml
@@ -70,6 +70,10 @@ class ConsoElecAnMoyenne {
 
  class DureeDeVie {
     Double valeur
+    private String methodeDureeUsage
+    private Double dureeUsageInterne
+    private Double dureeUsageAmont
+    private Double dureeUsageAval
     String dateAchat
     String dateRetrait
     DureeDeVieParDefaut dureeDeVieParDefaut
diff --git a/e2e/3_load_input.sh b/e2e/3_load_input.sh
index bcbfa86c53d0c8ad3103893c5adeabafd3206bd6..371bde950c46be8748e8dec71d9cc7e0029f5e4a 100644
--- a/e2e/3_load_input.sh
+++ b/e2e/3_load_input.sh
@@ -4,6 +4,8 @@ ORGANISATION=${1:-org1}
 NOM_LOT=$2
 SCENARIO=${3:-E2E}
 MODE=${4:-ASYNC}
+DUREE_USAGE=${5:-FIXE}
+
 DATE_LOT=$(date +'%Y-%m-%d')
 
 . ./.env
@@ -22,7 +24,7 @@ curl -s -XPOST "$ENTREE_URL/entrees/csv?nomLot=${NOM_LOT}&dateLot=${DATE_LOT}&no
 
 sleep 2
 
-log_n "$ORGANISATION - $NOM_LOT - $DATE_LOT - Soumission with mode=${MODE} - " | tee -a progress.log
+log_n "$ORGANISATION - $NOM_LOT - $DATE_LOT - Soumission with mode=${MODE} & duree usage=${DUREE_USAGE}" | tee -a progress.log
 
-curl -s -XPOST "$ENTREE_URL/entrees/calculs/soumission?mode=$MODE" -d"{\"nomLot\":\"${NOM_LOT}\"}" -H "Content-Type: application/json" | tee -a progress.log
+curl -s -XPOST "$ENTREE_URL/entrees/calculs/soumission?dureeUsage=$DUREE_USAGE&mode=$MODE" -d"{\"nomLot\":\"${NOM_LOT}\"}" -H "Content-Type: application/json" | tee -a progress.log
 echo "" | tee -a progress.log
diff --git a/e2e/e2e.iml b/e2e/e2e.iml
deleted file mode 100644
index 8021953ed9f8cc6cd6d71c79462bad4cd2b5394c..0000000000000000000000000000000000000000
--- a/e2e/e2e.iml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="WEB_MODULE" version="4">
-  <component name="NewModuleRootManager" inherit-compiler-output="true">
-    <exclude-output />
-    <content url="file://$MODULE_DIR$" />
-    <orderEntry type="inheritedJdk" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-</module>
\ No newline at end of file
diff --git a/e2e/input_template/DataCenter.csv b/e2e/input_template/DataCenter.csv
index 4a7e92589e6f8aae41f2a8904d6c6f02954169e6..800d506a24bcd2bc83ba31a2dd4c41935185a70b 100644
--- a/e2e/input_template/DataCenter.csv
+++ b/e2e/input_template/DataCenter.csv
@@ -1,7 +1,7 @@
 nomCourtDatacenter;nomLongDatacenter;pue;localisation;nomEntite;qualite
 default;Default;1.75;France;;Haute
 B1;B1;1.32;France;;bAsse
-F1;F1;1.43;France;;Moyenne 
+F1;F1;1.43;France;;Moyenne
 G1;G1;1.45;Spain;;erreur
 X1;X1;1.42;Russia;;
 Y1;Y1;1.41;Germany;;
diff --git a/e2e/input_template/EquipementPhysique_hors_serveur.csv b/e2e/input_template/EquipementPhysique_hors_serveur.csv
index 557e28ba237b87d2ffcce41538579cf83a3919da..65d3d63ad87cb2c8d5f688e1ce2a8214e2d5de00 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;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;;;;
+nomEquipementPhysique;modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;dureeUsageInterne;dureeUsageAmont;dureeUsageAval;type;statut;paysDUtilisation;consoElecAnnuelle;utilisateur;nomSourceDonnee;nomEntite;nbCoeur;nbJourUtiliseAn;goTelecharge;modeUtilisation;tauxUtilisation;qualite
+physical-eq-001;P2719;1;;2021-03-30;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;COPE;;Haute
+physical-eq-002;P2719;2;;;;;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;BYOD;;Basse
+physical-eq-003;P2719;4;;2021-03-30;2023-06-16;0.0;0.0;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;COB;;Moyenne
+physical-eq-004;HUB USB;10;;2023-04-01;2023-06-16;0.5;0.5;2;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;BYOD;0.1;erreur
+physical-eq-005;P2720DC;2;;2022-11-04;2023-06-16;-4.5;-1;2;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;BYOD;12.1;moyenne
+physical-eq-006;PIXEL 6;1;;2022-10-18;2022-12-18;0.1;0.2;0.2;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;test;haute
+physical-eq-007;UP2516D;1;;2022-07-31;2023-06-16;4.5;;;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;0.9;basse
+physical-eq-008;UP2516D;2;;2022-03-10;2023-06-16;4.5;1;2;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;COPE;0.6;
+physical-eq-009;Unknown;3;;2021-08-09;2023-06-16;4.5;1;2;IP Router;In use;France;;;;MY ENTERPRISE;;365;;COPE;0;
+physical-eq-010;Unknown;3;;2021-08-09;2023-06-16;4.5;1;2;IP Router;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-011;HP 8440p;1;;2021-08-05;2023-06-16;4.5;1;2;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-012;HP 8440p;1;;2023-04-27;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-013;HP 8470w;2;;2025-08-23;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-014;OPPO A72;1;;2023-08-07;2023-06-16;4.5;1;2;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-015;CROSSCALL;1;;2022-08-20;2023-06-16;4.5;1;2;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-016;CROSSCALL;11;;2022-05-20;2023-06-16;4.5;1;2;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-017;CROSSCALL;8;;2022-05-28;2023-06-16;4.5;1;2;Communication Device;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-018;HUAWEI P9;11;;2021-01-28;2023-06-16;4.5;1;2;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-019;HUAWEI P9;4;;2022-08-18;2023-06-16;4.5;1;2;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-020;HUAWEI P9;1;;2023-06-18;2023-06-16;4.5;1;2;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-021;HUAWEI P9;32;;2021-01-28;2023-06-16;4.5;1;2;Communication Device;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-022;HUAWEI P9;9;;2024-08-18;2023-06-16;4.5;1;2;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-023;PRO MP242;50;;2022-06-21;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-024;SAC A DOS;534;;2023-02-18;2023-06-16;4.5;1;2;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-025;SAC A DOS;1;;2023-02-18;2023-06-16;4.5;1;2;Consumable;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-026;SPIDER X1;2;;2022-10-17;2023-06-16;4.5;1;2;Communication Device;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-027;DELL 1909W;5;;2022-11-20;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-028;DELL 1909W;1;;2021-12-20;2023-06-16;4.5;1;2;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-029;DELL 1909W;14;;2025-10-17;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-030;DELL 2412M;1;;2022-12-26;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-031;DELL 2717H;19;;2021-04-08;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-032;DELL 2717H;1;;2024-11-23;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-033;DELL E7440;5;;2023-03-19;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-034;DELL E7440;31;;2025-10-27;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-035;DELL E7440;11;;2022-04-24;2023-06-16;4.5;1;2;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-036;DELL E7450;2;;2022-12-21;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-037;DELL E7450;14;;2025-10-31;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-038;DELL E7450;6;;2022-04-22;2023-06-16;4.5;1;2;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-039;DELL E7470;33;;2023-02-11;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-040;DELL E7470;23;;2022-03-16;2023-06-16;4.5;1;2;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-041;DELL E7470;9;;2022-03-16;2023-06-16;4.5;1;2;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-042;DELL E7470;4;;2022-03-16;2023-06-16;4.5;1;2;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-043;DELL E7470;325;;2024-09-01;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-044;DELL E7470;2;;2025-03-03;2023-06-16;4.5;1;2;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-045;DELL E7480;349;;2022-12-11;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-046;DELL E7480;49;;2021-10-26;2023-06-16;4.5;1;2;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-047;DELL E7480;18;;2021-09-25;2023-06-16;4.5;1;2;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-048;DELL E7480;141;;2023-11-04;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-049;DELL E7480;70;;2021-09-30;2023-06-16;4.5;1;2;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-050;DELL E7480;1;;2025-06-03;2023-06-16;4.5;1;2;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-051;DELL E7490;248;;2022-03-21;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-052;DELL E7490;52;;2021-06-17;2023-06-16;4.5;1;2;Personal Computer;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-053;DELL E7490;421;;2021-06-01;2023-06-16;4.5;1;2;Personal Computer;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-054;DELL E7490;51;;2021-06-19;2023-06-16;4.5;1;2;Personal Computer;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-055;DELL E7490;6;;2024-04-20;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-056;DELL P1911;8;;2022-07-25;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-057;DELL P1911;6;;2025-01-04;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-058;DELL P1913;4;;2022-11-02;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-059;DELL P1913;2;;2024-04-12;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-060;HUAWEI P20;1;;2021-12-24;2023-06-16;4.5;1;2;Communication Device;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-061;LENOVO M73;13;;2024-01-25;2023-06-16;4.5;1;2;Personal Computer;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-062;LENOVO M73;13;;2022-01-25;2023-06-16;4.5;1;2;Personal Computer;In Use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-063;ANTIVOL MAC;1;;2023-01-14;2023-06-16;4.5;1;2;Consumable;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-064;ANTIVOL MAC;1;;2023-01-14;2023-06-16;4.5;1;2;Consumable;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-065;ANTIVOL MAC;10;;2023-01-14;2023-06-16;4.5;1;2;Consumable;Consumed;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-066;AOC U2879VF;10;;2022-11-27;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-067;DELL P2210T;1;;2022-12-29;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-068;DELL P2217H;286;;2021-03-13;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-069;DELL P2217H;1;;2021-03-13;2023-06-16;4.5;1;2;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-070;DELL P2217H;5;;2022-01-14;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-071;DELL P2217H;6;;2021-03-13;2023-06-16;4.5;1;2;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-072;DELL P2217H;3;;2023-10-15;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-073;DELL P2319H;1;;2022-12-19;2023-06-16;4.5;1;2;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-074;DELL P2319H;49;;2022-12-19;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-075;DELL P2412H;1;;2022-03-25;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-076;DELL P2412H;1;;2025-06-01;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-077;DELL P2415Q;7;;2022-03-13;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-078;DELL P2415Q;1;;2022-03-13;2023-06-16;4.5;1;2;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-079;DELL P2417H;371;;2021-03-18;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-080;DELL P2417H;7;;2022-07-16;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-081;DELL P2417H;4;;2024-07-02;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-082;DELL P2417H;5;;2021-03-18;2023-06-16;4.5;1;2;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-083;DELL P2419H;11;;2021-09-01;2023-06-16;4.5;1;2;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-084;DELL P2419H;11;;2022-10-18;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-085;DELL P2419H;847;;2021-09-01;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-086;DELL P2419H;1;;2021-09-01;2023-06-16;4.5;1;2;Monitor;Missing;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-087;DELL P2419H;32;;2024-05-15;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-088;DELL P2422H;7;;2023-04-23;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-089;DELL P2422H;2;;2023-09-30;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-090;DELL P2422H;588;;2022-09-25;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-091;DELL P2719H;1;;2022-04-04;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-092;DELL P2719H;43;;2021-07-29;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-093;DELL P2719H;2;;2021-07-29;2023-06-16;4.5;1;2;Monitor;In stock;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-094;DELL P2721Q;2;;2023-02-24;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-095;DELL S2216H;2;;2024-11-27;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-096;DELL S2216H;17;;2021-05-21;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-097;DELL S2216H;1;;2022-11-22;2023-06-16;4.5;1;2;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-098;DELL S2240L;28;;2021-06-26;2023-06-16;4.5;1;2;Monitor;In use;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-099;DELL S2240L;8;;2022-12-04;2023-06-16;4.5;;;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
+physical-eq-100;DELL S2240L;4;;2024-12-09;2023-06-16;4.5;;;Monitor;Retired;France;;;;MY ENTERPRISE;;365;;;;
diff --git a/e2e/input_template/EquipementPhysique_serveur.csv b/e2e/input_template/EquipementPhysique_serveur.csv
index 2c2e6f318e80468f2c2884c20ac00e36330c9af4..f444c0b5f7f3f568dc9b6d5101db923e8928bb4b 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;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;;;;
+nomEquipementPhysique;modele;quantite;nomCourtDatacenter;dateAchat;dateRetrait;dureeUsageInterne;dureeUsageAmont;dureeUsageAval;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;5;1;2;Server;In use;;;;;;;365;;;;Haute
+physical-eq-srv-002;DATACENTER;1;F1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;10;;;Basse
+physical-eq-srv-003;DATACENTER;1;F1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;20;;;Moyenne
+physical-eq-srv-004;DATACENTER;1;F1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;30;;;erreur
+physical-eq-srv-005;DATACENTER;1;F1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;40;;;
+physical-eq-srv-006;DATACENTER;1;F1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;50;;;
+physical-eq-srv-007;DATACENTER;1;F1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-008;DATACENTER;1;F1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-009;DATACENTER;1;F1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-010;DATACENTER;2;F1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-011;DATACENTER;1;F1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-012;DATACENTER;1;F1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-013;DATACENTER;1;F1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-014;DATACENTER;1;G1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-015;DATACENTER;1;G1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-016;DATACENTER;1;G1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-017;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-018;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-019;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-020;DATACENTER;8;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-021;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-022;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-023;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-024;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-025;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-026;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-027;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-028;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-029;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-030;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-031;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-032;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-033;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-034;DATACENTER;1;X1;2016-06-17;2023-06-16;5;1;2;Server;In use;;;;;;;365;;;;
+physical-eq-srv-035;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-036;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-037;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-038;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-039;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-040;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-041;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-042;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-043;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-044;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-045;DATACENTER;26;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-046;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-047;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-048;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-049;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-050;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-051;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-052;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-053;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-054;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-055;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-056;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-057;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-058;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-059;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-060;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-061;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-062;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-063;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-064;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-065;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-066;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-067;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-068;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-069;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-070;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-071;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-072;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-073;DATACENTER;1;Y1;2016-06-17;2023-06-16;5;1;2;Server;In use;Germany;;;;;;365;;;;
+physical-eq-srv-074;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-075;DATACENTER;122;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-076;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-077;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-078;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-079;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-080;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-081;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-082;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-083;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-084;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-085;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-086;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-087;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-088;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-089;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-090;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-091;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-092;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-093;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-094;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-095;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-096;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-097;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-098;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-099;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
+physical-eq-srv-100;DATACENTER;1;Z2;2016-06-17;2023-06-16;5;1;2;Server;In use;France;;;;;;365;;;;
diff --git a/e2e/input_template/OperationNonIT.csv b/e2e/input_template/OperationNonIT.csv
index 1cee0eb07142c07c99505b3fae6317475006ec3d..9c9c6c5cb62533703dd1053e31a89e6eedc50e1f 100644
--- a/e2e/input_template/OperationNonIT.csv
+++ b/e2e/input_template/OperationNonIT.csv
@@ -1,5 +1,5 @@
 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-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
diff --git a/e2e/performance-test.sh b/e2e/performance-test.sh
index 31a9b4a426a901a2b1026928d344cb732a3d6528..0259dca4dfe0e47f13ad731be2ea62daa80aab66 100644
--- a/e2e/performance-test.sh
+++ b/e2e/performance-test.sh
@@ -1,12 +1,13 @@
 #!/bin/bash
 # Call: sh performance-test.sh
-# Call: sh performance-test.sh E2E auto auto SYNC
-# Call: sh performance-test.sh 1 orgX perf ASYNC
+# Call: sh performance-test.sh E2E auto auto SYNC REEL
+# Call: sh performance-test.sh 1 orgX perf ASYNC FIXE
 
 SCENARIO=${1:-E2E}
 ORGANISATION=${2:-auto}
 LOT_PREFIX=${3:-auto}
 MODE=${4:-SYNC}
+DUREE_USAGE=${5:-FIXE}
 
 . ./.env
 
@@ -42,7 +43,7 @@ for nbIt in ${!cfg_scenario}; do
     for ((j = 1; j <= $nbIt; j++)); do
         ### For each iteration load input, submit calculations and check ###
         echo "*** Organisation: $ORGANISATION, NomLot: ${LOT_PREFIX}_${dataset}_${j} ***"
-        sh 3_load_input.sh $ORGANISATION ${LOT_PREFIX}_${dataset}_${j} $SCENARIO $MODE
+        sh 3_load_input.sh $ORGANISATION ${LOT_PREFIX}_${dataset}_${j} $SCENARIO $MODE $DUREE_USAGE
         start_it=$(date +%s)
         sh 4_check.sh $ORGANISATION ${LOT_PREFIX}_${dataset}_${j}
         end_it=$(date +%s)
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/config/CacheConfig.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/config/CacheConfig.java
index 16e83d1ad4b0f1dd0fb23068c444a44871a39643..5e182885f8c098c5c3518af9908a90cec1b208c9 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/config/CacheConfig.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/config/CacheConfig.java
@@ -31,6 +31,7 @@ public class CacheConfig {
             "MixElectrique",
             "ImpactOperationNonIT",
             "ImpactMessagerie",
+            "DureeUsage",
     }, allEntries = true)
     @Scheduled(fixedRateString = "${numecoeval.cache.ttl}", timeUnit = TimeUnit.MINUTES)
     public void emptyAllCaches() {
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/DonneesEntreeRepository.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/DonneesEntreeRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..d23d6cdd462b80a38913537cc472d92cc74a64ca
--- /dev/null
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/repository/DonneesEntreeRepository.java
@@ -0,0 +1,48 @@
+package org.mte.numecoeval.calculs.infrastructure.repository;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mte.numecoeval.calculs.domain.exception.DatabaseException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Component;
+
+import javax.sql.DataSource;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+@Component
+@Slf4j
+public class DonneesEntreeRepository {
+
+    @Autowired
+    private DataSource dataSource;
+
+    @Cacheable("DureeUsage")
+    public String findDureeUsage(String nomLot, String nomOrganisation) {
+        List<String> result = new ArrayList<>();
+        try (Connection conn = dataSource.getConnection()) {
+            try (var ps = conn.prepareStatement("""
+                     SELECT duree_usage
+                     FROM en_donnees_entrees
+                     WHERE nom_lot = ? AND nom_organisation= ?
+                    """)) {
+
+                ps.setString(1, nomLot);
+                ps.setString(2, nomOrganisation);
+                var rs = ps.executeQuery();
+                while (rs.next()) {
+                    result.add(rs.getString("duree_usage"));
+                }
+            }
+        } catch (SQLException e) {
+            log.error("Une erreur s'est produite lors de la selection dans PostgreSQL. Exception: ", e);
+            throw new DatabaseException(e);
+        }
+        if (result.isEmpty()) {
+            return null;
+        }
+        return result.getFirst();
+    }
+}
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 d29cb38093de47dce267cbf5a05c69ee7a6d45a7..af9a3e6ea70e99703142601ad741b108d8aa2baa 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
@@ -56,6 +56,9 @@ public class EquipementPhysiqueRepository {
                             .consoElecAnnuelle(ResultSetUtils.getDouble(rs, "conso_elec_annuelle"))
                             .dateAchat(ResultSetUtils.getLocalDate(rs, "date_achat"))
                             .dateRetrait(ResultSetUtils.getLocalDate(rs, "date_retrait"))
+                            .dureeUsageInterne(ResultSetUtils.getDouble(rs, "duree_usage_interne"))
+                            .dureeUsageAmont(ResultSetUtils.getDouble(rs, "duree_usage_amont"))
+                            .dureeUsageAval(ResultSetUtils.getDouble(rs, "duree_usage_aval"))
                             .goTelecharge(ResultSetUtils.getFloat(rs, "go_telecharge"))
                             .modele(rs.getString("modele"))
                             .nbCoeur(rs.getString("nb_coeur"))
diff --git a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/CalculEquipementPhysiqueService.java b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/CalculEquipementPhysiqueService.java
index ee3e0b4b7ca536e8de721301eead3d703323a7a1..c1102a25bd9ea128a501996ab3316cf561e5908c 100644
--- a/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/CalculEquipementPhysiqueService.java
+++ b/services/api-event-calculs/src/main/java/org/mte/numecoeval/calculs/infrastructure/service/calcul/CalculEquipementPhysiqueService.java
@@ -2,11 +2,13 @@ package org.mte.numecoeval.calculs.infrastructure.service.calcul;
 
 import lombok.AllArgsConstructor;
 import org.mte.numecoeval.calculs.domain.data.demande.DemandeCalculImpactEquipementPhysique;
+import org.mte.numecoeval.calculs.domain.data.demande.OptionsCalcul;
 import org.mte.numecoeval.calculs.domain.data.indicateurs.ImpactEquipementPhysique;
 import org.mte.numecoeval.calculs.domain.model.CalculEquipementPhysique;
 import org.mte.numecoeval.calculs.domain.port.input.service.CalculImpactEquipementPhysiqueService;
 import org.mte.numecoeval.calculs.infrastructure.mapper.EntreesMapper;
 import org.mte.numecoeval.calculs.infrastructure.mapper.ReferentielMapper;
+import org.mte.numecoeval.calculs.infrastructure.repository.DonneesEntreeRepository;
 import org.mte.numecoeval.calculs.referentiels.generated.api.model.CritereDTO;
 import org.mte.numecoeval.calculs.referentiels.generated.api.model.EtapeDTO;
 import org.springframework.stereotype.Service;
@@ -25,6 +27,8 @@ public class CalculEquipementPhysiqueService {
 
     CalculImpactEquipementPhysiqueService calculImpactEquipementPhysiqueService;
 
+    DonneesEntreeRepository donneesEntreeRepository;
+
     /**
      * Calcule les impacts d'un equipement physique
      * Returne la liste d'impacts en iterant par (etape, critere)
@@ -37,6 +41,7 @@ public class CalculEquipementPhysiqueService {
         LocalDateTime dateCalcul = LocalDateTime.now();
 
         List<ImpactEquipementPhysique> impactEquipementPhysiqueList = new ArrayList<>();
+        String dureeUsage = donneesEntreeRepository.findDureeUsage(calculEquipementPhysique.getEquipementPhysique().getNomLot(), calculEquipementPhysique.getEquipementPhysique().getNomOrganisation());
 
         for (EtapeDTO etapeDTO : calculEquipementPhysique.getEtapes()) {
             for (CritereDTO critereDTO : calculEquipementPhysique.getCriteres()) {
@@ -51,6 +56,7 @@ public class CalculEquipementPhysiqueService {
                         .hypotheses(referentielMapper.toListHypothese(calculEquipementPhysique.getHypotheses()))
                         .mixElectriques(referentielMapper.toListMixElectrique(calculEquipementPhysique.getMixElectriques()))
                         .impactEquipements(referentielMapper.toListImpactEquipement(calculEquipementPhysique.getImpactsEquipement()))
+                        .optionsCalcul(new OptionsCalcul(dureeUsage))
                         .build();
 
                 impactEquipementPhysiqueList.add(
diff --git a/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/ApiEventCalculsApplicationTests.java b/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/ApiEventCalculsApplicationTests.java
index 9c4949fd14d524a72e63c6ba0ef7aba2f6124de7..4310c44079d6a92dd53ad178ec7b3f46bb86bfab 100644
--- a/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/ApiEventCalculsApplicationTests.java
+++ b/services/api-event-calculs/src/test/java/org/mte/numecoeval/calculs/ApiEventCalculsApplicationTests.java
@@ -54,6 +54,8 @@ class ApiEventCalculsApplicationTests {
     @MockBean
     ApplicationRepository applicationRepository;
     @MockBean
+    DonneesEntreeRepository donneesEntreeRepository;
+    @MockBean
     MessagerieRepository messagerieRepository;
     @MockBean
     DataSource dataSource;
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 392f44f6d7dcd24f0f814b2d11e53e07a3881332..b85346829c63b87f4b519f9335e4d289e4931408 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
@@ -118,6 +118,9 @@ public class EquipementPhysiqueIntegrationConfig {
                         .consoElecAnnuelle(ResultSetUtils.getDouble(rs, "conso_elec_annuelle"))
                         .dateAchat(ResultSetUtils.getLocalDate(rs, "date_achat"))
                         .dateRetrait(ResultSetUtils.getLocalDate(rs, "date_retrait"))
+                        .dureeUsageInterne(ResultSetUtils.getDouble(rs, "duree_usage_interne"))
+                        .dureeUsageAmont(ResultSetUtils.getDouble(rs, "duree_usage_amont"))
+                        .dureeUsageAval(ResultSetUtils.getDouble(rs, "duree_usage_aval"))
                         .goTelecharge(ResultSetUtils.getFloat(rs, "go_telecharge"))
                         .modele(rs.getString("modele"))
                         .nbCoeur(rs.getString("nb_coeur"))
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 b100c694c5c9ea1d0d242a329c6f6abb2637412e..8340ef882de7ec7a6990c4dc684e01f1ff63cc75 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
@@ -4,11 +4,11 @@ VALUES (6002, '2023-03-08 19:45:39.484539', 'ENTITE|2022-01-01', '2022-01-01', '
         'EN_ATTENTE', NULL, 'SOURCE_A');
 
 INSERT INTO en_equipement_physique (id, date_creation, nom_lot, date_lot, nom_organisation, conso_elec_annuelle,
-                                    date_achat, date_retrait, duree_vie_defaut, go_telecharge, modele, nb_coeur, mode_utilisation, taux_utilisation,
+                                    date_achat, date_retrait, duree_vie_defaut, duree_usage_interne, duree_usage_amont, duree_usage_aval, 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, 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,
+VALUES (376826, '2023-03-23 15:53:51.179031', 'ENTITE|2022-01-01', '2022-01-01', 'ENTITE', NULL, '2022-01-01', NULL, 8.0, 5.0, 1.0, 2.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','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 27d5cb5e969c94baafac6f9ad0277622b8a928b7..02c3eb7151d756b3d0a455b48062e37094a961bc 100644
--- a/services/api-event-donneesentrees/src/test/resources/sql/schema.sql
+++ b/services/api-event-donneesentrees/src/test/resources/sql/schema.sql
@@ -45,6 +45,9 @@ CREATE TABLE IF NOT EXISTS en_equipement_physique
     date_achat                date         NULL,
     date_retrait              date         NULL,
     duree_vie_defaut          float8       NULL,
+    duree_usage_interne       float8       NULL,
+    duree_usage_amont         float8       NULL,
+    duree_usage_aval          float8       NULL,
     go_telecharge             float4       NULL,
     modele                    varchar(255) NULL,
     nb_coeur                  varchar(255) NULL,
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/DonneesEntree.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/DonneesEntree.java
index bf79f1b0814cd1de0355fb2252d826f0a91e65e6..ddfeaa4281d4d55dea460ba4d575ae876c5fc2b2 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/DonneesEntree.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/model/DonneesEntree.java
@@ -29,4 +29,5 @@ public class DonneesEntree extends AbstractEntree {
 
     List<OperationNonIT> operationsNonIT = new ArrayList<>();
 
+    String dureeUsage;
 }
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 a596d24fcf043399757b782b99fb1077e4be018f..784dcb39abd443f6139449637fd6c9956a511687 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
@@ -24,6 +24,9 @@ public class EquipementPhysique extends AbstractEntree {
     String utilisateur;
     LocalDate dateAchat;
     LocalDate dateRetrait;
+    Double dureeUsageInterne;
+    Double dureeUsageAmont;
+    Double dureeUsageAval;
     String nbCoeur;
     String nomCourtDatacenter;
     Double nbJourUtiliseAn;
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/ports/input/ImportDonneesEntreePort.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/ports/input/ImportDonneesEntreePort.java
index 62757fb834c7187fb77c6326305d2fde41bfbe31..b53d99b3bc43bd40cbc8d585f767f0d952ea3c41 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/ports/input/ImportDonneesEntreePort.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/domain/ports/input/ImportDonneesEntreePort.java
@@ -14,7 +14,7 @@ import java.util.List;
 @SuppressWarnings("java:S107")
 // Obligatoire à cause de la gestion des fichiers différents au niveau contrat d'interface
 public interface ImportDonneesEntreePort {
-    String EQUIPEMENT_PHYSIQUE_CSV_HEADER = "modele;quantite;nomEquipementPhysique;type;statut;paysDUtilisation;utilisateur;dateAchat;dateRetrait;nbCoeur;nomCourtDatacenter;goTelecharge;nbJourUtiliseAn;consoElecAnnuelle";
+    String EQUIPEMENT_PHYSIQUE_CSV_HEADER = "modele;quantite;nomEquipementPhysique;type;statut;paysDUtilisation;utilisateur;nbCoeur;nomCourtDatacenter;goTelecharge;nbJourUtiliseAn;consoElecAnnuelle";
     String CSV_SEPARATOR = ";";
     String DATA_CENTER_CSV_HEADER = "nomCourtDatacenter;nomLongDatacenter;pue;localisation";
     String EQUIPEMENT_VIRTUEL_CSV_HEADER = "nomEquipementPhysique;vCPU;cluster";
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 ef9066ef7e5877092c62660817f8621919b2ec94..e213130d37706c222710d104c1d204f48a77c577 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
@@ -219,6 +219,12 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
                 } else {
                     var goTelechargeStr = CSVHelper.safeString(csvRecord, "goTelecharge");
                     Float goTelecharge = goTelechargeStr == null ? null : NumberUtils.toFloat(goTelechargeStr);
+                    var dureeUsageInterneStr = CSVHelper.safeString(csvRecord, "dureeUsageInterne");
+                    Double dureeUsageInterne = NumberUtils.isCreatable(dureeUsageInterneStr) ? NumberUtils.toDouble(dureeUsageInterneStr) : null;
+                    var dureeUsageAmontStr = CSVHelper.safeString(csvRecord, "dureeUsageAmont");
+                    Double dureeUsageAmont = dureeUsageAmontStr == null ? 0 : NumberUtils.toDouble(dureeUsageAmontStr);
+                    var dureeUsageAvalStr = CSVHelper.safeString(csvRecord, "dureeUsageAval");
+                    Double dureeUsageAval = dureeUsageAvalStr == null ? 0 : NumberUtils.toDouble(dureeUsageAvalStr);
                     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");
@@ -246,6 +252,9 @@ public class ImportDonneesEntreePortImpl implements ImportDonneesEntreePort {
                             .utilisateur(CSVHelper.safeString(csvRecord, "utilisateur"))
                             .dateAchat(CSVHelper.safeParseLocalDate(csvRecord, "dateAchat"))
                             .dateRetrait(CSVHelper.safeParseLocalDate(csvRecord, "dateRetrait"))
+                            .dureeUsageInterne(dureeUsageInterne)
+                            .dureeUsageAmont(dureeUsageAmont)
+                            .dureeUsageAval(dureeUsageAval)
                             .nbCoeur(CSVHelper.safeString(csvRecord, "nbCoeur"))
                             .nomCourtDatacenter(CSVHelper.safeString(csvRecord, "nomCourtDatacenter", "refDatacenter"))
                             .goTelecharge(goTelecharge)
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/controller/CalculController.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/controller/CalculController.java
index 9727613edf8d5d5f6917e951b15272f2b2aa5adc..aea43dca0a4e592315a3650ad316dbcf5c99a91d 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/controller/CalculController.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/controller/CalculController.java
@@ -1,30 +1,34 @@
 package org.mte.numecoeval.expositiondonneesentrees.infrastructure.controller;
 
-import lombok.AllArgsConstructor;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.mte.numecoeval.expositiondonneesentrees.domain.ports.input.SoumissionCalculPort;
 import org.mte.numecoeval.expositiondonneesentrees.domain.ports.input.SoumissionCalculSyncPort;
 import org.mte.numecoeval.expositiondonneesentrees.domain.ports.input.StatutPourCalculPort;
-import org.mte.numecoeval.expositiondonneesentrees.generated.api.model.DemandeCalculRest;
-import org.mte.numecoeval.expositiondonneesentrees.generated.api.model.ModeRest;
-import org.mte.numecoeval.expositiondonneesentrees.generated.api.model.RapportDemandeCalculRest;
-import org.mte.numecoeval.expositiondonneesentrees.generated.api.model.StatutCalculRest;
+import org.mte.numecoeval.expositiondonneesentrees.generated.api.model.*;
 import org.mte.numecoeval.expositiondonneesentrees.generated.api.server.CalculsApi;
+import org.mte.numecoeval.expositiondonneesentrees.infrastructure.jpa.repository.DonneesEntreesRepository;
 import org.mte.numecoeval.expositiondonneesentrees.infrastructure.mapper.CalculRestMapper;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.RestController;
 
 @RestController
-@AllArgsConstructor
 @Slf4j
+@RequiredArgsConstructor
 public class CalculController implements CalculsApi {
 
-    CalculRestMapper calculRestMapper;
+    @Value("${regle-par-defaut-duree-usage}")
+    private String defaultDureeUsage;
 
-    SoumissionCalculPort soumissionCalculPort;
+    final CalculRestMapper calculRestMapper;
 
-    SoumissionCalculSyncPort soumissionCalculSyncPort;
-    StatutPourCalculPort statutPourCalculPort;
+    final SoumissionCalculPort soumissionCalculPort;
+
+    final SoumissionCalculSyncPort soumissionCalculSyncPort;
+    final StatutPourCalculPort statutPourCalculPort;
+
+    final DonneesEntreesRepository donneesEntreesRepository;
 
     @Override
     public ResponseEntity<StatutCalculRest> statutPourCalcul(String nomLot, String nomOrganisation) {
@@ -34,9 +38,16 @@ public class CalculController implements CalculsApi {
     }
 
     @Override
-    public ResponseEntity<RapportDemandeCalculRest> soumissionPourCalcul(DemandeCalculRest demandeCalculRest, ModeRest mode) {
-        log.info("Soumission de calcul pour nom_lot: {}, mode: {}", demandeCalculRest.getNomLot(), mode);
+    public ResponseEntity<RapportDemandeCalculRest> soumissionPourCalcul(DemandeCalculRest demandeCalculRest, DureeUsage dureeUsage, ModeRest mode) {
+
+        var modeDureeUsage = dureeUsage == null ? DureeUsage.fromValue(defaultDureeUsage) : dureeUsage;
+        if (DureeUsage.REEL != modeDureeUsage) {
+            modeDureeUsage = DureeUsage.FIXE;
+        }
+
+        log.info("Soumission de calcul pour nom_lot: {}, dureeUsage: {}, mode: {}", demandeCalculRest.getNomLot(), modeDureeUsage, mode);
         var demandeCalcul = calculRestMapper.toDomain(demandeCalculRest);
+        donneesEntreesRepository.updateDonneesEntreesDureeUsage(String.valueOf(modeDureeUsage), demandeCalculRest.getNomLot());
 
         var soumission = ModeRest.ASYNC == mode ?
                 soumissionCalculPort.soumissionCalcul(demandeCalcul) :
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/DonneesEntreesEntity.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/DonneesEntreesEntity.java
index 277304f7f6a6c0f1059c6b3399745c544b8371d2..bd22d5dcc795f261b2a96884559b1fde25c64c9e 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/DonneesEntreesEntity.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/entity/DonneesEntreesEntity.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;
@@ -55,4 +49,9 @@ public class DonneesEntreesEntity extends AbstractEntreeEntity {
      */
     private Long nbrMessageries;
 
+    /**
+     * Méthode de calcul de la durée d'usage des équipements physique
+     */
+    private String dureeUsage;
+
 }
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 addeb447fc0906fcc250fa7927ca9048d5338371..fb4a9d7f5fd1ed6b2b5cdfb20d7e68e81a8a87e6 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
@@ -34,6 +34,9 @@ public class EquipementPhysiqueEntity extends AbstractEntreeEntity {
     private String utilisateur;
     private LocalDate dateAchat;
     private LocalDate dateRetrait;
+    private Double dureeUsageInterne;
+    private Double dureeUsageAmont;
+    private Double dureeUsageAval;
     private String nbCoeur;
     private String nomCourtDatacenter;
     private Double nbJourUtiliseAn;
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/repository/DonneesEntreesRepository.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/repository/DonneesEntreesRepository.java
index 1e08aeec5893cd6b4fe86fa8c14f8e18e23060ee..053371f23dee9ad46d4315f7c7b2b8c07488183a 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/repository/DonneesEntreesRepository.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/jpa/repository/DonneesEntreesRepository.java
@@ -2,9 +2,23 @@ package org.mte.numecoeval.expositiondonneesentrees.infrastructure.jpa.repositor
 
 import org.mte.numecoeval.expositiondonneesentrees.infrastructure.jpa.entity.DonneesEntreesEntity;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
 
 @Repository
-public interface DonneesEntreesRepository extends JpaRepository<DonneesEntreesEntity,Long>
-{
+public interface DonneesEntreesRepository extends JpaRepository<DonneesEntreesEntity, Long> {
+    @Transactional
+    @Modifying
+    @Query("""
+              UPDATE DonneesEntreesEntity dee
+              SET dee.dureeUsage = :dureeUsage
+              WHERE dee.nomLot = :nomLot
+            """)
+    int updateDonneesEntreesDureeUsage(
+            @Param("dureeUsage") String dureeUsage,
+            @Param("nomLot") String nomLot
+    );
 }
diff --git a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/DefaultValueService.java b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/DefaultValueService.java
index 7d2a97d670fcd3e25ab03378bd201bf810d1cddd..77b3e69679feabf969710e994beee95fa5d1afaa 100644
--- a/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/DefaultValueService.java
+++ b/services/api-expositiondonneesentrees/src/main/java/org/mte/numecoeval/expositiondonneesentrees/infrastructure/service/DefaultValueService.java
@@ -23,7 +23,6 @@ public class DefaultValueService {
         if (equipementPhysique.getModeUtilisation() != null && !modeUtilisationList.contains(equipementPhysique.getModeUtilisation())) {
             equipementPhysique.setModeUtilisation(null);
         }
-
         Double taux = equipementPhysique.getTauxUtilisation();
         if (taux != null && (taux < 0 || taux > 1)) {
             equipementPhysique.setTauxUtilisation(null);
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 4d499bb487af8c5ee1e8cb2e6f5dd90e6fdd86c1..fca94b4cfe98243b323644f983dbd2817671eb9f 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
@@ -109,24 +109,34 @@ public class ErrorManagementService {
         }
 
         // CA 3.1
-        // L'ajout d'un équipement dont le date de retrait (equipementPhysique.DateRetrait) précède la date d'achat (equipementPhysique.DateAchat)
+        // L'ajout d'un équipement dont la date de retrait (equipementPhysique.DateRetrait) précède la date d'achat (equipementPhysique.DateAchat)
         if (equipementPhysique.getDateAchat() != null && equipementPhysique.getDateRetrait() != null &&
                 equipementPhysique.getDateAchat().isAfter(equipementPhysique.getDateRetrait())) {
 
             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
+        // L'ajout d'un équipement dont la duree d'usage interne est négative
+        if (equipementPhysique.getDureeUsageInterne() != null && equipementPhysique.getDureeUsageInterne() <= 0) {
+            erreurs.add(messageProperties.getMessages().get("EQUIPEMENT_DUREE_USAGE_INTERNE_INCOHERENTE").formatted(equipementPhysique.getNomEquipementPhysique()));
+        }
+        if (equipementPhysique.getDureeUsageAmont() != null && equipementPhysique.getDureeUsageAmont() < 0) {
+            erreurs.add(messageProperties.getMessages().get("EQUIPEMENT_DUREE_USAGE_INCOHERENTE").formatted("amont", equipementPhysique.getNomEquipementPhysique()));
+        }
+        if (equipementPhysique.getDureeUsageAval() != null && equipementPhysique.getDureeUsageAval() < 0) {
+            erreurs.add(messageProperties.getMessages().get("EQUIPEMENT_DUREE_USAGE_INCOHERENTE").formatted("aval", equipementPhysique.getNomEquipementPhysique()));
+        }
+        //CA 5.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 6.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));
         }
-
         return Pair.of(erreurs, avertissements);
     }
 
diff --git a/services/api-expositiondonneesentrees/src/main/resources/application.yaml b/services/api-expositiondonneesentrees/src/main/resources/application.yaml
index 5bb0c2c18276f3e23ff25c21cbbca68a827640d1..b4fd32d40de92570ee37616e607a794b57c8a185 100644
--- a/services/api-expositiondonneesentrees/src/main/resources/application.yaml
+++ b/services/api-expositiondonneesentrees/src/main/resources/application.yaml
@@ -73,6 +73,9 @@ caching:
     statutDesCalculs: "PT10S"
     referentiels: "PT10M"
 
+#Variables internes du composant
+regle-par-defaut-duree-usage: "FIXE"
+
 messages:
   LIGNE_INCONSISTENTE: "Fichier %s : La ligne n°%d n'est pas consistente avec les headers du fichier"
   LIGNE_INCORRECTE: "Fichier %s : La ligne n°%d est incorrecte pour l'objet %s requise"
@@ -83,6 +86,8 @@ messages:
   EQUIPEMENT_CORRESPONDANCE_INCONNUE: "L'équipement %s de type %s ne possède pas de référence d'équipement par défaut dans la table ref_type_item et pas de correspondance dans la table ref_correspondance_ref_eqp"
   ITEM_IMPACT_INCONNU: "L'impact de l'item de référence %s pour l'étape %s et le critère %s ne pourra pas être calculé en raison de l'absence de facteur d'impact sur cet item"
   EQUIPEMENT_DATE_INCOHERENTE: "L'âge de l'équipement %s ne peut être calculé car sa date de retrait précède sa date d'achat"
+  EQUIPEMENT_DUREE_USAGE_INTERNE_INCOHERENTE: "La durée d'usage interne de l'équipement %s est négative ou nulle donc invalide"
+  EQUIPEMENT_DUREE_USAGE_INCOHERENTE: "La durée d'usage %s de l'équipement %s est négative donc invalide"
   EQUIPEMENT_MODE_UTILISATION_INCONNU: "Le mode d'utilisation renseigné '%s' est inconnu du référentiel"
   EQUIPEMENT_TAUX_UTILISATION_INVALIDE: "Le taux d'utilisation renseigné '%s' n'est pas valide, il doit être compris entre 0 et 1, le taux par défaut sera appliqué."
   EQUIPEMENT_DATACENTER_INCONNU: "L'équipement %s n'est lié à aucun datacenter"
diff --git a/services/api-expositiondonneesentrees/src/main/resources/schema.sql b/services/api-expositiondonneesentrees/src/main/resources/schema.sql
index 04c34e11beb268195ee1a889d4091aed628d3546..9f3d48f38da7a19d55b0ac172e629ebafd43cec3 100644
--- a/services/api-expositiondonneesentrees/src/main/resources/schema.sql
+++ b/services/api-expositiondonneesentrees/src/main/resources/schema.sql
@@ -11,6 +11,7 @@ CREATE TABLE IF NOT EXISTS en_donnees_entrees
     nbr_equipements_physiques int8         NULL,
     nbr_equipements_virtuels  int8         NULL,
     nbr_messageries           int8         NULL,
+    duree_usage               varchar(255) NULL,
     CONSTRAINT en_donnees_entrees_pkey PRIMARY KEY (id)
 );
 
@@ -44,6 +45,9 @@ CREATE TABLE IF NOT EXISTS en_equipement_physique
     conso_elec_annuelle       float8       NULL,
     date_achat                date         NULL,
     date_retrait              date         NULL,
+    duree_usage_interne       float8       NULL,
+    duree_usage_amont         float8       NULL,
+    duree_usage_aval          float8       NULL,
     duree_vie_defaut          float8       NULL,
     go_telecharge             float4       NULL,
     modele                    varchar(255) NULL,
@@ -189,6 +193,11 @@ ALTER TABLE IF EXISTS en_equipement_virtuel ADD COLUMN IF NOT EXISTS cle_reparti
 ALTER TABLE IF EXISTS en_equipement_physique ADD COLUMN IF NOT EXISTS stockage_total_virtuel float8;
 ALTER TABLE IF EXISTS en_equipement_physique ADD COLUMN IF NOT EXISTS mode_utilisation varchar(255);
 ALTER TABLE IF EXISTS en_equipement_physique ADD COLUMN IF NOT EXISTS taux_utilisation float8;
+ALTER TABLE IF EXISTS en_equipement_physique ADD COLUMN IF NOT EXISTS duree_usage_interne float8;
+ALTER TABLE IF EXISTS en_equipement_physique ADD COLUMN IF NOT EXISTS duree_usage_amont float8;
+ALTER TABLE IF EXISTS en_equipement_physique ADD COLUMN IF NOT EXISTS duree_usage_aval float8;
+
+ALTER TABLE IF EXISTS en_donnees_entrees ADD COLUMN IF NOT EXISTS duree_usage varchar(255);
 
 -- Creation indexes
 -- Accelere la recuperation des donnees depuis EquipementPhysiqueIntegrationConfig.java
diff --git a/services/api-expositiondonneesentrees/src/main/resources/static/openapi.yaml b/services/api-expositiondonneesentrees/src/main/resources/static/openapi.yaml
index afe64246a55d958f241ed2c981d6d6002ceeb03f..4eb839bcf5867a26c1e30279baa5c0d16fa9741f 100644
--- a/services/api-expositiondonneesentrees/src/main/resources/static/openapi.yaml
+++ b/services/api-expositiondonneesentrees/src/main/resources/static/openapi.yaml
@@ -38,19 +38,19 @@ paths:
         "500":
           description: Erreur interne du service
           content:
-            'application/json':
+            "application/json":
               schema:
                 $ref: "#/components/schemas/ErreurRest"
         "400":
           description: Contenu de la soumission incorrecte
           content:
-            'application/json':
+            "application/json":
               schema:
                 $ref: "#/components/schemas/ErreurRest"
         "200":
           description: Rapport d'import des données d'entrées
           content:
-            'application/json':
+            "application/json":
               schema:
                 $ref: "#/components/schemas/StatutCalculRest"
   /entrees/calculs/soumission:
@@ -58,10 +58,21 @@ paths:
       summary: Endpoint de soumission de données d'entrées pour lancer les calculs dans NumEcoEval.
       description: |
         Endpoint de soumission de données d'entrées pour lancer les calculs dans NumEcoEval.
+        Vous pouvez choisir la méthode de calcul de la durée de vie des équipements qui sera utilisée pour le calcul grâce au paramètre dureeUsage qui peut prendre 2 valeurs : 
+        <ul>
+        <li>FIXE : La méthode de calcul de la durée de vie se base sur l'attribut 'dureeUsageInterne' de l'équipement physique (méthode utilisée par défaut si le paramètre dureeUsage n'est pas renseigné). </li>
+        <li>REEL : La méthode de calcul de la durée de vie se base sur l'âge réel de l'équipement physique (dateRetrait-dateAchat). </li>
+        </ul>
       tags:
         - Calculs
       operationId: soumissionPourCalcul
       parameters:
+        - in: query
+          name: dureeUsage
+          schema:
+            $ref: "#/components/schemas/DureeUsage"
+          required: false
+          description: "Choix de la méthode de calcul de la durée d'usage : FIXE ou REEL"
         - in: query
           name: mode
           schema:
@@ -71,26 +82,26 @@ paths:
       requestBody:
         required: true
         content:
-          'application/json':
+          "application/json":
             schema:
               $ref: "#/components/schemas/DemandeCalculRest"
       responses:
         "500":
           description: Erreur interne du service
           content:
-            'application/json':
+            "application/json":
               schema:
                 $ref: "#/components/schemas/ErreurRest"
         "400":
           description: Contenu de la soumission incorrecte
           content:
-            'application/json':
+            "application/json":
               schema:
                 $ref: "#/components/schemas/ErreurRest"
         "200":
           description: Rapport d'import des données d'entrées
           content:
-            'application/json':
+            "application/json":
               schema:
                 $ref: "#/components/schemas/RapportDemandeCalculRest"
   /entrees/calculs/rejeu:
@@ -104,26 +115,26 @@ paths:
       requestBody:
         required: true
         content:
-          'application/json':
+          "application/json":
             schema:
               $ref: "#/components/schemas/DemandeCalculRest"
       responses:
         "500":
           description: Erreur interne du service
           content:
-            'application/json':
+            "application/json":
               schema:
                 $ref: "#/components/schemas/ErreurRest"
         "400":
           description: Contenu de la soumission incorrecte
           content:
-            'application/json':
+            "application/json":
               schema:
                 $ref: "#/components/schemas/ErreurRest"
         "200":
           description: Rapport d'import des données d'entrées
           content:
-            'application/json':
+            "application/json":
               schema:
                 $ref: "#/components/schemas/RapportDemandeCalculRest"
   /entrees/json:
@@ -138,26 +149,26 @@ paths:
       requestBody:
         required: true
         content:
-          'application/json':
+          "application/json":
             schema:
               $ref: "#/components/schemas/DonneesEntreeRest"
       responses:
         "500":
           description: Erreur interne du service
           content:
-            'application/json':
+            "application/json":
               schema:
                 $ref: "#/components/schemas/ErreurRest"
         "400":
           description: Contenu de la soumission incorrecte
           content:
-            'application/json':
+            "application/json":
               schema:
                 $ref: "#/components/schemas/ErreurRest"
         "200":
           description: Rapport d'import des données d'entrées
           content:
-            'application/json':
+            "application/json":
               schema:
                 type: array
                 items:
@@ -169,26 +180,26 @@ paths:
       summary: Soumission de données d'entrées au format CSV pour calcul d'indicateurs
       description: |
         Endpoint de soumission des données d'entrées au format CSV pour le calcul d'indicateurs.  
-        
+
         La taille totale de tous les fichiers ne doit pas dépasser 10 Mo. <br/>
-        
+
         Le séparateur des fichiers CSV est le point-virgule (;).  <br/>
-        
+
         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);(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);(qualite).  <br/>
-        
+
+        Le Header du CSV des équipements physiques est : nomEquipementPhysique,modele;quantite;nomCourtDatacenter;(dateAchat);(dateRetrait);(dureeUsageInterne);(dureeUsageAmont);(dureeUsageAval);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);(qualite).  <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;(qualite).  <br/>
 
         Le Header du CSV de la messagerie est : nombreMailEmis;nombreMailEmisXDestinataires;volumeTotalMailEmis;MoisAnnee;(nomEntite).  <br/>
-        
-        Le Header du CSV des entités est : nomEntite;nbCollaborateurs;responsableEntite;responsableNumeriqueResponsable.  
+
+        Le Header du CSV des entités est : nomEntite;nbCollaborateurs;responsableEntite;responsableNumeriqueResponsable.
 
       operationId: importCSV
       requestBody:
@@ -232,19 +243,19 @@ paths:
         "500":
           description: Erreur interne du service
           content:
-            'application/json':
+            "application/json":
               schema:
                 $ref: "#/components/schemas/ErreurRest"
         "400":
           description: Contenu de la soumission incorrecte
           content:
-            'application/json':
+            "application/json":
               schema:
                 $ref: "#/components/schemas/ErreurRest"
         "200":
           description: Rapport d'import des données d'entrées
           content:
-            'application/json':
+            "application/json":
               schema:
                 type: array
                 items:
@@ -275,6 +286,11 @@ components:
         - ASYNC
         - SYNC
       default: ASYNC
+    DureeUsage:
+      type: string
+      enum:
+        - FIXE
+        - REEL
     StatutCalculRest:
       description: Statut des calculs.
       properties:
@@ -289,13 +305,13 @@ components:
           type: string
         equipementPhysique:
           description: "Bloc equipement physique"
-          $ref: '#/components/schemas/VolumeRest'
+          $ref: "#/components/schemas/VolumeRest"
         operationNonIT:
           description: "Bloc opération non it"
-          $ref: '#/components/schemas/VolumeRest'
+          $ref: "#/components/schemas/VolumeRest"
         messagerie:
           description: "Bloc messagerie"
-          $ref: '#/components/schemas/VolumeRest'
+          $ref: "#/components/schemas/VolumeRest"
     VolumeRest:
       description: Volume
       type: object
@@ -454,6 +470,15 @@ components:
           description: ""
           type: string
           format: date
+        dureeUsageInterne:
+          description: ""
+          type: number
+        dureeUsageAmont:
+          description: ""
+          type: number
+        dureeUsageAval:
+          description: ""
+          type: number
         nbCoeur:
           description: ""
           type: string
@@ -648,4 +673,4 @@ components:
           type: string
         nomSourceDonnee:
           description: "Nom de la source de la donnée"
-          type: string
\ No newline at end of file
+          type: string
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 0a12a87ffabfa2819eef4b8a0cce7cb2f31f87b9..9e8f44e23ed1c29f8f44cdd662e4a726499f96d1 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
@@ -31,6 +31,8 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 
 @ExtendWith({MockitoExtension.class, SpringExtension.class})
@@ -69,7 +71,7 @@ public class ErrorManagementServiceTest {
     }
 
     @Test
-    void importEqPhysique_with_DateEntreeAfterDateRetrait_shouldNotReturnReportWith1Error() throws IOException {
+    void importEqPhysique_with_DateEntreeBeforeDateRetrait_shouldNotReturnReportWith1Error() throws IOException {
         EquipementPhysique eq1 = EquipementPhysique.builder()
                 .nomEquipementPhysique("physical-eq-001")
                 .modele("P2719")
@@ -85,6 +87,83 @@ public class ErrorManagementServiceTest {
         Assertions.assertFalse(actual.getKey().stream().anyMatch("L'âge de l'équipement physical-eq-001 ne peut être calculé car sa date de retrait précède sa date d'achat"::equals));
     }
 
+    @Test
+    void importEqPhysique_with_DureeUsageInterneNegative_shouldReturnReportWith1Error() throws IOException {
+        EquipementPhysique eq1 = EquipementPhysique.builder()
+                .nomEquipementPhysique("physical-eq-001")
+                .quantite(1.0)
+                .dureeUsageInterne(-3.6)
+                .type("Monitor")
+                .statut("In use")
+                .paysDUtilisation("France")
+                .build();
+
+        var actual = errorManagementService.checkEquipementPhysique(eq1, "");
+        assertTrue(actual.getKey().stream().anyMatch(ds -> "La durée d'usage interne de l'équipement physical-eq-001 est négative ou nulle donc invalide".equals(ds)));
+    }
+
+    @Test
+    void importEqPhysique_with_DureeUsageInterneZero_shouldReturnReportWith1Error() throws IOException {
+        EquipementPhysique eq1 = EquipementPhysique.builder()
+                .nomEquipementPhysique("physical-eq-001")
+                .quantite(1.0)
+                .dureeUsageInterne(0.0)
+                .type("Monitor")
+                .statut("In use")
+                .paysDUtilisation("France")
+                .build();
+
+        var actual = errorManagementService.checkEquipementPhysique(eq1, "");
+        assertTrue(actual.getKey().stream().anyMatch(ds -> "La durée d'usage interne de l'équipement physical-eq-001 est négative ou nulle donc invalide".equals(ds)));
+    }
+
+    @Test
+    void importEqPhysique_with_DureeUsageInternePositive_shouldNotReturnReportWith1Error() throws IOException {
+        EquipementPhysique eq1 = EquipementPhysique.builder()
+                .nomEquipementPhysique("physical-eq-001")
+                .quantite(1.0)
+                .dureeUsageInterne(3.6)
+                .type("Monitor")
+                .statut("In use")
+                .paysDUtilisation("France")
+                .build();
+
+        var actual = errorManagementService.checkEquipementPhysique(eq1, "");
+        assertFalse(actual.getKey().stream().anyMatch(ds -> "La durée d'usage interne de l'équipement physical-eq-001 est négative ou nulle donc invalide".equals(ds)));
+    }
+
+    @Test
+    void importEqPhysique_with_DureeUsageAvalNegative_shouldReturnReportWith1Error() throws IOException {
+        EquipementPhysique eq1 = EquipementPhysique.builder()
+                .nomEquipementPhysique("physical-eq-001")
+                .quantite(1.0)
+                .dureeUsageInterne(1.0)
+                .dureeUsageAval(-1.0)
+                .type("Monitor")
+                .statut("In use")
+                .paysDUtilisation("France")
+                .build();
+
+        var actual = errorManagementService.checkEquipementPhysique(eq1, "");
+        assertTrue(actual.getKey().stream().anyMatch(ds -> "La durée d'usage aval de l'équipement physical-eq-001 est négative donc invalide".equals(ds)));
+    }
+
+    @Test
+    void importEqPhysique_with_DureeUsageAvalZero_shouldNotReturnReportWith1Error() throws IOException {
+        EquipementPhysique eq1 = EquipementPhysique.builder()
+                .nomEquipementPhysique("physical-eq-001")
+                .quantite(1.0)
+                .dureeUsageInterne(1.0)
+                .dureeUsageAval(0.0)
+                .type("Monitor")
+                .statut("In use")
+                .paysDUtilisation("France")
+                .build();
+
+        var actual = errorManagementService.checkEquipementPhysique(eq1, "");
+        assertFalse(actual.getKey().stream().anyMatch(ds -> "La durée d'usage aval de l'équipement physical-eq-001 est négative donc invalide".equals(ds)));
+    }
+
     @Test
     void importOperationNonIT_with_TypeNotInRefType_shouldReturnReportWith1Error() {
         OperationNonIT eq1 = OperationNonIT.builder()
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/demande/DemandeCalculImpactEquipementPhysique.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/demande/DemandeCalculImpactEquipementPhysique.java
index 4e4247f964a5d4ced269f7defbaa65ab402926e3..6c0da70ed89125cb7e070a24004add2322b0da59 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/demande/DemandeCalculImpactEquipementPhysique.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/demande/DemandeCalculImpactEquipementPhysique.java
@@ -36,6 +36,8 @@ public class DemandeCalculImpactEquipementPhysique {
 
     List<ReferentielMixElectrique> mixElectriques;
 
+    OptionsCalcul optionsCalcul;
+
     public Optional<ReferentielHypothese> getHypotheseFromCode(String code) {
         if (code == null || hypotheses == null) {
             return Optional.empty();
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/demande/OptionsCalcul.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/demande/OptionsCalcul.java
new file mode 100644
index 0000000000000000000000000000000000000000..bee2bb2f7aed4277af29ecbb08617ce853100660
--- /dev/null
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/demande/OptionsCalcul.java
@@ -0,0 +1,5 @@
+package org.mte.numecoeval.calculs.domain.data.demande;
+
+public record OptionsCalcul(String dureeUsage) {
+
+}
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 d3fa26e68a6fdc6d00b519e905355b45e04570f1..02376c96d42f20d50e6a1e96f9c41008d03c51bc 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
@@ -18,6 +18,9 @@ public class EquipementPhysique {
     private String utilisateur;
     private LocalDate dateAchat;
     private LocalDate dateRetrait;
+    private Double dureeUsageInterne;
+    private Double dureeUsageAmont;
+    private Double dureeUsageAval;
     private Double quantite;
     private Float goTelecharge;
     private Double nbJourUtiliseAn;
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/trace/DureeDeVie.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/trace/DureeDeVie.java
index 1697802d26401dc1ea96a00c489736255873adfa..c4d27f82068a1f22993645827b3ed155ddc6828c 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/trace/DureeDeVie.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/data/trace/DureeDeVie.java
@@ -8,7 +8,11 @@ import lombok.Data;
 @Builder
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class DureeDeVie {
-    private Double valeur;
+    private Double valeurRetenue;
+    private String methodeDureeUsage;
+    private Double dureeUsageInterne;
+    private Double dureeUsageAmont;
+    private Double dureeUsageAval;
     private String dateAchat;
     private String dateRetrait;
     private DureeDeVieParDefaut dureeDeVieParDefaut;
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 5c0d96c4f7df6fca946656bd6608bd997847b125..27b32aa92ebd44bd543f855aff8f1cf6d1b528e6 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
@@ -23,7 +23,6 @@ import java.util.stream.Collectors;
 @Slf4j
 @AllArgsConstructor
 public class CalculImpactEquipementPhysiqueServiceImpl implements CalculImpactEquipementPhysiqueService {
-
     private static final String VERSION_CALCUL = "1.0";
     public static final String NB_JOUR_UTILISE_PAR_DEFAUT = "NbJourUtiliseParDefaut";
     public static final String ERREUR_DE_CALCUL_IMPACT_EQUIPEMENT_MESSAGE = "Erreur de calcul impact équipement: Type: {}, Cause: {}, Etape: {}, Critere: {}, Equipement Physique: {}, RefEquipementRetenu: {}, RefEquipementParDefaut: {}";
@@ -78,8 +77,8 @@ public class CalculImpactEquipementPhysiqueServiceImpl implements CalculImpactEq
                 var valeurReferentiel = referentielImpactEquipement.getValeur();
                 valeurImpactUnitaire = quantite * valeurReferentiel * tauxUtilisationEqPhysique;
                 DureeDeVie dureeVie = dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul);
-                if (dureeVie != null && dureeVie.getValeur() != null && dureeVie.getValeur() > 0) {
-                    var valeurDureeVie = dureeVie.getValeur();
+                if (dureeVie != null && dureeVie.getValeurRetenue() != null && dureeVie.getValeurRetenue() > 0) {
+                    var valeurDureeVie = dureeVie.getValeurRetenue();
                     valeurImpactUnitaire = valeurImpactUnitaire / valeurDureeVie;
                     traceCalculImpactEquipementPhysique = TraceCalculImpactEquipementPhysiqueUtils.buildTraceSecondScenario(quantite, valeurReferentiel, referentielImpactEquipement.getSource(), dureeVie, tauxUtilisationEqPhysique);
                 } else {
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 c7e4414b4ebf3ad34212cbcba2a1cad41978b2be..3ef4e6bf777a1a5a6248a49845b9666151439939 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
@@ -119,7 +119,7 @@ public class CalculImpactOperationNonITServiceImpl implements CalculImpactOperat
         }
         MetadataCalcul metadataCalcul = getFormule(demandeCalcul);
         DureeDeVie dureeDeVie = getDureeVie(demandeCalcul);
-        Double dureeDeVieValeur = (dureeDeVie.getValeur() == null) ? dureeDeVie.getDureeDeVieParDefaut().getValeur() : dureeDeVie.getValeur();
+        Double dureeDeVieValeur = (dureeDeVie.getValeurRetenue() == null) ? dureeDeVie.getDureeDeVieParDefaut().getValeur() : dureeDeVie.getValeurRetenue();
         Double valeurImpactUnitaire = metadataCalcul.valeurImpactUnitaire() / dureeDeVieValeur;
         TraceCalculImpactOperationNonIT traceCalculImpactOperationNonIT = metadataCalcul.traceCalculImpactOperationNonIT();
         String traceFormuleBase = traceCalculImpactOperationNonIT.getFormule();
@@ -327,7 +327,7 @@ public class CalculImpactOperationNonITServiceImpl implements CalculImpactOperat
         var dureeDeVie = DureeDeVie.builder().build();
 
         if (demandeCalcul.getOperationNonIT().getDureeDeVie() != null) {
-            dureeDeVie.setValeur(demandeCalcul.getOperationNonIT().getDureeDeVie());
+            dureeDeVie.setValeurRetenue(demandeCalcul.getOperationNonIT().getDureeDeVie());
 
         } else if (demandeCalcul.getTypeItem() != null && demandeCalcul.getTypeItem().getDureeVieDefaut() != null) {
             dureeDeVie.setDureeDeVieParDefaut(DureeDeVieParDefaut.builder()
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/DureeDeVieEquipementPhysiqueServiceImpl.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/DureeDeVieEquipementPhysiqueServiceImpl.java
index 5b5f19603237534261c4e6f88174ed0865dd03c2..d690e679fb6d9b67e0a694d0b1a0b31dbcbef943 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/DureeDeVieEquipementPhysiqueServiceImpl.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/port/input/service/impl/DureeDeVieEquipementPhysiqueServiceImpl.java
@@ -1,6 +1,7 @@
 package org.mte.numecoeval.calculs.domain.port.input.service.impl;
 
 import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.mte.numecoeval.calculs.domain.data.demande.DemandeCalculImpactEquipementPhysique;
 import org.mte.numecoeval.calculs.domain.data.erreur.TypeErreurCalcul;
 import org.mte.numecoeval.calculs.domain.data.referentiel.ReferentielHypothese;
@@ -13,24 +14,63 @@ import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
 
+@Slf4j
 @AllArgsConstructor
 public class DureeDeVieEquipementPhysiqueServiceImpl implements DureeDeVieEquipementPhysiqueService {
 
     @Override
     public DureeDeVie calculerDureeVie(DemandeCalculImpactEquipementPhysique demandeCalcul) throws CalculImpactException {
+        String methodeDureeUsage = demandeCalcul.getOptionsCalcul() != null ? demandeCalcul.getOptionsCalcul().dureeUsage() : "FIXE";
+
+        if ("REEL".equals(methodeDureeUsage)) {
+            return calculDureeUsageFromMethodeReel(demandeCalcul);
+        }
+        // par défaut, methodeDureeUsage == "FIXE"
+        return calculDureeUsageFromMethodeFixe(demandeCalcul);
+    }
+
+    private DureeDeVie calculDureeUsageAmontEtAval(DemandeCalculImpactEquipementPhysique demandeCalcul) throws CalculImpactException {
+        var result = DureeDeVie.builder()
+                .valeurRetenue(0.0)
+                .build();
+
+        Double dureeUsageAmont = demandeCalcul.getEquipementPhysique().getDureeUsageAmont();
+        if (dureeUsageAmont != null) {
+            if (dureeUsageAmont < 0) {
+                throw new CalculImpactException(TypeErreurCalcul.ERREUR_FONCTIONNELLE.getCode(), "La durée d'usage amont ne peut pas être négative");
+            }
+            result.setDureeUsageAmont(dureeUsageAmont);
+            result.setValeurRetenue(dureeUsageAmont);
+        } else {
+            result.setDureeUsageAmont(0.0);
+        }
+        Double dureeUsageAval = demandeCalcul.getEquipementPhysique().getDureeUsageAval();
+        if (dureeUsageAval != null) {
+            if (dureeUsageAval < 0) {
+                throw new CalculImpactException(TypeErreurCalcul.ERREUR_FONCTIONNELLE.getCode(), "La durée d'usage aval ne peut pas être négative");
+            }
+            result.setDureeUsageAval(dureeUsageAval);
+            result.setValeurRetenue(result.getValeurRetenue() + dureeUsageAval);
+        } else {
+            result.setDureeUsageAval(0.0);
+        }
+        return result;
+    }
+
+    private DureeDeVie calculDureeUsageFromMethodeReel(DemandeCalculImpactEquipementPhysique demandeCalcul) throws CalculImpactException {
+        DureeDeVie result = calculDureeUsageAmontEtAval(demandeCalcul);
+        result.setMethodeDureeUsage("REEL");
         var dateAchat = demandeCalcul.getEquipementPhysique().getDateAchat();
         var dateRetrait = demandeCalcul.getEquipementPhysique().getDateRetrait();
-        var result = DureeDeVie.builder().build();
         if (dateAchat != null && dateRetrait != null) {
-
             if (dateAchat.isBefore(dateRetrait)) {
                 Double valeur;
-                if (ChronoUnit.MONTHS.between(dateAchat, dateRetrait) < 12) {
-                    valeur = 1d;
+                if ((double) ChronoUnit.MONTHS.between(dateAchat, dateRetrait) / 12 + result.getDureeUsageAmont() + result.getDureeUsageAval() < 1) {
+                    result.setValeurRetenue(1.0);
                 } else {
                     valeur = ChronoUnit.DAYS.between(dateAchat, dateRetrait) / 365d;
+                    result.setValeurRetenue(result.getValeurRetenue() + valeur);
                 }
-                result.setValeur(valeur);
                 result.setDateAchat(dateAchat.format(DateTimeFormatter.ISO_DATE));
                 result.setDateRetrait(dateRetrait.format(DateTimeFormatter.ISO_DATE));
             } else {
@@ -39,7 +79,7 @@ public class DureeDeVieEquipementPhysiqueServiceImpl implements DureeDeVieEquipe
         }
         // Taiga#864 - Si la date d'achat est présente et non la date de retrait, on prend la date du jour devient la date de retrait pour le calcul
         else if (dateAchat != null) {
-            result.setValeur(
+            result.setValeurRetenue(result.getValeurRetenue() +
                     ChronoUnit.DAYS.between(dateAchat, LocalDate.now()) / 365d
             );
             result.setDateAchat(dateAchat.format(DateTimeFormatter.ISO_DATE));
@@ -47,7 +87,36 @@ public class DureeDeVieEquipementPhysiqueServiceImpl implements DureeDeVieEquipe
         } else {
             var dureeDeVieParDefaut = calculerDureeVieDefaut(demandeCalcul);
             result.setDureeDeVieParDefaut(dureeDeVieParDefaut);
-            result.setValeur(dureeDeVieParDefaut.getValeur());
+            if (dureeDeVieParDefaut.getValeur() + result.getDureeUsageAmont() + result.getDureeUsageAval() < 1) {
+                result.setValeurRetenue(1.0);
+            }
+            result.setValeurRetenue(result.getValeurRetenue() + dureeDeVieParDefaut.getValeur());
+        }
+        return result;
+    }
+
+    private DureeDeVie calculDureeUsageFromMethodeFixe(DemandeCalculImpactEquipementPhysique demandeCalcul) throws CalculImpactException {
+        DureeDeVie result = calculDureeUsageAmontEtAval(demandeCalcul);
+        result.setMethodeDureeUsage("FIXE");
+        Double dureeUsageInterne = demandeCalcul.getEquipementPhysique().getDureeUsageInterne();
+        if (dureeUsageInterne != null) {
+            if (dureeUsageInterne <= 0.0) {
+                throw new CalculImpactException(TypeErreurCalcul.ERREUR_FONCTIONNELLE.getCode(), "La durée d'usage interne ne peut pas être négative ou nulle");
+            }
+            result.setDureeUsageInterne(dureeUsageInterne);
+            if (dureeUsageInterne + result.getDureeUsageAmont() + result.getDureeUsageAval() < 1) {
+                result.setValeurRetenue(1.0);
+            } else {
+                result.setValeurRetenue(result.getValeurRetenue() + dureeUsageInterne);
+            }
+        } else {
+            var dureeDeVieParDefaut = calculerDureeVieDefaut(demandeCalcul);
+            result.setDureeDeVieParDefaut(dureeDeVieParDefaut);
+            if (dureeDeVieParDefaut.getValeur() + result.getDureeUsageAmont() + result.getDureeUsageAval() < 1) {
+                result.setValeurRetenue(1.0);
+            } else {
+                result.setValeurRetenue(result.getValeurRetenue() + dureeDeVieParDefaut.getValeur());
+            }
         }
         return result;
     }
@@ -62,6 +131,7 @@ public class DureeDeVieEquipementPhysiqueServiceImpl implements DureeDeVieEquipe
                     .valeur(demandeCalcul.getTypeEquipement().getDureeVieDefaut())
                     .build();
         }
+
         var refHypotheseOpt = demandeCalcul.getHypotheseFromCode("dureeVieParDefaut");
         if (refHypotheseOpt.isPresent() && refHypotheseOpt.get().getValeur() != null) {
             ReferentielHypothese hypothese = refHypotheseOpt.get();
@@ -73,5 +143,4 @@ public class DureeDeVieEquipementPhysiqueServiceImpl implements DureeDeVieEquipe
         }
         throw new CalculImpactException(TypeErreurCalcul.ERREUR_FONCTIONNELLE.getCode(), "La durée de vie par défaut de l'équipement n'a pas pu être déterminée");
     }
-
 }
diff --git a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/traceur/TraceCalculImpactEquipementPhysiqueUtils.java b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/traceur/TraceCalculImpactEquipementPhysiqueUtils.java
index 152029304044a0c7755521d5f2112bb4c055c89c..42560d275d9e9d154b6a87c670de2c94975b6b51 100644
--- a/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/traceur/TraceCalculImpactEquipementPhysiqueUtils.java
+++ b/services/calculs/src/main/java/org/mte/numecoeval/calculs/domain/traceur/TraceCalculImpactEquipementPhysiqueUtils.java
@@ -31,7 +31,7 @@ public class TraceCalculImpactEquipementPhysiqueUtils {
 
     public static TraceCalculImpactEquipementPhysique buildTraceSecondScenario(Double quantite, Double valeurRefrentiel, String sourceReferentiel, DureeDeVie dureeDeVie, Double taux_utilisation) {
         return TraceCalculImpactEquipementPhysique.builder()
-                .formule(getFormuleSecondScenario(quantite, valeurRefrentiel, dureeDeVie.getValeur(), taux_utilisation))
+                .formule(getFormuleSecondScenario(quantite, valeurRefrentiel, dureeDeVie.getValeurRetenue(), taux_utilisation))
                 .valeurReferentielImpactEquipement(valeurRefrentiel)
                 .sourceReferentielImpactEquipement(sourceReferentiel)
                 .dureeDeVie(dureeDeVie)
diff --git a/services/calculs/src/test/java/org/mte/numecoeval/calculs/domain/service/CalculImpactEquipementPhysiqueServiceTest.java b/services/calculs/src/test/java/org/mte/numecoeval/calculs/domain/service/CalculImpactEquipementPhysiqueServiceTest.java
index 23b3477d7372073a877baf1132e26cbf5d8dc9f7..38135838120be3bfdbcadfd63a9ebbd9b4fc2e32 100644
--- a/services/calculs/src/test/java/org/mte/numecoeval/calculs/domain/service/CalculImpactEquipementPhysiqueServiceTest.java
+++ b/services/calculs/src/test/java/org/mte/numecoeval/calculs/domain/service/CalculImpactEquipementPhysiqueServiceTest.java
@@ -9,6 +9,7 @@ import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.mte.numecoeval.calculs.domain.data.demande.DemandeCalculImpactEquipementPhysique;
+import org.mte.numecoeval.calculs.domain.data.demande.OptionsCalcul;
 import org.mte.numecoeval.calculs.domain.data.entree.DataCenter;
 import org.mte.numecoeval.calculs.domain.data.entree.EquipementPhysique;
 import org.mte.numecoeval.calculs.domain.data.indicateurs.ImpactEquipementPhysique;
@@ -856,9 +857,10 @@ class CalculImpactEquipementPhysiqueServiceTest {
                 .correspondanceRefEquipement(refEquipement)
                 .typeEquipement(typeEquipement)
                 .impactEquipements(Collections.singletonList(referentielImpactEquipement))
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
 
-        when(dureeDeVieEquipementPhysiqueService.calculerDureeVie(any(DemandeCalculImpactEquipementPhysique.class))).thenReturn(DureeDeVie.builder().valeur(5.0d).build());
+        when(dureeDeVieEquipementPhysiqueService.calculerDureeVie(any(DemandeCalculImpactEquipementPhysique.class))).thenReturn(DureeDeVie.builder().valeurRetenue(5.0d).build());
 
         //When
         var actual = calculImpactEquipementPhysiqueService.calculerImpactEquipementPhysique(
@@ -926,8 +928,9 @@ class CalculImpactEquipementPhysiqueServiceTest {
                 .equipementPhysique(equipementPhysique)
                 .correspondanceRefEquipement(refEquipement)
                 .typeEquipement(typeEquipement)
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
-        when(dureeDeVieEquipementPhysiqueService.calculerDureeVie(any(DemandeCalculImpactEquipementPhysique.class))).thenReturn(DureeDeVie.builder().valeur(6.0).build());
+        when(dureeDeVieEquipementPhysiqueService.calculerDureeVie(any(DemandeCalculImpactEquipementPhysique.class))).thenReturn(DureeDeVie.builder().valeurRetenue(6.0).build());
 
         //When
         var actual = calculImpactEquipementPhysiqueService.calculerImpactEquipementPhysique(
@@ -995,8 +998,9 @@ class CalculImpactEquipementPhysiqueServiceTest {
                 .correspondanceRefEquipement(refEquipement)
                 .typeEquipement(typeEquipement)
                 .impactEquipements(Collections.singletonList(referentielImpactEquipement))
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
-        when(dureeDeVieEquipementPhysiqueService.calculerDureeVie(any(DemandeCalculImpactEquipementPhysique.class))).thenReturn(DureeDeVie.builder().valeur(7.0).build());
+        when(dureeDeVieEquipementPhysiqueService.calculerDureeVie(any(DemandeCalculImpactEquipementPhysique.class))).thenReturn(DureeDeVie.builder().valeurRetenue(7.0).build());
 
         //When
         var actual = calculImpactEquipementPhysiqueService.calculerImpactEquipementPhysique(
@@ -1278,6 +1282,7 @@ class CalculImpactEquipementPhysiqueServiceTest {
                 .correspondanceRefEquipement(refEquipement)
                 .typeEquipement(typeEquipement)
                 .impactEquipements(Collections.singletonList(referentielImpactEquipement))
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
 
 
@@ -1285,7 +1290,10 @@ class CalculImpactEquipementPhysiqueServiceTest {
 
         var valeurDureeVie = ChronoUnit.DAYS.between(dateAchat, dateRetrait) / 365d;
         DureeDeVie dureeDeVie = DureeDeVie.builder()
-                .valeur(valeurDureeVie)
+                .valeurRetenue(valeurDureeVie)
+                .methodeDureeUsage("REEL")
+                .dureeUsageAmont(0.0)
+                .dureeUsageAval(0.0)
                 .dateAchat(dateAchat.format(DateTimeFormatter.ISO_DATE))
                 .dateRetrait(dateRetrait.format(DateTimeFormatter.ISO_DATE))
                 .build();
@@ -1353,9 +1361,10 @@ class CalculImpactEquipementPhysiqueServiceTest {
                 .correspondanceRefEquipement(refEquipement)
                 .typeEquipement(typeEquipement)
                 .impactEquipements(Collections.singletonList(referentielImpactEquipement))
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
 
-        when(dureeDeVieEquipementPhysiqueService.calculerDureeVie(any(DemandeCalculImpactEquipementPhysique.class))).thenReturn(DureeDeVie.builder().valeur(7.0).build());
+        when(dureeDeVieEquipementPhysiqueService.calculerDureeVie(any(DemandeCalculImpactEquipementPhysique.class))).thenReturn(DureeDeVie.builder().valeurRetenue(7.0).build());
 
         //When
         var actual = calculImpactEquipementPhysiqueService.calculerImpactEquipementPhysique(
@@ -1424,9 +1433,10 @@ class CalculImpactEquipementPhysiqueServiceTest {
                 .correspondanceRefEquipement(refEquipement)
                 .typeEquipement(typeEquipement)
                 .impactEquipements(Collections.singletonList(referentielImpactEquipement))
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
 
-        when(dureeDeVieEquipementPhysiqueService.calculerDureeVie(any(DemandeCalculImpactEquipementPhysique.class))).thenReturn(DureeDeVie.builder().valeur(7.0).build());
+        when(dureeDeVieEquipementPhysiqueService.calculerDureeVie(any(DemandeCalculImpactEquipementPhysique.class))).thenReturn(DureeDeVie.builder().valeurRetenue(7.0).build());
 
         //When
         var actual = calculImpactEquipementPhysiqueService.calculerImpactEquipementPhysique(
@@ -1504,6 +1514,7 @@ class CalculImpactEquipementPhysiqueServiceTest {
                 .correspondanceRefEquipement(refEquipement)
                 .typeEquipement(typeEquipement)
                 .impactEquipements(Collections.singletonList(referentielImpactEquipement))
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
 
         //When
@@ -2218,8 +2229,9 @@ class CalculImpactEquipementPhysiqueServiceTest {
                 .typeEquipement(typeEquipement)
                 .hypotheses(Collections.singletonList(referentielHypothese))
                 .impactEquipements(Collections.singletonList(referentielImpactEquipement))
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
-        when(dureeDeVieEquipementPhysiqueService.calculerDureeVie(any(DemandeCalculImpactEquipementPhysique.class))).thenReturn(DureeDeVie.builder().valeur(5.0d).build());
+        when(dureeDeVieEquipementPhysiqueService.calculerDureeVie(any(DemandeCalculImpactEquipementPhysique.class))).thenReturn(DureeDeVie.builder().valeurRetenue(5.0d).build());
         //When
         var actual = calculImpactEquipementPhysiqueService.calculerImpactEquipementPhysique(
                 demandeCalcul
diff --git a/services/calculs/src/test/java/org/mte/numecoeval/calculs/domain/service/CalculImpactOperationNonITServiceTest.java b/services/calculs/src/test/java/org/mte/numecoeval/calculs/domain/service/CalculImpactOperationNonITServiceTest.java
index 2fb5ad3ff3e133d2e588f80ca9a30ae780125120..c6fd52c3fa46095808606ac342a0083eed1a5cb9 100644
--- a/services/calculs/src/test/java/org/mte/numecoeval/calculs/domain/service/CalculImpactOperationNonITServiceTest.java
+++ b/services/calculs/src/test/java/org/mte/numecoeval/calculs/domain/service/CalculImpactOperationNonITServiceTest.java
@@ -627,7 +627,7 @@ class CalculImpactOperationNonITServiceTest {
         assertEquals(TestJsonUtils.format("""
                         {
                            "dureeDeVie" : {
-                             "valeur" : 10.0
+                             "valeurRetenue" : 10.0
                            },
                            "formule" : "ImpactOperationNonIT = (Quantité(1.0) * ReferentielFacteurCaracterisation(0.1)) / DureeDeVie(10.0)",
                            "valeurReferentielFacteurCaracterisation" : 0.1
diff --git a/services/calculs/src/test/java/org/mte/numecoeval/calculs/domain/service/DureeDeVieEquipementPhysiqueServiceTest.java b/services/calculs/src/test/java/org/mte/numecoeval/calculs/domain/service/DureeDeVieEquipementPhysiqueServiceTest.java
index 044d18d58d88bde970c91d3a03baf860b2ba6ca7..e92e8cc7843d68ce3de9c2e98450d5bfb5806764 100644
--- a/services/calculs/src/test/java/org/mte/numecoeval/calculs/domain/service/DureeDeVieEquipementPhysiqueServiceTest.java
+++ b/services/calculs/src/test/java/org/mte/numecoeval/calculs/domain/service/DureeDeVieEquipementPhysiqueServiceTest.java
@@ -4,6 +4,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.mte.numecoeval.calculs.domain.data.demande.DemandeCalculImpactEquipementPhysique;
+import org.mte.numecoeval.calculs.domain.data.demande.OptionsCalcul;
 import org.mte.numecoeval.calculs.domain.data.entree.EquipementPhysique;
 import org.mte.numecoeval.calculs.domain.data.erreur.TypeErreurCalcul;
 import org.mte.numecoeval.calculs.domain.data.referentiel.ReferentielHypothese;
@@ -27,7 +28,7 @@ class DureeDeVieEquipementPhysiqueServiceTest {
     DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d/MM/yyyy");
 
     @Test
-     void whenTypeEquipementDoesntHaveDureeDeVie_shouldUseHypotheseForDureeDeVie()throws Exception{
+    void whenTypeEquipementDoesntHaveDureeDeVie_shouldUseHypotheseForDureeDeVie() throws Exception {
 
         //Given
         EquipementPhysique equipementPhysique = EquipementPhysique.builder()
@@ -46,21 +47,22 @@ class DureeDeVieEquipementPhysiqueServiceTest {
                 .equipementPhysique(equipementPhysique)
                 .hypotheses(Collections.singletonList(hypothese))
                 .typeEquipement(typeEquipement)
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
 
         //When
         var actual = dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul);
 
         //Then
-        assertEquals(1.17d,actual.getValeur());
+        assertEquals(1.17d, actual.getValeurRetenue());
     }
 
 
     @Test
-     void shouldCalculerDureeVie1d_whenEquipementPhyisqueWithValidDates() throws Exception{
+    void shouldCalculerDureeVie1d_whenEquipementPhyisqueWithValidDates() throws Exception {
         //Given
-        LocalDate dateAchat = LocalDate.parse("15/08/2020",formatter);
-        LocalDate dateRetrait = LocalDate.parse("15/06/2021",formatter);
+        LocalDate dateAchat = LocalDate.parse("15/08/2020", formatter);
+        LocalDate dateRetrait = LocalDate.parse("15/06/2021", formatter);
         var equipement = EquipementPhysique.builder()
                 .dateAchat(dateAchat)
                 .dateRetrait(dateRetrait)
@@ -69,19 +71,20 @@ class DureeDeVieEquipementPhysiqueServiceTest {
                 .builder()
                 .equipementPhysique(equipement)
                 .typeEquipement(null)
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
         //When
         var actual = dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul);
 
         //Then
-        assertEquals(1d,actual.getValeur());
+        assertEquals(1d, actual.getValeurRetenue());
     }
 
     @Test
-     void shouldCalculerDureeVie365_whenEquipementPhyisqueWithValidDates()throws Exception{
+    void shouldCalculerDureeVie365_whenEquipementPhyisqueWithValidDates() throws Exception {
         //Given
-        LocalDate dateAchat = LocalDate.parse("15/08/2020",formatter);
-        LocalDate dateRetrait = LocalDate.parse("15/10/2021",formatter);
+        LocalDate dateAchat = LocalDate.parse("15/08/2020", formatter);
+        LocalDate dateRetrait = LocalDate.parse("15/10/2021", formatter);
         var equipement = EquipementPhysique.builder()
                 .dateAchat(dateAchat)
                 .dateRetrait(dateRetrait)
@@ -90,16 +93,17 @@ class DureeDeVieEquipementPhysiqueServiceTest {
                 .builder()
                 .equipementPhysique(equipement)
                 .typeEquipement(null)
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
         //When
         var actual = dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul);
-        var expected = 426d/365d;
+        var expected = 426d / 365d;
         //Then
-        assertEquals(expected,actual.getValeur());
+        assertEquals(expected, actual.getValeurRetenue());
     }
 
     @Test
-     void taiga864_whenEquipementPhysiqueDateRetraitIsNullShouldUseCurrentDayAsDateRetrait()throws Exception{
+    void taiga864_whenEquipementPhysiqueDateRetraitIsNullShouldUseCurrentDayAsDateRetrait() throws Exception {
         //Given
         LocalDate dateAchat = LocalDate.now().minusDays(30);
         var equipement = EquipementPhysique.builder()
@@ -110,21 +114,22 @@ class DureeDeVieEquipementPhysiqueServiceTest {
                 .builder()
                 .equipementPhysique(equipement)
                 .typeEquipement(null)
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
         //When
         var actual = dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul);
-        var expected = 30/365d;
+        var expected = 30 / 365d;
         //Then
-        assertEquals(expected,actual.getValeur());
-        assertEquals(dateAchat.format(DateTimeFormatter.ISO_DATE),actual.getDateAchat());
-        assertEquals(LocalDate.now().format(DateTimeFormatter.ISO_DATE),actual.getDateRetrait());
+        assertEquals(expected, actual.getValeurRetenue());
+        assertEquals(dateAchat.format(DateTimeFormatter.ISO_DATE), actual.getDateAchat());
+        assertEquals(LocalDate.now().format(DateTimeFormatter.ISO_DATE), actual.getDateRetrait());
     }
 
     @Test
-     void shouldThrowException_whenInvalideDatesOrder()throws Exception{
+    void shouldThrowException_whenInvalideDatesOrder() throws Exception {
         //Given
-        LocalDate dateRetrait= LocalDate.parse("15/08/2020",formatter);
-        LocalDate dateAchat = LocalDate.parse("15/10/2021",formatter);
+        LocalDate dateRetrait = LocalDate.parse("15/08/2020", formatter);
+        LocalDate dateAchat = LocalDate.parse("15/10/2021", formatter);
         var equipement = EquipementPhysique.builder()
                 .dateAchat(dateAchat)
                 .dateRetrait(dateRetrait)
@@ -133,12 +138,13 @@ class DureeDeVieEquipementPhysiqueServiceTest {
                 .builder()
                 .equipementPhysique(equipement)
                 .typeEquipement(null)
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
         //When
         CalculImpactException exception =
-                    //Then
+                //Then
                 assertThrows(CalculImpactException.class,
-                    ()-> dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul));
+                        () -> dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul));
 
         assertEquals(TypeErreurCalcul.ERREUR_FONCTIONNELLE.getCode(), exception.getErrorType());
         String expectedMessage = "La durée de vie de l'équipement n'a pas pu être déterminée";
@@ -147,7 +153,7 @@ class DureeDeVieEquipementPhysiqueServiceTest {
     }
 
     @Test
-     void shouldReturnDureeVieDefaut_whenMissingDate()throws Exception{
+    void shouldReturnDureeVieDefaut_whenMissingDate() throws Exception {
         //Given
         var equipement = EquipementPhysique.builder()
                 .type("laptop")
@@ -161,16 +167,17 @@ class DureeDeVieEquipementPhysiqueServiceTest {
                 .equipementPhysique(equipement)
                 .hypotheses(Collections.singletonList(hypothese))
                 .typeEquipement(null)
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
         //When
         DureeDeVie actual = dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul);
 
         //Then
-        assertEquals(1.17d,actual.getValeur());
+        assertEquals(1.17d, actual.getValeurRetenue());
     }
 
     @Test
-     void whenMissingDate_ShouldUseDureeDeVieTypeEquipementInPriority()throws Exception{
+    void whenMissingDate_ShouldUseDureeDeVieTypeEquipementInPriority() throws Exception {
         //Given
         var equipement = EquipementPhysique.builder()
                 .type("laptop")
@@ -188,16 +195,17 @@ class DureeDeVieEquipementPhysiqueServiceTest {
                 .equipementPhysique(equipement)
                 .typeEquipement(typeEquipement)
                 .hypotheses(Collections.singletonList(hypothese))
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
         //When
         DureeDeVie actual = dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul);
 
         //Then
-        assertEquals(3.5d,actual.getValeur());
+        assertEquals(3.5d, actual.getValeurRetenue());
     }
 
     @Test
-     void whenMissingDureeForTypeAndHypothese_ShouldThrowException()throws Exception{
+    void whenMissingDureeForTypeAndHypothese_ShouldThrowException() throws Exception {
         //Given
         var equipement = EquipementPhysique.builder()
                 .type("laptop")
@@ -215,6 +223,7 @@ class DureeDeVieEquipementPhysiqueServiceTest {
                 .equipementPhysique(equipement)
                 .typeEquipement(typeEquipement)
                 .hypotheses(Collections.singletonList(hypothese))
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
         //When
         CalculImpactException exception = assertThrows(CalculImpactException.class, () -> dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul));
@@ -225,4 +234,199 @@ class DureeDeVieEquipementPhysiqueServiceTest {
         assertEquals("La durée de vie par défaut de l'équipement n'a pas pu être déterminée", exception.getMessage());
     }
 
+    //Tests pour CalculerDuree avec methodeDureeUsage = FIXE
+    @Test
+    void shouldCalculerDureeVie1an_whenEquipementPhyisqueWithDureeUsageInterneInf1() throws Exception {
+        //Given
+        var equipement = EquipementPhysique.builder()
+                .dureeUsageInterne(0.8)
+                .build();
+        DemandeCalculImpactEquipementPhysique demandeCalcul = DemandeCalculImpactEquipementPhysique
+                .builder()
+                .equipementPhysique(equipement)
+                .typeEquipement(null)
+                .optionsCalcul(new OptionsCalcul("FIXE"))
+                .build();
+        //When
+        var actual = dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul);
+
+        //Then
+        assertEquals(1d, actual.getValeurRetenue());
+    }
+
+    @Test
+    void shouldCalculerDureeVie1an_whenEquipementPhyisqueWithDureeUsageInterneEtAvalEtAmontInf1() throws Exception {
+        //Given
+        var equipement = EquipementPhysique.builder()
+                .dureeUsageInterne(0.1)
+                .dureeUsageAmont(0.2)
+                .dureeUsageAval(0.2)
+                .build();
+        DemandeCalculImpactEquipementPhysique demandeCalcul = DemandeCalculImpactEquipementPhysique
+                .builder()
+                .equipementPhysique(equipement)
+                .typeEquipement(null)
+                .optionsCalcul(new OptionsCalcul("FIXE"))
+                .build();
+        //When
+        var actual = dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul);
+
+        //Then
+        assertEquals(0.1, actual.getDureeUsageInterne());
+        assertEquals(0.2, actual.getDureeUsageAmont());
+        assertEquals(1d, actual.getValeurRetenue());
+    }
+
+    @Test
+    void shouldCalculerDureeVie_whenEquipementPhysiqueWithDureeUsageInterneSup1() throws Exception {
+        //Given
+        var equipement = EquipementPhysique.builder()
+                .dureeUsageInterne(3.0)
+                .build();
+        DemandeCalculImpactEquipementPhysique demandeCalcul = DemandeCalculImpactEquipementPhysique
+                .builder()
+                .equipementPhysique(equipement)
+                .optionsCalcul(new OptionsCalcul("FIXE"))
+                .build();
+
+        //When
+        var actual = dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul);
+
+        //Then
+        assertEquals(3.0, actual.getValeurRetenue());
+    }
+
+    @Test
+    void shouldCalculerDureeVie_whenEquipementPhysiqueWithDureeUsageInterne_dureeUsageAmontAndAval() throws Exception {
+        //Given
+        var equipement = EquipementPhysique.builder()
+                .dureeUsageInterne(3.0)
+                .dureeUsageAmont(2.0)
+                .dureeUsageAval(1.0)
+                .build();
+        DemandeCalculImpactEquipementPhysique demandeCalcul = DemandeCalculImpactEquipementPhysique
+                .builder()
+                .equipementPhysique(equipement)
+                .optionsCalcul(new OptionsCalcul("FIXE"))
+                .build();
+
+        //When
+        var actual = dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul);
+
+        //Then
+        assertEquals(6.0, actual.getValeurRetenue());
+    }
+
+    @Test
+    void shouldReturnError_whenEquipementPhysiqueWithDureeUsageInterneNegative() throws Exception {
+        //Given
+        var equipement = EquipementPhysique.builder()
+                .dureeUsageInterne(-1.5)
+                .build();
+
+        DemandeCalculImpactEquipementPhysique demandeCalcul = DemandeCalculImpactEquipementPhysique
+                .builder()
+                .equipementPhysique(equipement)
+                .optionsCalcul(new OptionsCalcul("FIXE"))
+                .build();
+
+        //When
+        CalculImpactException exception = assertThrows(CalculImpactException.class, () -> dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul));
+
+        //Then
+        assertNotNull(exception, "Une exception doit être levée");
+        assertEquals(TypeErreurCalcul.ERREUR_FONCTIONNELLE.getCode(), exception.getErrorType());
+        assertEquals("La durée d'usage interne ne peut pas être négative ou nulle", exception.getMessage());
+    }
+
+    @Test
+    void shouldCalculerDureeVie1d_whenEquipementPhyisqueWithDureeUsageZero() throws Exception {
+        //Given
+        var equipement = EquipementPhysique.builder()
+                .dureeUsageInterne(0.0)
+                .build();
+        DemandeCalculImpactEquipementPhysique demandeCalcul = DemandeCalculImpactEquipementPhysique
+                .builder()
+                .equipementPhysique(equipement)
+                .typeEquipement(null)
+                .optionsCalcul(new OptionsCalcul("FIXE"))
+                .build();
+
+        //When
+        CalculImpactException exception = assertThrows(CalculImpactException.class, () -> dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul));
+
+        //Then
+        assertNotNull(exception, "Une exception doit être levée");
+        assertEquals(TypeErreurCalcul.ERREUR_FONCTIONNELLE.getCode(), exception.getErrorType());
+        assertEquals("La durée d'usage interne ne peut pas être négative ou nulle", exception.getMessage());
+    }
+
+    @Test
+    void shouldReturnError_whenEquipementPhysiqueWithDureeUsageInterne_dureeUsageAmontNegative() throws Exception {
+        //Given
+        var equipement = EquipementPhysique.builder()
+                .dureeUsageInterne(3.0)
+                .dureeUsageAmont(-1.0)
+                .dureeUsageAval(-2.0)
+                .build();
+
+        DemandeCalculImpactEquipementPhysique demandeCalcul = DemandeCalculImpactEquipementPhysique
+                .builder()
+                .equipementPhysique(equipement)
+                .optionsCalcul(new OptionsCalcul("FIXE"))
+                .build();
+
+        //When
+        CalculImpactException exception = assertThrows(CalculImpactException.class, () -> dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul));
+
+        //Then
+        assertNotNull(exception, "Une exception doit être levée");
+        assertEquals(TypeErreurCalcul.ERREUR_FONCTIONNELLE.getCode(), exception.getErrorType());
+        assertEquals("La durée d'usage amont ne peut pas être négative", exception.getMessage());
+    }
+
+    @Test
+    void shouldReturnError_whenEquipementPhysiqueWithDureeUsageInterne_dureeUsageAmontZero() throws Exception {
+        //Given
+        var equipement = EquipementPhysique.builder()
+                .dureeUsageInterne(3.0)
+                .dureeUsageAmont(0.0)
+                .dureeUsageAval(1.0)
+                .build();
+
+        DemandeCalculImpactEquipementPhysique demandeCalcul = DemandeCalculImpactEquipementPhysique
+                .builder()
+                .equipementPhysique(equipement)
+                .optionsCalcul(new OptionsCalcul("FIXE"))
+                .build();
+
+        //When
+        var actual = dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul);
+
+        //Then
+        assertEquals(4.0, actual.getValeurRetenue());
+    }
+
+    @Test
+    void shouldReturnError_whenEquipementPhysiqueWithDureeUsageAvalNegative() throws Exception {
+        //Given
+        var equipement = EquipementPhysique.builder()
+                .dureeUsageInterne(1.0)
+                .dureeUsageAval(-3.4)
+                .build();
+
+        DemandeCalculImpactEquipementPhysique demandeCalcul = DemandeCalculImpactEquipementPhysique
+                .builder()
+                .equipementPhysique(equipement)
+                .optionsCalcul(new OptionsCalcul("FIXE"))
+                .build();
+
+        //When
+        CalculImpactException exception = assertThrows(CalculImpactException.class, () -> dureeDeVieEquipementPhysiqueService.calculerDureeVie(demandeCalcul));
+
+        //Then
+        assertNotNull(exception, "Une exception doit être levée");
+        assertEquals(TypeErreurCalcul.ERREUR_FONCTIONNELLE.getCode(), exception.getErrorType());
+        assertEquals("La durée d'usage aval ne peut pas être négative", exception.getMessage());
+    }
 }
\ No newline at end of file
diff --git a/services/calculs/src/test/java/org/mte/numecoeval/calculs/steps/DataTableTypeDefinitions.java b/services/calculs/src/test/java/org/mte/numecoeval/calculs/steps/DataTableTypeDefinitions.java
index cf75dd9badb31f3241a4b3c62ada24a128a47cbf..f69aaf98ece7e8df602681e8947e377c41dbaba9 100644
--- a/services/calculs/src/test/java/org/mte/numecoeval/calculs/steps/DataTableTypeDefinitions.java
+++ b/services/calculs/src/test/java/org/mte/numecoeval/calculs/steps/DataTableTypeDefinitions.java
@@ -6,6 +6,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.mte.numecoeval.calculs.CucumberIntegrationTest;
 import org.mte.numecoeval.calculs.domain.data.demande.DemandeCalculImpactEquipementPhysique;
 import org.mte.numecoeval.calculs.domain.data.demande.DemandeCalculImpactEquipementVirtuel;
+import org.mte.numecoeval.calculs.domain.data.demande.OptionsCalcul;
 import org.mte.numecoeval.calculs.domain.data.entree.EquipementPhysique;
 import org.mte.numecoeval.calculs.domain.data.entree.EquipementVirtuel;
 import org.mte.numecoeval.calculs.domain.data.indicateurs.ImpactEquipementPhysique;
@@ -27,29 +28,31 @@ public class DataTableTypeDefinitions {
     public static void assertDateIfAvailable(LocalDate valueToTest, Map<String, String> entry, String key) {
         assertEquals(getDateOrNull(entry, key), valueToTest);
     }
+
     public static void assertDoubleIfAvailable(Double valueToTest, Map<String, String> entry, String key) {
         assertEquals(getDoubleOrNull(entry, key), valueToTest);
     }
+
     public static void assertIntegerIfAvailable(Integer valueToTest, Map<String, String> entry, String key) {
         assertEquals(getIntegerOrNull(entry, key), valueToTest);
     }
+
     public static void assertStringIfAvailable(String valueToTest, Map<String, String> entry, String key) {
         assertEquals(entry.getOrDefault(key, null), valueToTest);
     }
 
     private static LocalDate getDateOrNull(Map<String, String> entry, String key) {
-        if( StringUtils.isNotBlank(entry.get(key)) ) {
+        if (StringUtils.isNotBlank(entry.get(key))) {
             return LocalDate.parse(entry.get(key), CucumberIntegrationTest.FORMATTER_FRENCH_FORMAT);
         }
         return null;
     }
 
     private static Double getDoubleOrNull(Map<String, String> entry, String key) {
-        if( StringUtils.isNotBlank(entry.get(key)) ) {
+        if (StringUtils.isNotBlank(entry.get(key))) {
             try {
                 return NUMBER_FRENCH_FORMAT.parse(entry.get(key)).doubleValue();
-            }
-            catch (ParseException e) {
+            } catch (ParseException e) {
                 log.error("Erreur au parsing de la valeur {} : {}", entry.get(key), e.getMessage());
                 return null;
             }
@@ -58,11 +61,10 @@ public class DataTableTypeDefinitions {
     }
 
     private static Integer getIntegerOrNull(Map<String, String> entry, String key) {
-        if( StringUtils.isNotBlank(entry.get(key)) ) {
+        if (StringUtils.isNotBlank(entry.get(key))) {
             try {
                 return NUMBER_FRENCH_FORMAT.parse(entry.get(key)).intValue();
-            }
-            catch (ParseException e) {
+            } catch (ParseException e) {
                 log.error("Erreur au parsing de la valeur {} : {}", entry.get(key), e.getMessage());
                 return null;
             }
@@ -74,6 +76,7 @@ public class DataTableTypeDefinitions {
     public DemandeCalculImpactEquipementPhysique demandeCalculImpactEquipementPhysique(Map<String, String> entry) {
         var builder = DemandeCalculImpactEquipementPhysique.builder()
                 .dateCalcul(LocalDateTime.now())
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .equipementPhysique(
                         EquipementPhysique.builder()
                                 .nomEquipementPhysique(entry.getOrDefault("nomEquipementPhysique", null))
@@ -83,7 +86,7 @@ public class DataTableTypeDefinitions {
                 );
         var hypotheses = new ArrayList<ReferentielHypothese>();
 
-        if(StringUtils.isNotBlank(entry.get("refTypeEquipement.dureeVieDefaut"))) {
+        if (StringUtils.isNotBlank(entry.get("refTypeEquipement.dureeVieDefaut"))) {
             builder.typeEquipement(
                     ReferentielTypeEquipement.builder()
                             .dureeVieDefaut(getDoubleOrNull(entry, "refTypeEquipement.dureeVieDefaut"))
@@ -91,7 +94,7 @@ public class DataTableTypeDefinitions {
             );
         }
 
-        if(StringUtils.isNotBlank(entry.get("hypothese.dureeVieParDefaut"))) {
+        if (StringUtils.isNotBlank(entry.get("hypothese.dureeVieParDefaut"))) {
             hypotheses.add(
                     ReferentielHypothese.builder()
                             .code("dureeVieParDefaut")
@@ -139,10 +142,10 @@ public class DataTableTypeDefinitions {
         impactEquipement.setNomOrganisation(entry.getOrDefault("impactEquipementPhysique.nomOrganisation", null));
         impactEquipement.setDateLot(getDateOrNull(entry, "impactEquipementPhysique.dateLot"));
         impactEquipement.setNomEntite(entry.getOrDefault("impactEquipementPhysique.nomEntite", null));
-        if(StringUtils.isNotBlank(entry.get("impactEquipementPhysique.impactUnitaire"))) {
+        if (StringUtils.isNotBlank(entry.get("impactEquipementPhysique.impactUnitaire"))) {
             impactEquipement.setImpactUnitaire(getDoubleOrNull(entry, "impactEquipementPhysique.impactUnitaire"));
         }
-        if(StringUtils.isNotBlank(entry.get("impactEquipementPhysique.consoElecMoyenne"))) {
+        if (StringUtils.isNotBlank(entry.get("impactEquipementPhysique.consoElecMoyenne"))) {
             impactEquipement.setConsoElecMoyenne(getDoubleOrNull(entry, "impactEquipementPhysique.consoElecMoyenne"));
         }
         builder.impactEquipement(impactEquipement);
diff --git a/services/calculs/src/test/java/org/mte/numecoeval/calculs/steps/DureeDeVieStepDefinitions.java b/services/calculs/src/test/java/org/mte/numecoeval/calculs/steps/DureeDeVieStepDefinitions.java
index abeee6a6a1e7d17f3515c1235449c8fc3e936929..6fa5c36838d58114378fdf8ec71a2062889b0ea6 100644
--- a/services/calculs/src/test/java/org/mte/numecoeval/calculs/steps/DureeDeVieStepDefinitions.java
+++ b/services/calculs/src/test/java/org/mte/numecoeval/calculs/steps/DureeDeVieStepDefinitions.java
@@ -3,6 +3,7 @@ package org.mte.numecoeval.calculs.steps;
 import io.cucumber.java.fr.Alors;
 import io.cucumber.java.fr.Soit;
 import org.mte.numecoeval.calculs.domain.data.demande.DemandeCalculImpactEquipementPhysique;
+import org.mte.numecoeval.calculs.domain.data.demande.OptionsCalcul;
 import org.mte.numecoeval.calculs.domain.data.entree.EquipementPhysique;
 import org.mte.numecoeval.calculs.domain.data.trace.DureeDeVie;
 import org.mte.numecoeval.calculs.domain.exception.CalculImpactException;
@@ -31,6 +32,7 @@ public class DureeDeVieStepDefinitions {
                                 .dateRetrait(LocalDate.parse(dateRetrait, FORMATTER_FRENCH_FORMAT))
                                 .build()
                 )
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
     }
 
@@ -45,6 +47,7 @@ public class DureeDeVieStepDefinitions {
                                 .dateRetrait(null)
                                 .build()
                 )
+                .optionsCalcul(new OptionsCalcul("REEL"))
                 .build();
     }
 
@@ -55,7 +58,7 @@ public class DureeDeVieStepDefinitions {
         DureeDeVie result = assertDoesNotThrow(() -> service.calculerDureeVie(demandeCalculCourante));
 
         assertNotNull(result);
-        assertEquals(dureeDeVieAttendue, result.getValeur());
+        assertEquals(dureeDeVieAttendue, result.getValeurRetenue());
     }
 
     @Alors("la durée de vie correspond à la différence entre la date d'achat et la date du jour")
@@ -66,7 +69,7 @@ public class DureeDeVieStepDefinitions {
 
         assertNotNull(result);
         double differenceAvecDateDuJour = ChronoUnit.DAYS.between(demandeCalculCourante.getEquipementPhysique().getDateAchat(), LocalDate.now()) / 365d;
-        assertEquals(differenceAvecDateDuJour, result.getValeur());
+        assertEquals(differenceAvecDateDuJour, result.getValeurRetenue());
     }
 
     @Soit("Une demande de calcule de durée de vie tel que")
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 80d49ce7a0db6dbb5af899b5d28d8b5f7079dabd..a010005d45e6ff2ecc240b65cdc726aa1e1d132f 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
@@ -270,6 +270,18 @@ components:
           description: ""
           type: string
           format: date
+        dureeUsageInterne:
+          description: ""
+          type: number
+          format: double
+        dureeUsageAmont:
+          description: ""
+          type: number
+          format: double
+        dureeUsageAval:
+          description: ""
+          type: number
+          format: double
         nbCoeur:
           description: ""
           type: string
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 ce45ab1f78d73b61ff79462667c9365a05afc788..bb8585f9453907814c04fc1cfef4f2aa44ed1df8 100644
--- a/services/common/src/main/resources/static/asyncapi_equipement_physique.yaml
+++ b/services/common/src/main/resources/static/asyncapi_equipement_physique.yaml
@@ -116,6 +116,18 @@ components:
           description: ""
           type: string
           format: date
+        dureeUsageInterne:
+          description: ""
+          type: number
+          format: double
+        dureeUsageAmont:
+          description: ""
+          type: number
+          format: double
+        dureeUsageAval:
+          description: ""
+          type: number
+          format: double
         nbCoeur:
           description: ""
           type: string