diff --git a/src/components/Analysis/MaxConsumptionCard/MaxConsumptionCard.tsx b/src/components/Analysis/MaxConsumptionCard/MaxConsumptionCard.tsx
index 46656f1f9406b307455512e596f4ddeddb8941a5..9e2888a8f34279e83dc0c89c0f551fa99772af18 100644
--- a/src/components/Analysis/MaxConsumptionCard/MaxConsumptionCard.tsx
+++ b/src/components/Analysis/MaxConsumptionCard/MaxConsumptionCard.tsx
@@ -62,11 +62,11 @@ const MaxConsumptionCard = ({
         endDate: analysisMonth.minus({ month: 1 }).endOf('month'),
       }
       const consumptionService = new ConsumptionDataManager(client)
-      const monthlyData = await consumptionService.getGraphData(
+      const monthlyData = await consumptionService.getGraphData({
         timePeriod,
-        TimeStep.DAY,
-        [currentFluid]
-      )
+        timeStep: TimeStep.DAY,
+        fluidTypes: [currentFluid],
+      })
 
       if (monthlyData && monthlyData?.actualData.length > 0) {
         setChartData(monthlyData)
diff --git a/src/components/Analysis/TotalAnalysisChart/TotalAnalysisChart.tsx b/src/components/Analysis/TotalAnalysisChart/TotalAnalysisChart.tsx
index fd512fb31d2d47fd0ec432c8c6a64700f2b7b3d8..f50fee73138e27b1b7d7e6892ff928add7a50ee3 100644
--- a/src/components/Analysis/TotalAnalysisChart/TotalAnalysisChart.tsx
+++ b/src/components/Analysis/TotalAnalysisChart/TotalAnalysisChart.tsx
@@ -41,14 +41,12 @@ const TotalAnalysisChart = ({
         endDate: analysisMonth.minus({ month: 1 }).endOf('month'),
       }
       const consumptionService = new ConsumptionDataManager(client)
-      const monthTotalData = await consumptionService.getGraphData(
+      const monthTotalData = await consumptionService.getGraphData({
         timePeriod,
-        TimeStep.MONTH,
-        fluidsWithData,
-        undefined,
-        undefined,
-        true
-      )
+        timeStep: TimeStep.MONTH,
+        fluidTypes: fluidsWithData,
+        isHome: true,
+      })
       if (monthTotalData?.actualData) {
         setDataLoadValueDetailArray(monthTotalData.actualData[0].valueDetail)
         setTotalLoadValue(monthTotalData.actualData[0].value)
diff --git a/src/components/FluidChart/FluidChartSlide.tsx b/src/components/FluidChart/FluidChartSlide.tsx
index 9a66f31ed68559e22efadc6a80a795e3a7ef0fc0..ddeff8b141c386f49e6125e27014f0d00fd59ba0 100644
--- a/src/components/FluidChart/FluidChartSlide.tsx
+++ b/src/components/FluidChart/FluidChartSlide.tsx
@@ -72,14 +72,14 @@ const FluidChartSlide = ({
         const consumptionService = new ConsumptionService(client)
         const isMulti = fluidType === FluidType.MULTIFLUID
         const fluidTypeArray: FluidType[] = isMulti ? fluidTypes : [fluidType]
-        const graphData = await consumptionService.getGraphData(
+        const graphData = await consumptionService.getGraphData({
           timePeriod,
-          currentTimeStep,
-          fluidTypeArray,
+          timeStep: currentTimeStep,
+          fluidTypes: fluidTypeArray,
           fluidStatus,
           compareTimePeriod,
-          isMulti
-        )
+          isHome: isMulti,
+        })
         if (subscribed && graphData && graphData?.actualData.length > 0) {
           setChartData(graphData)
           setIsDataLoaded(true)
diff --git a/src/components/Options/ExportData/Modals/exportLoadingModal.tsx b/src/components/Options/ExportData/Modals/exportLoadingModal.tsx
index f25b2e28cd389aa8e53eca6aa830f70f4979bf73..17925bfb12490ab521b6e0198ea04e9e40827a07 100644
--- a/src/components/Options/ExportData/Modals/exportLoadingModal.tsx
+++ b/src/components/Options/ExportData/Modals/exportLoadingModal.tsx
@@ -8,7 +8,7 @@ import { useI18n } from 'cozy-ui/transpiled/react/I18n'
 import Icon from 'cozy-ui/transpiled/react/Icon'
 import { FluidType, TimeStep } from 'enums'
 import FileSaver from 'file-saver'
-import { Datachart, Dataload, TimePeriod } from 'models'
+import { Dataload, TimePeriod } from 'models'
 import React, { useCallback, useEffect } from 'react'
 import ConsumptionDataManager from 'services/consumption.service'
 import EnedisMonthlyAnalysisDataService from 'services/enedisMonthlyAnalysisData.service'
@@ -110,15 +110,13 @@ const ExportLoadingModal = ({
         endDate: lastDataDate[0],
       }
 
-      const dataLoad: Datachart | null = await consumptionService.getGraphData(
+      const dataLoad = await consumptionService.getGraphData({
         timePeriod,
-        TimeStep.MONTH,
-        [fluidType],
-        undefined,
-        undefined,
-        false,
-        true
-      )
+        timeStep: TimeStep.MONTH,
+        fluidTypes: [fluidType],
+        isHome: false,
+        isExport: true,
+      })
 
       if (!dataLoad?.actualData) return null
 
diff --git a/src/components/Options/ReportOptions/ReportOptions.tsx b/src/components/Options/ReportOptions/ReportOptions.tsx
index ab9bf280a489403943a040a97096087dce19943e..112aa1f30b4dc8cfc357545eac0643c9e875a28a 100644
--- a/src/components/Options/ReportOptions/ReportOptions.tsx
+++ b/src/components/Options/ReportOptions/ReportOptions.tsx
@@ -69,14 +69,12 @@ const ReportOptions = () => {
         endDate: DateTime.now(),
       }
       const consumptionService = new ConsumptionDataManager(client)
-      const lastSemesterMax = await consumptionService.getMaxLoad(
-        timePeriod,
-        TimeStep.DAY,
-        [FluidType.WATER],
-        undefined,
-        false,
-        true
-      )
+      const lastSemesterMax = await consumptionService.getMaxLoad({
+        maxTimePeriod: timePeriod,
+        timeStep: TimeStep.DAY,
+        fluidTypes: [FluidType.WATER],
+        withDate: true,
+      })
       if (lastSemesterMax) {
         setLastSemesterMaxDay(lastSemesterMax as Dataload)
       }
diff --git a/src/services/challenge.service.ts b/src/services/challenge.service.ts
index 516c73913b2e54bea6e268f8df0a5c7f5678c349..9a12620f77cdaf7694d3c6a75921647f212d62a7 100644
--- a/src/services/challenge.service.ts
+++ b/src/services/challenge.service.ts
@@ -16,7 +16,6 @@ import {
 import { DateTime } from 'luxon'
 import {
   ChallengeEntity,
-  Datachart,
   Dataload,
   DuelEntity,
   Ecogesture,
@@ -782,7 +781,6 @@ export default class ChallengeService {
   /**
    * Retrieve the dataload for a UserChallenge with duel ongoing
    * @param {UserChallenge} userChallenge - userChallenge to update
-   * @param {UserChallengeUpdateFlag} flag - update flag
    */
   public async getUserChallengeDataload(
     userChallenge: UserChallenge
@@ -795,14 +793,12 @@ export default class ChallengeService {
           day: userChallenge.duel.duration.days - 1,
         }),
       }
-      const dataChart: Datachart | null = await consumptionService.getGraphData(
+      const dataChart = await consumptionService.getGraphData({
         timePeriod,
-        TimeStep.DAY,
-        userChallenge.duel.fluidTypes,
-        undefined,
-        undefined,
-        true
-      )
+        timeStep: TimeStep.DAY,
+        fluidTypes: userChallenge.duel.fluidTypes,
+        isHome: true,
+      })
       if (dataChart) {
         return dataChart.actualData
       }
diff --git a/src/services/consumption.service.spec.ts b/src/services/consumption.service.spec.ts
index 384bb583109386f398532a53f6942442259efcd8..149ae17033714183500eca4af8991f82b783df1a 100644
--- a/src/services/consumption.service.spec.ts
+++ b/src/services/consumption.service.spec.ts
@@ -21,6 +21,7 @@ import { fluidStatusConnectedData } from 'tests/__mocks__/fluidStatusData.mock'
 import { loadDayData } from 'tests/__mocks__/loadDayData.mock'
 import { allFluids } from 'utils/utils'
 import ConsumptionDataManager from './consumption.service'
+import ConsumptionValidatorService from './consumptionValidator.service'
 
 const mockFetchFluidData = jest.fn()
 const mockFetchFluidMaxData = jest.fn()
@@ -78,15 +79,15 @@ describe('Consumption service', () => {
   ]
 
   describe('getGraphData method', () => {
-    it('should return null', async () => {
-      const result = await consumptionDataManager.getGraphData(
-        mockTimePeriod,
-        TimeStep.DAY,
-        [],
-        [],
-        mockTimePeriodComparison,
-        false
-      )
+    it('should return null because input is invalid', async () => {
+      const result = await consumptionDataManager.getGraphData({
+        timePeriod: mockTimePeriod,
+        timeStep: TimeStep.DAY,
+        fluidTypes: [],
+        fluidStatus: [],
+        compareTimePeriod: mockTimePeriodComparison,
+        isHome: false,
+      })
       expect(result).toBeNull()
     })
     it('should return a mapped data for one fluid', async () => {
@@ -135,14 +136,14 @@ describe('Consumption service', () => {
           },
         ],
       }
-      const result = await consumptionDataManager.getGraphData(
-        mockTimePeriod,
-        TimeStep.DAY,
+      const result = await consumptionDataManager.getGraphData({
+        timePeriod: mockTimePeriod,
+        timeStep: TimeStep.DAY,
         fluidTypes,
         fluidStatus,
-        mockTimePeriodComparison,
-        false
-      )
+        compareTimePeriod: mockTimePeriodComparison,
+        isHome: false,
+      })
       expect(result).toEqual(mockResult)
     })
 
@@ -211,14 +212,14 @@ describe('Consumption service', () => {
           },
         ],
       }
-      const result = await consumptionDataManager.getGraphData(
-        mockTimePeriod,
-        TimeStep.DAY,
-        allFluids,
+      const result = await consumptionDataManager.getGraphData({
+        timePeriod: mockTimePeriod,
+        timeStep: TimeStep.DAY,
+        fluidTypes: allFluids,
         fluidStatus,
-        mockTimePeriodComparison,
-        true
-      )
+        compareTimePeriod: mockTimePeriodComparison,
+        isHome: true,
+      })
       expect(result).toEqual(mockResult)
     })
     it('should return a mapped data for multi fluid without comparison date', async () => {
@@ -253,41 +254,46 @@ describe('Consumption service', () => {
         ],
         comparisonData: [],
       }
-      mockFetchFluidData.mockResolvedValue(mockFetchDataActual)
-      const result = await consumptionDataManager.getGraphData(
-        mockTimePeriod,
-        TimeStep.DAY,
-        allFluids,
-        fluidStatus
-      )
+      mockFetchFluidData.mockResolvedValueOnce(mockFetchDataActual)
+      mockFetchFluidData.mockResolvedValueOnce(mockFetchDataActual)
+      mockFetchFluidData.mockResolvedValueOnce(mockFetchDataActual)
+      const result = await consumptionDataManager.getGraphData({
+        timePeriod: mockTimePeriod,
+        timeStep: TimeStep.DAY,
+        fluidTypes: allFluids,
+        fluidStatus,
+      })
       expect(result).toEqual(mockResult)
     })
     it('should return null because of wrong parameters', async () => {
       const fluidTypes = [FluidType.WATER]
-      const result = await consumptionDataManager.getGraphData(
-        mockTimePeriod,
-        TimeStep.HALF_AN_HOUR,
+      const result = await consumptionDataManager.getGraphData({
+        timePeriod: mockTimePeriod,
+        timeStep: TimeStep.HALF_AN_HOUR,
         fluidTypes,
         fluidStatus,
-        mockTimePeriodComparison,
-        true
-      )
+        compareTimePeriod: mockTimePeriodComparison,
+        isHome: true,
+      })
       expect(result).toBeNull()
     })
-    it('should return null because of timePeriod and comparaison', async () => {
-      const fluidTypes: FluidType[] = [FluidType.ELECTRICITY]
+    it('should return null when not matching both cases', async () => {
+      const fluidTypes: FluidType[] = []
       const wrongTimePeriod = {
         startDate: DateTime.fromISO('2020-08-03T23:59:59.999Z'),
         endDate: DateTime.fromISO('2020-08-01T00:00:00.000Z'),
       }
-      const result = await consumptionDataManager.getGraphData(
-        wrongTimePeriod,
-        TimeStep.DAY,
+      jest
+        .spyOn(ConsumptionValidatorService.prototype, 'ValidateGetGraphData')
+        .mockReturnValueOnce(true)
+      const result = await consumptionDataManager.getGraphData({
+        timePeriod: wrongTimePeriod,
+        timeStep: TimeStep.DAY,
         fluidTypes,
         fluidStatus,
-        mockTimePeriodComparison,
-        true
-      )
+        compareTimePeriod: mockTimePeriodComparison,
+        isHome: false,
+      })
       expect(result).toBeNull()
     })
   })
@@ -300,30 +306,37 @@ describe('Consumption service', () => {
         mockFetchFluidData.mockResolvedValueOnce(mockFetchDataComparison)
       }
       const expectedResult = 84.44375099999999
-      const result = await consumptionDataManager.getMaxLoad(
-        mockTimePeriod,
-        TimeStep.DAY,
-        allFluids,
-        mockTimePeriodComparison,
-        true
-      )
+      const result = await consumptionDataManager.getMaxLoad({
+        maxTimePeriod: mockTimePeriod,
+        timeStep: TimeStep.DAY,
+        fluidTypes: allFluids,
+        compareMaxTimePeriod: mockTimePeriodComparison,
+        isHome: true,
+      })
       expect(result).toEqual(expectedResult)
     })
     it('should return the maxed value for a time period', async () => {
       const fluidTypes: FluidType[] = [FluidType.ELECTRICITY]
       const expectedResult = 63.1254
       mockFetchFluidMaxData.mockResolvedValueOnce(expectedResult)
-      const result = await consumptionDataManager.getMaxLoad(
-        mockTimePeriod,
-        TimeStep.DAY,
+      const result = await consumptionDataManager.getMaxLoad({
+        maxTimePeriod: mockTimePeriod,
+        timeStep: TimeStep.DAY,
         fluidTypes,
-        mockTimePeriodComparison,
-        false
-      )
+        compareMaxTimePeriod: mockTimePeriodComparison,
+      })
       expect(result).toEqual(expectedResult)
     })
   })
 
+  describe('getLastDataload method', () => {
+    it('should return the last dataload', async () => {
+      mockFetchFluidData.mockResolvedValueOnce(mockFetchDataActual)
+      const result = await consumptionDataManager.getLastDataload(0)
+      expect(result).toEqual(mockFetchDataActual)
+    })
+  })
+
   describe('getPerformanceIndicators method', () => {
     it('should return the performance indicator', async () => {
       mockFetchFluidData.mockResolvedValueOnce(mockFetchDataActual)
diff --git a/src/services/consumption.service.ts b/src/services/consumption.service.ts
index d4a85f237fd957a1ed75d5c64605fd49a23432c3..343f99e4ca7b4d2c0cdee0f4b9ede449763090fb 100644
--- a/src/services/consumption.service.ts
+++ b/src/services/consumption.service.ts
@@ -45,25 +45,34 @@ export default class ConsumptionDataManager {
   }
 
   /** Get graph data according on timeStep and fluidType */
-  public async getGraphData(
-    timePeriod: TimePeriod,
-    timeStep: TimeStep,
-    fluidTypes: FluidType[],
-    fluidStatus?: FluidStatus[],
-    compareTimePeriod?: TimePeriod,
-    isHome?: boolean,
+  public async getGraphData({
+    timePeriod,
+    timeStep,
+    fluidTypes,
+    fluidStatus,
+    compareTimePeriod,
+    isHome,
+    isExport,
+  }: {
+    timePeriod: TimePeriod
+    timeStep: TimeStep
+    fluidTypes: FluidType[]
+    fluidStatus?: FluidStatus[]
+    compareTimePeriod?: TimePeriod
+    isHome?: boolean
+    /** bypass TimePeriodLength validation to be able to export more than 12 months of data */
     isExport?: boolean
-  ): Promise<Datachart | null> {
-    const InputIsValid = this._consumptionValidatorService.ValidateGetGraphData(
+  }): Promise<Datachart | null> {
+    const isInputValid = this._consumptionValidatorService.ValidateGetGraphData(
       timePeriod,
       timeStep,
       fluidTypes,
       compareTimePeriod,
       isExport
     )
-    if (!InputIsValid) return null
+    if (!isInputValid) return null
     if (fluidTypes.length === 1 && !isHome) {
-      const fluidType: FluidType = fluidTypes[0]
+      const fluidType = fluidTypes[0]
       const fetchedData = await this.fetchSingleFluidGraphData(
         timePeriod,
         timeStep,
@@ -89,7 +98,6 @@ export default class ConsumptionDataManager {
           fluidType,
           compareTimePeriod
         )
-        // formatting data
         const formattedData = this.formatGraphDataManager(
           fetchedData,
           timeStep,
@@ -106,27 +114,33 @@ export default class ConsumptionDataManager {
       }
       const aggregatedData = this.aggregateGraphData(toBeAggregatedData)
       return aggregatedData
-    } else return null
+    }
+    return null
   }
 
-  public async getMaxLoad(
-    maxTimePeriod: TimePeriod,
-    timeStep: TimeStep,
-    fluidTypes: FluidType[],
-    compareMaxTimePeriod?: TimePeriod,
-    isHome?: boolean,
+  public async getMaxLoad({
+    maxTimePeriod,
+    timeStep,
+    fluidTypes,
+    compareMaxTimePeriod,
+    isHome,
+    withDate,
+  }: {
+    maxTimePeriod: TimePeriod
+    timeStep: TimeStep
+    fluidTypes: FluidType[]
+    compareMaxTimePeriod?: TimePeriod
+    isHome?: boolean
     withDate?: boolean
-  ): Promise<number | null | Dataload> {
-    let allData
+  }): Promise<number | null | Dataload> {
     if (isHome) {
-      allData = await this.getGraphData(
-        maxTimePeriod,
+      const allData = await this.getGraphData({
+        timePeriod: maxTimePeriod,
         timeStep,
         fluidTypes,
-        undefined,
-        compareMaxTimePeriod,
-        isHome
-      )
+        compareTimePeriod: compareMaxTimePeriod,
+        isHome,
+      })
       return allData?.actualData
         ? Math.max(...allData.actualData.map(d => d.value))
         : 0
@@ -143,7 +157,7 @@ export default class ConsumptionDataManager {
 
   /** get last dataload available for a given fluid - return the daily data  */
   public async getLastDataload(
-    fluidTypes: FluidType
+    fluidType: FluidType
   ): Promise<Dataload[] | null> {
     const timePeriod = {
       startDate: DateTime.now().plus({ days: -3 }).startOf('day'),
@@ -153,7 +167,7 @@ export default class ConsumptionDataManager {
     const data = await this._queryRunnerService.fetchFluidData(
       timePeriod,
       TimeStep.DAY,
-      fluidTypes
+      fluidType
     )
     return data
   }
@@ -166,13 +180,12 @@ export default class ConsumptionDataManager {
   ): Promise<PerformanceIndicator[]> {
     const performanceIndicators: PerformanceIndicator[] = []
     for (const fluidType of fluidTypes) {
-      const graphData = await this.getGraphData(
+      const graphData = await this.getGraphData({
         timePeriod,
         timeStep,
-        [fluidType],
-        undefined,
-        compareTimePeriod
-      )
+        fluidTypes: [fluidType],
+        compareTimePeriod,
+      })
 
       if (graphData) {
         const performanceIndicator: PerformanceIndicator = {
diff --git a/src/services/consumptionValidator.service.spec.ts b/src/services/consumptionValidator.service.spec.ts
index 819a9724a39ae7e4890842d11e10a988f28eb9c0..5f0558d47a67c008f871548c509925e074f5a7fa 100644
--- a/src/services/consumptionValidator.service.spec.ts
+++ b/src/services/consumptionValidator.service.spec.ts
@@ -11,7 +11,13 @@ const mockTimePeriodComparison: TimePeriod = {
   startDate: DateTime.fromISO('2020-09-01T00:00:00.000Z', { zone: 'utc' }),
   endDate: DateTime.fromISO('2020-09-03T23:59:59.999Z', { zone: 'utc' }),
 }
-let allFluids: FluidType[] = [0, 1, 2]
+const wrongTimePeriodComparison: TimePeriod = {
+  startDate: DateTime.fromISO('2020-09-05T00:00:00.000Z', {
+    zone: 'utc',
+  }),
+  endDate: DateTime.fromISO('2020-09-03T23:59:59.999Z', { zone: 'utc' }),
+}
+const allFluids: FluidType[] = [0, 1, 2]
 describe('ConsumptionFormatter service', () => {
   const consumptionValidatorService = new ConsumptionValidatorService()
   describe('ValidateGetGraphData method', () => {
@@ -33,12 +39,6 @@ describe('ConsumptionFormatter service', () => {
       expect(result).toBeTruthy()
     })
     it('should return false with comparison Date', () => {
-      const wrongTimePeriodComparison: TimePeriod = {
-        startDate: DateTime.fromISO('2020-09-05T00:00:00.000Z', {
-          zone: 'utc',
-        }),
-        endDate: DateTime.fromISO('2020-09-03T23:59:59.999Z', { zone: 'utc' }),
-      }
       const result = consumptionValidatorService.ValidateGetGraphData(
         mockTimePeriod,
         TimeStep.DAY,
@@ -47,13 +47,16 @@ describe('ConsumptionFormatter service', () => {
       )
       expect(result).toBeFalsy()
     })
+    it('should return false with comparison Date and incompatible timeStep', () => {
+      const result = consumptionValidatorService.ValidateGetGraphData(
+        mockTimePeriod,
+        TimeStep.YEAR,
+        allFluids,
+        wrongTimePeriodComparison
+      )
+      expect(result).toBeFalsy()
+    })
     it('should return false with comparison Date for elec', () => {
-      const wrongTimePeriodComparison: TimePeriod = {
-        startDate: DateTime.fromISO('2020-09-05T00:00:00.000Z', {
-          zone: 'utc',
-        }),
-        endDate: DateTime.fromISO('2020-09-07T23:59:59.999Z', { zone: 'utc' }),
-      }
       const result = consumptionValidatorService.ValidateGetGraphData(
         mockTimePeriod,
         TimeStep.HALF_AN_HOUR,
@@ -94,7 +97,7 @@ describe('ConsumptionFormatter service', () => {
       expect(result).toBeFalsy()
     })
     it('should return false because of HALF_AN_HOUR and ValidateTimePeriodLength', () => {
-      allFluids = [0] // Only fluid without TimeStep incompatibilty
+      const fluids = [0] // Only fluid without TimeStep incompatibility
       const mockTimePeriodTooLong: TimePeriod = {
         startDate: DateTime.fromISO('2020-10-01T00:00:00.000Z', {
           zone: 'utc',
@@ -104,7 +107,7 @@ describe('ConsumptionFormatter service', () => {
       const result = consumptionValidatorService.ValidateGetGraphData(
         mockTimePeriodTooLong,
         TimeStep.HALF_AN_HOUR,
-        allFluids
+        fluids
       )
       expect(result).toBeFalsy()
     })
diff --git a/src/services/duel.service.ts b/src/services/duel.service.ts
index f721543a6fe7ca02e60cf59567fc99eca63c69a9..1baa8a8cc48223e60d66def3f7075766c49df213 100644
--- a/src/services/duel.service.ts
+++ b/src/services/duel.service.ts
@@ -5,8 +5,6 @@ import { DUEL_DOCTYPE } from 'doctypes'
 import { FluidState, FluidType, TimeStep, UserDuelState } from 'enums'
 import { DateTime, Duration } from 'luxon'
 import {
-  Datachart,
-  Dataload,
   DuelEntity,
   FluidStatus,
   PerformanceIndicator,
@@ -69,31 +67,28 @@ export default class DuelService {
    */
   private async isPeriodComplete(
     period: TimePeriod,
-    fluidType: FluidType[],
+    fluidTypes: FluidType[],
     duration: Duration
   ): Promise<false | TimePeriod> {
-    const maxDiffperiod: Duration = Duration.fromObject({
-      months: 6,
-    })
-    const maxDiffperiodMilli: number = maxDiffperiod.as('milliseconds')
+    const maxDiffPeriod = Duration.fromObject({ months: 6 })
+    const maxDiffPeriodMilli = maxDiffPeriod.as('milliseconds')
     let isComplete = true
     const newPeriod: TimePeriod = {
       startDate: period.startDate.minus(duration),
       endDate: period.endDate.minus(duration),
     }
-    let diffFromNow = newPeriod.endDate.diffNow().toObject().milliseconds
-    diffFromNow = diffFromNow ? Math.abs(diffFromNow) : 0
-    const consumptionService = new ConsumptionService(this._client)
-    const dataLoad: Datachart | null = await consumptionService.getGraphData(
-      period,
-      TimeStep.DAY,
-      fluidType,
-      undefined,
-      undefined,
-      true
+    const diffFromNow = Math.abs(
+      newPeriod.endDate.diffNow().toObject().milliseconds || 0
     )
+    const consumptionService = new ConsumptionService(this._client)
+    const dataLoad = await consumptionService.getGraphData({
+      timePeriod: period,
+      timeStep: TimeStep.DAY,
+      fluidTypes,
+      isHome: true,
+    })
     if (dataLoad?.actualData) {
-      dataLoad.actualData.forEach((d: Dataload) => {
+      dataLoad.actualData.forEach(d => {
         if (
           d.value === -1 ||
           (d.valueDetail &&
@@ -102,21 +97,21 @@ export default class DuelService {
           isComplete = false
       })
     }
-    if (diffFromNow && !isComplete && diffFromNow > maxDiffperiodMilli)
+    if (diffFromNow && !isComplete && diffFromNow > maxDiffPeriodMilli)
       return false
 
     return isComplete
       ? period
-      : await this.isPeriodComplete(newPeriod, fluidType, duration)
+      : await this.isPeriodComplete(newPeriod, fluidTypes, duration)
   }
   /**
    * Retrieve all duel entities from db
    */
   public async getAllDuelEntities(): Promise<DuelEntity[]> {
     const query: QueryDefinition = Q(DUEL_DOCTYPE)
-    const { data: dueles }: QueryResult<DuelEntity[]> =
+    const { data: duels }: QueryResult<DuelEntity[]> =
       await this._client.query(query)
-    return dueles
+    return duels
   }
 
   /**
diff --git a/src/services/quiz.service.spec.ts b/src/services/quiz.service.spec.ts
index 7b891b8419ff4ca068327a52d776f8a3ed7000d0..72e49bae4769eb4f1a373ba368ba95faee325d6e 100644
--- a/src/services/quiz.service.spec.ts
+++ b/src/services/quiz.service.spec.ts
@@ -217,7 +217,7 @@ describe('Quiz service', () => {
     })
   })
   describe('getCustomQuestion Method', () => {
-    it('should return the customQuestion for date type without period - What day did I consumme the most on the last week ?', async () => {
+    it('should return the customQuestion for date type without period - What day did I consume the most on the last week ?', async () => {
       localSpy.mockReturnValue(
         DateTime.fromISO('2020-10-03T00:00:00.000Z', { zone: 'utc' })
       )
@@ -245,7 +245,7 @@ describe('Quiz service', () => {
       ])
       expect(result).toEqual(expected)
     })
-    it('should return the customQuestion for date type with period - What month did I consumme the most on year 2020 ?', async () => {
+    it('should return the customQuestion for date type with period - What month did I consume the most on year 2020 ?', async () => {
       localSpy.mockReturnValue(
         DateTime.fromISO('2020-10-03T00:00:00.000Z', { zone: 'utc' })
       )
@@ -272,7 +272,7 @@ describe('Quiz service', () => {
       ])
       expect(result).toEqual(expected)
     })
-    it('should return the customQuestion for maxload type without period - Which is your daily max consumption on the last week ?', async () => {
+    it('should return the customQuestion for max load type without period - Which is your daily max consumption on the last week ?', async () => {
       localSpy.mockReturnValue(
         DateTime.fromISO('2020-10-03T00:00:00.000Z', { zone: 'utc' })
       )
@@ -304,7 +304,7 @@ describe('Quiz service', () => {
       ])
       expect(result).toEqual(expected)
     })
-    it('should return the customQuestion for maxload type with period - Which is your daily max consumption on january 2020 ?', async () => {
+    it('should return the customQuestion for max load type with period - Which is your daily max consumption on January 2020 ?', async () => {
       localSpy.mockReturnValue(
         DateTime.fromISO('2020-10-03T00:00:00.000Z', { zone: 'utc' })
       )
@@ -335,18 +335,6 @@ describe('Quiz service', () => {
       const result = await quizService.getCustomQuestion(mockCustomQuestion, [
         FluidType.ELECTRICITY,
       ])
-      expect(mockGetMaxLoad).toHaveBeenCalledWith(
-        {
-          startDate: DateTime.fromObject({ month: 1, year: 2020 }).startOf(
-            'month'
-          ),
-          endDate: DateTime.fromObject({ month: 1, year: 2020 }).endOf('month'),
-        },
-        TimeStep.DAY,
-        [FluidType.ELECTRICITY],
-        undefined,
-        true
-      )
       expect(result).toEqual(expected)
     })
     it('should return the customQuestion for average type without period - Which is your daily average consumption on the last week ?', async () => {
@@ -413,20 +401,9 @@ describe('Quiz service', () => {
       const result = await quizService.getCustomQuestion(mockCustomQuestion, [
         FluidType.ELECTRICITY,
       ])
-      expect(mockGetGraphData).toHaveBeenCalledWith(
-        {
-          startDate: DateTime.fromObject({ year: 2020 }).startOf('year'),
-          endDate: DateTime.fromObject({ year: 2020 }).endOf('year'),
-        },
-        TimeStep.MONTH,
-        [FluidType.ELECTRICITY],
-        undefined,
-        undefined,
-        true
-      )
       expect(result).toEqual(expected)
     })
-    it('should return the customQuestion for average type with weekday period - Which is your monthly average consumption on wednesday ?', async () => {
+    it('should return the customQuestion for average type with weekday period - Which is your monthly average consumption on Wednesday ?', async () => {
       localSpy.mockReturnValue(
         DateTime.fromISO('2020-10-03T00:00:00.000Z', { zone: 'utc' })
       )
@@ -460,7 +437,7 @@ describe('Quiz service', () => {
       ])
       expect(result).toEqual(expected)
     })
-    it('should return the customQuestion for average type with weekday period and singleFluid - Which is your monthly average consumption of #fluid in #unit on wednesday ?', async () => {
+    it('should return the customQuestion for average type with weekday period and singleFluid - Which is your monthly average consumption of #fluid in #unit on Wednesday ?', async () => {
       localSpy.mockReturnValue(
         DateTime.fromISO('2020-10-03T00:00:00.000Z', { zone: 'utc' })
       )
diff --git a/src/services/quiz.service.ts b/src/services/quiz.service.ts
index 4e4c0ea895670fd0c1c07dcd2eabc9279603d1dc..d4ab41d504a1aaafebe4bb092019563901ed0c5d 100644
--- a/src/services/quiz.service.ts
+++ b/src/services/quiz.service.ts
@@ -295,26 +295,25 @@ export default class QuizService {
     }
     if (customQuestionEntity.type === CustomQuestionType.DATE) {
       // Interval
-      const intervalAsnwer = await this.getMaxLoadOnLastInterval(
+      const intervalAnswer = await this.getMaxLoadOnLastInterval(
         customQuestionEntity.timeStep,
         finalInterval,
         useFluidTypes
       )
       answers = this.getAnswersForInterval(
-        intervalAsnwer.date,
+        intervalAnswer.date,
         customQuestionEntity.timeStep,
         finalInterval
       )
     } else if (customQuestionEntity.type === CustomQuestionType.MAXDATA) {
       // Max data
       const consumptionService = new ConsumptionDataManager(this._client)
-      let maxLoad = await consumptionService.getMaxLoad(
-        finalInterval,
-        customQuestionEntity.timeStep,
-        useFluidTypes,
-        undefined,
-        !customQuestionEntity.singleFluid
-      )
+      let maxLoad = await consumptionService.getMaxLoad({
+        maxTimePeriod: finalInterval,
+        timeStep: customQuestionEntity.timeStep,
+        fluidTypes: useFluidTypes,
+        isHome: !customQuestionEntity.singleFluid,
+      })
       maxLoad = maxLoad === null ? 0 : maxLoad
       answers = this.getAnswersForNumberValue(maxLoad as number, unit)
     } else {
@@ -393,7 +392,7 @@ export default class QuizService {
   private async getMaxLoadOnLastInterval(
     timeStep: TimeStep,
     interval: TimePeriod,
-    fluidType: FluidType[]
+    fluidTypes: FluidType[]
   ): Promise<IntervalAnswer> {
     let dateMax: DateTime = DateTime.local().setZone('utc', {
       keepLocalTime: true,
@@ -401,11 +400,11 @@ export default class QuizService {
     let max = 0
     const consumptionService = new ConsumptionDataManager(this._client)
     const limit = { date: interval.startDate, reached: false }
-    let graphData = await consumptionService.getGraphData(
-      interval,
+    let graphData = await consumptionService.getGraphData({
+      timePeriod: interval,
       timeStep,
-      fluidType
-    )
+      fluidTypes,
+    })
     if (graphData?.actualData) {
       max = Math.max(...graphData.actualData.map(d => d.value))
 
@@ -426,11 +425,11 @@ export default class QuizService {
           newInterval.startDate = newInterval.startDate.minus(objectTimeStep)
           newInterval.endDate = newInterval.endDate.minus(objectTimeStep)
           limit.date = newInterval.startDate
-          graphData = await consumptionService.getGraphData(
-            newInterval,
+          graphData = await consumptionService.getGraphData({
+            timePeriod: newInterval,
             timeStep,
-            fluidType
-          )
+            fluidTypes: fluidTypes,
+          })
 
           if (limit.date < DateTime.now().minus({ year: 5 })) {
             limit.reached = true
@@ -454,11 +453,11 @@ export default class QuizService {
             })
             .startOf('month'),
         }
-        graphData = await consumptionService.getGraphData(
-          newInterval,
+        graphData = await consumptionService.getGraphData({
+          timePeriod: newInterval,
           timeStep,
-          fluidType
-        )
+          fluidTypes: fluidTypes,
+        })
       }
       if (graphData?.actualData) {
         max = Math.max(...graphData.actualData.map(d => d.value))
@@ -477,20 +476,18 @@ export default class QuizService {
   private async getAverageOnGivenPeriod(
     timeStep: TimeStep,
     interval: TimePeriod,
-    fluidType: FluidType[],
+    fluidTypes: FluidType[],
     weekday: number | undefined,
     singleFluid: boolean
   ): Promise<number> {
     const consumptionService = new ConsumptionDataManager(this._client)
-    logApp.info('GetAverageOnGivenPeriod is about to call getgraphdata')
-    const graphData = await consumptionService.getGraphData(
-      interval,
+    logApp.info('GetAverageOnGivenPeriod is about to call getGraphData')
+    const graphData = await consumptionService.getGraphData({
+      timePeriod: interval,
       timeStep,
-      fluidType,
-      undefined,
-      undefined,
-      !singleFluid
-    )
+      fluidTypes,
+      isHome: !singleFluid,
+    })
     let average = 0
     if (graphData?.actualData) {
       let total = 0
diff --git a/src/targets/services/aggregatorUsageEvents.ts b/src/targets/services/aggregatorUsageEvents.ts
index 36beffe25a1f122a126fba16ff2bdab6f2dd8120..1ae6a70fe449ab7404249e68bd44b4e80770a35f 100644
--- a/src/targets/services/aggregatorUsageEvents.ts
+++ b/src/targets/services/aggregatorUsageEvents.ts
@@ -231,7 +231,7 @@ const buildProfileWithFluidType = async (
 
 const getConsumptionValue = async (
   client: Client,
-  fluidType: FluidType[]
+  fluidTypes: FluidType[]
 ): Promise<PerformanceIndicator[]> => {
   const consumptionService = new ConsumptionService(client)
   const analysisDate = DateTime.local().setZone('utc', { keepLocalTime: true })
@@ -249,7 +249,7 @@ const getConsumptionValue = async (
     await consumptionService.getPerformanceIndicators(
       periods.timePeriod,
       TimeStep.MONTH,
-      fluidType,
+      fluidTypes,
       periods.comparisonTimePeriod
     )
   return fetchedPerformanceIndicators
diff --git a/src/targets/services/enedisHalfHourMonthlyAnalysis.ts b/src/targets/services/enedisHalfHourMonthlyAnalysis.ts
index 84b034a1e87c1b557436d2f4195e8e1a6aeb39a8..26efc1fad06e2c02c3dcf3e16e1e90edface5b08 100644
--- a/src/targets/services/enedisHalfHourMonthlyAnalysis.ts
+++ b/src/targets/services/enedisHalfHourMonthlyAnalysis.ts
@@ -136,9 +136,11 @@ const getEnedisMonthAnalysisData = async (
     endDate: DateTime.fromObject({ month: month, year: year }).endOf('month'),
   }
   const cs = new ConsumptionService(client)
-  const data = await cs.getGraphData(timePeriod, TimeStep.DAY, [
-    FluidType.ELECTRICITY,
-  ])
+  const data = await cs.getGraphData({
+    timePeriod,
+    timeStep: TimeStep.DAY,
+    fluidTypes: [FluidType.ELECTRICITY],
+  })
   const monthlyAveragesLoads: EnedisMonthlyAnalysisData = {
     weekDaysHalfHourAverageValues: [],
     weekEndDaysHalfHourAverageValues: [],
@@ -160,11 +162,11 @@ const getEnedisMonthAnalysisData = async (
       }
       // for each day, we get its halfHour DataChart
       // so we get 48 entries per day
-      const halfHourDayData = await cs.getGraphData(
+      const halfHourDayData = await cs.getGraphData({
         timePeriod,
-        TimeStep.HALF_AN_HOUR,
-        [FluidType.ELECTRICITY]
-      )
+        timeStep: TimeStep.HALF_AN_HOUR,
+        fluidTypes: [FluidType.ELECTRICITY],
+      })
       if (halfHourDayData) {
         populateArrayWithTotalData(weekEndValuesArray, halfHourDayData, true)
         populateArrayWithTotalData(weekValuesArray, halfHourDayData, false)
diff --git a/src/targets/services/monthlyReportNotification.ts b/src/targets/services/monthlyReportNotification.ts
index 7cb75e4a4ff03ac4b9924b6f562f91e57069fd7b..88f342166509782bb7ab4207adb682032593d0f2 100644
--- a/src/targets/services/monthlyReportNotification.ts
+++ b/src/targets/services/monthlyReportNotification.ts
@@ -24,11 +24,11 @@ interface MonthlyReportNotificationProps {
 
 /**
  * Get consumption value for all fluid if exist
- * @param fluidType - FluidType
+ * @param fluidTypes - FluidType
  */
 const getConsumptionValue = async (
   client: Client,
-  fluidType: FluidType[],
+  fluidTypes: FluidType[],
   period: 'month' | 'year'
 ): Promise<PerformanceIndicator[]> => {
   const consumptionService = new ConsumptionService(client)
@@ -48,7 +48,7 @@ const getConsumptionValue = async (
   return consumptionService.getPerformanceIndicators(
     timePeriod,
     TimeStep.MONTH,
-    fluidType,
+    fluidTypes,
     comparisonTimePeriod
   )
 }