Skip to content

marelycarcamo/Sustainable-growth-monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sustainable Growth Monitor 📈🌿

"La sostenibilidad no es un costo, es la inversión más rentable que puedes hacer."

Sostenibilidad en Rentabilidad


Indice


Este repositorio contiene mi trabajo en la capa de ingeniería de datos del proyecto Sustainable Growth Monitor (SGM), encargado de la preparación y estructuración de datos para su uso en análisis y visualización.


🌱 Proyecto: Análisis de Sustentabilidad & Negocios (No Country)

Una solución integral para la gestión de datos de sustentabilidad en PyMEs, combinando ingeniería de datos y visualización avanzada.


🎯Visión General del Proyecto

En el entorno empresarial actual, las pequeñas y medianas empresas (PYMES) enfrentan el desafío de equilibrar la rentabilidad financiera con la responsabilidad ambiental y social. El Sustainable Growth Monitor es una infraestructura de datos diseñada para cerrar la brecha entre el rendimiento económico y los criterios ESG (Environmental, Social, and Governance). Como producto de datos, esta solución consolida métricas críticas en una "Fuente Única de Verdad" (Single Source of Truth) . Al integrar indicadores de sostenibilidad en un entorno unificado, transformamos la toma de decisiones: pasamos de un cumplimiento reactivo a una gestión proactiva. La sostenibilidad deja de ser un costo para convertirse en una palanca de eficiencia operativa.

- Objetivo del Proyecto

Desarrollar un ecosistema de análisis que permita a las PYMES monitorear su desempeño integral. La premisa central es técnica y estratégica: la sostenibilidad y la rentabilidad están correlacionadas positivamente . El objetivo es demostrar que la eficiencia en recursos impacta directamente en el margen neto.

- Objetivos Estratégicos

  • Centralización de Datos : Unificar KPIs financieros y métricas ESG mediante una arquitectura de datos robusta y escalable.
  • Gestión por Excepción : Implementar sistemas de alertas y umbrales dinámicos para identificar desviaciones críticas en tiempo real.
  • Análisis de Correlación : Evidenciar el impacto de iniciativas "verdes" (ej. reducción de consumo energético sobre el estado de resultados).

- Sector y Audiencia

Sector: Sostenibilidad Audiencia objetivo: PyMEs que buscan integrar la gestión de impacto ambiental con su rentabilidad operativa, sin necesidad de herramientas separadas o equipos especializados en ESG.


🛠️ Problemática y Solución

- El Desafío

Históricamente, las PYMES operan con silos de información . Utilizan hojas de cálculo independientes para finanzas, consumo energético y recursos humanos, lo que impide visualizar cómo el ahorro de recursos optimiza los beneficios económicos.

- Nuestra Propuesta

Hemos diseñado un panel interactivo que actúa como un integrador inteligente de datos:

  1. Integración de Datos : Conexión de fuentes financieras, ambientales y sociales en un motor de procesamiento eficiente (DuckDB).
  2. Transparencia ESG : Proporciona trazabilidad real, permitiendo a las empresas transitar desde el greenwashing hacia una gestión basada en evidencias.
  3. Valor para Stakeholders : Facilita la generación de reportes para inversionistas y clientes que exigen altos estándares de responsabilidad corporativa.

Ruta de Implementación

git Ruta de implementación


📁 Estructura del repositorio


S03-26-Equipo-47-Business-Intelligence/
│
├── database/
│ ├── schema.sql # DDL completo (tablas, FK, índices)
│ └── technova.duckdb # Base de datos analítica (DuckDB)
│
├── etl/
│ └── load.ipynb # Script de carga a DuckDB (full-refresh)
│
├── notebooks/
│ ├── 01_load_data.ipynb # Extracción desde GitHub
│ ├── 02_clean_data.ipynb # Limpieza y validación
│ └── 03_build_star_schema.ipynb # Construcción del modelo estrella
│
├── data/
│ ├── loaded/ # Datos raw (descargados)
│ ├── clean/ # Datos limpios
│ └── curated/ # Modelo estrella (CSV)
│
├── image/README/
| ├── modelo_datos.png
| ├── ruta_implementacion.png
| ├── mejoras_propuestas.png
| └── sostenibilidad_en_rentabilidad.png
|
├── .gitignore # Ignorar archivos sensibles o de gran tamaño
├── config.yaml
├── home.py
├── main.py
├── pyproyecto.toml
├── README.md # Este archivo
└── requirements.txt # Dependencias Python


