Skip to content

Sistema para generar reportes (en Excel y PDF) automáticamente y crear predicciones del total de futuras ventas a partir de datos históricos. El sistema descarga directamente el archivo csv de datos abiertos de Argentina y lo almacena en el directorio: "data/ingest". Luego de generarse y cifrarse los reportes, son enviados por E-mail

License

Notifications You must be signed in to change notification settings

juancaalcaraz/automatizacion-de-reportes-de-ventas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automatización de Reportes y predicción de Ventas

Automatiza reportes de ventas, predicción de ingresos y envío seguro de informes por email para equipos comerciales.

banner


Tabla de Contenido


Sobre el proyecto

Este sistema automatiza la generación y distribución de reportes de ventas utilizando datos reales. Produce informes en Excel y PDF, incluyendo KPIs clave, tablas dinámicas y gráficos, con un formato profesional listo para compartir con directivos o equipos comerciales.

Además, incorpora predicción de ventas a 3 meses mediante modelos estadísticos(ETS), proporcionando un pronóstico confiable del total de ventas futuras. Los resultados se protegen con cifrado jerárquico: los PDFs cuentan con contraseña owner y user (limitando impresión y copia por defecto), y los archivos Excel tienen celdas bloqueadas para evitar modificaciones no autorizadas. El forecast también queda protegido y no puede ser editado.

Esto lo convierte en una solución ideal para equipos de ventas, retail, cadenas de tiendas, ditribución, empresas con regulaciones (datos sensibles, contabilidad, etc.) que necesitan informes seguros y sin intervención manual.


Beneficios para tu negocio

  • Ahorra tiempo y esfuerzo cada mes.
  • Genera reportes listos para dirección o reuniones.
  • Predice ventas esperadas a partir de la tendencia y los datos históricos.
  • Envía informes automáticamente por correo electrónico
    (funcionalidad desactivada por defecto; requiere configurar emisor y receptor. Se recomienda usar variables de entorno para no exponer datos sensibles).
  • Reduce errores asociados a reportes manuales.

¿Cómo funciona?

  1. Se descargan y limpian los datos.
  2. Se calculan KPIs importantes (ventas totales, tendencia, etc.).
  3. Se generan gráficos y un PDF ejecutivo.
  4. Se exporta un Excel detallado.
  5. Se envía el informe por email automáticamente.

⬅️ |🏠| ➡️


Tecnologías utilizadas

  • Python 3.9
  • pandas
    Manipulación y análisis de datos.
  • matplotlib Generación de gráficos y visualizaciones.
  • reportlab
    Creación de reportes ejecutivos en PDF.
  • openpyxl
    Generación de archivos Excel con múltiples hojas.
  • statsmodels
    Modelado estadístico y predicción de series de tiempo (Holt-Winters).

Cómo probarlo.

Para probar el sistema sigue estos pasos.

  1. Clona este repositorio:
git clone https://github.com/juancaalcaraz/automatizacion-de-reportes-de-ventas.git
  1. Abrí el directorio del proyecto:
cd automatizacion-de-reportes-de-ventas
  1. Instala las dependencias del sistema:
# instalar dependencias
pip install -r requirements.txt
  1. Ejecuta el archivo main.py
# ejecutar
python main.py

Esto generará los reportes de ventas y las predicciones de los próximos 3 meses en la carpeta outputs la cual se genera tras la primer ejecución.

Nota técnica

Por defecto se usa el archivo csv de ventas de supermercados en argentina el cual se descarga directamente desde la URL del data set. Para proporcionar otro origen de datos debes hacerlo a traves del archivo config.py en la constante URL.

⬅️ |🏠| ➡️


Ejemplos de salida

Reporte de ventas (Excel)

Primera hoja del reporte
Muestra los KPI de ventas reales del último mes, la variación interanual y la participación de los canales online.

Primera hoja del reporte

Segunda hoja del reporte
Contiene el historial de ventas utilizado para el análisis y la predicción.

Segunda hoja del reporte

Predicción de ventas

Originalmente, el sistema se desarrolló utilizando el modelo Holt-Winters (Suavizado Exponencial Triple). Tras una fase de validación y mejora, se migró hacia ETS (Error-Trend-Seasonal) como motor principal. Este modelo se entrena cada ves que el sistema se ejecuta, actualizando sus estimaciones con la información más reciente.

Validación del modelo

Antes de entrenarse con todo el data set, el modelo realizo predicciones para el último año de ventas registrados en el data set. Luego estas predicciones fueron comparadas con los valores reales.
Validación del modelo

Gráfico que muestra la tendencia histórica de ventas junto con la predicción para los próximos 3 meses y sus intervalos de variación. La línea roja discontinua representa la predicción del modelo probabilístico, mientras que el área sombreada indica el rango esperado de variación.

Predicción de ventas

Excel generado con las predicciónes para los futúros 3 meses de ventas. Aclaración: La última actualización del data set al ejecutarse este sistema fue en octubre del 2025.

