diff --git a/src/targets/services/monthlySummary.js b/src/targets/services/monthlySummary.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a4d8dd6e556019dd18b804dd5e6e740b9d6f2d3f 100644
--- a/src/targets/services/monthlySummary.js
+++ b/src/targets/services/monthlySummary.js
@@ -0,0 +1,61 @@
+import moment from 'moment-timezone'
+import { ENEDIS_DAY_DOCTYPE, GRDF_DAY_DOCTYPE, EGL_DAY_DOCTYPE } from 'doctypes'
+import logger from 'cozy-logger'
+import { sumBy } from 'lodash'
+import { runService } from './service'
+
+moment.tz.setDefault('Europe/Paris')
+const log = logger.namespace('monthly_summary')
+
+// Get last month limits
+const getPeriod = () => {
+  const end = moment().startOf('month')
+
+  const start = end
+    .clone()
+    .subtract(1, 'month')
+    .startOf('month')
+
+  end = start.clone().endOf('month')
+  return { start, end }
+}
+
+const fetchConsumptionsForPeriod = period => {
+  return ENEDIS_DAY_DOCTYPE.queryAll({
+    date: {
+      $gte: period.start,
+      $lt: period.end,
+    },
+  })
+}
+
+const getMeanOnPeriod = (consumptions, period) => {
+  const end = moment(period.end)
+  const start = moment(period.start)
+
+  const nbdays = end.diff(start, 'days')
+
+  const total = Math.abs(
+    sumBy(consumptions, consumptions => consumptions.value)
+  )
+  const mean = total / nbdays
+
+  return mean
+}
+
+const monthlySummaryStats = async () => {
+  log('info', 'Fetching datas...')
+
+  const period = getPeriod()
+  const consumptions = await fetchConsumptionsForPeriod(period)
+  const meanConsumptions = getMeanOnPeriod(consumptions, period)
+
+  log(
+    'info',
+    `${consumptions.length} consumptions between ${period.start} and ${period.end}`
+  )
+
+  //create doctype ecran stats
+}
+
+runService(monthlySummaryStats)
diff --git a/src/targets/services/service.js b/src/targets/services/service.js
new file mode 100644
index 0000000000000000000000000000000000000000..cfc55f898818f5b8bc564db758ec1900d3c1f3b1
--- /dev/null
+++ b/src/targets/services/service.js
@@ -0,0 +1,22 @@
+import CozyClient from 'cozy-client'
+import { schema } from 'doctypes'
+import { Document } from 'cozy-doctypes'
+
+// TODO Check to use CozyClient.fromEnv
+export const runService = service => {
+  const data = root.dataset
+  const protocol = window.location ? window.location.protocol : 'https:'
+
+  const client = new CozyClient({
+    uri: `${protocol}//${data.cozyDomain}`,
+    token: data.cozyToken,
+    schema,
+  })
+  Document.registerClient(client)
+
+  return service({ client }).catch(e => {
+    // eslint-disable-next-line no-console
+    console.error(e)
+    process.exit(1)
+  })
+}