La pregunta OEE vs TEEP surge en cuanto una planta se plantea si necesita más máquinas o simplemente aprovechar mejor las que ya tiene. Los tres indicadores que se tratan aquí, OEE, OOE y TEEP, usan los mismos factores de rendimiento y calidad; lo que cambia es el tiempo frente al que se miden. Este artículo explica cada uno, resuelve un único ejemplo para mostrar lo lejos que pueden quedar entre sí y enumera las señales MQTT que necesitas para calcular los tres automáticamente.
La respuesta corta
- OEE mide lo bien que aprovechas el tiempo que planificaste para producir. Úsalo para mejorar las operaciones en planta.
- OOE mide lo bien que aprovechas el tiempo en que la operación está abierta, incluidas las paradas planificadas dentro de ese tiempo. Úsalo cuando las pausas, las reuniones y el mantenimiento planificado formen parte de lo que quieres reducir.
- TEEP mide lo bien que aprovechas todo el tiempo existente, cada hora de cada día. Úsalo para decisiones de capacidad e inversión.
Si estás llevando un programa de mejora en una línea, el OEE es el indicador diario adecuado. Si alguien está a punto de comprar otra máquina, mira primero el TEEP.
Las bases de tiempo, lado a lado
Cada indicador divide el tiempo productivo entre un denominador distinto:
| Capa de tiempo | Qué incluye | Indicador que la usa |
|---|---|---|
| Tiempo calendario | Cada hora, 24 horas al día, 7 días a la semana | TEEP |
| Tiempo de operación | Horas en que la planta o la línea tiene personal y está abierta | OOE |
| Tiempo de producción planificado | Tiempo de operación menos paradas planificadas (pausas, mantenimiento planificado, reuniones) | OEE |
| Tiempo de marcha | Tiempo de producción planificado menos paradas no planificadas | Numerador de la disponibilidad |
| Tiempo neto de marcha | Tiempo de marcha ajustado por pérdidas de velocidad | Numerador del rendimiento |
| Tiempo plenamente productivo | Tiempo neto de marcha fabricando solo piezas buenas | Numerador de los tres |
Así, las fórmulas quedan:
- OEE = Tiempo plenamente productivo / Tiempo de producción planificado
- OOE = Tiempo plenamente productivo / Tiempo de operación
- TEEP = Tiempo plenamente productivo / Tiempo calendario
Otra forma de escribir el TEEP es OEE x Carga, donde Carga = Tiempo de producción planificado / Tiempo calendario. Esta forma es útil porque separa dos preguntas: lo bien que producimos cuando producimos (OEE) y cuánto programamos el activo (Carga).
Un ejemplo resuelto, tres respuestas
Considera una máquina a lo largo de una semana:
- Tiempo calendario: 7 días x 24 horas = 168 horas.
- Tiempo de operación: dos turnos de 8 horas, cinco días a la semana = 80 horas.
- Paradas planificadas dentro del tiempo de operación: pausas y reuniones de 1 hora por turno = 10 horas, más 4 horas de mantenimiento planificado. Total: 14 horas.
- Tiempo de producción planificado: 80 - 14 = 66 horas.
- Paradas no planificadas: 8 horas de averías y cambios de formato. Tiempo de marcha = 58 horas.
- Rendimiento: 90 por ciento. Calidad: 97 por ciento.
Tiempo plenamente productivo = 58 x 0,90 x 0,97 = 50,6 horas.
- OEE = 50,6 / 66 = 76,7 por ciento
- OOE = 50,6 / 80 = 63,3 por ciento
- TEEP = 50,6 / 168 = 30,1 por ciento
La misma máquina, la misma semana, tres cifras muy distintas. Ninguna es errónea. El OEE dice que la planta aprovecha razonablemente bien las horas planificadas. El OOE dice que las paradas planificadas se llevan un buen mordisco de las horas de apertura. El TEEP dice que el activo produce piezas buenas menos de un tercio del tiempo que existe, lo que significa que la planta tiene mucha capacidad oculta antes de necesitar otra máquina: un tercer turno o trabajar los fines de semana añadiría mucha más producción que cualquier proyecto de mejora.
Cuándo usar cada indicador
Usa el OEE cuando quieras reducir pérdidas en las que operadores, mantenimiento e ingeniería pueden influir durante el turno: averías, cambios de formato, microparadas, velocidad y scrap. Es el indicador adecuado para las reuniones diarias y los paneles de línea. El cálculo detallado está en cómo calcular el OEE.
Usa el OOE cuando las propias paradas planificadas sean un objetivo. Por ejemplo, escalonar las pausas para que la línea siga en marcha, acortar los relevos de turno o trasladar el mantenimiento planificado a horas no operativas. El OEE no puede mostrar esas mejoras porque las paradas planificadas quedan excluidas de su denominador.
Usa el TEEP cuando la pregunta sea de capacidad: comprar equipos, añadir turnos, subcontratar o aceptar un pedido grande nuevo. Un TEEP bajo con un OEE aceptable suele significar que la restricción es la programación, no el equipo.
Trampas habituales:
- Comparar el OEE entre plantas con reglas distintas para las paradas planificadas. Una planta cuenta los cambios de formato como planificados y declara un OEE más alto sin ser mejor. El OOE lo deja al descubierto.
- Reportar el TEEP a planta. Los operadores no pueden influir en los fines de semana sin programar, así que el TEEP desmotiva como indicador de turno.
- Pasar pérdidas a "planificadas" para mejorar el OEE. Si el OEE sube mientras el OOE se mantiene plano, revisa qué se ha reclasificado.
Las señales MQTT que necesita cada indicador
La buena noticia es que los tres indicadores salen de los mismos datos, siempre que las paradas estén bien clasificadas. Publica por máquina:
| Señal | Ejemplo de sufijo de topic | OEE | OOE | TEEP |
|---|---|---|---|---|
| Estado de la máquina (RUNNING, DOWN, IDLE, SETUP) | /state |
Sí | Sí | Sí |
| Recuentos totales y de rechazos | /counts |
Sí | Sí | Sí |
| Tiempo de ciclo ideal por producto | /config |
Sí | Sí | Sí |
| Indicador de parada planificada con motivo (pausa, mantenimiento preventivo, reunión) | /state como PLANNED_STOP o /reason |
Sí | Sí | Sí |
| Calendario de turnos (horas de operación) | /schedule |
No | Sí | No |
| Indicador de no programado (sin turno, sin pedidos) | /state como NOT_SCHEDULED |
No | No | Sí |
La parte crítica es la clasificación del tiempo sin marcha. Si una máquina parada por la noche simplemente informa STOPPED, no puedes distinguir una avería no planificada de un fin de semana sin personal. O bien publicas NOT_SCHEDULED desde un servicio de calendario de turnos, o bien dejas que el servicio de cálculo aplique el calendario. Unos códigos de motivo de parada claros, con una categoría "Planificada" separada, hacen fiable esta correspondencia.
Calcular los tres en Python
Dadas las duraciones de cada estado durante un periodo, esta función devuelve los tres indicadores. Está pensada para ir dentro de un servicio que se suscribe a los topics de estado y de recuentos, como el que se construye en el tutorial de monitorización del OEE en tiempo real.
def time_metrics(durations_s, total_count, reject_count, ideal_cycle_s):
"""durations_s: seconds per state over the period, e.g.
{"RUNNING": ..., "DOWN": ..., "SETUP": ..., "PLANNED_STOP": ..., "NOT_SCHEDULED": ...}"""
calendar = sum(durations_s.values())
operations = calendar - durations_s.get("NOT_SCHEDULED", 0)
planned = operations - durations_s.get("PLANNED_STOP", 0)
run = durations_s.get("RUNNING", 0)
if run <= 0 or total_count <= 0:
return {"oee": 0.0, "ooe": 0.0, "teep": 0.0, "loading": 0.0}
performance = min(ideal_cycle_s * total_count / run, 1.0)
quality = (total_count - reject_count) / total_count
productive = run * performance * quality
return {
"oee": round(productive / planned, 4),
"ooe": round(productive / operations, 4),
"teep": round(productive / calendar, 4),
"loading": round(planned / calendar, 4),
}
hours = 3600
week = {
"RUNNING": 58 * hours,
"DOWN": 5 * hours,
"SETUP": 3 * hours,
"PLANNED_STOP": 14 * hours,
"NOT_SCHEDULED": 88 * hours,
}
# 58 h run, 90 % performance -> ideal output = 58 h * 0.9 at 2 s per part
total = int(58 * hours * 0.9 / 2.0)
reject = round(total * 0.03)
print(time_metrics(week, total, reject, 2.0))
La salida reproduce el ejemplo: OEE de aproximadamente 0,767, OOE de unos 0,633, TEEP de unos 0,301 y carga de unos 0,393. Publica el resultado como un mensaje retenido por máquina y periodo para que los paneles puedan mostrar a cada público el indicador adecuado.
Para probar el flujo de datos, publica estados de prueba en el servidor MQTT público gratuito broker.connectmq.com bajo tu propio prefijo; úsalo solo para pruebas, nunca con datos reales de producción:
mosquitto_pub -h broker.connectmq.com -p 1883 -i teep-test-w2k8 -r -t "connectmq/demo/w2k8/plant1/line1/press02/state" -m '{"state":"NOT_SCHEDULED","ts":1792200000}'
Alojar el pipeline
Los indicadores solo son tan buenos como el flujo de eventos que hay detrás, así que el broker debe ser fiable y privado. Un servicio de calendario de turnos que publica NOT_SCHEDULED, gateways que publican estados y recuentos y un servicio de cálculo que publica resultados pueden compartir un único broker de ConnectMQ como clientes MQTT normales. ConnectMQ ofrece un broker MQTT gestionado en el que cada gateway y cada servicio de cálculo tiene sus propias credenciales sobre TLS, y usarlo como broker MQTT en la nube da a los equipos de planta y corporativos, ya estén en Monterrey, Medellín o Barcelona, una única fuente para OEE, OOE y TEEP. Los mismos estados de máquina pueden alimentar también un gemelo digital 3D de la línea para ver las pérdidas en su contexto. La guía de manufactura inteligente explica cómo encajan estos indicadores junto a los datos de calidad, energía y mantenimiento.
Empieza con ConnectMQ
Crea un broker Serverless gratuito en app.connectmq.com sin tarjeta de crédito, publica estados y recuentos de máquina clasificados y calcula OEE, OOE y TEEP a partir de los mismos datos en vivo.
Preguntas frecuentes
¿El TEEP siempre es más bajo que el OEE?
Sí, o como mucho igual. El TEEP divide el mismo tiempo productivo entre el tiempo calendario, que nunca es más corto que el tiempo de producción planificado.
¿Cuál es la diferencia entre OOE y OEE?
El OOE usa como base el tiempo de operación, de modo que las paradas planificadas, como las pausas y el mantenimiento planificado, cuentan como pérdidas. El OEE las excluye.
¿Qué indicador debe ir en el panel de línea?
El OEE, con sus tres factores. Refleja las pérdidas en las que el turno puede influir; el TEEP corresponde a las revisiones de capacidad e inversión.
¿Necesito sensores adicionales para el TEEP?
No. Necesitas los mismos estados de máquina y recuentos que para el OEE, más una clasificación NOT_SCHEDULED clara procedente de un calendario de turnos.



