diff --git a/models/acc_operation.py b/models/acc_operation.py
index 48f7b8f11eab6004cc84eb5e00d05916cb5a1bb8..5f3ef69922360f8d46c40bb89ff138f498a4cb73 100644
--- a/models/acc_operation.py
+++ b/models/acc_operation.py
@@ -148,26 +148,25 @@ class AccOperation(models.Model):
             limit=1,
             order="date_slot DESC",
         )
-        date_end = last_record.date_slot
+        # Convert end datetime to timezone
+        last_day_start = last_record.date_slot.replace(hour=0, minute=0, second=0)
+        last_day_end = last_day_start + relativedelta(days=1)
+        # Get end time slot for previous month with timezone
+        end_month = last_day_start.replace(day=1)
 
         if scale == "semestre":
-            date_first = date_end - relativedelta(months=1)
-            date_end = date_utils.end_of(date_first, "month")
-            date_start = date_end - relativedelta(months=5)
-            date_start = date_utils.start_of(date_start, "month")
-        elif scale == "month":
-            date_start = date_end - relativedelta(months=1)
-            date_start = date_utils.start_of(date_start, scale)
-            date_end = date_utils.end_of(date_start, scale)
+            date_end = end_month
+            date_start = (end_month - relativedelta(months=6))
         elif scale == "week":
-            date_start = date_end - relativedelta(days=6)
-            date_start = date_utils.start_of(date_start, "day")
+            date_start = last_day_end - relativedelta(days=7)
+            date_end = last_day_end
         elif scale == "day":
-            date_start = date_utils.start_of(date_end, "day")
+            date_start = last_day_start
+            date_end = last_day_end
+        # month by default
         else:
-            date_first = date_end - relativedelta(months=1)
-            date_end = date_utils.end_of(date_first, "month")
-            date_start = date_utils.start_of(date_end, scale)
+            date_start = end_month - relativedelta(months=1)
+            date_end = end_month
 
         return date_start, date_end
 
@@ -227,7 +226,7 @@ class AccOperation(models.Model):
         :param  slot_type: type de slot pour la query ('month' ou 'hour' ou 'year')
                 date_start: date début
                 date_end: date de fin
-        :return: un dictionnaire de données
+        @returns: un dictionnaire de données
                 (labels et data pour les charts à afficher)
         """
 
@@ -246,15 +245,18 @@ class AccOperation(models.Model):
                 (SUM( (CASE WHEN comp_data_type = 'autocons' THEN A.power ELSE 0 END) )/2) / 1000 as autocons,
                 (SUM( (CASE WHEN comp_data_type = 'prod' THEN A.power ELSE 0 END) )/2) / 1000 as prod,
                 (SUM( (CASE WHEN comp_data_type = 'complement' THEN A.power ELSE 0 END) )/2) / 1000 as allocons
-                FROM acc_enedis_cdc A
-                    JOIN acc_operation E ON E.id = A.acc_operation_id
-                WHERE A.acc_operation_id IS NOT NULL
-                    AND A.acc_operation_id IN %s
-                    AND ( A.acc_counter_id IN %s OR A.comp_data_type = 'prod' )
-                    AND A.date_slot >= %s
-                    AND A.date_slot < %s
-                GROUP BY date_trunc(%s, A.date_slot)
-                ORDER BY date_slot ASC;
+            FROM
+                acc_enedis_cdc A
+            JOIN
+                acc_operation E ON E.id = A.acc_operation_id
+            WHERE
+                A.acc_operation_id IS NOT NULL
+                AND A.acc_operation_id IN %s
+                AND ( A.acc_counter_id IN %s OR A.comp_data_type = 'prod' )
+                AND A.date_slot >= %s
+                AND A.date_slot < %s
+            GROUP BY date_trunc(%s, A.date_slot)
+            ORDER BY date_slot ASC;
             """
         query_params = (
             slot_type,
@@ -1281,7 +1283,6 @@ class AccOperation(models.Model):
                         défini par le clic bouton
         :return: dictionnaire pour la construction des graphes
         """
-
         result_graph = {}
         if not date_start and not date_end:
             date_start, date_end = self.get_last_day(scale)