Referencia · PolariScore

Cómo se calcula el cumplimiento

El porcentaje de una política no se escribe a mano: se deriva de la programación anual de sus acciones y de lo que se ha reportado como ejecutado. Esta página documenta la cadena completa y la contrasta con los datos de producción.

Verificado. La fórmula descrita aquí reproduce exactamente el valor almacenado en totalPolitica para de las políticas vigentes. Las que no cuadran no son un error de la fórmula: es el valor guardado que quedó desactualizado (ver Cuándo se persiste).

Los tres datos de entrada

DatoDónde viveQué es
aniosen la acciónArreglo con lo programado para cada año, en el orden del plan. Su longitud define el horizonte de esa acción.
ejecutadoPolariScore/seguimientos/{idAccion}Mapa por año calendario con lo efectivamente logrado.
importancia_objetivoen el objetivoPeso del objetivo dentro de su política. Los objetivos de una política deben sumar 1.
El detalle que descoloca a todo el mundo: anios es un arreglo por posición y ejecutado es un mapa por año. Para cruzarlos hace falta saber en qué año arranca la política:
anioInicio = año de fecha_politica  // "01/01/2023" → 2023
año de la posición i = anioInicio + i

Si ese año inicial se toma mal, todo el cálculo se desplaza y el resultado cae a casi cero sin que nada avise. Es exactamente lo que le pasa hoy al KPI global del tablero de la v1 —el caso está medido en Las dos versiones—.

1. Cumplimiento de una acción

programado = Σi anios[i]
ejecutado  = Σi min( ejecutado[anioInicio + i] , anios[i] )  // tope por año
cumplimiento = programado > 0 ? ejecutado / programado × 100 : 0

El min es deliberado: si una acción programada en 1 reporta 3, ese exceso no compensa los años en que no se hizo nada. El tope se aplica año por año, no al total.

Por qué el tope es por año y no al final
Si el tope se aplicara al total, una acción con programación [1,1,1] que reporta [3,0,0] daría 100 %: se habría "adelantado todo el primer año". Aplicándolo por año da 33 %, que es lo que refleja la realidad de una política que se ejecuta a lo largo del tiempo.

2. Cumplimiento de un objetivo

No es el promedio de sus acciones: se agregan primero las sumas y se divide al final. Eso hace que las acciones con más programación pesen más dentro del objetivo, sin necesidad de un peso explícito por acción.

cumplimiento(objetivo) = ( Σacciones ejecutado ) / ( Σacciones programado ) × 100
Consecuencia: importancia_accion existe en los datos pero no interviene en este cálculo. Solo la usa el KPI agregado del tablero de la v1. Si esperabas que ponderara dentro del objetivo, no lo hace.

3. Total de la política

aporte(objetivo) = cumplimiento(objetivo) / 100 × ( importancia_objetivo × 100 )
totalPolitica = Σobjetivos aporte

Es decir: cada objetivo puede aportar como máximo su peso expresado en puntos porcentuales. Si los pesos suman 1, el total llega a 100 % cuando todo está ejecutado.

Ejemplo real — política P-001

"Política de Formación Profesoral", con seis objetivos:

ObjetivoPesoProgramadoEjecutadoCumplimientoAporte
Cargando desde producción…

Los pesos y por qué importan tanto

Un peso mal cargado no produce ningún error visible: produce un porcentaje silenciosamente equivocado.

Σ pesos = 1

Es la condición para que la política pueda llegar al 100 %. Nada en la aplicación lo valida.

Σ pesos < 1

El techo baja: con 0,9 la política nunca podrá pasar del 90 %, aunque todo esté ejecutado.

Σ pesos > 1

El total puede superar el 100 %, lo que rompe las gráficas y la lectura del gauge.

Estado hoy: consultando…

importancia_politica no es un peso del conjunto

Cada política tiene también un campo importancia_politica. No se usa para ponderar unas políticas contra otras: la suma de las 22 da , no 1. Ninguna pantalla lo emplea hoy en el cálculo del cumplimiento; conviene tratarlo como un dato descriptivo heredado del formato de carga.

Por eso el indicador institucional que se publica es el total de cada política, y no existe un "cumplimiento del conjunto de políticas" ponderado. El promedio simple que muestran los tableros () es exactamente eso: un promedio, no una agregación ponderada.

Cuándo se persiste el total

El total no se recalcula en un proceso nocturno: se recalcula cuando alguien abre la ficha de la política. Si el valor nuevo difiere del guardado en más de 0,01 puntos, entonces:

Implicación operativa: después de registrar ejecución en varias acciones, el índice de políticas puede seguir mostrando el valor anterior hasta que alguien abra cada ficha. Si vas a presentar cifras, abre primero las políticas involucradas.

El historial guarda una entrada por día: varias recalculadas el mismo día sobrescriben la misma clave. Es lo que alimenta la curva de evolución de la política.

Cómo se registra lo ejecutado

Desde la ficha de la acción, con el modal de evaluación: una pestaña por año, y al guardar se escribe seguimientos/{idAccion}/ejecutado junto con una copia fechada del estado completo:

PolariScore/seguimientos/IAP-001 = {
  ejecutado: { "2023": 1, "2024": 1, "2025": 1, "2026": 0, "2027": 0, "2028": 0 },
  historialEvaluacion: {
    "04-02-2026":   { ejecutado: {…}, fecha: "2026-02-04T23:11:52.389Z", id_usuario: "…@unitropico_edu_co" },
    "04-02-2026_1": { … }   // segunda evaluación del mismo día
  }
}

Horizontes distintos por política

No todas las políticas duran lo mismo. El número de años lo determina el propio dato —la longitud de anios en cada acción— y no una constante del código.

Longitud de aniosAccionesComentario
Cargando…
Requisito silencioso: anios debe guardarse como arreglo contiguo. Si queda como objeto disperso ({0:1, 2:1}), su longitud subcuenta y el horizonte de esa acción se acorta sin aviso.

Checklist de diagnóstico

SíntomaCausa habitual
Registré ejecución y la política no se movióEl total se refresca al abrir la ficha de la política, no al guardar la acción.
La política no llega al 100 % ni con todo ejecutadoLos pesos de sus objetivos suman menos de 1.
Una acción reporta de más y no sube nadaEl tope por año descarta el exceso; revisa si el año correcto es otro.
El cumplimiento cayó tras ampliar el horizonteSe añadieron años programados sin ejecución: el denominador creció.
El tablero muestra un cumplimiento global casi nuloEs el KPI de la v1, que desplaza los años. Ver Las dos versiones.