arrow_back Prototipos
Transparencia · Datos abiertos
En vivo

El sistema de pensiones, en un solo panel

La Superintendencia de Pensiones publica todo lo que uno querría saber del sistema. El problema es que lo publica en decenas de planillas Excel separadas: una para afiliados, otra para cotizantes, otra por cada tipo de fondo.

FastAPI · SQLite · APScheduler · Superintendencia de Pensiones · :8029

Estado
En vivo · se actualiza solo
Fuente de datos
Superintendencia de Pensiones · spensiones.cl
Stack
FastAPI · SQLite · APScheduler
Cadencia
Valores cuota a diario · series mensuales cada semana
Cobertura
276.833 valores cuota diarios (2002→) · 6 series mensuales (1981→)
Infraestructura
Raspberry Pi · $0 cloud

El problema

Las pensiones son probablemente el tema de política pública del que más se discute en Chile, y los datos para discutirlo están completos y publicados hace cuarenta años. El obstáculo no es el secreto: es la dispersión. Para responder algo tan básico como "¿cuánta plata hay y quién la administra?" hay que abrir el generador de CSV de valores cuota, después bajar la planilla de afiliados, después la de cotizantes, después la de comisiones — cada una con su propio formato, sus AFP que aparecen y desaparecen, y sus notas al pie. Quise ver si se podían juntar todas en un solo lugar consultable.

Qué construí

Un panel con cinco pestañas sobre una base propia que se llena sola desde el sitio de la Superintendencia.

  • check_circle Fondos: el patrimonio de los cinco tipos de fondo mes a mes, y el valor cuota diario de cada AFP desde 2002 — 276.833 observaciones, la serie más granular del panel.
  • check_circle Rentabilidad: la rentabilidad real —deflactada por UF, que es la cifra que importa— encadenada mes a mes desde la creación de los multifondos, más el ranking entre AFP dentro de un mismo fondo.
  • check_circle Afiliados y cotizantes: las dos curvas juntas desde 1981, que es la forma más directa de ver la informalidad: la brecha entre quien tiene cuenta y quien efectivamente puso plata este mes.
  • check_circle Pensiones y comisiones: cuánta gente entra a pensionarse cada mes, cuánto se paga por tipo de pensión en UF, y cuánto cobra cada AFP por administrar — con la serie completa desde 1988.
  • check_circle Todo con API abierta y corriendo 24/7 sobre una Raspberry Pi, con $0 de costo cloud. Los valores cuota se refrescan a diario; las planillas mensuales, cada semana.

Cómo funciona

La Superintendencia no tiene API, así que hubo que reversear su sitio. Los valores cuota salen de un generador de CSV que acepta un rango de años por tipo de fondo. Las series mensuales son archivos Excel estáticos que la Superintendencia reescribe en la misma dirección cada mes: eso significa que cada corrida reemplaza la serie completa y las correcciones hacia atrás llegan gratis. Los archivos son BIFF antiguo —Excel de los noventa— con fechas como número serial y las AFP como columnas.

Decisiones técnicas

Una tabla larga en vez de una tabla por planilla

La tentación obvia es crear una tabla por cuadro estadístico: una de afiliados, una de comisiones, y así. Habría significado tocar el esquema cada vez que quisiera sumar un indicador, y el catálogo de la Superintendencia tiene decenas. En vez de eso hay una sola tabla larga —indicador, fecha, dos dimensiones, valor— y un parser genérico que resuelve la forma común de todos esos cuadros. Sumar un indicador nuevo es agregar una línea a un diccionario, sin tocar el esquema ni el parser. Los seis actuales cargaron a la primera con ese mecanismo.

El pico de junio es real, y casi lo "arreglo"

Al revisar el resultado apareció algo imposible: en junio de 2022 había más cotizantes que afiliados, una densidad sobre el 100 %. Todo indicaba un error de parseo. No lo era: la nota al pie de la propia planilla explica que en junio cotizan de una vez los trabajadores independientes a honorarios, en la Operación Renta, y que la serie cuenta pagos "de cualquier período" — no solo del mes. El dato estaba bien; mi lectura no. En vez de suavizar la serie, el panel muestra el pico, lo explica, y ofrece la vista sin junio para cuando se quiere comparar mes a mes.

