Automatiza reportes de ventas, predicción de ingresos y envío seguro de informes por email para equipos comerciales.
- Sobre el proyecto
- Beneficios para tu negocio
- ¿Cómo funciona?
- Tecnologías utilizadas
- Cómo probarlo
- Ejemplos de salida
- Seguridad y privacidad de los datos
- Visualización y Descarga de Resultados
- Fuente de datos
- Aviso legal
- License / Licencia
- Contacto / Contact
- Sobre mí
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.
- 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.
- Se descargan y limpian los datos.
- Se calculan KPIs importantes (ventas totales, tendencia, etc.).
- Se generan gráficos y un PDF ejecutivo.
- Se exporta un Excel detallado.
- Se envía el informe por email automáticamente.
- 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).
Para probar el sistema sigue estos pasos.
- Clona este repositorio:
git clone https://github.com/juancaalcaraz/automatizacion-de-reportes-de-ventas.git- Abrí el directorio del proyecto:
cd automatizacion-de-reportes-de-ventas- Instala las dependencias del sistema:
# instalar dependencias
pip install -r requirements.txt- Ejecuta el archivo main.py
# ejecutar
python main.pyEsto 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.
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.
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.
Segunda hoja del reporte
Contiene el historial de ventas utilizado para el análisis y la predicción.
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.
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.

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.
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.
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.
Para garantizar la integridad de los datos, los archivos generados requieren autenticación para su apertura:
| Protección de Excel | Protección de 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.
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:
-
- 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.
-
- 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.
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.
Los reportes y visualizaciones presentados son ejemplos generados a partir de datos abiertos y no representan información comercial confidencial.
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.
You can also reach me via LinkedIn/ Puedes contactarme via LinkedIn: User LinkedIn
¡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.