Relación con el Script de Carga

El script etl/load.ipynb no reemplaza los notebooks, sino que los complementa:

Notebook Scripts
Genera los CSV Carga los CSV a Duckdb
Transformación (T) Carga (L)
Análisis exploratorio Proceso automatizado y reproducible

El flujo completo es:


GitHub (raw)
    ↓
01\_load\_data.ipynb   →  data/loaded/
    ↓
02\_clean\_data.ipynb  →  data/clean/
    ↓
03\_build\_star\_schema.ipynb →  data/curated/
    ↓
etl/load.ipynb          →  database/technova.duckdb (modelo estrella)


Stack Tecnológico

PythonPandasNumpyDuckdb


🦆 Arquitectura y Flujo de Datos

Arquitectura y modelo estrella

La solución se sustenta en un diseño de Modelo Estrella (Star Schema) implementado en DuckDB. Esta elección técnica es fundamental para optimizar el rendimiento de las consultas OLAP y permitir el cross-functional slicing, facilitando que un Data Product Manager pueda analizar, por ejemplo, la huella de carbono segmentada por el área de producción o por proyectos de sostenibilidad específicos.

Orígen de datos: sintéticos simulados para reflejar tendencias realistas. Se generan mediante scripts de Python que modelan comportamientos típicos (crecimiento de ingresos, reducción de consumo energético, fluctuaciones en la huella de carbono).

Modelo de Entidades:

  • fact_monitoreo (Tabla de Hechos): Almacena el historial de mediciones. Incluye el atributo calidad_dato (Validado / Estimado / Provisional), esencial para construir la confianza ejecutiva en los reportes.
  • dim_tiempo: Dimensionamiento temporal para análisis de series de tiempo.
  • dim_metrica: Catálogo maestro que normaliza las reglas de negocio.
  • dim_area: Estructura organizacional para análisis departamental.
  • dim_empleado / dim_proveedor: Dimensiones operativas que enriquecen el análisis de impacto social y gobernanza.
  • dim_objetivo: Entidad para el seguimiento de metas anuales y retorno de inversión en iniciativas verdes.
  • dim_categoria: Entidad de identificación de categoría de productos.

*Atributos Clave de dim_metrica Contiene metadatos críticos como id_metrica, nombre, categoría (Financiera, E, S, G), unidad, prioridad y la fórmula de cálculo. Esta estructura permite escalar el sistema añadiendo nuevos KPIs sin alterar la lógica de las consultas existentes.

Modelo de Datos


Pipeline ETL: De Datos Raw a Insights Curados

Origen de datos: sintéticos simulados para reflejar tendencias realistas. Se generan mediante scripts de Python que modelan comportamientos típicos (crecimiento de ingresos, reducción de consumo energético, fluctuaciones en la huella de carbono).

El motor de confiabilidad del sistema es su pipeline de Extracción, Transformación y Carga (ETL). Implementar prácticas de idempotencia y logging estructurado garantiza que los procesos de carga puedan re-ejecutarse sin duplicar datos y manteniendo una traza de auditoría completa en la tabla metadata_carga.

Flujo de Trabajo Técnico

Notebook Fase Función Principal
01_load_data 🚀 Extracción Ingesta desde raw y normalización inicial de tipos. (ej. Kwh_totales)
02_clean_data 🧹 Limpieza Aplicación de reglas de calidad (ej. salarios o consumo negativo => 0)
03_build_star_schema ⭐ Modelado Agregación de métricas y construcción de dimensiones únicas para el esquema estrella.

Robustez e Integridad de Datos El sistema garantiza la integridad referencial del ecosistema ESG mediante la resolución proactiva de errores técnicos:

  • Manejo de ConstraintException: Uso de subconsultas para la asignación manual de IDs en tablas de auditoría.
  • Orden de Carga: Se garantiza la carga de dimensiones antes que hechos para evitar violaciones de Foreign Key.
  • Validación de Tipos: Conversión explícita de fechas (resolución de AttributeError: .dt accessor) para asegurar que la lógica temporal de negocio sea consistente en todos los niveles.

🚀01_load_data.ipynb – Extracción desde GitHub

