01 / Caso de estudio

PARO OEE en vivo

Proyecto independiente y abierto de analítica de manufactura

Una demo de solo lectura para visibilidad de OEE y paros, alimentada con datos sintéticos deterministas cada 15 minutos.

Estado
Publicado
Evidencia
20 ago 2026
Tecnologías
Python 3.14 · FastAPI · PostgreSQL · Power BI · GitHub Actions

Evidencia al 20 ago 2026 · fuente 9ad5798 (se abre en una pestaña nueva)

02

Resumen ejecutivo

Cuando OEE y los paros se consolidan después del turno, la visibilidad de pérdidas llega tarde y el número puede separarse de los eventos que lo originaron.

PARO prueba una alternativa acotada: una sola ruta de cálculo auditada, hechos sintéticos recientes, frescura explícita y una superficie de decisión de solo lectura que nunca pretende ser un MES ni un feed de sensores.

Mi alcance

Diseñé y construí el motor de dominio OEE, el servicio de aplicación en FastAPI, los contratos de persistencia, el simulador rolling protegido, el dashboard web de solo lectura, el modelo Import de Power BI, las pruebas y los gates de despliegue.

03

Qué construí

  1. 01

    Proteger cada escritura con una API key y limitar el token trusted-ingest a la exención del rate limit.

  2. 02

    Regenerar jornadas deterministas con IDs absolutos, enviar solo buckets cerrados faltantes y cerrar eventos abiertos con concurrencia optimista.

  3. 03

    Cargar hechos persistidos mediante un servicio de aplicación que invoca exactamente una vez la función OEE de dominio basada en Decimal.

  4. 04

    Exponer frescura, componentes OEE, producción, warnings y Pareto de paros mediante una API y dashboard web de solo lectura.

  5. 05

    Preparar un modelo Import de Power BI que consume los resultados de la API sin reconstruir OEE en DAX.

04

Arquitectura y flujo de datos

Cada etapa mantiene explícita una preocupación: escrituras autenticadas, una sola ruta de cálculo, persistencia transaccional, vistas de decisión y gates independientes de despliegue.

  1. 01

    Ingesta autenticada

    Las escrituras de producción y paro requieren API key; trusted ingest permanece como una preocupación independiente de rate limit.

  2. 02

    Servicio de aplicación

    Un servicio de lectura reúne los hechos de línea y llama exactamente una vez a paro.domain.oee.calculate_oee.

  3. 03

    PostgreSQL

    Transacciones por request, llaves de idempotencia y cierre optimista preservan trazabilidad sin afirmar atomicidad de lote.

  4. 04

    Vistas de decisión

    El dashboard web consulta cada 60 segundos; los hechos sintéticos avanzan cada 15 minutos. Power BI usa modo Import.

05

Evidencia y verificación

  • La suite local completa contiene 208 pruebas, incluidas combinaciones cruzadas de credenciales, canarios de secretos en logs, readiness/liveness, repetición determinista, jornadas sin colisiones, cierre de eventos y catch-up de 48 horas.
  • Una jornada sintética completa permanece dentro de la banda OEE configurada de 70–80 % después de corregir el conteo de línea serial; el dashboard usa el mismo resultado de dominio.
  • El validador estructural PBIR reporta cero errores. Power BI Desktop actualizó correctamente y la evidencia final usa la captura auténtica de Desktop.

06

Evidencia orientada a decisión

Cada cifra incluye su modelo, estado de evidencia y límite.

15 min

cadencia del feed sintético

Representa
El driver rolling materializa el último cuarto de hora cerrado, no un evento de sensor en streaming.
Por qué importa
El dashboard puede exponer data-through y estado fresh/stale sin exagerar inmediatez.
No demuestra
No demuestra integración MES en tiempo real ni latencia de sensores.

48 h

catch-up acotado

Representa
Una ejecución cron perdida puede reconciliar IDs deterministas recientes sin repetición ilimitada.
Por qué importa
El costo de recuperación permanece acotado y una interrupción mayor se vuelve un gap explícito.
No demuestra
No es una promesa de atomicidad global de lote ni de cero pérdida de datos.

208

pruebas automatizadas locales

Representa
La colección completa de pruebas en el commit de evidencia fijado.
Por qué importa
Ejercita contratos de cálculo, persistencia, API, autenticación, simulador y presentación.
No demuestra
Una suite local aprobada no equivale a uptime productivo ni validación industrial.

22.1%

ROI base ilustrativo

Representa
Un caso de sensibilidad con supuestos explícitos: $3,500 de implementación, $600 de operación anual y $5,005 de beneficio modelado por tiempo de reporte.
Por qué importa
El modelo puede sustituirse con cadencia, tiempo, tarifa y realización aprobados por el cliente.
No demuestra
No son ahorros logrados ni un pronóstico; los beneficios por downtime y scrap permanecen en $0.

07

Límites honestos

  • Todos los datos de manufactura mostrados son sintéticos para portafolio; no representan resultados de cliente, planta ni producción.
  • El feed avanza cada 15 minutos y la página consulta cada 60 segundos. No es streaming, sensores en tiempo real ni conectividad MES.
  • La autenticación de escritura en Render y el cron de 15 minutos estaban activos al verificar; los clientes no reciben credenciales de escritura.
  • Power BI usa modo Import y muestra una actualización puntual verificada; no es una superficie de streaming.
  • Los valores ROI son escenarios ilustrativos de sensibilidad, no afirmaciones de ahorro. Downtime y scrap tienen beneficio cero.

08

Fuente y procedencia

Todas las afirmaciones públicas de esta página están delimitadas por el commit de implementación fijado y los límites de verificación documentados.

Ver procedencia completa
Fecha de evidencia
2026-08-20
Documentos consultados
  • README.md
  • docs/adr/0004-simulator-multi-agent-architecture.md
  • docs/deployment.md
  • docs/oee-definition.md
  • docs/roi-model.md
  • docs/upwork-portfolio.md
  • PowerBi/README.md
Licencias
El código, documentación, activos del dashboard y datos sintéticos creados para el proyecto se publican bajo la licencia MIT del repositorio.