diff --git a/9/ecolyo.d4e0f8345c64c54574af.js b/10/ecolyo.e8a00fc8bc16cb5a9dfd.js
similarity index 97%
rename from 9/ecolyo.d4e0f8345c64c54574af.js
rename to 10/ecolyo.e8a00fc8bc16cb5a9dfd.js
index 43e64e6da44b45adf3a4402ae6e34a84e12bd569..ecaf24682c92605bf21c5f7bc81ef4997c2629dd 100644
--- a/9/ecolyo.d4e0f8345c64c54574af.js
+++ b/10/ecolyo.e8a00fc8bc16cb5a9dfd.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[10],{
 
 /***/ "ckxh":
 /***/ (function(module, exports, __webpack_require__) {
diff --git a/3/ecolyo.eff4cc1e75bcc37e8fed.js b/3/ecolyo.28f520a27960ce78b6a0.js
similarity index 91%
rename from 3/ecolyo.eff4cc1e75bcc37e8fed.js
rename to 3/ecolyo.28f520a27960ce78b6a0.js
index 2ff7bf2ecb8bd3827b6e719f43ef591e357ae570..2bbb3b50a8828f3b894ec1e59dcedbcf790dc570 100644
--- a/3/ecolyo.eff4cc1e75bcc37e8fed.js
+++ b/3/ecolyo.28f520a27960ce78b6a0.js
@@ -1416,329 +1416,6 @@ var result = _node_modules_svg_sprite_loader_runtime_browser_sprite_build_js__WE
 
 /***/ }),
 
-/***/ "GrKv":
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-
-
-var _interopRequireDefault = __webpack_require__("TqRt");
-
-Object.defineProperty(exports, "__esModule", {
-  value: true
-});
-exports.default = void 0;
-
-var _regenerator = _interopRequireDefault(__webpack_require__("o0o1"));
-
-var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("yXPU"));
-
-var _classCallCheck2 = _interopRequireDefault(__webpack_require__("lwsE"));
-
-var _createClass2 = _interopRequireDefault(__webpack_require__("W8MJ"));
-
-var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
-
-var Sentry = _interopRequireWildcard(__webpack_require__("agHs"));
-
-var _cozyClient = __webpack_require__("SH7X");
-
-var _cozyLogger = _interopRequireDefault(__webpack_require__("Vggm"));
-
-var _doctypes = __webpack_require__("D2hQ");
-
-var _dataload = __webpack_require__("D5WE");
-
-var _luxon = __webpack_require__("ExVU");
-
-var _logger = _interopRequireDefault(__webpack_require__("gjtA"));
-
-function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
-
-function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
-
-var logStack = _cozyLogger.default.namespace('enedisMonthlyAnalysisDataService');
-
-var EnedisMonthlyAnalysisDataService = /*#__PURE__*/function () {
-  function EnedisMonthlyAnalysisDataService(_client) {
-    (0, _classCallCheck2.default)(this, EnedisMonthlyAnalysisDataService);
-    (0, _defineProperty2.default)(this, "_client", void 0);
-    (0, _defineProperty2.default)(this, "aggregateValuesToDataLoad", function (data) {
-      var dataLoadWeekDays = [];
-      var dataLoadWeekEndDays = [];
-      data.weekDaysHalfHourAverageValues.forEach(function (value, index) {
-        dataLoadWeekDays.push({
-          value: value,
-          state: _dataload.DataloadState.VALID,
-          valueDetail: null,
-          date: _luxon.DateTime.fromObject({
-            year: data.year,
-            month: data.month,
-            minute: 0
-          }).setZone('utc', {
-            keepLocalTime: true
-          }).plus({
-            minute: 30 * index
-          })
-        });
-      });
-      data.weekEndDaysHalfHourAverageValues.forEach(function (value, index) {
-        dataLoadWeekEndDays.push({
-          value: value,
-          state: _dataload.DataloadState.VALID,
-          valueDetail: null,
-          date: _luxon.DateTime.fromObject({
-            year: data.year,
-            month: data.month,
-            minute: 0
-          }).setZone('utc', {
-            keepLocalTime: true
-          }).plus({
-            minute: 30 * index
-          })
-        });
-      });
-      return {
-        week: dataLoadWeekDays,
-        weekend: dataLoadWeekEndDays
-      };
-    });
-    this._client = _client;
-  }
-  /**
-   * Retrieve all exploration entities from db
-   * @returns {EnedisMonthlyAnalysisData[]}
-   */
-
-
-  (0, _createClass2.default)(EnedisMonthlyAnalysisDataService, [{
-    key: "getAllEnedisMonthlyAnalysisData",
-    value: function () {
-      var _getAllEnedisMonthlyAnalysisData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
-        var query, _yield$this$_client$q, enedisMonthlyAnalysisData;
-
-        return _regenerator.default.wrap(function _callee$(_context) {
-          while (1) {
-            switch (_context.prev = _context.next) {
-              case 0:
-                query = (0, _cozyClient.Q)(_doctypes.ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE);
-                _context.next = 3;
-                return this._client.query(query);
-
-              case 3:
-                _yield$this$_client$q = _context.sent;
-                enedisMonthlyAnalysisData = _yield$this$_client$q.data;
-                return _context.abrupt("return", enedisMonthlyAnalysisData);
-
-              case 6:
-              case "end":
-                return _context.stop();
-            }
-          }
-        }, _callee, this);
-      }));
-
-      function getAllEnedisMonthlyAnalysisData() {
-        return _getAllEnedisMonthlyAnalysisData.apply(this, arguments);
-      }
-
-      return getAllEnedisMonthlyAnalysisData;
-    }()
-    /**
-     * getLastEnedisMonthlyAnalysis
-     * @param {Client} client
-     * @returns {Promise<EnedisMonthlyAnalysisData[]>}
-     */
-
-  }, {
-    key: "getLastEnedisMonthlyAnalysis",
-    value: function () {
-      var _getLastEnedisMonthlyAnalysis = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
-        var query, data;
-        return _regenerator.default.wrap(function _callee2$(_context2) {
-          while (1) {
-            switch (_context2.prev = _context2.next) {
-              case 0:
-                query = (0, _cozyClient.Q)(_doctypes.ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE).where({}).sortBy([{
-                  year: 'desc'
-                }, {
-                  month: 'desc'
-                }]).limitBy(1);
-                _context2.next = 3;
-                return this._client.query(query);
-
-              case 3:
-                data = _context2.sent;
-                return _context2.abrupt("return", data.data);
-
-              case 5:
-              case "end":
-                return _context2.stop();
-            }
-          }
-        }, _callee2, this);
-      }));
-
-      function getLastEnedisMonthlyAnalysis() {
-        return _getLastEnedisMonthlyAnalysis.apply(this, arguments);
-      }
-
-      return getLastEnedisMonthlyAnalysis;
-    }()
-    /**
-     * Aggregates Enedis Analysis data in order to create Dataload injectable in graph component
-     * @param {EnedisMonthlyAnalysisData} data
-     * @returns {AggregatedEnedisMonthlyDataloads}
-     */
-
-  }, {
-    key: "getEnedisMonthlyAnalysisByDate",
-    value:
-    /**
-     * Get an enedis monthly analysis for given month and year
-     * @param {number} year
-     * @param {number} month
-     * @returns {Promise<EnedisMonthlyAnalysisData[]>}
-     */
-    function () {
-      var _getEnedisMonthlyAnalysisByDate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(year, month) {
-        var query, data;
-        return _regenerator.default.wrap(function _callee3$(_context3) {
-          while (1) {
-            switch (_context3.prev = _context3.next) {
-              case 0:
-                query = (0, _cozyClient.Q)(_doctypes.ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE).where({
-                  year: year,
-                  month: month
-                }).sortBy([{
-                  year: 'desc'
-                }, {
-                  month: 'desc'
-                }]).limitBy(1);
-                _context3.next = 3;
-                return this._client.query(query);
-
-              case 3:
-                data = _context3.sent;
-                return _context3.abrupt("return", data.data);
-
-              case 5:
-              case "end":
-                return _context3.stop();
-            }
-          }
-        }, _callee3, this);
-      }));
-
-      function getEnedisMonthlyAnalysisByDate(_x, _x2) {
-        return _getEnedisMonthlyAnalysisByDate.apply(this, arguments);
-      }
-
-      return getEnedisMonthlyAnalysisByDate;
-    }()
-    /**
-     * Creates a new EnedisMonthlyAnalysis
-     * @param {EnedisMonthlyAnalysisData} newEnedisMonthlyAnalysisData
-     * @returns {Promise<EnedisMonthlyAnalysisData | null>}
-     */
-
-  }, {
-    key: "createEnedisMonthlyAnalysisData",
-    value: function () {
-      var _createEnedisMonthlyAnalysisData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(newEnedisMonthlyAnalysisData) {
-        var _yield$this$_client$c, EnedisMonthlyAnalysis, errorMessage;
-
-        return _regenerator.default.wrap(function _callee4$(_context4) {
-          while (1) {
-            switch (_context4.prev = _context4.next) {
-              case 0:
-                _context4.prev = 0;
-                _context4.next = 3;
-                return this._client.create(_doctypes.ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE, newEnedisMonthlyAnalysisData);
-
-              case 3:
-                _yield$this$_client$c = _context4.sent;
-                EnedisMonthlyAnalysis = _yield$this$_client$c.data;
-                return _context4.abrupt("return", EnedisMonthlyAnalysis);
-
-              case 8:
-                _context4.prev = 8;
-                _context4.t0 = _context4["catch"](0);
-                errorMessage = "Error creating new EnedisMonthlyAnalysis: ".concat(JSON.stringify(_context4.t0));
-                logStack('error', errorMessage);
-
-                _logger.default.error(errorMessage);
-
-                Sentry.captureException(errorMessage);
-                throw _context4.t0;
-
-              case 15:
-              case "end":
-                return _context4.stop();
-            }
-          }
-        }, _callee4, this, [[0, 8]]);
-      }));
-
-      function createEnedisMonthlyAnalysisData(_x3) {
-        return _createEnedisMonthlyAnalysisData.apply(this, arguments);
-      }
-
-      return createEnedisMonthlyAnalysisData;
-    }()
-    /**
-     * Get Max power for a given month and year
-     * @param {number} year
-     * @param {number} month
-     * @returns {Promise<MaxPowerEntity[]>}
-     */
-
-  }, {
-    key: "getMaxPowerByDate",
-    value: function () {
-      var _getMaxPowerByDate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(year, month) {
-        var query, data;
-        return _regenerator.default.wrap(function _callee5$(_context5) {
-          while (1) {
-            switch (_context5.prev = _context5.next) {
-              case 0:
-                query = (0, _cozyClient.Q)(_doctypes.ENEDIS_MAXPOWER_DOCTYPE).where({
-                  year: year,
-                  month: month
-                }).sortBy([{
-                  year: 'desc'
-                }, {
-                  month: 'desc'
-                }]);
-                _context5.next = 3;
-                return this._client.query(query);
-
-              case 3:
-                data = _context5.sent;
-                return _context5.abrupt("return", data.data);
-
-              case 5:
-              case "end":
-                return _context5.stop();
-            }
-          }
-        }, _callee5, this);
-      }));
-
-      function getMaxPowerByDate(_x4, _x5) {
-        return _getMaxPowerByDate.apply(this, arguments);
-      }
-
-      return getMaxPowerByDate;
-    }()
-  }]);
-  return EnedisMonthlyAnalysisDataService;
-}();
-
-exports.default = EnedisMonthlyAnalysisDataService;
-
-/***/ }),
-
 /***/ "JvyT":
 /***/ (function(module, exports, __webpack_require__) {
 
diff --git a/4/ecolyo.4bdc1836bb506dfd5fea.js b/4/ecolyo.1cdc61d357ea6de2df70.js
similarity index 99%
rename from 4/ecolyo.4bdc1836bb506dfd5fea.js
rename to 4/ecolyo.1cdc61d357ea6de2df70.js
index 8484462a5fda2fdd74075ebfe42b2b0d044de178..4431f0a4196d27c90ee0ffda9854c40d3fd4f47a 100644
--- a/4/ecolyo.4bdc1836bb506dfd5fea.js
+++ b/4/ecolyo.1cdc61d357ea6de2df70.js
@@ -1165,6 +1165,8 @@ var _react = _interopRequireWildcard(__webpack_require__("q1tI"));
 
 var _consumption = _interopRequireDefault(__webpack_require__("AVq/"));
 
+var _enedisMonthlyAnalysisData = _interopRequireDefault(__webpack_require__("GrKv"));
+
 var XLSX = _interopRequireWildcard(__webpack_require__("JcrP"));
 
 __webpack_require__("YEWe");
@@ -1313,7 +1315,7 @@ var ExportLoadingModal = function ExportLoadingModal(_ref) {
 
     function _exportData() {
       _exportData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
-        var exportDataSheets, _iterator3, _step3, fluidType, exportDataFluid;
+        var exportDataSheets, _iterator3, _step3, fluidType, exportDataFluid, emas, data;
 
         return _regenerator.default.wrap(function _callee2$(_context2) {
           while (1) {
@@ -1362,31 +1364,45 @@ var ExportLoadingModal = function ExportLoadingModal(_ref) {
                 return _context2.finish(18);
 
               case 21:
-                _context2.next = 23;
+                if (!selectedFluids.includes(_fluid.FluidType.ELECTRICITY)) {
+                  _context2.next = 27;
+                  break;
+                }
+
+                emas = new _enedisMonthlyAnalysisData.default(client);
+                _context2.next = 25;
+                return emas.getMaxPowerByDate(2023, 4);
+
+              case 25:
+                data = _context2.sent;
+                console.log(data);
+
+              case 27:
+                _context2.next = 29;
                 return new Promise(function (r) {
                   return setTimeout(r, 2000);
                 });
 
-              case 23:
+              case 29:
                 if (subscribed) {
                   exportToXlsx(exportDataSheets, 'ecolyo_data_' + date.toLocaleDateString());
                   handleDone();
                 }
 
-                _context2.next = 29;
+                _context2.next = 35;
                 break;
 
-              case 26:
-                _context2.prev = 26;
+              case 32:
+                _context2.prev = 32;
                 _context2.t1 = _context2["catch"](0);
                 handleDone(_context2.t1);
 
-              case 29:
+              case 35:
               case "end":
                 return _context2.stop();
             }
           }
-        }, _callee2, null, [[0, 26], [3, 15, 18, 21]]);
+        }, _callee2, null, [[0, 32], [3, 15, 18, 21]]);
       }));
       return _exportData.apply(this, arguments);
     }
