Valores cuota y patrimonio de los fondos de las AFP de Chile, descargados desde la Superintendencia de Pensiones y publicados como CSV listos para usar.
Los datos cubren los cinco tipos de fondo (A, B, C, D y E), desde el inicio de cada uno (el fondo C parte en 1981) hasta el último día hábil disponible, para todas las AFP históricas y vigentes (incluida AFP UNO).
Actualización 2026: el proyecto se reescribió por completo en Python. La descarga ya no requiere navegador ni Selenium (antes usaba Ruby +
webdrone): la Superintendencia genera el CSV vía una petición HTTP directa. El patrimonio ahora se guarda como entero (antes algunas celdas salían en notación científica). Los notebooks de análisis se reemplazaron por el móduloafpdata.analysis, que genera los gráficos encharts/.
🌐 Página web: gráficos y descargas en collabmarket.github.io/data_afp.
Gráficos por AFP en charts/: valor cuota multifondos (histórico
completo), rentabilidad anualizada, rentabilidad semanal (últimos 365 días) y
valor cuota / rentabilidad diaria (últimos 60 días). Por ejemplo:
Los archivos están en la carpeta data/. Se pueden descargar directo
con estos enlaces (reemplaza AFP por la que quieras):
Valor cuota de una AFP, todos los fondos — VC-<AFP>.csv:
Formatos disponibles en data/:
| Archivo | Contenido |
|---|---|
VC-<AFP>.csv |
Valor cuota de una AFP, columnas = fondos A–E |
PAT-<AFP>.csv |
Valor patrimonio de una AFP, columnas = fondos A–E |
vcf<X>.csv |
Valor cuota de un fondo (A–E), columnas = AFP |
patf<X>.csv |
Valor patrimonio de un fondo (A–E), columnas = AFP |
f<X>.csv |
Valor cuota y patrimonio de un fondo, columnas MultiIndex (AFP, Item) |
Todos usan ; como separador y coma decimal (formato chileno). El valor cuota
va con coma decimal (p. ej. 56128,23) y el patrimonio como entero en pesos.
El entorno se maneja con mise (Python 3.12 + venv
automático, ver mise.toml):
mise install # instala Python y crea el venv
mise run install # instala pandas, requests, matplotlib
mise run update-data # descarga en vivo y actualiza data/
mise run charts # regenera los gráficos en charts/
mise run all # ambas cosasSin mise, cualquier Python 3.9+ sirve:
pip install -r requirements.txt
python -m afpdata # actualiza data/
python -m afpdata.analysis # regenera charts/Opciones útiles:
python -m afpdata --raw-dir raw # además guarda los CSV crudos en raw/
python -m afpdata --from-raw raw # reprocesa desde raw/ sin descargar
python -m afpdata --out-dir otra_ruta # cambia el directorio de salida
python -m afpdata.analysis CUPRUM UNO # gráficos solo de algunas AFPLa actualización automática diaria corre en GitHub Actions
(.github/workflows/update-data.yml):
descarga los datos, y si cambian, los commitea al repositorio.
afpdata/
source.py Descarga el CSV crudo desde spensiones.cl (HTTP directo)
parse.py Parsea el CSV por bloques a un DataFrame ordenado (AFP, Item)
build.py Genera todos los CSV de salida en data/
cli.py Orquesta descarga → parseo → escritura (python -m afpdata)
analysis.py Genera los gráficos por AFP en charts/ (python -m afpdata.analysis)
Superintendencia de Pensiones, formulario Valores de Cuota y del Patrimonio. Los valores confirmados se publican dentro de las 24 horas del día hábil siguiente.
MIT.