Concepto Descripción
Propósito Descargar los archivos CSV originales desde el repositorio remoto y guardárlos localmente.
Entradas URLs públicas en GitHub (rama development)
Salidas Archivos raw.csv en data/loaded/
Transformaciones
aplicadas
Conversión inicial de fechas a datetime, cálculo de kwh_totales y tasa_reciclaje, manejo de comillas en personal_nomina.
Cuando ejecutarlo Siempre que se necesiten los datos originales frescos (por ejemplo, si el equipo actualizó los CSVs en GitHub).

Archivos generados:


data/loaded/
├── compras_raw.csv
├── consumo_energetico_raw.csv
├── encuestas_raw.csv
├── eventos_rrhh_raw.csv
├── personal_nomina_raw.csv
├── residuos_raw.csv
└── ventas_raw.csv



🧹02_clean_data.ipynb – Limpieza y validación

Concepto Descripción
Propósito Aplicar reglas de calidad de datos para obtener datasets consistentes y sin errores.
Entradas Archivos _raw.csv generados en el paso anterior.
Salidas Archivos _clean.csv en data/clean/
Tansformaciones
aplicadas
Eliminación de duplicados, corrección de valores fuera de rango, manejo de nulos, normalización de unidades.
Cuando
Ejecutarlo
Después de cada extracción, o si se modifican las reglas de limpieza.

Archivos generados:


data/clean/
├── compras_clean.csv
├── consumo_energetico_clean.csv
├── encuestas_clean.csv
├── eventos_rrhh_clean.csv
├── personal_nomina_clean.csv
├── residuos_clean.csv
└── ventas_clean.csv

⭐03_build_star_schema.ipynb – Construcción del modelo estrella

Concepto Descripción
Propósito Construir las tablas de dimensiones y la tabla de hechos que alimentaránn el dashboard.
Entrada Archivos _clean.csv generados en el paso anterior.
Salidas Archivos CSV en data/curated/ (modelo estrella)
Transformaciones
aplicadas
Creación de dimensiones únicas (tiempo, área, empleado, proveedores, métricas), agregación de métricas por periodo, construcción de dact_monitoreo.
Cuando
ejecutarlo
Cada vez que se modifiquen los datos limpios o se quiera regerar un modelo estrella.

Archivos generados:


data/curated/
├── dim_area.csv
├── dim_categoria.csv
├── dim_empleado.csv
├── dim_metrica.csv
├── dim_objetivo.csv
├── dim_proveedor.csv
├── dim_tiempo.csv
└── fact_monitoreo.csv


Mejora Propuesta (post‑hackathon)

Mejoras Propuestas

1. Carga dinámica de archivos CSV mediante formulario

Problema actual: Los datos están fijos (simulados). Para usar el dashboard en una empresa real, alguien tendría que reemplazar manualmente los archivos en data/raw/ y re‑ejecutar los notebooks.

Mejora propuesta: Incorporar en la propia app de Streamlit un formulario de carga de archivos que permita al usuario subir sus propios CSV (con el mismo esquema esperado). El sistema validaría el formato, limpiaría los datos y reconstruiría la base de datos DuckDB automáticamente.

Valor para la empresa:

  • Autonomía total – El cliente puede actualizar sus datos sin depender del equipo técnico.
  • Reproducibilidad – La app se convierte en un producto cerrado que cualquier PyME puede usar con sus propios datos.
  • Onboarding sencillo – Solo necesita exportar sus CSV con las columnas esperadas.
  • Viabilidad técnica (Streamlit + DuckDB):

    Ejemplo conceptual dentro de app.py
      uploaded_file = st.file_uploader("Sube tus ventas (CSV)", type="csv")
      if uploaded_file:
          df = pd.read_csv(uploaded_file)
          # Validar columnas mínimas
          # Guardar en data/raw/ o procesar directamente
          # Reconstruir la base de datos DuckDB
          # Mostrar preview y opción de "actualizar dashboard"

Tiempo estimado de desarrollo: 1‑2 días (dependiendo de la complejidad de la validación).

2. Proyecciones (forecasting) en el dashboard

Problema actual: El dashboard muestra solo datos históricos. La empresa no puede anticipar tendencias futuras (ej: ¿cuándo alcanzaré la meta de reciclaje?).

Mejora propuesta: Añadir un módulo de proyecciones utilizando modelos simples de series temporales (por ejemplo, regresión lineal, suavizado exponencial o Prophet). El usuario podría elegir una métrica (ingresos, huella de carbono, etc.) y un horizonte de predicción (3, 6, 12 meses). El gráfico mostraría histórico + predicción con un intervalo de confianza.

