diff --git a/src/components/ContainerComponents/IndicatorsContainer/IndicatorContainerSwitcher.tsx b/src/components/ContainerComponents/IndicatorsContainer/IndicatorContainerSwitcher.tsx
index 541b05a2dc2fa5ca3a69ea640bb15db163c472fa..f46a45ad2bbfdf4363d7f40cb24ece5e071cf0e7 100644
--- a/src/components/ContainerComponents/IndicatorsContainer/IndicatorContainerSwitcher.tsx
+++ b/src/components/ContainerComponents/IndicatorsContainer/IndicatorContainerSwitcher.tsx
@@ -3,8 +3,8 @@ import { AppContext } from 'components/Contexts/AppContextProvider'
 import {
   TimeStep,
   IPerformanceIndicator,
-  ITimePeriod,
 } from 'services/dataConsumptionContracts'
+import { TimePeriod } from 'models'
 import { convertDateByTimeStep } from 'utils/date'
 import ConfigService from 'services/fluidConfig.service'
 import FluidPerformanceIndicator from 'components/ContentComponents/PerformanceIndicator/FluidPerformanceIndicator'
@@ -13,7 +13,7 @@ import KonnectorViewer from 'components/ContentComponents/KonnectorViewer/Konnec
 interface IndicatorContainerSwitcherProps {
   performanceIndicators: IPerformanceIndicator[]
   timeStep: TimeStep
-  comparisonTimePeriod: ITimePeriod | null
+  comparisonTimePeriod: TimePeriod | null
 }
 
 const IndicatorContainerSwitcher: React.FC<IndicatorContainerSwitcherProps> = ({
diff --git a/src/components/ContainerComponents/IndicatorsContainer/MultiFluidIndicatorsContainer.tsx b/src/components/ContainerComponents/IndicatorsContainer/MultiFluidIndicatorsContainer.tsx
index 5f5cd02414524a88622ee09e58c5e4820aefa026..1751cb8521c39b9f1e7f258b76ffc28670a8b722 100644
--- a/src/components/ContainerComponents/IndicatorsContainer/MultiFluidIndicatorsContainer.tsx
+++ b/src/components/ContainerComponents/IndicatorsContainer/MultiFluidIndicatorsContainer.tsx
@@ -1,17 +1,18 @@
 import React, { useEffect, useContext, useState } from 'react'
+import { withClient, Client } from 'cozy-client'
+import { translate } from 'cozy-ui/react/I18n'
 import { AppContext } from 'components/Contexts/AppContextProvider'
 import {
   TimeStep,
   IPerformanceIndicator,
-  ITimePeriod,
 } from 'services/dataConsumptionContracts'
-import { withClient, Client } from 'cozy-client'
-import PerformanceIndicator from 'components/ContentComponents/PerformanceIndicator/PerformanceIndicator'
-import IndicatorContainerSwitcher from 'components/ContainerComponents/IndicatorsContainer/IndicatorContainerSwitcher'
+import { TimePeriod } from 'models'
 import TimePeriodService from 'services/timePeriod.service'
 import ConsumptionDataManager from 'services/consumptionDataManagerService'
 import PerformanceIndicatorService from 'services/performanceIndicator.service'
-import { translate } from 'cozy-ui/react/I18n'
+import PerformanceIndicator from 'components/ContentComponents/PerformanceIndicator/PerformanceIndicator'
+import IndicatorContainerSwitcher from 'components/ContainerComponents/IndicatorsContainer/IndicatorContainerSwitcher'
+
 import { convertDateByTimeStep } from 'utils/date'
 
 interface MultiFluidIndicatorsContainerProps {
@@ -32,14 +33,13 @@ const MultiFluidIndicatorsContainer: React.FC<MultiFluidIndicatorsContainerProps
     IPerformanceIndicator[]
   >([])
 
-  const [
-    currentTimePeriod,
-    setCurrentTimePeriod,
-  ] = useState<ITimePeriod | null>(null)
+  const [currentTimePeriod, setCurrentTimePeriod] = useState<TimePeriod | null>(
+    null
+  )
   const [
     comparisonTimePeriod,
     setComparisonTimePeriod,
-  ] = useState<ITimePeriod | null>(null)
+  ] = useState<TimePeriod | null>(null)
   const [isLoaded, setIsLoaded] = useState<boolean>(false)
 
   useEffect(() => {
diff --git a/src/components/ContainerComponents/IndicatorsContainer/SingleFluidIndicatorsContainer.tsx b/src/components/ContainerComponents/IndicatorsContainer/SingleFluidIndicatorsContainer.tsx
index 93992ebde713346069aa882e201f34ea493f03ab..166bb7770de7337be57986418fb1ab7d86581647 100644
--- a/src/components/ContainerComponents/IndicatorsContainer/SingleFluidIndicatorsContainer.tsx
+++ b/src/components/ContainerComponents/IndicatorsContainer/SingleFluidIndicatorsContainer.tsx
@@ -1,17 +1,17 @@
 import React, { useEffect, useContext, useState } from 'react'
+import { withClient, Client } from 'cozy-client'
+import { translate } from 'cozy-ui/react/I18n'
 import { AppContext } from 'components/Contexts/AppContextProvider'
 import {
   TimeStep,
   IPerformanceIndicator,
-  ITimePeriod,
 } from 'services/dataConsumptionContracts'
+import { TimePeriod } from 'models'
 import { FluidType } from 'enum/fluid.enum'
-import { withClient, Client } from 'cozy-client'
-import PerformanceIndicator from 'components/ContentComponents/PerformanceIndicator/PerformanceIndicator'
 import TimePeriodService from 'services/timePeriod.service'
 import ConsumptionDataManager from 'services/consumptionDataManagerService'
 import PerformanceIndicatorService from 'services/performanceIndicator.service'
-import { translate } from 'cozy-ui/react/I18n'
+import PerformanceIndicator from 'components/ContentComponents/PerformanceIndicator/PerformanceIndicator'
 import { convertDateByTimeStep } from 'utils/date'
 import RedirectionMiniCard from 'components/ContentComponents/Card/RedirectionMiniCard'
 
@@ -36,14 +36,13 @@ const SingleFluidIndicatorsContainer: React.FC<SingleFluidIndicatorsContainerPro
   const [performanceIndicators, setPerformanceIndicators] = useState<
     IPerformanceIndicator[]
   >([])
-  const [
-    currentTimePeriod,
-    setCurrentTimePeriod,
-  ] = useState<ITimePeriod | null>(null)
+  const [currentTimePeriod, setCurrentTimePeriod] = useState<TimePeriod | null>(
+    null
+  )
   const [
     comparisonTimePeriod,
     setComparisonTimePeriod,
-  ] = useState<ITimePeriod | null>(null)
+  ] = useState<TimePeriod | null>(null)
   const filteredFluidTypes = allConfiguredFluidTypes.filter(
     fluidType => fluidType !== fluidTypes[0]
   )
diff --git a/src/components/ContentComponents/Charts/BarChart.tsx b/src/components/ContentComponents/Charts/BarChart.tsx
index 15921e1bddf5d9e3858557b37f8f17f460c6d609..5eff410e2d5164179c350b6a09c9dd2c89b87c1b 100644
--- a/src/components/ContentComponents/Charts/BarChart.tsx
+++ b/src/components/ContentComponents/Charts/BarChart.tsx
@@ -4,8 +4,8 @@ import {
   IDataload,
   IChartData,
   TimeStep,
-  ITimePeriod,
 } from 'services/dataConsumptionContracts'
+import { TimePeriod } from 'models'
 import { FluidType } from 'enum/fluid.enum'
 import Bar from 'components/ContentComponents/Charts/Bar'
 import Hash from 'components/ContentComponents/Charts/Hash'
@@ -21,7 +21,7 @@ export interface BarChartProps {
   multiFluid: boolean
   selectedDate: DateTime
   showCompare: boolean
-  challengePeriod: ITimePeriod | null
+  challengePeriod: TimePeriod | null
   handleClickData: (
     dataload: IDataload,
     compareDataload: IDataload | null
diff --git a/src/components/ContentComponents/Charts/Hash.tsx b/src/components/ContentComponents/Charts/Hash.tsx
index 4ae28cc1dfa3d1e6a8b1c8ebe858154e5ec3c174..56946db9b72273f7b4a2c6c7906d094210cf5746 100644
--- a/src/components/ContentComponents/Charts/Hash.tsx
+++ b/src/components/ContentComponents/Charts/Hash.tsx
@@ -1,15 +1,12 @@
 import React, { useState, useEffect } from 'react'
 import { ScaleBand } from 'd3-scale'
-import {
-  ITimePeriod,
-  IChartData,
-  TimeStep,
-} from 'services/dataConsumptionContracts'
+import { IChartData, TimeStep } from 'services/dataConsumptionContracts'
+import { TimePeriod } from 'models'
 import { DateTime } from 'luxon'
 import DateChartService from 'services/dateChart.service'
 
 interface HashProps {
-  challengePeriod: ITimePeriod | null
+  challengePeriod: TimePeriod | null
   multiFluid: boolean
   xScale: ScaleBand<string>
   padding: number
diff --git a/src/components/ContentComponents/FluidChart/FluidChartContent.tsx b/src/components/ContentComponents/FluidChart/FluidChartContent.tsx
index 5ef068dbef451eac6b5c424cb961ba8679a9417c..fca6a2496e2e432e3c5781cb6bb18a26d362fcf1 100644
--- a/src/components/ContentComponents/FluidChart/FluidChartContent.tsx
+++ b/src/components/ContentComponents/FluidChart/FluidChartContent.tsx
@@ -5,9 +5,8 @@ import {
   IConsumptionDataManager,
   IDataload,
   TimeStep,
-  ITimePeriod,
-  TimePeriod,
 } from 'services/dataConsumptionContracts'
+import { TimePeriod } from 'models'
 import DateChartService from 'services/dateChart.service'
 import { UserChallenge } from 'services/dataChallengeContracts'
 import { FluidType } from 'enum/fluid.enum'
@@ -62,11 +61,12 @@ const FluidChartContent: React.FC<FluidChartContentProps> = ({
     pathname: `challenges/ongoing`,
     state: { challenge: currentChallenge },
   }
-  const challengePeriod: ITimePeriod | null =
-    currentChallenge &&
+  const challengePeriod: TimePeriod | null = currentChallenge &&
     currentChallenge.startingDate &&
-    currentChallenge.endingDate &&
-    new TimePeriod(currentChallenge.startingDate, currentChallenge.endingDate)
+    currentChallenge.endingDate && {
+      startDate: currentChallenge.startingDate,
+      endDate: currentChallenge.endingDate,
+    }
   const handleChangeIndex = (index: number) => {
     const dateChartService = new DateChartService()
     const date =
diff --git a/src/components/ContentComponents/FluidChart/FluidChartSlide.tsx b/src/components/ContentComponents/FluidChart/FluidChartSlide.tsx
index 3d1cbc2fa1c69d56e76d75f6db25afb36d22a489..823ea3768c7df2116f9dfec45a844279c7d4e869 100644
--- a/src/components/ContentComponents/FluidChart/FluidChartSlide.tsx
+++ b/src/components/ContentComponents/FluidChart/FluidChartSlide.tsx
@@ -6,8 +6,8 @@ import {
   IChartData,
   ChartData,
   TimeStep,
-  ITimePeriod,
 } from 'services/dataConsumptionContracts'
+import { TimePeriod } from 'models'
 import DateChartService from 'services/dateChart.service'
 import { FluidType } from 'enum/fluid.enum'
 
@@ -25,7 +25,7 @@ interface FluidChartSlideProps {
   showCompare: boolean
   width: number
   height: number
-  challengePeriod: ITimePeriod | null
+  challengePeriod: TimePeriod | null
   handleClickData: (
     dataload: IDataload,
     compareDataload: IDataload | null
diff --git a/src/components/ContentComponents/FluidChart/FluidChartSwipe.tsx b/src/components/ContentComponents/FluidChart/FluidChartSwipe.tsx
index 907446e0080ba4190b4108ec8017f6030b295c16..8d3f48d8e2822357b116257d991e80220b90200d 100644
--- a/src/components/ContentComponents/FluidChart/FluidChartSwipe.tsx
+++ b/src/components/ContentComponents/FluidChart/FluidChartSwipe.tsx
@@ -6,8 +6,8 @@ import {
   IConsumptionDataManager,
   IDataload,
   TimeStep,
-  ITimePeriod,
 } from 'services/dataConsumptionContracts'
+import { TimePeriod } from 'models'
 import { FluidType } from 'enum/fluid.enum'
 import FluidChartSlide from 'components/ContentComponents/FluidChart/FluidChartSlide'
 
@@ -21,7 +21,7 @@ interface FluidChartSwipeProps {
   selectedDate: DateTime
   indexDisplayed: number
   showCompare: boolean
-  challengePeriod: ITimePeriod | null
+  challengePeriod: TimePeriod | null
   handleChangeIndex: (index: number) => void
   handleClickData: (
     dataload: IDataload,
diff --git a/src/models/index.ts b/src/models/index.ts
index a435215ba706c11216ac58f533357e0c5dd236b0..6a78e606f3fd859e07ca24d811464a5c90aab630 100644
--- a/src/models/index.ts
+++ b/src/models/index.ts
@@ -2,5 +2,6 @@ export * from './account.model'
 export * from './ecogesture.model'
 export * from './config.model'
 export * from './konnector.model'
+export * from './timePeriod.model'
 export * from './trigger.model'
 export * from './userProfile.model'
diff --git a/src/models/timePeriod.model.ts b/src/models/timePeriod.model.ts
new file mode 100644
index 0000000000000000000000000000000000000000..860be8c3d70a93b8a7e0fa02e4d84427c23b6f43
--- /dev/null
+++ b/src/models/timePeriod.model.ts
@@ -0,0 +1,6 @@
+import { DateTime } from 'luxon'
+
+export interface TimePeriod {
+  startDate: DateTime
+  endDate: DateTime
+}
diff --git a/src/services/consumptionDataFormatterService.ts b/src/services/consumptionDataFormatterService.ts
index df52e3a233a5f9f90cb6cbff450835a0fd7d786e..22c7ad4481384ca3a70600043c59ae52496a2b1f 100644
--- a/src/services/consumptionDataFormatterService.ts
+++ b/src/services/consumptionDataFormatterService.ts
@@ -1,12 +1,13 @@
 /* eslint-disable @typescript-eslint/interface-name-prefix */
-import { TimeStep, ITimePeriod, IDataload } from './dataConsumptionContracts'
+import { TimeStep, IDataload } from './dataConsumptionContracts'
+import { TimePeriod } from 'models'
 import { compareDates } from 'utils/date'
 import DateChartService from 'services/dateChart.service'
 
 export default class ConsumptionDataFormatter {
   public formatGraphData(
     data: IDataload[],
-    timePeriod: ITimePeriod,
+    timePeriod: TimePeriod,
     timeStep: TimeStep
   ): IDataload[] {
     data.sort((dataA, dataB) => compareDates(dataA.date, dataB.date))
@@ -20,7 +21,7 @@ export default class ConsumptionDataFormatter {
 
   private fillMissingData(
     data: IDataload[],
-    timePeriod: ITimePeriod,
+    timePeriod: TimePeriod,
     timeStep: TimeStep
   ): IDataload[] {
     const filledData = []
diff --git a/src/services/consumptionDataManagerService.ts b/src/services/consumptionDataManagerService.ts
index 5070632302e5af19db6d6ca934c2c205fd350772..e9caa57f24b0c7455691b16183041e2d819a2dff 100644
--- a/src/services/consumptionDataManagerService.ts
+++ b/src/services/consumptionDataManagerService.ts
@@ -2,12 +2,12 @@ import { DateTime } from 'luxon'
 import { Client } from 'cozy-client'
 import {
   IConsumptionDataManager,
-  ITimePeriod,
   TimeStep,
   IDataload,
   IChartData,
   IPerformanceIndicator,
 } from 'services/dataConsumptionContracts'
+import { TimePeriod } from 'models'
 import { FluidType } from 'enum/fluid.enum'
 import ConsumptionDataFormatter from 'services/consumptionDataFormatterService'
 import QueryRunnerService from 'services/queryRunner.service'
@@ -34,10 +34,10 @@ export default class ConsumptionDataManager implements IConsumptionDataManager {
   }
 
   public async getGraphData(
-    timePeriod: ITimePeriod,
+    timePeriod: TimePeriod,
     timeStep: TimeStep,
     fluidTypes: FluidType[],
-    compareTimePeriod?: ITimePeriod,
+    compareTimePeriod?: TimePeriod,
     isHome?: boolean
   ): Promise<IChartData | null> {
     const InputisValid: boolean = this._consumptionDataValidator.ValidateGetGraphData(
@@ -113,10 +113,10 @@ export default class ConsumptionDataManager implements IConsumptionDataManager {
   }
 
   public async getMaxLoad(
-    maxTimePeriod: ITimePeriod,
+    maxTimePeriod: TimePeriod,
     timeStep: TimeStep,
     fluidTypes: FluidType[],
-    compareMaxTimePeriod?: ITimePeriod,
+    compareMaxTimePeriod?: TimePeriod,
     isHome?: boolean
   ): Promise<number | null> {
     let allData
@@ -146,10 +146,10 @@ export default class ConsumptionDataManager implements IConsumptionDataManager {
   }
 
   public async getPerformanceIndicators(
-    timePeriod: ITimePeriod,
+    timePeriod: TimePeriod,
     timeStep: TimeStep,
     fluidTypes: FluidType[],
-    compareTimePeriod?: ITimePeriod
+    compareTimePeriod?: TimePeriod
   ): Promise<IPerformanceIndicator[]> {
     //const result = {};
     const performanceIndicators: IPerformanceIndicator[] = []
@@ -221,10 +221,10 @@ export default class ConsumptionDataManager implements IConsumptionDataManager {
   }
 
   private async fetchSingleFluidGraphData(
-    timePeriod: ITimePeriod,
+    timePeriod: TimePeriod,
     timeStep: TimeStep,
     fluidType: FluidType,
-    compareTimePeriod?: ITimePeriod
+    compareTimePeriod?: TimePeriod
   ): Promise<IChartData | null> {
     let actualData: IDataload[] | null = []
     let comparisonData: IDataload[] | null = []
@@ -265,8 +265,8 @@ export default class ConsumptionDataManager implements IConsumptionDataManager {
   private formatGraphDataManage(
     data: IChartData | null,
     timeStep: TimeStep,
-    timePeriod: ITimePeriod,
-    compareTimePeriod: ITimePeriod | null
+    timePeriod: TimePeriod,
+    compareTimePeriod: TimePeriod | null
   ): IChartData | null {
     if (!data) return null
 
diff --git a/src/services/consumptionDataValidatorService.ts b/src/services/consumptionDataValidatorService.ts
index b5e9b8088867f40fd59044edafcb57d0f6429848..a894b3e134aa15e78809d8f35348ea830d2b488b 100644
--- a/src/services/consumptionDataValidatorService.ts
+++ b/src/services/consumptionDataValidatorService.ts
@@ -1,13 +1,14 @@
-import { ITimePeriod, TimeStep } from './dataConsumptionContracts'
+import { TimeStep } from './dataConsumptionContracts'
+import { TimePeriod } from 'models'
 import { FluidType } from 'enum/fluid.enum'
 import { Interval } from 'luxon'
 
 export default class ConsumptionDataValidator {
   public ValidateGetGraphData(
-    timePeriod: ITimePeriod,
+    timePeriod: TimePeriod,
     timeStep: TimeStep,
     fluidTypes: FluidType[],
-    compareTimePeriod?: ITimePeriod
+    compareTimePeriod?: TimePeriod
   ): boolean {
     if (fluidTypes.length === 0) return false
     if (!this.ValidateTimePeriod(timePeriod)) return false
@@ -34,7 +35,7 @@ export default class ConsumptionDataValidator {
   }
 
   private ValidateTimePeriodLength(
-    timePeriod: ITimePeriod,
+    timePeriod: TimePeriod,
     timeStep: TimeStep
   ): boolean {
     const interval = Interval.fromDateTimes(
@@ -50,7 +51,7 @@ export default class ConsumptionDataValidator {
     return true
   }
 
-  private ValidateTimePeriod(timePeriod: ITimePeriod): boolean {
+  private ValidateTimePeriod(timePeriod: TimePeriod): boolean {
     return timePeriod.endDate >= timePeriod.startDate
   }
 }
diff --git a/src/services/dataConsumptionContracts.ts b/src/services/dataConsumptionContracts.ts
index 9bd1b234b225038c1f7779357aee391e1ad4f340..f814290eba471648930cd60f4beda54efe5440cf 100644
--- a/src/services/dataConsumptionContracts.ts
+++ b/src/services/dataConsumptionContracts.ts
@@ -44,12 +44,12 @@ export class ChartData implements IChartData {
   }
 }
 
-export interface ITimePeriod {
+export interface TimePeriod {
   startDate: DateTime
   endDate: DateTime
 }
 
-export class TimePeriod implements ITimePeriod {
+export class TimePeriod implements TimePeriod {
   startDate: DateTime
   endDate: DateTime
 
@@ -70,27 +70,27 @@ export enum TimeStep {
 
 export interface IConsumptionDataManager {
   getGraphData(
-    timePeriod: ITimePeriod,
+    timePeriod: TimePeriod,
     timeStep: TimeStep,
     fluidTypes: FluidType[],
-    compareTimePeriod?: ITimePeriod,
+    compareTimePeriod?: TimePeriod,
     isHome?: boolean
   ): Promise<IChartData | null>
 
   getMaxLoad(
-    timePeriod: ITimePeriod,
+    timePeriod: TimePeriod,
     timeStep: TimeStep,
     fluidTypes: FluidType[],
-    compareTimePeriod?: ITimePeriod,
+    compareTimePeriod?: TimePeriod,
     isHome?: boolean
   ): Promise<number | null>
 
   fetchLastDateData(fluidType: FluidType[]): Promise<DateTime | null>
 
   getPerformanceIndicators(
-    timePeriod: ITimePeriod,
+    timePeriod: TimePeriod,
     timeStep: TimeStep,
     fluidTypes: FluidType[],
-    compareTimePeriod?: ITimePeriod
+    compareTimePeriod?: TimePeriod
   ): Promise<IPerformanceIndicator[]>
 }
diff --git a/src/services/dateChart.service.ts b/src/services/dateChart.service.ts
index d66d6e78fa47311876d4b6e0974b98122d7795a5..539e534a657da6ce998985c5ceeabadafd378480 100644
--- a/src/services/dateChart.service.ts
+++ b/src/services/dateChart.service.ts
@@ -1,10 +1,7 @@
 import { DateTime, Interval } from 'luxon'
 import { FluidType } from 'enum/fluid.enum'
-import {
-  TimeStep,
-  TimePeriod,
-  IDataload,
-} from 'services/dataConsumptionContracts'
+import { TimeStep, IDataload } from 'services/dataConsumptionContracts'
+import { TimePeriod } from 'models'
 
 export default class DateChartService {
   public defineTimePeriod(
@@ -23,10 +20,10 @@ export default class DateChartService {
           second: 0,
           millisecond: 0,
         })
-        return new TimePeriod(
-          date.plus({ years: -5 * index - (5 - 1) }),
-          date.plus({ years: -5 * index })
-        )
+        return {
+          startDate: date.plus({ years: -5 * index - (5 - 1) }),
+          endDate: date.plus({ years: -5 * index }),
+        }
       case TimeStep.MONTH:
         date = referenceDate.set({
           month: 12,
@@ -36,18 +33,18 @@ export default class DateChartService {
           second: 0,
           millisecond: 0,
         })
-        return new TimePeriod(
-          date.plus({ months: -12 * index - (12 - 1) }),
-          date.plus({ months: -12 * index })
-        )
+        return {
+          startDate: date.plus({ months: -12 * index - (12 - 1) }),
+          endDate: date.plus({ months: -12 * index }),
+        }
       case TimeStep.DAY:
         date = referenceDate
           .endOf('week')
           .set({ hour: 0, minute: 0, second: 0, millisecond: 0 })
-        return new TimePeriod(
-          date.plus({ days: -7 * index - (7 - 1) }),
-          date.plus({ days: -7 * index })
-        )
+        return {
+          startDate: date.plus({ days: -7 * index - (7 - 1) }),
+          endDate: date.plus({ days: -7 * index }),
+        }
       case TimeStep.HOUR:
         date = referenceDate.set({
           hour: 23,
@@ -55,22 +52,26 @@ export default class DateChartService {
           second: 0,
           millisecond: 0,
         })
-        return new TimePeriod(
-          date.set({ hour: 0, minute: 0 }).plus({ days: -1 * index }),
-          date.plus({ days: -1 * index })
-        )
+        return {
+          startDate: date
+            .set({ hour: 0, minute: 0 })
+            .plus({ days: -1 * index }),
+          endDate: date.plus({ days: -1 * index }),
+        }
       case TimeStep.HALF_AN_HOUR:
         date = referenceDate.set({ hour: 23, minute: 30 })
-        return new TimePeriod(
-          date.set({ hour: 0, minute: 0 }).plus({ days: -1 * index }),
-          date.plus({ days: -1 * index })
-        )
+        return {
+          startDate: date
+            .set({ hour: 0, minute: 0 })
+            .plus({ days: -1 * index }),
+          endDate: date.plus({ days: -1 * index }),
+        }
       default:
         date = referenceDate
-        return new TimePeriod(
-          date.plus({ days: -7 * index - (7 - 1) }),
-          date.plus({ days: -7 * index })
-        )
+        return {
+          startDate: date.plus({ days: -7 * index - (7 - 1) }),
+          endDate: date.plus({ days: -7 * index }),
+        }
     }
   }
 
diff --git a/src/services/queryRunner.service.ts b/src/services/queryRunner.service.ts
index 17cfd4ebc19263239f55828b389a7cebe8c14b08..54072901adde0b53b24b45536824720d03ca6240 100644
--- a/src/services/queryRunner.service.ts
+++ b/src/services/queryRunner.service.ts
@@ -13,8 +13,9 @@ import {
   ENEDIS_MINUTE_DOCTYPE,
   GRDF_HOUR_DOCTYPE,
 } from 'doctypes'
+import { TimePeriod } from 'models'
 import { FluidType } from 'enum/fluid.enum'
-import { TimeStep, ITimePeriod, IDataload } from './dataConsumptionContracts'
+import { TimeStep, IDataload } from './dataConsumptionContracts'
 
 export default class QueryRunner {
   // TODO to be clean up
@@ -61,7 +62,7 @@ export default class QueryRunner {
   }
 
   public async fetchFluidData(
-    timePeriod: ITimePeriod,
+    timePeriod: TimePeriod,
     timeStep: TimeStep,
     fluidType: FluidType
   ): Promise<IDataload[] | null> {
@@ -80,7 +81,7 @@ export default class QueryRunner {
   }
 
   public async fetchFluidMaxData(
-    maxTimePeriod: ITimePeriod,
+    maxTimePeriod: TimePeriod,
     timeStep: TimeStep,
     fluidType: FluidType
   ): Promise<number | null> {
@@ -159,7 +160,7 @@ export default class QueryRunner {
     return result
   }
 
-  private filterDataList(data, timePeriod: ITimePeriod) {
+  private filterDataList(data, timePeriod: TimePeriod) {
     const filteredResult = data.data.filter(entry =>
       this.withinDateBoundaries(
         DateTime.local(
@@ -191,7 +192,7 @@ export default class QueryRunner {
 
   private buildListQuery(
     timeStep: TimeStep,
-    timePeriod: ITimePeriod,
+    timePeriod: TimePeriod,
     fluidType: FluidType,
     limit: number
   ) {
@@ -205,7 +206,7 @@ export default class QueryRunner {
 
   private buildMaxQuery(
     timeStep: TimeStep,
-    maxTimePeriod: ITimePeriod,
+    maxTimePeriod: TimePeriod,
     fluidType: FluidType,
     limit: number
   ) {
@@ -224,11 +225,11 @@ export default class QueryRunner {
       .sortBy([{ load: 'desc' }])
   }
 
-  private withinDateBoundaries(dateTime: DateTime, timePeriod: ITimePeriod) {
+  private withinDateBoundaries(dateTime: DateTime, timePeriod: TimePeriod) {
     return dateTime <= timePeriod.endDate && dateTime >= timePeriod.startDate
   }
 
-  private getInBetweenMonths(timePeriod: ITimePeriod) {
+  private getInBetweenMonths(timePeriod: TimePeriod) {
     const intervalCount = Interval.fromDateTimes(
       timePeriod.startDate,
       timePeriod.endDate
@@ -249,7 +250,7 @@ export default class QueryRunner {
     return monthList
   }
 
-  private getInBetweenDays(timePeriod: ITimePeriod) {
+  private getInBetweenDays(timePeriod: TimePeriod) {
     const intervalCount = Interval.fromDateTimes(
       timePeriod.startDate,
       timePeriod.endDate
@@ -281,7 +282,7 @@ export default class QueryRunner {
       .limitBy(limit)
   }
 
-  private getPredicate(timePeriod: ITimePeriod, timeStep: TimeStep) {
+  private getPredicate(timePeriod: TimePeriod, timeStep: TimeStep) {
     let predicate = {}
 
     switch (timeStep) {
diff --git a/src/services/timePeriod.service.ts b/src/services/timePeriod.service.ts
index bb4438d1c1c37e52d3e110dadb11bc76f44e2177..d3689498c5254b75ea82f9105ea883ae5397b1a0 100644
--- a/src/services/timePeriod.service.ts
+++ b/src/services/timePeriod.service.ts
@@ -1,6 +1,7 @@
 import { DateTime } from 'luxon'
 import { FluidType } from 'enum/fluid.enum'
-import { ITimePeriod, TimeStep } from './dataConsumptionContracts'
+import { TimePeriod } from 'models'
+import { TimeStep } from './dataConsumptionContracts'
 import ConfigService from 'services/fluidConfig.service'
 
 export default class TimePeriodService {
@@ -9,8 +10,8 @@ export default class TimePeriodService {
     fluidTypes: FluidType[],
     timeStep: TimeStep
   ): {
-    timePeriod: ITimePeriod
-    comparisonTimePeriod: ITimePeriod
+    timePeriod: TimePeriod
+    comparisonTimePeriod: TimePeriod
   } {
     const endOfOffsetDate = this.applyOffsetToDate(
       date,
@@ -27,11 +28,11 @@ export default class TimePeriodService {
         timeStep
       ).endOf('day')
 
-    const timePeriod: ITimePeriod = this.getLastCompletePeriod(
+    const timePeriod: TimePeriod = this.getLastCompletePeriod(
       lastDayOfCompletePeriod,
       timeStep
     )
-    const comparisonTimePeriod: ITimePeriod = this.getComparisonTimePeriod(
+    const comparisonTimePeriod: TimePeriod = this.getComparisonTimePeriod(
       timePeriod,
       timeStep
     )
@@ -136,7 +137,7 @@ export default class TimePeriodService {
   public getLastCompletePeriod(
     lastDay: DateTime,
     timeStep: TimeStep
-  ): ITimePeriod {
+  ): TimePeriod {
     // calculate last day of the tobe coimpleted period
     const lastCompleteTimePeriod = {
       startDate: this.getStartDateFromEndDateByTimeStep(lastDay, timeStep),
@@ -146,9 +147,9 @@ export default class TimePeriodService {
   }
 
   public getComparisonTimePeriod(
-    timePeriod: ITimePeriod,
+    timePeriod: TimePeriod,
     timeStep: TimeStep
-  ): ITimePeriod {
+  ): TimePeriod {
     let comparisonTimePeriodStartDate: DateTime
     let comparisonTimePeriodEndDate: DateTime
 
@@ -196,7 +197,7 @@ export default class TimePeriodService {
         comparisonTimePeriodEndDate = timePeriod.endDate
     }
 
-    const comparisonTimePeriod: ITimePeriod = {
+    const comparisonTimePeriod: TimePeriod = {
       startDate: comparisonTimePeriodStartDate,
       endDate: comparisonTimePeriodEndDate,
     }
diff --git a/src/targets/services/monthlyReport.ts b/src/targets/services/monthlyReport.ts
index 1fb27090e2c70457c3bfedb952f532fab7e7812b..2901efcd4808ce4e85ce7b1e2d04f13b84abbf79 100644
--- a/src/targets/services/monthlyReport.ts
+++ b/src/targets/services/monthlyReport.ts
@@ -4,7 +4,7 @@ import get from 'lodash/get'
 import { DateTime } from 'luxon'
 import { runService } from './service'
 import { createEmail } from './createEmail'
-import { TimePeriod } from 'services/dataConsumptionContracts'
+import { TimePeriod } from 'models'
 import UserProfileService from 'services/userProfile.service'
 import ConsumptionDataManager from 'services/consumptionDataManagerService'
 import PerformanceIndicatorService from 'services/performanceIndicator.service'
@@ -47,30 +47,30 @@ const monthlyReport = async ({ client }: MonthlyReportProps) => {
   }
 
   // Define period for the mail
-  const period = new TimePeriod(
-    DateTime.local()
+  const period: TimePeriod = {
+    startDate: DateTime.local()
       .minus({
         months: 1,
       })
       .startOf('month'),
-    DateTime.local()
+    endDate: DateTime.local()
       .minus({
         months: 1,
       })
-      .endOf('month')
-  )
-  const comparePeriod = new TimePeriod(
-    DateTime.local()
+      .endOf('month'),
+  }
+  const comparePeriod: TimePeriod = {
+    startDate: DateTime.local()
       .minus({
         months: 2,
       })
       .startOf('month'),
-    DateTime.local()
+    endDate: DateTime.local()
       .minus({
         months: 2,
       })
-      .endOf('month')
-  )
+      .endOf('month'),
+  }
   periodLabel = `${period.startDate.setLocale('fr').toFormat('LLL yyyy')}`
 
   // Retrieve performance for the concerned period
diff --git a/src/utils/date.ts b/src/utils/date.ts
index aac28530cb9be702d9da5a34cc5cf169057e918e..49052ad0ba514117b303e3f886931426ad59f4c6 100644
--- a/src/utils/date.ts
+++ b/src/utils/date.ts
@@ -1,5 +1,6 @@
 import { DateTime } from 'luxon'
-import { ITimePeriod, TimeStep } from '../services/dataConsumptionContracts'
+import { TimeStep } from '../services/dataConsumptionContracts'
+import { TimePeriod } from 'models'
 import { UserChallenge } from 'services/dataChallengeContracts'
 
 export function compareDates(dateA: DateTime, dateB: DateTime) {
@@ -20,7 +21,7 @@ export const formatCompareChallengeDate = (challenge: UserChallenge) => {
 }
 
 export const convertDateByTimeStep = (
-  timeperiod: ITimePeriod | null,
+  timeperiod: TimePeriod | null,
   timeStep: TimeStep,
   header = false
 ): string => {