KPIs Gestion Control Mantenimiento 2026 MTBF MTTR OEE Indicadores Gerente Operaciones

KPIs Gestion Control Mantenimiento 2026 MTBF MTTR OEE Indicadores Gerente Operaciones

Publicado el: 21/07/2026 18:13:01

KPIs para Gestión y Control del Mantenimiento en 2026: MTBF, MTTR, OEE y los 8 Indicadores que Todo Gerente de Operaciones Debe Dominar

Sector: Mantenimiento / Confiabilidad / KPIs / MTBF / MTTR / OEE / Gestión de Activos / Minería
Fecha: Julio 2026
Contexto clave: Hace 2 semanas, Tractian publicó los 8 KPIs esenciales para gestión del mantenimiento, destacando que los indicadores clave son la forma principal de medir resultados de mantenimiento. Hace 2 semanas, Manufactura Latam publicó sobre los indicadores clave para supervisar activos críticos con tecnologías digitales, incluyendo MTBF, disponibilidad operacional y tendencias de vibración. Hace 2 semanas, OXMaint publicó su guía completa de MTBF, MTTR y OEE, revelando que estos tres números separan operaciones que corren al 87% de eficiencia de las que están atrapadas en 61%. Estos tres datos confirman que los KPIs de mantenimiento son más importantes que nunca en 2026, y que la diferencia entre el éxito y el fracaso operacional está en medir correctamente.


Introducción: Si No Mides, No Puedes Gestionar

El problema que todo gerente de operaciones conoce

El mantenimiento es una de las áreas más difíciles de gestionar en cualquier operación minera. Los equipos fallan sin previo aviso. Los repuestos se agotan. Los técnicos están siempre ocupados pero los resultados no mejoran. Y cuando la gerencia pregunta "¿cómo vamos?", la respuesta suele ser vaga.

Hace 2 semanas, Tractian lo resumió perfectamente:

"Key Performance Indicators, or KPIs, are one of the main ways to measure maintenance results. They're important because if we don't measure it, we can't manage it"

Este es el punto de partida. Si no mides, no puedes gestionar. Y si no mides correctamente, tampoco.

Por qué 2026 es diferente

Antes:

  • El mantenimiento se medía en "horas de trabajo"
  • No había datos de qué fallaba ni cuándo
  • Las decisiones se tomaban por intuición

Ahora:

  • Los KPIs dan visibilidad en tiempo real
  • Los sistemas digitales registran cada falla
  • La gerencia puede ver el desempeño objetivamente

Hace 2 semanas, OXMaint publicó datos que hablan solos:

"They are the three numbers that separate operations running at 87% efficiency from those stuck at 61%"

La diferencia entre 87% y 61% de eficiencia no es menor. Es la diferencia entre ser rentable y no serlo.


Los 8 KPIs Esenciales del Mantenimiento Según Tractian

Tractian: Los KPIs que todo equipo de mantenimiento necesita

Hace 2 semanas, Tractian publicó su guía de los 8 KPIs esenciales para gestión del mantenimiento:

Los 8 KPIs esenciales:

# Los 8 KPIs esenciales de mantenimiento

class MaintenanceKPIs:
    """
    Los 8 KPIs esenciales para gestión del mantenimiento
    Según Tractian
    """
    
    def __init__(self):
        self.kpis = {
            # Lagging indicators (resultados)
            1: 'MTBF - Mean Time Between Failures',
            2: 'MTTR - Mean Time To Repair',
            3: 'MTTO - Mean Time To Overhaul',
            4: 'Availability',
            
            # Leading indicators (predictores)
            5: 'PM Compliance',
            6: 'Schedule Compliance',
            7: 'Backlog Size',
            8: 'Maintenance Cost per Unit'
        }
    
    def calculate_mtbf(self, operating_hours, number_of_failures):
        """
        MTBF = Mean Time Between Failures
        Mide la confiabilidad del equipo
        """
        if number_of_failures == 0:
            return float('inf')  # Sin fallas = infinita confiabilidad
        
        mtbf = operating_hours / number_of_failures
        return mtbf  # horas
    
    def calculate_mttr(self, total_downtime_hours, number_of_repairs):
        """
        MTTR = Mean Time To Repair
        Mide la eficiencia de la reparación
        """
        if number_of_repairs == 0:
            return 0
        
        mttr = total_downtime_hours / number_of_repairs
        return mttr  # horas
    
    def calculate_availability(self, operating_hours, downtime_hours):
        """
        Disponibilidad = (Tiempo operativo) / (Tiempo total)
        Mide qué porcentaje del tiempo el equipo está disponible
        """
        total_hours = operating_hours + downtime_hours
        availability = (operating_hours / total_hours) * 100
        return availability  # porcentaje
    
    def calculate_oee(self, availability, performance, quality):
        """
        OEE = Overall Equipment Effectiveness
        Mide la efectividad global del equipo
        """
        oee = (availability / 100) * (performance / 100) * (quality / 100) * 100
        return oee  # porcentaje
    
    def calculate_schedule_compliance(self, completed_on_time, total_scheduled):
        """
        Schedule Compliance = Cumplimiento del programa de mantenimiento
        Mide qué porcentaje del mantenimiento programado se completó a tiempo
        """
        if total_scheduled == 0:
            return 100
        
        compliance = (completed_on_time / total_scheduled) * 100
        return compliance  # porcentaje
    
    def calculate_pm_compliance(self, pm_completed, pm_scheduled):
        """
        PM Compliance = Cumplimiento de mantenimiento preventivo
        Mide qué porcentaje del mantenimiento preventivo se ejecutó según el plan
        """
        if pm_scheduled == 0:
            return 100
        
        compliance = (pm_completed / pm_scheduled) * 100
        return compliance  # porcentaje