Valor para la empresa:

  • Anticipación – Permite ajustar la estrategia antes de llegar a un umbral crítico.
  • Planificación – Ayuda a presupuestar iniciativas de sostenibilidad (inversión en energías renovables, formación, etc.).
  • Demuestra madurez analítica – Diferencia al dashboard de un simple reporte.
  • Viabilidad técnica (Streamlit + statsmodels / scikit‑learn):

    from sklearn.linear_model import LinearRegression
    # o usar Prophet (más potente pero más lento)
    # Entrenar con datos históricos de fact_monitoreo
    # Predecir siguientes períodos
    # Mostrar en Plotly con línea de tendencia y banda de incertidumbre

Tiempo estimado de desarrollo: 1‑2 días (modelo básico) o 3‑4 días (modelo avanzado con estacionalidad).

3. Comparación con benchmarks del sector (análisis competitivo)

Problema actual: La PyME solo ve sus propios datos. No sabe si su tasa de reciclaje o su consumo energético están por encima o por debajo de la media de su industria.

Solución propuesta: Incorporar un módulo de benchmarking que permita cargar (o suscribirse a) métricas agregadas anonimizadas del sector. El dashboard mostraría, por ejemplo: “Tu huella de carbono está un 12% por debajo del promedio de empresas de tu tamaño en el rubro retail”.

Valor para la empresa:

Contexto externo – Saber si estás realmente mejorando frente a tu competencia.

Ventaja competitiva – Puedes certificar que estás por encima del estándar ESG.

Atractivo comercial – Los informes de sostenibilidad con benchmarks son más valorados por inversores.

Viabilidad técnica:

  • Requiere una base de datos de benchmarks (puede ser un CSV público o un servicio externo).
  • La carga podría ser manual (el usuario sube un archivo de referencia) o conectarse a APIs de organismos sectoriales.

Esfuerzo estimado: 2‑3 días.


Conclusiones y Hallazgos Estratégicos

El Sustainable Growth Monitor demuestra que el éxito empresarial moderno es indisociable de la responsabilidad integral. A través de una arquitectura de datos escalable en DuckDB, una metodología de ingeniería rigurosa y un dashboard interactivo en Streamlit, este MVP profesional proporciona a las PyMEs la capacidad de competir en un mercado que exige transparencia y eficiencia.

Hallazgos y valor estrategico

🔬 Validación de la Hipótesis Central

La premisa fundamental del proyecto es que la sostenibilidad y la rentabilidad están correlacionadas positivamente. El dashboard incluye un módulo específico de análisis de correlaciones (pages/4_Correlaciones.py) que permite probar esta hipótesis con datos reales. Los análisis implementados permiten descubrir relaciones como:

  • Consumo energético vs. Ingresos: Mide cómo la actividad económica impacta en el uso de recursos, y calcula la intensidad energética (kWh/ARS) para evaluar la eco-eficiencia.
  • Tasa de reciclaje vs. Satisfacción laboral: Explora si las prácticas sostenibles mejoran el clima laboral y el orgullo de pertenencia.
  • Capacitación vs. Ingresos: Evalúa el retorno de la inversión en desarrollo profesional.
  • Análisis personalizado: El usuario puede seleccionar cualquier par de métricas para calcular su correlación de Pearson, obteniendo scatter plot con regresión lineal, coeficiente y nivel de significancia.

Estos análisis, acompañados de interpretaciones automáticas en lenguaje natural, transforman los datos en evidencia accionable: las iniciativas verdes no son un costo, sino una inversión con retorno medible.

🎯 Hallazgos Clave (basados en los datos simulados)

Hallazgo Implicancia Estratégica
Mejora continua en eficiencia energética La intensidad energética (kWh/ARS) muestra una tendencia decreciente, indicando que el crecimiento de ingresos no está atado linealmente al consumo de recursos. Oportunidad para certificaciones y ahorros.
Correlación positiva entre reciclaje y satisfacción laboral Las prácticas ambientales fortalecen la cultura organizacional. Comunicar los logros ESG puede mejorar la retención del talento.
Impacto de la capacitación en ingresos Existe una relación positiva (aunque no siempre lineal) entre horas de formación y resultados comerciales. Validación cuantitativa para justificar presupuestos de RRHH.
Alertas tempranas sobre desviaciones críticas El sistema de semáforo (🔴🟡🟢) detecta automáticamente márgenes netos bajos (<5%), consumo energético excesivo (>150,000 kWh) o tasas de reciclaje insuficientes (<30%), permitiendo actuar antes de que se conviertan en problemas financieros o reputacionales.