Predicción de ventas

⬅️ |🏠| ➡️


Seguridad y Privacidad de Datos

Este sistema implementa múltiples capas de seguridad para proteger la información estratégica y grantizar la transparencia de los modelos predictivos:

  • Cifrado de Acceso (Capa Externa): Tanto los reportes en PDF como los archivos Excel utilizan cifrado de acceso. Ningún usuario puede abrir o visualizar los datos sin la contraseña maestra definida de forma segura en las variables de entorno (.env).
  • Seguridad de Grado Industrial. Control de Permisos y Solo Lectura (Capa Interna PDF): Los reportes generados cuentan con una capa de seguridad de grado industrial mediante el estándar AES-256 (R5). A demás, se implementó una distinción entre User y Owner password. Los reportes PDF están configurados por defecto con restricciones de impresión y copiado de texto, asegurando que la información solo sea consultada en entornos digitales controlados.
  • Inmutabilidad del Forecast (Capa de Integridad): Para evitar la manipulación de los resultados estadísticos, las hojas de predicciones en Excel se sellan con una clave aleatoria generada en tiempo de ejecución. Esto garantiza que ni el usuario ni terceros puedan alterar los valores del modelo ETSModels, preservando la integridad de la auditoría.
  • Protección de Estructura (Excel): Mediante el motor openpyxl, se bloquea la edición de celdas y el formato de las hojas, evitando errores accidentales o modificaciones malintencionadas en los datos reportados.
  • Arquitectura Desacoplada: La lógica de protección reside en un módulo independiente (src/security.py), lo que permite escalar el sistema para integrar gestores de secretos sin afectar el núcleo del análisis de datos.

Evidencia de Protección

Para garantizar la integridad de los datos, los archivos generados requieren autenticación para su apertura:

Protección de Excel Protección de PDF
Password Excel Password PDF
Acceso restringido a datos crudos Reporte ejecutivo cifrado

Important

Configuración de Seguridad: La contraseña por defecto se define en la variable PASSWORD dentro del archivo .env. Utiliza el archivo .env.example como plantilla (renombrándolo a .env) para configurar tus credenciales personales antes de ejecutar el sistema.


Visualización y Descarga de Resultados

Para facilitar la revisión del proyecto sin necesidad de ejecutar el código localmente, se han incluido ejemplos reales de los archivos generados. Estos documentos demuestran la aplicación de las políticas de seguridad y el formato final de los datos:

  • 📥 Reporte de Ventas PDF

    • Estado: Cifrado y Protegido.
    • Password de Usuario: UserL1140
    • Password de Propietario: 4ut0m4t1zac1*n
    • Características: Acceso de solo lectura con clave de usuario, incluyendo restricción de impresión y copia de contenido. Acceso total disponible mediante clave de propietario.
  • 📥 Forecast de Ventas Excel

    • Estado: Cifrado y Protegido.
    • Password: 4ut0m4t1zac1*n
    • Características: Cifrado de apertura y bloqueo de edición en la hoja de predicciones (Contraseña ciega) para garantizar la integridad y auditoría del modelo.

Fuente de datos

Los datos utilizados provienen del portal de Datos Abiertos del Gobierno de la República Argentina
Dataset: Ventas en supermercados

Fuente: https://datos.gob.ar
Los datos se utilizan con fines demostrativos y educativos.

Aviso legal:

Los reportes y visualizaciones presentados son ejemplos generados a partir de datos abiertos y no representan información comercial confidencial.

License / Licencia

EN: This project is licensed for personal, educational, and evaluation use only.
Commercial use is not permitted without explicit permission from the author.
If you are interested in a commercial license or a customized version, feel free to contact me.

ES: Este proyecto está autorizado únicamente para uso personal, educativo y de evaluación.
El uso comercial no está permitido sin el permiso explícito del autor.
Si estás interesado en una licencia comercial o una versión personalizada de este sistema, no dudes en contactarme.

Contact/ Contacto

You can also reach me via LinkedIn/ Puedes contactarme via LinkedIn: User LinkedIn

Or via E-mail: Conntacot


Sobre mí

¡Hola! Me llamo Juan Alcaraz y soy Técnico Superior en Ciencias de Datos e Inteligencia Artificial. Desarrollo soluciones de automatización para análisis y reporting. Creo dashboards para la toma de decisiones estratégicas. Aplico soluciones de Inteligencia Artificial y entreno modelos de Machine Learning y Deep Learning para los negocios que lo requieran.

🏠 | ⬅️

About

Sistema para generar reportes (en Excel y PDF) automáticamente y crear predicciones del total de futuras ventas a partir de datos históricos. El sistema descarga directamente el archivo csv de datos abiertos de Argentina y lo almacena en el directorio: "data/ingest". Luego de generarse y cifrarse los reportes, son enviados por E-mail

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published