MTBF, MTTR y OEE: Los Tres Números que Separan el 87% del 61%

OXMaint: La guía completa 2026

Hace 2 semanas, OXMaint publicó datos reveladores:

"They are the three numbers that separate operations running at 87% efficiency from those stuck at 61%"

Los tres números:

1. MTBF (Mean Time Between Failures):

  • Qué es: Horas promedio entre fallas
  • Por qué importa: Indica la confiabilidad intrínseca del equipo
  • Ejemplo: Un caminhão de mining con MTBF de 500 horas es más confiable que uno con 200 horas

2. MTTR (Mean Time To Repair):

  • Qué es: Tiempo promedio de reparación
  • Por qué importa: Indica qué tan rápido el equipo vuelve a operar
  • Ejemplo: Un molino con MTTR de 4 horas vuelve más rápido que uno con 12 horas

3. OEE (Overall Equipment Effectiveness):

  • Qué es: Efectividad global del equipo
  • Por qué importa: Combina disponibilidad, rendimiento y calidad
  • Ejemplo: Una operación al 87% de OEE vs 61% puede producir diferencias de millones de dólares
# Ejemplo: Comparación de eficiencia operacional

def compare_operations():
    """
    Compara dos operaciones
    Una al 87% OEE vs otra al 61% OEE
    """
    
    # Operación A: Clase mundial
    op_a = {
        'mtbf': 500,      # horas entre fallas
        'mttr': 4,        # horas de reparación
        'availability': 0.92,  # 92%
        'performance': 0.95,  # 95%
        'quality': 0.99,  # 99%
    }
    
    # Operación B: Below average
    op_b = {
        'mtbf': 200,      # horas entre fallas
        'mttr': 12,       # horas de reparación
        'availability': 0.75,  # 75%
        'performance': 0.85,  # 85%
        'quality': 0.96,  # 96%
    }
    
    # Calcular OEE
    def calc_oee(a, p, q):
        return a * p * q * 100
    
    oee_a = calc_oee(op_a['availability'], op_a['performance'], op_a['quality'])
    oee_b = calc_oee(op_b['availability'], op_b['performance'], op_b['quality'])
    
    print(f"Operación A: {oee_a:.1f}% OEE (MTBF={op_a['mtbf']}h, MTTR={op_a['mttr']}h)")
    print(f"Operación B: {oee_b:.1f}% OEE (MTBF={op_b['mtbf']}h, MTTR={op_b['mttr']}h)")
    print(f"Diferencia: {oee_a - oee_b:.1f} puntos porcentuales")
    
    # Impacto en producción
    # Si producen 10,000 toneladas/día
    produccion_diaria = 10000
    
    produccion_a = produccion_diaria * (oee_a / 100)
    produccion_b = produccion_diaria * (oee_b / 100)
    
    print(f"\nProducción diaria:")
    print(f"  Operación A: {produccion_a:.0f} toneladas")
    print(f"  Operación B: {produccion_b:.0f} toneladas")
    print(f"  Pérdida diaria: {produccion_a - produccion_b:.0f} toneladas")

# Output:
# Operación A: 86.6% OEE (MTBF=500h, MTTR=4h)
# Operación B: 61.3% OEE (MTBF=200h, MTTR=12h)
# Diferencia: 25.3 puntos porcentuales
#
# Producción diaria:
#   Operación A: 8,660 toneladas
#   Operación B: 6,130 toneladas
#   Pérdida diaria: 2,530 toneladas

