Appearance
Índice Futuros — cómo se calcula
El Índice Futuros es la cifra 0–100 que encabeza cada país en el atlas de futuros.xyz. No es una opinión ni una estimación editorial: es una función documentada de indicadores citados, recalculada desde los datos crudos en cada build de la plataforma. Esta página explica el método completo, paso a paso, con las fórmulas exactas y la cadena de auditoría que permite descomponer cualquier puntaje hasta su registro de fuente original.
Resumen en una línea
El índice es el promedio, con pesos iguales, de 10 puntajes de pilar; cada pilar es el promedio de sus indicadores citados, normalizados a 0–100 contra metas fijadas en los percentiles 5 y 95 de la distribución regional agrupada (método tipo IDH/ODS).
Alcance
| Dimensión | Valor |
|---|---|
| Geografías | 26 (25 países + agregado LATAM) |
| Pilares | 10 |
| Ventana temporal | 2010–2024, serie anual |
| Indicadores con señal (ids únicos) | 189 |
| Instancias indicador×país que contribuyen | 4.676 |
| Celdas pilar×país puntuadas | 260 de 260 (0 vacías, 0 en cuarentena) |
Cifras del último horneado (2026-06-14); se regeneran con cada actualización de datos.
Los 10 pilares, con peso idéntico (0,10 cada uno): salud · educación · trabajo y economía · seguridad · justicia y estado de derecho · medio ambiente y clima · infraestructura · innovación y soberanía tecnológica · cohesión social e inclusión · gobernanza democrática.
El pipeline en cuatro etapas
indicadores citados horneado salida interfaz
public/data/parameter-cache/** ──▶ bake-composite-scores.ts ──▶ scores.json ──▶ atlas / panorama país
(cada indicador lleva citation_id → citations.json → registro de fuente)- Entrada. Cada celda
pilar × paísde la caché de parámetros contiene instancias de indicadores con serie temporal, unidad, dirección deseable (good_direction) ycitation_id. Las celdas en cuarentena (marcadas por los controles de integridad) se excluyen por completo. - Horneado. El script
scripts/bake-composite-scores.tsaplica el método descrito abajo y emitepublic/data/scores.json. - Verificación. Un gate de prebuild (
scripts/check-scores.ts) bloquea el despliegue si falta cobertura o si algún puntaje sale del rango [0, 100]. - Presentación. La interfaz lee
scores.json; los pesos de pilar viven en un solo lugar del cliente (PARAM_WEIGHTS) y se renormalizan a suma 1, de modo que reponderar el índice es un cambio de una línea, transparente y versionado.
El método, paso a paso
Paso 1 — Metas (goalposts) por indicador
Para cada indicador (por ejemplo, esperanza de vida al nacer) se agrupan todas sus observaciones a través de todos los países y todos los años de la ventana. Las metas se fijan en los percentiles 5 y 95 de esa distribución agrupada:
- P5 = piso (puntaje 0) · P95 = techo (puntaje 100)
- Con menos de 8 observaciones se usa mín–máx como respaldo.
Usar percentiles en lugar del mínimo y máximo evita que el valor atípico de un solo país defina la escala para toda la región. Y agrupar todos los años en una sola distribución hace las metas estables en el tiempo: si un país mejora, su puntaje sube; la vara no se mueve con él.
Paso 2 — Normalización 0–100, consciente de la dirección
Cada observación se transforma a puntaje:
n(i, c, t) = clamp[0,100]( (x(i, c, t) − P5ᵢ) / (P95ᵢ − P5ᵢ) × 100 )
si good_direction(i) = "down": n ← 100 − ndonde x(i, c, t) es el valor del indicador i en el país c el año t. La inversión direccional garantiza que más puntaje siempre significa mejor: en homicidios por 100.000 o emisiones per cápita, un valor bajo produce un puntaje alto.
Exclusiones (por diseño, no por conveniencia):
- Indicadores con
good_direction: neutral(población total, superficie…) son descriptivos, no normativos → no puntúan. - Indicadores constantes o con un solo valor no discriminan entre países → no puntúan.
- En el último horneado: 20 ids excluidos por estas reglas, 189 con señal.
Paso 3 — Relleno de la serie 2010–2024
Muchas fuentes publican con rezago o en años alternos. Para cada instancia de indicador se completa la serie anual arrastrando la observación más cercana (hacia adelante de preferencia; hacia atrás para los años previos a la primera observación). Cada celda queda marcada como observada o rellenada, y la proporción de celdas observadas se publica como cobertura por pilar (por ejemplo, salud en Costa Rica: 40 indicadores, cobertura 0,827). El relleno nunca inventa niveles nuevos — solo sostiene el último valor conocido.
Paso 4 — Puntaje de pilar
S(p, c, t) = promedio de n(i, c, t) sobre los indicadores i que contribuyen al pilar pPromedio simple, sin pesos internos: dentro de un pilar, cada indicador con señal cuenta igual.
Paso 5 — El Índice Futuros
Índice(c, t) = Σₚ wₚ · S(p, c, t), con wₚ = 0,10 para los 10 pilaresLos pesos son iguales de forma deliberada: el índice es un promedio transparente de diez lentes, no un modelo con ponderaciones opacas. Cualquier reponderación futura será un cambio explícito y auditable en PARAM_WEIGHTS (los pesos se renormalizan a suma 1 automáticamente).
La variación a 5 años (Δ5a) que acompaña al índice es simplemente Índice(c, 2024) − Índice(c, 2019) sobre la misma serie.
Cadena de auditoría: de la cifra a la fuente
Cada puntaje es descomponible de extremo a extremo:
Índice (72, Costa Rica)
└─ pilar salud (69) — 40 indicadores, cobertura 0,827
└─ contributing[]: id del indicador + citation_id
└─ citations.json: fuente, serie, año, URL profunda
└─ registro original (Banco Mundial, CEPAL, OPS, fuente nacional…)scores.json publica, por cada celda pilar×país: la serie completa 2010–2024, el número de indicadores que contribuyen, la cobertura observada, y la lista contributing[] con el id y el citation_id de cada indicador. No existe ningún número en el índice que no se pueda seguir hasta un registro de fuente citado.
Cómo leer el número
- Es relativo a la región, no absoluto. Un 100 significa "en el percentil 95 de la distribución agrupada de América Latina y el Caribe 2010–2024", no "problema resuelto". No es comparable con el IDH ni con otros índices en niveles.
- La ordenación importa más que el decimal. Los puntajes se redondean a enteros; diferencias de 1–2 puntos entre países están dentro del ruido de cobertura.
- El comportamiento del índice es verificable en los extremos. En el último horneado: Uruguay 79, Chile 75, Costa Rica 72 arriba; Haití 21 abajo; el agregado LATAM en 59. Los Estados frágiles puntúan bajo, las democracias más sólidas lideran gobernanza y justicia — la dirección del método se sostiene sin ajustes manuales.
Limitaciones declaradas
Lea esto antes de citar el índice
Las cuatro limitaciones siguientes son parte de la metodología, no letra pequeña.
- Relleno temporal. Los años sin observación arrastran el último valor conocido; la cobertura publicada por pilar cuantifica cuánto de la serie es observado vs. sostenido.
- Promedio simple dentro del pilar. Un pilar con muchos indicadores de un mismo tema inclina el puntaje hacia ese tema; la lista
contributing[]hace visible esa composición. - Metas agrupadas por región. El índice mide posición dentro de América Latina y el Caribe; no captura la distancia frente a referentes extrarregionales.
- Ventana 2010–2024. Cambios estructurales anteriores a 2010 no afectan las metas.
Reproducibilidad
El índice completo se regenera desde los datos citados con un comando:
bash
bun run scripts/bake-composite-scores.ts # regenera public/data/scores.json
bun run scripts/check-scores.ts # gate: cobertura + todo puntaje ∈ [0,100]El método está implementado en un único archivo legible (scripts/bake-composite-scores.ts, ~300 líneas) y este documento se corresponde línea a línea con ese código. Si el código y este documento divergen, el código manda y el documento se corrige — nunca al revés.
Referencias metodológicas
- PNUD, Human Development Report — Technical Notes (normalización por metas del IDH).
- OCDE/JRC, Handbook on Constructing Composite Indicators: Methodology and User Guide, 2008.