diff --git a/src/Enum/AgeBracket.ts b/src/Enum/AgeBracket.ts
new file mode 100644
index 0000000000000000000000000000000000000000..24c996c20f489559ae5175a6122a2eac4d1591c2
--- /dev/null
+++ b/src/Enum/AgeBracket.ts
@@ -0,0 +1,36 @@
+enum AgeBracket {
+  '0 meses',
+  '1 mes',
+  '2 meses',
+  '3 meses',
+  '4 meses',
+  '5 meses',
+  '6 meses',
+  '7 meses',
+  '8 meses',
+  '9 meses',
+  '10 meses',
+  '11 meses',
+  '1 año',
+  '2 años',
+  '3 años',
+  '4 años',
+  '5 años',
+  '6 años',
+  '7 años',
+  '8 años',
+  '9 años',
+  '10 años',
+  '11 años',
+  '12 años',
+  '13 años',
+  '14 años',
+  '15 años',
+  '16 años',
+  '17 años',
+  '18-29 años',
+  '30-59 años',
+  '60+ años'
+}
+
+export default AgeBracket;
diff --git a/src/Enum/Sex.ts b/src/Enum/Sex.ts
new file mode 100644
index 0000000000000000000000000000000000000000..924f7cd798470f5cb445026da643d93271978487
--- /dev/null
+++ b/src/Enum/Sex.ts
@@ -0,0 +1,6 @@
+enum Sex {
+  'Masculino',
+  'Femenino'
+}
+
+export default Sex;
diff --git a/src/Models/AgeGroup.ts b/src/Models/AgeGroup.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2ef8fa8eae882c4066ac1be51ec7e0b15281b001
--- /dev/null
+++ b/src/Models/AgeGroup.ts
@@ -0,0 +1,11 @@
+import AgeBracket from '../Enum/AgeBracket'
+import Sex from '../Enum/Sex'
+
+type AgeGroup = {
+  edad: AgeBracket;
+  sexo: Sex;
+  pesoMediano: number;
+  cantidad: number;
+}
+
+export default AgeGroup;
diff --git a/src/Models/EnergeticRequirement.ts b/src/Models/EnergeticRequirement.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b1005f859be9890cc99032fd1d839c8b14e0bb26
--- /dev/null
+++ b/src/Models/EnergeticRequirement.ts
@@ -0,0 +1,6 @@
+type EnergeticRequirement = {
+  requerimientoEnergeticoPerCapita: number;
+  requerimientoEnergeticoTotal: number;
+}
+
+export default EnergeticRequirement;
diff --git a/src/Services/CalculatorService.ts b/src/Services/CalculatorService.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9a2ecae62d934f475a4b42ae6fd461f6410b225c
--- /dev/null
+++ b/src/Services/CalculatorService.ts
@@ -0,0 +1 @@
+import AgeGroup from "../Models/AgeGroup";
\ No newline at end of file
diff --git a/src/Services/SheetService.ts b/src/Services/SheetService.ts
index 79f94f559f76761daa7232daf033ba181fed1962..035452a01fb9a0926ca76e41111d609d1c26c924 100644
--- a/src/Services/SheetService.ts
+++ b/src/Services/SheetService.ts
@@ -1,143 +1,143 @@
-import * as XLSX from 'xlsx';
-import {
-  SheetParserResponse, Menores, Mayores, MenoresSheet, MayoresSheet,
-} from '../Models/SheetParserResponse';
-
-/* PRIVATE FUNCTIONS */
-// const ec = (r: number, c: number): string => XLSX.utils.encode_cell({ r, c });
-// const deleteRow = (ws: XLSX.WorkSheet, rowIndex: number): XLSX.WorkSheet => {
-//   const work = ws;
-//   if (work['!ref'] === undefined) throw new Error('An error has ocurred in deleteRow');
-//   const variable = XLSX.utils.decode_range(work['!ref']);
-//   for (let R = rowIndex; R < variable.e.r; R += 1) {
-//     for (let C = variable.s.c; C <= variable.e.c; C += 1) {
-//       work[ec(R, C)] = work[ec(R + 1, C)];
-//     }
-//   }
-//   variable.e.r -= 1;
-//   work['!ref'] = XLSX.utils.encode_range(variable.s, variable.e);
-//   return work;
-// };
-
-const parseMen = (worksheet: XLSX.WorkSheet): Mayores[] => {
-  const res: Mayores[] = [];
-  const ref = worksheet['!ref'];
-  if (ref === undefined) throw new Error('An error ocurred');
-  const range = XLSX.utils.decode_range(ref);
-  range.s.c = 0;
-  range.e.c = 2;
-  const newRange = XLSX.utils.encode_range(range);
-
-  const aux = XLSX.utils.sheet_to_json(worksheet, { range: newRange }) as unknown as MayoresSheet[];
-
-  aux.forEach((element: MayoresSheet) => {
-    res.push(
-      {
-        edad: element['Edad (años)'],
-        peso: element['Peso (Kg)'],
-        talla: element['Talla (cm)'],
-      },
-    );
-  });
-  return res;
-};
-
-const parseWomen = (worksheet: XLSX.WorkSheet): Mayores[] => {
-  const res: Mayores[] = [];
-  const ref = worksheet['!ref'];
-  if (ref === undefined) throw new Error('An error ocurred');
-  const range = XLSX.utils.decode_range(ref);
-  range.s.c = 0;
-  range.e.c = 2;
-  const newRange = XLSX.utils.encode_range(range);
-
-  const aux = XLSX.utils.sheet_to_json(worksheet, { range: newRange }) as unknown as MayoresSheet[];
-  aux.forEach((element: MayoresSheet) => {
-    res.push(
-      {
-        edad: element['Edad (años)'],
-        peso: element['Peso (Kg)'],
-        talla: element['Talla (cm)'],
-      },
-    );
-  });
-  return res;
-};
-
-const parseMenLessThanAYear = (worksheet: XLSX.WorkSheet): Menores[] => {
-  const res: Menores[] = [];
-  const aux = XLSX.utils.sheet_to_json(worksheet) as unknown as MenoresSheet[];
-  aux.forEach((element: MenoresSheet) => {
-    res.push(
-      {
-        edad: element['Edad (meses)'],
-        peso: element['Peso (Kg)'],
-      },
-    );
-  });
-  return res;
-};
-
-const parseWomenLessThanAYear = (worksheet: XLSX.WorkSheet): Menores[] => {
-  const res: Menores[] = [];
-  const aux = XLSX.utils.sheet_to_json(worksheet) as unknown as MenoresSheet[];
-  aux.forEach((element: MenoresSheet) => {
-    res.push(
-      {
-        edad: element['Edad (meses)'],
-        peso: element['Peso (Kg)'],
-      },
-    );
-  });
-  return res;
-};
-
-/* EXPORT FUNCTIONS */
-
-const parseSheetService = (data: Buffer): SheetParserResponse => {
-  const workbook: XLSX.WorkBook = XLSX.read(data);
-  let parsed: SheetParserResponse = null;
-  let hombresMenores: Menores[] = [];
-  let hombres: Mayores[] = [];
-  let mujeresMenores: Menores[] = [];
-  let mujeres: Mayores[] = [];
-
-  const sheetNames: string[] = workbook.SheetNames;
-  // Check there are 4 sheets, no more, no less
-  if (sheetNames.length !== 4) {
-    throw new Error('File does not respect scheme, there are more or less than 4 sheets');
-  }
-  sheetNames.forEach((name) => {
-    const worksheet: XLSX.WorkSheet = workbook.Sheets[name];
-    switch (name) {
-      case 'Hombres<1':
-        hombresMenores = parseMenLessThanAYear(worksheet);
-        break;
-      case 'Hombres':
-        hombres = parseMen(worksheet);
-        break;
-      case 'Mujeres<1':
-        mujeresMenores = parseWomenLessThanAYear(worksheet);
-        break;
-      case 'Mujeres':
-        mujeres = parseWomen(worksheet);
-        break;
-
-      default:
-        throw new Error(`Sheet name ${name} is not part of the scheme `);
-    }
-  });
-  parsed = {
-    hombresMenores,
-    hombres,
-    mujeresMenores,
-    mujeres,
-  };
-
-  return parsed;
-  // TODO: depends on sheet layout what to do
-};
-
-export default {
-  parseSheetService,
-};
+import * as XLSX from 'xlsx';
+import {
+  SheetParserResponse, Menores, Mayores, MenoresSheet, MayoresSheet,
+} from '../Models/SheetParserResponse';
+
+/* PRIVATE FUNCTIONS */
+// const ec = (r: number, c: number): string => XLSX.utils.encode_cell({ r, c });
+// const deleteRow = (ws: XLSX.WorkSheet, rowIndex: number): XLSX.WorkSheet => {
+//   const work = ws;
+//   if (work['!ref'] === undefined) throw new Error('An error has ocurred in deleteRow');
+//   const variable = XLSX.utils.decode_range(work['!ref']);
+//   for (let R = rowIndex; R < variable.e.r; R += 1) {
+//     for (let C = variable.s.c; C <= variable.e.c; C += 1) {
+//       work[ec(R, C)] = work[ec(R + 1, C)];
+//     }
+//   }
+//   variable.e.r -= 1;
+//   work['!ref'] = XLSX.utils.encode_range(variable.s, variable.e);
+//   return work;
+// };
+
+const parseMen = (worksheet: XLSX.WorkSheet): Mayores[] => {
+  const res: Mayores[] = [];
+  const ref = worksheet['!ref'];
+  if (ref === undefined) throw new Error('An error ocurred');
+  const range = XLSX.utils.decode_range(ref);
+  range.s.c = 0;
+  range.e.c = 2;
+  const newRange = XLSX.utils.encode_range(range);
+
+  const aux = XLSX.utils.sheet_to_json(worksheet, { range: newRange }) as unknown as MayoresSheet[];
+
+  aux.forEach((element: MayoresSheet) => {
+    res.push(
+      {
+        edad: element['Edad (años)'],
+        peso: element['Peso (Kg)'],
+        talla: element['Talla (cm)'],
+      },
+    );
+  });
+  return res;
+};
+
+const parseWomen = (worksheet: XLSX.WorkSheet): Mayores[] => {
+  const res: Mayores[] = [];
+  const ref = worksheet['!ref'];
+  if (ref === undefined) throw new Error('An error ocurred');
+  const range = XLSX.utils.decode_range(ref);
+  range.s.c = 0;
+  range.e.c = 2;
+  const newRange = XLSX.utils.encode_range(range);
+
+  const aux = XLSX.utils.sheet_to_json(worksheet, { range: newRange }) as unknown as MayoresSheet[];
+  aux.forEach((element: MayoresSheet) => {
+    res.push(
+      {
+        edad: element['Edad (años)'],
+        peso: element['Peso (Kg)'],
+        talla: element['Talla (cm)'],
+      },
+    );
+  });
+  return res;
+};
+
+const parseMenLessThanAYear = (worksheet: XLSX.WorkSheet): Menores[] => {
+  const res: Menores[] = [];
+  const aux = XLSX.utils.sheet_to_json(worksheet) as unknown as MenoresSheet[];
+  aux.forEach((element: MenoresSheet) => {
+    res.push(
+      {
+        edad: element['Edad (meses)'],
+        peso: element['Peso (Kg)'],
+      },
+    );
+  });
+  return res;
+};
+
+const parseWomenLessThanAYear = (worksheet: XLSX.WorkSheet): Menores[] => {
+  const res: Menores[] = [];
+  const aux = XLSX.utils.sheet_to_json(worksheet) as unknown as MenoresSheet[];
+  aux.forEach((element: MenoresSheet) => {
+    res.push(
+      {
+        edad: element['Edad (meses)'],
+        peso: element['Peso (Kg)'],
+      },
+    );
+  });
+  return res;
+};
+
+/* EXPORT FUNCTIONS */
+
+const parseSheetService = (data: Buffer): SheetParserResponse => {
+  const workbook: XLSX.WorkBook = XLSX.read(data);
+  let parsed: SheetParserResponse = null;
+  let hombresMenores: Menores[] = [];
+  let hombres: Mayores[] = [];
+  let mujeresMenores: Menores[] = [];
+  let mujeres: Mayores[] = [];
+
+  const sheetNames: string[] = workbook.SheetNames;
+  // Check there are 4 sheets, no more, no less
+  if (sheetNames.length !== 4) {
+    throw new Error('File does not respect scheme, there are more or less than 4 sheets');
+  }
+  sheetNames.forEach((name) => {
+    const worksheet: XLSX.WorkSheet = workbook.Sheets[name];
+    switch (name) {
+      case 'Hombres<1':
+        hombresMenores = parseMenLessThanAYear(worksheet);
+        break;
+      case 'Hombres':
+        hombres = parseMen(worksheet);
+        break;
+      case 'Mujeres<1':
+        mujeresMenores = parseWomenLessThanAYear(worksheet);
+        break;
+      case 'Mujeres':
+        mujeres = parseWomen(worksheet);
+        break;
+
+      default:
+        throw new Error(`Sheet name ${name} is not part of the scheme `);
+    }
+  });
+  parsed = {
+    hombresMenores,
+    hombres,
+    mujeresMenores,
+    mujeres,
+  };
+
+  return parsed;
+  // TODO: depends on sheet layout what to do
+};
+
+export default {
+  parseSheetService,
+};
diff --git a/src/index.ts b/src/index.ts
index 9fdd678e0bcf2d912ae8503fedaa1f7dedd5552b..18ca99641af256dff1c9124dfe8db221d31d945c 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,49 +1,49 @@
-/* eslint-disable no-console */
-import express, { Application } from 'express';
-import 'dotenv/config';
-import cors from 'cors';
-import swaggerJsDoc, { Options } from 'swagger-jsdoc';
-import swaggerUi from 'swagger-ui-express';
-import Routes from './routes';
-
-const app: Application = express();
-const PORT = process.env.PORT || 8000;
-
-// swagger init
-const swaggerOptions: Options = {
-  swaggerDefinition: {
-    openapi: '3.0.0',
-    info: {
-      title: 'REPP Rest API',
-      version: '1.0.0',
-      description: '',
-      servers: ['http://localhost:3000'],
-    },
-  },
-  apis: ['src/routes.ts'],
-};
-const swaggerDocs = swaggerJsDoc(swaggerOptions);
-
-// middlewares
-app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs));
-
-app.use(express.json({
-  limit: '50mb',
-}));
-app.use(express.urlencoded({ extended: false }));
-app.use(cors({
-  origin: '*',
-  methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
-  preflightContinue: false,
-  optionsSuccessStatus: 204,
-}));
-
-app.use(express.raw({
-  limit: '50mb',
-}));
-
-app.use(Routes);
-
-app.listen(PORT, (): void => {
-  console.log(`REPP Backend running here 👉 https://localhost:${PORT}`);
-});
+/* eslint-disable no-console */
+import express, { Application } from 'express';
+import 'dotenv/config';
+import cors from 'cors';
+import swaggerJsDoc, { Options } from 'swagger-jsdoc';
+import swaggerUi from 'swagger-ui-express';
+import Routes from './routes';
+
+const app: Application = express();
+const PORT = process.env.PORT || 8000;
+
+// swagger init
+const swaggerOptions: Options = {
+  swaggerDefinition: {
+    openapi: '3.0.0',
+    info: {
+      title: 'REPP Rest API',
+      version: '1.0.0',
+      description: '',
+      servers: ['http://localhost:3000'],
+    },
+  },
+  apis: ['src/routes.ts'],
+};
+const swaggerDocs = swaggerJsDoc(swaggerOptions);
+
+// middlewares
+app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocs));
+
+app.use(express.json({
+  limit: '50mb',
+}));
+app.use(express.urlencoded({ extended: false }));
+app.use(cors({
+  origin: '*',
+  methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
+  preflightContinue: false,
+  optionsSuccessStatus: 204,
+}));
+
+app.use(express.raw({
+  limit: '50mb',
+}));
+
+app.use(Routes);
+
+app.listen(PORT, (): void => {
+  console.log(`REPP Backend running here 👉 https://localhost:${PORT}`);
+});