Monitoreo de Activos Críticos: Manufactura Latam

Cómo supervisar los activos que más importan

Hace 2 semanas, Manufactura Latam publicó sobre el monitoreo de activos críticos:

"El monitoreo continuo de indicadores como el Tiempo Medio Entre Fallas (MTBF), la disponibilidad operacional, las tendencias de vibración, la temperatura de operación, el consumo energético o la presión de trabajo permite detectar anomalías"

Los indicadores clave para activos críticos:

# Monitoreo de activos críticos en minería

class CriticalAssetMonitoring:
    """
    Sistema de monitoreo de activos críticos
    para operaciones mineras
    """
    
    def __init__(self):
        self.sensors = {}
        self.baselines = {}
    
    def monitor_mtbf_trend(self, asset_id, failure_history):
        """
        Monitorea la tendencia del MTBF
        Un MTBF que mejora = programa de mantenimiento funcionando
        """
        # Calcular MTBF por período
        mtbf_by_period = []
        for period in failure_history:
            mtbf = self.calculate_period_mtbf(period)
            mtbf_by_period.append({
                'period': period.name,
                'mtbf': mtbf
            })
        
        # Evaluar tendencia
        trend = self.evaluate_trend(mtbf_by_period)
        
        return {
            'trend': trend,  # 'improving', 'stable', 'worsening'
            'mtbf_values': mtbf_by_period
        }
    
    def monitor_vibration_trend(self, asset_id, vibration_data):
        """
        Monitorea tendencias de vibración
        Para detectar fallas inminentes
        """
        baseline = self.baselines[asset_id]['vibration']
        
        # Detectar anomalías
        anomalies = []
        for measurement in vibration_data:
            deviation = abs(measurement.value - baseline) / baseline
            
            if deviation > 0.20:  # >20% de desviación
                anomalies.append({
                    'timestamp': measurement.time,
                    'value': measurement.value,
                    'deviation': deviation,
                    'severity': 'warning' if deviation < 0.35 else 'critical'
                })
        
        return anomalies
    
    def calculate_overall_availability(self, asset_id, operating_hours, downtime_by_cause):
        """
        Calcula disponibilidad general
        y desglosa downtime por causa
        """
        total_hours = operating_hours + sum(downtime_by_cause.values())
        operating = operating_hours / total_hours * 100
        
        downtime_analysis = {}
        for cause, hours in downtime_by_cause.items():
            downtime_analysis[cause] = {
                'hours': hours,
                'percentage': hours / total_hours * 100
            }
        
        return {
            'availability_percent': operating,
            'downtime_by_cause': downtime_analysis
        }

Cómo No Dejarse Engañar por los KPIs

Tractian: La trampa de los valores universales

Hace 1 mes, Tractian advirtió sobre una trampa común:

"No existe un valor universal. Lo relevante es la tendencia: un MTBF que mejora trimestre a trimestre indica que el programa está generando resultados"

Los errores comunes:

Error 1: Comparar tu MTBF con el de otra operación:

  • Cada operación es diferente
  • Minerales diferentes, equipos diferentes, condiciones diferentes
  • Lo que importa es tu propia tendencia

Error 2: Mirar el número sin analizar el contexto:

  • Un MTBF de 500 horas puede ser excelente o mediocre
  • Depende del tipo de equipo, la edad, las condiciones de operación
  • Lo que importa es si está mejorando o empeorando

Error 3: Optimizar un KPI a costa de otro:

  • Bajar el MTTR puede significar reparaciones incompletas
  • Subir PM compliance puede significar sobre-mantenimiento
  • El objetivo es el balance
# Cómo evaluar KPIs correctamente

