diff --git a/src/services/consumptionFormatter.service.spec.ts b/src/services/consumptionFormatter.service.spec.ts
index 2c5a80f5def0cf78327e1cb2144ead7b86fb9d44..2a27a7681dbc113401dd445e7a8bfb16bc103d22 100644
--- a/src/services/consumptionFormatter.service.spec.ts
+++ b/src/services/consumptionFormatter.service.spec.ts
@@ -288,6 +288,7 @@ describe('ConsumptionFormatter service', () => {
       const result: Dataload = consumptionFormatterService.defineDataloadState(
         mockData,
         FluidType.ELECTRICITY,
+        TimeStep.DAY,
         fluidStatus[FluidType.ELECTRICITY]
       )
       expect(result).toEqual(expectedResult)
@@ -303,11 +304,12 @@ describe('ConsumptionFormatter service', () => {
       const result: Dataload = consumptionFormatterService.defineDataloadState(
         mockData,
         FluidType.ELECTRICITY,
+        TimeStep.DAY,
         fluidStatus[FluidType.ELECTRICITY]
       )
       expect(result).toEqual(expectedResult)
     })
-    it('sould return EMPTY state because data.date < firstFluidDataDate', () => {
+    it('sould return EMPTY state because data.date < firstFluidDataDate for day timestep', () => {
       fluidStatus[FluidType.ELECTRICITY].firstDataDate = DateTime.fromISO(
         '2020-10-20T00:00:00.000Z',
         {
@@ -321,6 +323,83 @@ describe('ConsumptionFormatter service', () => {
       const result: Dataload = consumptionFormatterService.defineDataloadState(
         mockData,
         FluidType.ELECTRICITY,
+        TimeStep.DAY,
+        fluidStatus[FluidType.ELECTRICITY]
+      )
+      expect(result).toEqual(expectedResult)
+    })
+    it('sould return EMPTY state because data.date < start of month of firstFluidDataDate for month timestep', () => {
+      fluidStatus[FluidType.ELECTRICITY].firstDataDate = DateTime.fromISO(
+        '2020-11-01T00:00:00.000Z',
+        {
+          zone: 'utc',
+        }
+      )
+      const expectedResult: Dataload = {
+        ...mockData,
+        state: DataloadState.EMPTY,
+      }
+      const result: Dataload = consumptionFormatterService.defineDataloadState(
+        mockData,
+        FluidType.ELECTRICITY,
+        TimeStep.MONTH,
+        fluidStatus[FluidType.ELECTRICITY]
+      )
+      expect(result).toEqual(expectedResult)
+    })
+    it('sould return EMPTY state because data.date < start of year firstFluidDataDate for year timestep', () => {
+      fluidStatus[FluidType.ELECTRICITY].firstDataDate = DateTime.fromISO(
+        '2021-10-20T00:00:00.000Z',
+        {
+          zone: 'utc',
+        }
+      )
+      const expectedResult: Dataload = {
+        ...mockData,
+        state: DataloadState.EMPTY,
+      }
+      const result: Dataload = consumptionFormatterService.defineDataloadState(
+        mockData,
+        FluidType.ELECTRICITY,
+        TimeStep.YEAR,
+        fluidStatus[FluidType.ELECTRICITY]
+      )
+      expect(result).toEqual(expectedResult)
+    })
+    it('sould return VALID state because data.date < firstFluidDataDate for month timestep', () => {
+      fluidStatus[FluidType.ELECTRICITY].firstDataDate = DateTime.fromISO(
+        '2020-10-20T00:00:00.000Z',
+        {
+          zone: 'utc',
+        }
+      )
+      const expectedResult: Dataload = {
+        ...mockData,
+        state: DataloadState.VALID,
+      }
+      const result: Dataload = consumptionFormatterService.defineDataloadState(
+        mockData,
+        FluidType.ELECTRICITY,
+        TimeStep.MONTH,
+        fluidStatus[FluidType.ELECTRICITY]
+      )
+      expect(result).toEqual(expectedResult)
+    })
+    it('sould return VALID state because data.date < firstFluidDataDate for year timestep', () => {
+      fluidStatus[FluidType.ELECTRICITY].firstDataDate = DateTime.fromISO(
+        '2020-12-20T00:00:00.000Z',
+        {
+          zone: 'utc',
+        }
+      )
+      const expectedResult: Dataload = {
+        ...mockData,
+        state: DataloadState.VALID,
+      }
+      const result: Dataload = consumptionFormatterService.defineDataloadState(
+        mockData,
+        FluidType.ELECTRICITY,
+        TimeStep.YEAR,
         fluidStatus[FluidType.ELECTRICITY]
       )
       expect(result).toEqual(expectedResult)
@@ -345,6 +424,7 @@ describe('ConsumptionFormatter service', () => {
       const result: Dataload = consumptionFormatterService.defineDataloadState(
         mockEmptyData,
         FluidType.ELECTRICITY,
+        TimeStep.DAY,
         fluidStatus[FluidType.ELECTRICITY]
       )
       expect(result).toEqual(expectedResult)
@@ -369,6 +449,7 @@ describe('ConsumptionFormatter service', () => {
       const result: Dataload = consumptionFormatterService.defineDataloadState(
         mockData,
         FluidType.ELECTRICITY,
+        TimeStep.DAY,
         fluidStatus[FluidType.ELECTRICITY]
       )
       expect(result).toEqual(expectedResult)
@@ -428,6 +509,7 @@ describe('ConsumptionFormatter service', () => {
         const result: Dataload = consumptionFormatterService.defineDataloadState(
           data,
           FluidType.ELECTRICITY,
+          TimeStep.DAY,
           fluidStatus[FluidType.ELECTRICITY]
         )
         expect(result).toEqual(expectedResult)
@@ -444,6 +526,7 @@ describe('ConsumptionFormatter service', () => {
         const result: Dataload = consumptionFormatterService.defineDataloadState(
           data,
           FluidType.GAS,
+          TimeStep.DAY,
           fluidStatus[FluidType.GAS]
         )
         expect(result).toEqual(expectedResult)
@@ -460,6 +543,7 @@ describe('ConsumptionFormatter service', () => {
         const result: Dataload = consumptionFormatterService.defineDataloadState(
           data,
           FluidType.WATER,
+          TimeStep.DAY,
           fluidStatus[FluidType.WATER]
         )
         expect(result).toEqual(expectedResult)
@@ -520,6 +604,7 @@ describe('ConsumptionFormatter service', () => {
         const result: Dataload = consumptionFormatterService.defineDataloadState(
           data,
           FluidType.ELECTRICITY,
+          TimeStep.DAY,
           fluidStatus[FluidType.ELECTRICITY]
         )
         expect(result).toEqual(expectedResult)
@@ -536,6 +621,7 @@ describe('ConsumptionFormatter service', () => {
         const result: Dataload = consumptionFormatterService.defineDataloadState(
           data,
           FluidType.GAS,
+          TimeStep.DAY,
           fluidStatus[FluidType.GAS]
         )
         expect(result).toEqual(expectedResult)
@@ -552,6 +638,7 @@ describe('ConsumptionFormatter service', () => {
         const result: Dataload = consumptionFormatterService.defineDataloadState(
           data,
           FluidType.WATER,
+          TimeStep.DAY,
           fluidStatus[FluidType.WATER]
         )
         expect(result).toEqual(expectedResult)
diff --git a/src/services/consumptionFormatter.service.ts b/src/services/consumptionFormatter.service.ts
index ce3f9e43800e843cca0eb197de8c45a219a5a3d0..1ca49c7e29637e2c516d7a80aad990348fb6a63d 100644
--- a/src/services/consumptionFormatter.service.ts
+++ b/src/services/consumptionFormatter.service.ts
@@ -38,6 +38,7 @@ export default class ConsumptionFormatterService {
               valueDetail: null,
             },
         fluidType,
+        timeStep,
         fluidStatus
       )
       filledData.push({ ...newElement })
@@ -50,6 +51,7 @@ export default class ConsumptionFormatterService {
   public defineDataloadState(
     data: Dataload,
     fluidType: FluidType,
+    timeStep: TimeStep,
     fluidStatus?: FluidStatus
   ): Dataload {
     const today = DateTime.local().setZone('utc', {
@@ -63,7 +65,26 @@ export default class ConsumptionFormatterService {
       return data
     }
     // Define state in function of first and last fluid data date
-    if (fluidStatus.firstDataDate && data.date < fluidStatus.firstDataDate) {
+    if (
+      fluidStatus.firstDataDate &&
+      timeStep !== TimeStep.MONTH &&
+      timeStep !== TimeStep.YEAR &&
+      data.date < fluidStatus.firstDataDate
+    ) {
+      return { ...data, state: DataloadState.EMPTY }
+    }
+    if (
+      fluidStatus.firstDataDate &&
+      timeStep === TimeStep.MONTH &&
+      data.date < fluidStatus.firstDataDate.startOf('month')
+    ) {
+      return { ...data, state: DataloadState.EMPTY }
+    }
+    if (
+      fluidStatus.firstDataDate &&
+      timeStep === TimeStep.YEAR &&
+      data.date < fluidStatus.firstDataDate.startOf('year')
+    ) {
       return { ...data, state: DataloadState.EMPTY }
     }
     if (fluidStatus.lastDataDate && data.date > fluidStatus.lastDataDate) {
diff --git a/src/services/queryRunner.service.ts b/src/services/queryRunner.service.ts
index dad1cf33881518487332439aef9b5eba76da18ce..1fae7902ebd897dd3a8f10ddc5d88faa75e9c8b2 100644
--- a/src/services/queryRunner.service.ts
+++ b/src/services/queryRunner.service.ts
@@ -429,7 +429,9 @@ export default class QueryRunner {
       return DateTime.local(
         result.data[0].year,
         result.data[0].month,
-        result.data[0].day
+        result.data[0].day,
+        result.data[0].hour ? result.data[0].hour : 0,
+        result.data[0].minute ? result.data[0].minute : 0
       ).setZone('utc', {
         keepLocalTime: true,
       })
@@ -451,7 +453,9 @@ export default class QueryRunner {
       return DateTime.local(
         result.data[0].year,
         result.data[0].month,
-        result.data[0].day
+        result.data[0].day,
+        result.data[0].hour ? result.data[0].hour : 0,
+        result.data[0].minute ? result.data[0].minute : 0
       ).setZone('utc', {
         keepLocalTime: true,
       })