Los fondos no son categorías, son un orden

A, B, C, D y E no son cinco opciones intercambiables: son una escala de riesgo, del más expuesto a renta variable al más conservador. Pintarlos con cinco colores distintos los haría ver como categorías sueltas. Van con una rampa de un solo tono, de claro a oscuro, siguiendo ese orden — y como en el gráfico de rentabilidad las curvas quedan apiladas en ese mismo orden, el color y la posición dicen lo mismo.

Siete AFP no caben en siete colores

La primera versión pintaba las siete administradoras con siete colores. Al mirarla, cuatro compartían el mismo gris: el color había dejado de identificar a nadie. No es un problema de elegir mejores tonos —siete tonos simultáneamente distinguibles, también para quien no ve bien el color, no existen—. Es un problema de forma. Ahora se destaca una AFP a elección y el resto queda de contexto, con la leyenda declarando dos clases en vez de siete.

Un parámetro vacío que cuelga el servidor de origen

El generador de CSV de la Superintendencia acepta un parámetro con la fecha de confirmación. Si va vacío, el servidor no responde nunca — no da error, se queda colgado. Lo descubrí cuando una descarga de prueba superó los dos minutos sin devolver nada. La ingesta siempre pasa una fecha real, y está anotado en el código para que no se repita.

Qué encontré

  • savings Hay 225,2 billones de pesos en los fondos de pensiones al 29 de julio de 2026, repartidos entre siete administradoras. Por el sistema han pasado 11 AFP desde 2002; quedan 7.
  • trending_up Elegir fondo importa mucho más que elegir AFP. Desde que existen los multifondos, el fondo A acumula +328 % real y el fondo E, +101 %. En cambio, entre la mejor y la peor AFP dentro del mismo fondo C, en cinco años, la brecha es de 5,8 puntos porcentuales.
  • percent Donde sí se diferencian las AFP es en el precio: la comisión va de 0,46 % (UNO) a 1,45 % (PROVIDA). La más cara cobra 3,2 veces lo que la más barata por administrar lo mismo.
  • group Hay 12,19 millones de afiliados pero solo 7,77 millones cotizaron el último mes publicado. Descontando el efecto de junio, la densidad de cotización promedia 55,7 % en los últimos doce meses: cerca de la mitad de las cuentas no recibe aportes en un mes cualquiera.
  • elderly La pensión de vejez por edad promedia 6,57 UF al mes y la reciben 1.242.567 personas. La de vejez anticipada casi la dobla: 13,07 UF, para 194.650 personas — la diferencia entre quienes alcanzaron a acumular saldo suficiente para jubilar antes y el resto.

Qué es real y qué es parcial

Es un prototipo, no una estadística oficial, y conviene ser preciso.

  • verified Real: todas las cifras salen de la Superintendencia de Pensiones, sin recortes ni ajustes. El panel muestra al pie la cobertura efectiva de cada indicador y la fecha de la última ingesta.
  • schedule Parcial: cubre el sistema de capitalización individual (AFP). No incluye el antiguo sistema de reparto del IPS, ni las pensiones de las Fuerzas Armadas, ni la Pensión Garantizada Universal — la PGU tiene su propio monitor con datos comuna a comuna.
  • warning Lo que este dato NO permite: decidir en qué AFP o en qué fondo conviene estar. El ranking entre AFP es variación nominal pasada, no deflactada y no predictiva; y el panel no conoce la edad, el horizonte ni la tolerancia al riesgo de nadie. No es asesoría previsional.
  • link_off La fragilidad conocida: como no hay API oficial, todo depende de direcciones reverseadas del sitio de la Superintendencia. Si cambian, el panel se queda pegado. Por eso muestra siempre hasta qué fecha llega cada serie: para que eso se note en vez de pasar por dato fresco.
  • visibility A la vista: la serie de comisiones llega a un mes futuro (septiembre de 2026) porque la Superintendencia publica las comisiones ya anunciadas, no solo las vigentes. Está declarado en el propio panel.

¿Cuánto cobra tu AFP, y cuánto rindió?

El panel corre ahora mismo sobre la Pi y se actualiza solo.

Abrir el prototipo arrow_forward