diff --git a/8/ecolyo.c7b053d03ca1a7f2eeea.js b/8/ecolyo.c7b053d03ca1a7f2eeea.js
new file mode 100644
index 0000000000000000000000000000000000000000..33e05a9512bc03ddfdebf401fa2207c4f58d2be5
--- /dev/null
+++ b/8/ecolyo.c7b053d03ca1a7f2eeea.js
@@ -0,0 +1,326 @@
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+
+/***/ "GrKv":
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+var _interopRequireDefault = __webpack_require__("TqRt");
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+
+var _regenerator = _interopRequireDefault(__webpack_require__("o0o1"));
+
+var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__("yXPU"));
+
+var _classCallCheck2 = _interopRequireDefault(__webpack_require__("lwsE"));
+
+var _createClass2 = _interopRequireDefault(__webpack_require__("W8MJ"));
+
+var _defineProperty2 = _interopRequireDefault(__webpack_require__("lSNA"));
+
+var Sentry = _interopRequireWildcard(__webpack_require__("agHs"));
+
+var _cozyClient = __webpack_require__("SH7X");
+
+var _cozyLogger = _interopRequireDefault(__webpack_require__("Vggm"));
+
+var _doctypes = __webpack_require__("D2hQ");
+
+var _dataload = __webpack_require__("D5WE");
+
+var _luxon = __webpack_require__("ExVU");
+
+var _logger = _interopRequireDefault(__webpack_require__("gjtA"));
+
+function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
+
+function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
+
+var logStack = _cozyLogger.default.namespace('enedisMonthlyAnalysisDataService');
+
+var EnedisMonthlyAnalysisDataService = /*#__PURE__*/function () {
+  function EnedisMonthlyAnalysisDataService(_client) {
+    (0, _classCallCheck2.default)(this, EnedisMonthlyAnalysisDataService);
+    (0, _defineProperty2.default)(this, "_client", void 0);
+    (0, _defineProperty2.default)(this, "aggregateValuesToDataLoad", function (data) {
+      var dataLoadWeekDays = [];
+      var dataLoadWeekEndDays = [];
+      data.weekDaysHalfHourAverageValues.forEach(function (value, index) {
+        dataLoadWeekDays.push({
+          value: value,
+          state: _dataload.DataloadState.VALID,
+          valueDetail: null,
+          date: _luxon.DateTime.fromObject({
+            year: data.year,
+            month: data.month,
+            minute: 0
+          }).setZone('utc', {
+            keepLocalTime: true
+          }).plus({
+            minute: 30 * index
+          })
+        });
+      });
+      data.weekEndDaysHalfHourAverageValues.forEach(function (value, index) {
+        dataLoadWeekEndDays.push({
+          value: value,
+          state: _dataload.DataloadState.VALID,
+          valueDetail: null,
+          date: _luxon.DateTime.fromObject({
+            year: data.year,
+            month: data.month,
+            minute: 0
+          }).setZone('utc', {
+            keepLocalTime: true
+          }).plus({
+            minute: 30 * index
+          })
+        });
+      });
+      return {
+        week: dataLoadWeekDays,
+        weekend: dataLoadWeekEndDays
+      };
+    });
+    this._client = _client;
+  }
+  /**
+   * Retrieve all exploration entities from db
+   * @returns {EnedisMonthlyAnalysisData[]}
+   */
+
+
+  (0, _createClass2.default)(EnedisMonthlyAnalysisDataService, [{
+    key: "getAllEnedisMonthlyAnalysisData",
+    value: function () {
+      var _getAllEnedisMonthlyAnalysisData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
+        var query, _yield$this$_client$q, enedisMonthlyAnalysisData;
+
+        return _regenerator.default.wrap(function _callee$(_context) {
+          while (1) {
+            switch (_context.prev = _context.next) {
+              case 0:
+                query = (0, _cozyClient.Q)(_doctypes.ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE);
+                _context.next = 3;
+                return this._client.query(query);
+
+              case 3:
+                _yield$this$_client$q = _context.sent;
+                enedisMonthlyAnalysisData = _yield$this$_client$q.data;
+                return _context.abrupt("return", enedisMonthlyAnalysisData);
+
+              case 6:
+              case "end":
+                return _context.stop();
+            }
+          }
+        }, _callee, this);
+      }));
+
+      function getAllEnedisMonthlyAnalysisData() {
+        return _getAllEnedisMonthlyAnalysisData.apply(this, arguments);
+      }
+
+      return getAllEnedisMonthlyAnalysisData;
+    }()
+    /**
+     * getLastEnedisMonthlyAnalysis
+     * @param {Client} client
+     * @returns {Promise<EnedisMonthlyAnalysisData[]>}
+     */
+
+  }, {
+    key: "getLastEnedisMonthlyAnalysis",
+    value: function () {
+      var _getLastEnedisMonthlyAnalysis = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
+        var query, data;
+        return _regenerator.default.wrap(function _callee2$(_context2) {
+          while (1) {
+            switch (_context2.prev = _context2.next) {
+              case 0:
+                query = (0, _cozyClient.Q)(_doctypes.ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE).where({}).sortBy([{
+                  year: 'desc'
+                }, {
+                  month: 'desc'
+                }]).limitBy(1);
+                _context2.next = 3;
+                return this._client.query(query);
+
+              case 3:
+                data = _context2.sent;
+                return _context2.abrupt("return", data.data);
+
+              case 5:
+              case "end":
+                return _context2.stop();
+            }
+          }
+        }, _callee2, this);
+      }));
+
+      function getLastEnedisMonthlyAnalysis() {
+        return _getLastEnedisMonthlyAnalysis.apply(this, arguments);
+      }
+
+      return getLastEnedisMonthlyAnalysis;
+    }()
+    /**
+     * Aggregates Enedis Analysis data in order to create Dataload injectable in graph component
+     * @param {EnedisMonthlyAnalysisData} data
+     * @returns {AggregatedEnedisMonthlyDataloads}
+     */
+
+  }, {
+    key: "getEnedisMonthlyAnalysisByDate",
+    value:
+    /**
+     * Get an enedis monthly analysis for given month and year
+     * @param {number} year
+     * @param {number} month
+     * @returns {Promise<EnedisMonthlyAnalysisData[]>}
+     */
+    function () {
+      var _getEnedisMonthlyAnalysisByDate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(year, month) {
+        var query, data;
+        return _regenerator.default.wrap(function _callee3$(_context3) {
+          while (1) {
+            switch (_context3.prev = _context3.next) {
+              case 0:
+                query = (0, _cozyClient.Q)(_doctypes.ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE).where({
+                  year: year,
+                  month: month
+                }).sortBy([{
+                  year: 'desc'
+                }, {
+                  month: 'desc'
+                }]).limitBy(1);
+                _context3.next = 3;
+                return this._client.query(query);
+
+              case 3:
+                data = _context3.sent;
+                return _context3.abrupt("return", data.data);
+
+              case 5:
+              case "end":
+                return _context3.stop();
+            }
+          }
+        }, _callee3, this);
+      }));
+
+      function getEnedisMonthlyAnalysisByDate(_x, _x2) {
+        return _getEnedisMonthlyAnalysisByDate.apply(this, arguments);
+      }
+
+      return getEnedisMonthlyAnalysisByDate;
+    }()
+    /**
+     * Creates a new EnedisMonthlyAnalysis
+     * @param {EnedisMonthlyAnalysisData} newEnedisMonthlyAnalysisData
+     * @returns {Promise<EnedisMonthlyAnalysisData | null>}
+     */
+
+  }, {
+    key: "createEnedisMonthlyAnalysisData",
+    value: function () {
+      var _createEnedisMonthlyAnalysisData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(newEnedisMonthlyAnalysisData) {
+        var _yield$this$_client$c, EnedisMonthlyAnalysis, errorMessage;
+
+        return _regenerator.default.wrap(function _callee4$(_context4) {
+          while (1) {
+            switch (_context4.prev = _context4.next) {
+              case 0:
+                _context4.prev = 0;
+                _context4.next = 3;
+                return this._client.create(_doctypes.ENEDIS_MONTHLY_ANALYSIS_DATA_DOCTYPE, newEnedisMonthlyAnalysisData);
+
+              case 3:
+                _yield$this$_client$c = _context4.sent;
+                EnedisMonthlyAnalysis = _yield$this$_client$c.data;
+                return _context4.abrupt("return", EnedisMonthlyAnalysis);
+
+              case 8:
+                _context4.prev = 8;
+                _context4.t0 = _context4["catch"](0);
+                errorMessage = "Error creating new EnedisMonthlyAnalysis: ".concat(JSON.stringify(_context4.t0));
+                logStack('error', errorMessage);
+
+                _logger.default.error(errorMessage);
+
+                Sentry.captureException(errorMessage);
+                throw _context4.t0;
+
+              case 15:
+              case "end":
+                return _context4.stop();
+            }
+          }
+        }, _callee4, this, [[0, 8]]);
+      }));
+
+      function createEnedisMonthlyAnalysisData(_x3) {
+        return _createEnedisMonthlyAnalysisData.apply(this, arguments);
+      }
+
+      return createEnedisMonthlyAnalysisData;
+    }()
+    /**
+     * Get Max power for a given month and year
+     * @param {number} year
+     * @param {number} month
+     * @returns {Promise<MaxPowerEntity[]>}
+     */
+
+  }, {
+    key: "getMaxPowerByDate",
+    value: function () {
+      var _getMaxPowerByDate = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(year, month) {
+        var query, data;
+        return _regenerator.default.wrap(function _callee5$(_context5) {
+          while (1) {
+            switch (_context5.prev = _context5.next) {
+              case 0:
+                query = (0, _cozyClient.Q)(_doctypes.ENEDIS_MAXPOWER_DOCTYPE).where({
+                  year: year,
+                  month: month
+                }).sortBy([{
+                  year: 'desc'
+                }, {
+                  month: 'desc'
+                }]);
+                _context5.next = 3;
+                return this._client.query(query);
+
+              case 3:
+                data = _context5.sent;
+                return _context5.abrupt("return", data.data);
+
+              case 5:
+              case "end":
+                return _context5.stop();
+            }
+          }
+        }, _callee5, this);
+      }));
+
+      function getMaxPowerByDate(_x4, _x5) {
+        return _getMaxPowerByDate.apply(this, arguments);
+      }
+
+      return getMaxPowerByDate;
+    }()
+  }]);
+  return EnedisMonthlyAnalysisDataService;
+}();
+
+exports.default = EnedisMonthlyAnalysisDataService;
+
+/***/ })
+
+}]);
\ No newline at end of file
diff --git a/8/ecolyo.5a104e5906433ba909f2.js b/9/ecolyo.4facae32c2f3722bac49.js
similarity index 99%
rename from 8/ecolyo.5a104e5906433ba909f2.js
rename to 9/ecolyo.4facae32c2f3722bac49.js
index 778dfed93f6c790ce8bbc3e6df8292385a03676c..2ec6d0819d89a57df8aad963fd38e02717bf5c01 100644
--- a/8/ecolyo.5a104e5906433ba909f2.js
+++ b/9/ecolyo.4facae32c2f3722bac49.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[8],{
+(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[9],{
 
 /***/ "GwQd":
 /***/ (function(module, exports, __webpack_require__) {
diff --git a/app/ecolyo.b134e742cefb066771ce.js b/app/ecolyo.2fadb3137243fb8e0036.js
similarity index 99%
rename from app/ecolyo.b134e742cefb066771ce.js
rename to app/ecolyo.2fadb3137243fb8e0036.js
index 3312b22a4744a49f7b5cfc74bc50d450bd90c40a..3f699d523441b8f059be33c3e18dbefb0fd1acbf 100644
--- a/app/ecolyo.b134e742cefb066771ce.js
+++ b/app/ecolyo.2fadb3137243fb8e0036.js
@@ -64,7 +64,7 @@
 /******/
 /******/ 	// script path function
 /******/ 	function jsonpScriptSrc(chunkId) {
-/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"1":"c44aefc530d1de68ee3f","3":"eff4cc1e75bcc37e8fed","4":"4bdc1836bb506dfd5fea","5":"2c5979fe74e28dddd188","6":"54d0e15353c0b4003a05","7":"1850b6ce28566211a509","8":"5a104e5906433ba909f2","9":"d4e0f8345c64c54574af"}[chunkId] + ".js"
+/******/ 		return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "/ecolyo." + {"1":"c44aefc530d1de68ee3f","3":"28f520a27960ce78b6a0","4":"1cdc61d357ea6de2df70","5":"2c5979fe74e28dddd188","6":"54d0e15353c0b4003a05","7":"1850b6ce28566211a509","8":"c7b053d03ca1a7f2eeea","9":"4facae32c2f3722bac49","10":"e8a00fc8bc16cb5a9dfd"}[chunkId] + ".js"
 /******/ 	}
 /******/
 /******/ 	// The require function
@@ -33823,19 +33823,19 @@ var EcogestureView = /*#__PURE__*/(0, _react.lazy)(function () {
   return __webpack_require__.e(/* import() */ 6).then(__webpack_require__.t.bind(null, "1MlH", 7));
 });
 var SingleEcogesture = /*#__PURE__*/(0, _react.lazy)(function () {
-  return __webpack_require__.e(/* import() */ 8).then(__webpack_require__.t.bind(null, "GwQd", 7));
+  return __webpack_require__.e(/* import() */ 9).then(__webpack_require__.t.bind(null, "GwQd", 7));
 });
 var OptionsView = /*#__PURE__*/(0, _react.lazy)(function () {
-  return Promise.all(/* import() */[__webpack_require__.e(0), __webpack_require__.e(4)]).then(__webpack_require__.t.bind(null, "e+zH", 7));
+  return Promise.all(/* import() */[__webpack_require__.e(0), __webpack_require__.e(8), __webpack_require__.e(4)]).then(__webpack_require__.t.bind(null, "e+zH", 7));
 });
 var LegalNoticeView = /*#__PURE__*/(0, _react.lazy)(function () {
-  return __webpack_require__.e(/* import() */ 9).then(__webpack_require__.t.bind(null, "ckxh", 7));
+  return __webpack_require__.e(/* import() */ 10).then(__webpack_require__.t.bind(null, "ckxh", 7));
 });
 var GCUView = /*#__PURE__*/(0, _react.lazy)(function () {
   return __webpack_require__.e(/* import() */ 1).then(__webpack_require__.t.bind(null, "+Tny", 7));
 });
 var AnalysisView = /*#__PURE__*/(0, _react.lazy)(function () {
-  return Promise.all(/* import() */[__webpack_require__.e(0), __webpack_require__.e(7), __webpack_require__.e(3)]).then(__webpack_require__.t.bind(null, "DTIR", 7));
+  return Promise.all(/* import() */[__webpack_require__.e(0), __webpack_require__.e(7), __webpack_require__.e(8), __webpack_require__.e(3)]).then(__webpack_require__.t.bind(null, "DTIR", 7));
 });
 var ProfileTypeView = /*#__PURE__*/(0, _react.lazy)(function () {
   return Promise.resolve(/* import() */).then(__webpack_require__.t.bind(null, "nKTC", 7));
diff --git a/index.html b/index.html
index 376a98e61488a5f0f8ade62bd74ec53da4acb6fc..25d44f416cda1c33deac0bd012d721deb15bb05c 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><!-- PWA Colors --><meta name="theme-color" content="#343641"><meta name="background-color" content="#121212">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.69beab954af56959f24c.js"></script><script src="app/ecolyo.b134e742cefb066771ce.js"></script></div></body></html>
\ No newline at end of file
+<!DOCTYPE html><html lang="{{.Locale}}"><head><meta charset="utf-8"><title>Ecolyo</title><link rel="icon" type="image/png" href="/favicon-32x32.png" sizes="32x32"><link rel="icon" type="image/png" href="/favicon-16x16.png" sizes="16x16"><!-- PWA Manifest --><link rel="manifest" href="/manifest.json" crossorigin="use-credentials"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#297EF2"><meta name="viewport" content="width=device-width,height=device-height,initial-scale=1,viewport-fit=cover"><!-- PWA Chrome --><link rel="icon" sizes="192x192" href="/android-chrome-192x192.png"><link rel="icon" sizes="512x512" href="/android-chrome-512x512.png"><!-- PWA iOS --><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="apple-touch-startup-image" href="/apple-touch-icon.png"><meta name="apple-mobile-web-app-title" content="Ecolyo"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><!-- PWA Colors --><meta name="theme-color" content="#343641"><meta name="background-color" content="#121212">{{.ThemeCSS}} {{.CozyBar}}<script src="//{{.Domain}}/assets/js/piwik.js"></script></head><body><div role="application" class="application" data-cozy="{{.CozyData}}"><script src="vendors/ecolyo.69beab954af56959f24c.js"></script><script src="app/ecolyo.2fadb3137243fb8e0036.js"></script></div></body></html>
\ No newline at end of file