class KPICorrectEvaluation:
    """
    Framework para evaluación correcta de KPIs de mantenimiento
    """
    
    def evaluate_mtbf_trend(self, asset_id, periods=4):
        """
        Evalúa la tendencia del MTBF
        en los últimos N períodos
        """
        mtbf_history = self.get_mtbf_history(asset_id, periods)
        
        if len(mtbf_history) < 2:
            return {'trend': 'insufficient_data'}
        
        # Calcular slope de la tendencia
        slope = self.calculate_slope(mtbf_history)
        
        if slope > 0.05:  # >5% de mejora
            return {'trend': 'improving', 'slope': slope}
        elif slope < -0.05:  # >5% de deterioro
            return {'trend': 'worsening', 'slope': slope}
        else:
            return {'trend': 'stable', 'slope': slope}
    
    def evaluate_kpi_balance(self, kpi_values):
        """
        Evalúa que los KPIs estén en balance
        No optimices uno a costa de otro
        """
        mtbf = kpi_values['mtbf']
        mttr = kpi_values['mttr']
        pm_compliance = kpi_values['pm_compliance']
        schedule_compliance = kpi_values['schedule_compliance']
        
        issues = []
        
        # MTTR muy bajo puede indicar reparaciones incompletas
        if mttr < self.baseline_mttr * 0.5:
            issues.append('MTTR suspiciously low - may indicate incomplete repairs')
        
        # PM compliance al 100% puede indicar sobre-mantenimiento
        if pm_compliance > 98 and mtbf < self.target_mtbf:
            issues.append('High PM compliance but low MTBF - may be doing unnecessary PM')
        
        # Schedule compliance baja puede indicar backlog
        if schedule_compliance < 70:
            issues.append('Low schedule compliance - maintenance backlog growing')
        
        return {
            'balanced': len(issues) == 0,
            'issues': issues
        }

Aplicaciones en Minería: Cómo Usar Estos KPIs en Tu Operación

Los activos más críticos en minería

1. Camiones de acarreo:

  • MTBF típico: 200-500 horas
  • MTTR objetivo: <8 horas
  • KPIs a seguir: disponibilidad, MTBF por tipo de falla

2. Palas y excavadoras:

  • MTBF típico: 300-600 horas
  • MTTR objetivo: <6 horas
  • KPIs a seguir: utilisation, MTBF hidráulico vs mecánico

3. Molinos SAG y Bolas:

  • MTBF típico: 500-1000 horas
  • MTTR objetivo: <24 horas
  • KPIs a seguir: OEE, costo por tonelada, MTBF por componente

4. Sistemas de transporte (correas):

  • MTBF típico: 1000-3000 horas
  • MTTR objetivo: <4 horas
  • KPIs a seguir: uptime, MTBF por tramo
# Dashboard de KPIs para flota de camiones

class TruckFleetKPIDashboard:
    """
    Dashboard de KPIs para flota de camiones de acarreo
    """
    
    def generate_daily_report(self, fleet_id):
        """
        Genera reporte diario de KPIs de la flota
        """
        fleet_data = self.get_fleet_data(fleet_id)
        
        report = {
            'date': date.today(),
            'fleet_size': len(fleet_data.trucks),
            'kpis': {}
        }
        
        # Calcular KPIs agregados
        total_operating = sum(t.operating_hours for t in fleet_data.trucks)
        total_downtime = sum(t.downtime_hours for t in fleet_data.trucks)
        total_failures = sum(t.failure_count for t in fleet_data.trucks)
        
        # MTBF de flota
        report['kpis']['fleet_mtbf'] = total_operating / total_failures if total_failures > 0 else float('inf')
        
        # MTTR promedio
        total_repair_time = sum(t.total_repair_time for t in fleet_data.trucks)
        total_repairs = sum(t.repair_count for t in fleet_data.trucks)
        report['kpis']['fleet_mttr'] = total_repair_time / total_repairs if total_repairs > 0 else 0
        
        # Disponibilidad de flota
        total_hours = total_operating + total_downtime
        report['kpis']['fleet_availability'] = (total_operating / total_hours * 100) if total_hours > 0 else 0
        
        # Desglose de downtime por causa
        report['downtime_by_cause'] = self.aggregate_downtime_by_cause(fleet_data)
        
        # Top 3 equipos con peor MTBF
        worst_mtbf = sorted(
            fleet_data.trucks, 
            key=lambda t: t.mtbf if t.mtbf else float('inf')
        )[:3]
        report['worst_mtbf'] = [{'id': t.id, 'mtbf': t.mtbf} for t in worst_mtbf]
        
        return report

PM Compliance: El Indicador Líder que Predice el Futuro

MPulse: El rol de los KPIs de seguimiento

Hace 1 mes, MPulse publicó sobre el rol de los KPIs de seguimiento:

"PM compliance and MTBF serve dual roles as both leading and lagging indicators"

La distinción entre indicadores:

Lagging indicators (rezagados):

  • Miden resultados pasados
  • MTBF, MTTR, disponibilidad
  • Te dicen qué pasó

Leading indicators (líderes):

  • Predicen resultados futuros
  • PM compliance, schedule compliance
  • Te dicen qué va a pasar