💡 Valor Estratégico para la PyME

Dimensión Beneficio Concreto
Toma de decisiones basada en datos Los KPIs financieros y ESG se integran en una única fuente de verdad, eliminando silos y contradicciones entre hojas de cálculo.
Gestión por excepción Las alertas visuales y las recomendaciones dinámicas priorizan las acciones correctivas, ahorrando tiempo de análisis.
Transparencia y reporting La trazabilidad desde los datos raw (CSV) hasta el dashboard permite generar reportes para inversores, clientes o reguladores con total confianza.
Ventaja competitiva Demostrar desempeño ESG sólido es un diferenciador clave en mercados cada vez más exigentes.

📌 Conclusión Final

La "Sostenibilidad Rentable" se establece aquí como el nuevo estándar competitivo. Al monitorear eficazmente la huella de carbono y el consumo de recursos en paralelo con los resultados financieros, las empresas no solo optimizan su resiliencia ante riesgos climáticos o regulatorios, sino que fortalecen su estructura de costos y su propuesta de valor ante inversores y clientes.

Este proyecto demuestra que invertir en sostenibilidad es invertir en rentabilidad a largo plazo. El código, los datos simulados y el dashboard están diseñados para ser fácilmente adaptables a casos reales, proporcionando una herramienta valiosa para la gestión integral del desempeño empresarial.


"Lo que no se mide, no se mejora. Lo que se mejora, se rentabiliza."


📣 Instalación y Uso

El repositorio está listo para clonar y ejecutar. Sigue las instrucciones de configuración y en 10 minutos tendrás el dashboard funcionando con datos simulados. 🔗 Enlace al repositorio

Sigue estos pasos para ejecutar el proyecto en local.

Requisitos Previos

  • Python 3.12 o superior instalado.
  • Git (opcional, para clonar el repositorio).
  • Conexión a internet (para descargar dependencias y datos simulados desde GitHub).

1. Clonar Repositorio


git clone https://github.com/No-Country-simulation/S03-26-Equipo-47-Business-Intelligence.git
cd S03-26-Equipo-47-Business-Intelligence

2. Crear Entorno Virtual e Instalar Dependencias

Windows


python -m venv venv
venv\Scripts\activate

Linux/Mac


python3 -m venv venv
source venv/bin/activate

3. Instalar dependencias


pip install -r requirements.txt

Si no tienes el archivo requirements.txt, instala manualmente los paquetes principales:


pip install pandas duckdb streamlit plotly jupyter

4. Ejecutar Notebooks (carga, limpieza y modelo)

Desde la raíz del proyecto, lanza Jupyter Lab o Notebook:


jupyter notebook

Abre y ejecuta en orden los siguientes notebooks (puedes usar Cell -> Run All en cada uno):

Orden Notebook Función
1 notebooks/01_load_data.ipynb Descarga los datos raw desde GitHub
2 notebooks/02_clean_data.ipynb Limpia y valida los datos
3 notebooks/03_build_star_schema.ipynb Construye el modelo estrella (dimensiones y hechos)

5. Cargar los datos a Duckdb

Ejecutar el script de carga (full-fresh)


python etl/load.ipynb

Este comando creará la base de datos database/technova.duckdb con todas las tablas listas para consumir.

6. Ejecutar el Dashboard (Streamlit)


streamlit run main.py

Nota: El archivo main.py será desarrollado por el BI Developer. Si aún no existe, puedes comenzar con un esqueleto básico que cargue la base de datos y muestre una tabla de ejemplo.

7. (Opcional) Verificar la base de datos

Puedes hacer consultas directas a DuckDB desde la terminal:


python -c "import duckdb; conn = duckdb.connect('database/technova.duckdb'); print(conn.execute('SHOW TABLES').fetchall())"


Hackathon-NoCountry License-MIT

Proyecto realizado por Marely Cárcamo con repositorio espejo del Hackathon de No Country. Este repositorio es un MVP profesional que demuestra cómo la sostenibilidad puede ser un motor de rentabilidad para las PYMES. El código, los datos simulados y el dashboard están diseñados para ser fácilmente adaptables a casos reales, proporcionando una herramienta valiosa para la gestión integral del desempeño empresarial. Abril 2026.


Releases

No releases published

Packages

 
 
 

Contributors