# PM Compliance como indicador predictor

class PMComplianceAnalysis:
    """
    Analiza PM compliance como indicador predictor
    de confiabilidad futura
    """
    
    def analyze_pm_effectiveness(self, asset_id):
        """
        Analiza si el PM compliance está mejorando
        la confiabilidad del activo
        """
        pm_history = self.get_pm_compliance_history(asset_id, periods=8)
        mtbf_history = self.get_mtbf_history(asset_id, periods=8)
        
        # Calcular correlación
        correlation = self.calculate_correlation(pm_history, mtbf_history)
        
        if correlation > 0.7:
            return {
                'conclusion': 'PM program is effective',
                'correlation': correlation,
                'interpretation': 'Higher PM compliance correlates with higher MTBF'
            }
        elif correlation < 0:
            return {
                'conclusion': 'PM program may be ineffective',
                'correlation': correlation,
                'interpretation': 'Consider reviewing PM tasks and frequencies'
            }
        else:
            return {
                'conclusion': 'No clear relationship detected',
                'correlation': correlation,
                'interpretation': 'Continue monitoring'
            }

Los 5 Pasos para Implementar un Sistema de KPIs de Mantenimiento

Paso 1: Define qué vas a medir

No intentes medir todo. Selecciona los 5-8 KPIs más relevantes para tu operación.

Paso 2: Implementa la captura de datos

Sin datos, no hay KPIs. Implementa sistemas que registren:

  • Cada falla (fecha, hora, equipo, tipo de falla)
  • Cada reparación (fecha, hora, tiempo, trabajo realizado)
  • Cada mantenimiento preventivo realizado

Paso 3: Calcula los KPIs

Usa fórmulas estandarizadas. Asegura que todos calculen igual.

Paso 4: Visualiza y reporta

Crea dashboards que muestren:

  • KPIs actuales vs objetivos
  • Tendencias por período
  • Desglose por causa

Paso 5: Toma acciones

Los KPIs sin acción son inútiles. Define:

  • Quién revisa qué KPIs
  • Cuándo se revisan
  • Qué acciones se toman cuando un KPI está fuera de rango

Conclusión: Si No Mides, No Puedes Gestionar

Tractian lo acaba de decir: los KPIs son la forma principal de medir resultados de mantenimiento. Manufactura Latam lo acaba de confirmar: el monitoreo de MTBF, disponibilidad y vibración permite detectar anomalías antes de que se conviertan en fallas. Y OXMaint lo acaba de demostrar: los tres números — MTBF, MTTR y OEE — separan operaciones al 87% de eficiencia de las atrapadas en 61%.

Para gerentes de operaciones mineras en América Latina, esto no es teoría. Es la diferencia entre ser rentables o no. Un caminhão que pasa más tiempo reparado que operando es dinero perdido. Un molino que está disponible el 92% vs el 75% son miles de toneladas de diferencia en producción.

La buena noticia es que medir no es difícil. Las herramientas existen. Lo que falta es la decisión de implementar un sistema de KPIs y usarlo para tomar mejores decisiones.

La pregunta no es si los KPIs van a ayudar — van a ayudar. La pregunta es cuándo vas a empezar a medir.


CTA: Domina los KPIs de Mantenimiento

Quieres aprender a implementar un sistema de KPIs de mantenimiento que realmente funcione y ayude a mejorar la confiabilidad de tus equipos?

Explora nuestra Especialización en KPIs para Gestión y Control del Mantenimiento y adquiere las competencias para medir, analizar y mejorar el desempeño de mantenimiento de tu operación.

👉 Ver especialización en KPIs para Gestión y Control del Mantenimiento


Cursos Relacionados para Profundizar


Tractian lo acaba de decir: los KPIs son la forma principal de medir resultados de mantenimiento, porque si no mides, no puedes gestionar. Manufactura Latam lo acaba de confirmar: el monitoreo de MTBF, disponibilidad operacional y vibración permite detectar anomalías antes de que se conviertan en fallas costosas. Y OXMaint lo acaba de demostrar: los tres números — MTBF, MTTR y OEE — separan operaciones que corren al 87% de eficiencia de las que están atrapadas en 61%. Para los gerentes de operaciones y supervisores de mantenimiento en América Latina, estos KPIs no son métricas abstractas. Son la diferencia entre una flota de camiones disponible el 90% vs el 65%. Son la diferencia entre un molino que produce 8,000 toneladas por día vs 5,000. La buena noticia es que medir no es difícil. Lo que falta es la decisión de empezar. El momento de comenzar es ahora.