indicadores
Resumen
Serie de indicadores económicos diarios de alta reutilización para software, análisis y reporting.
Es una capa de conveniencia: evita que cada proyecto tenga que consultar o parsear por su cuenta valores como UF, dólar, euro o UTM.
Estado
status: activo en MVPconfidence: Tier A/Bprimary_join_key:fecha+codigo_indicadorupdate_mode: automatizado con refresh incremental, recuperación parcial y fallback
Fuente
- consumo actual desde
mindicador.cl(agregador; fuente original BCCh e INE) - override de IPC desde el INE (
src/extractors/ine_ipc.py): cuando mindicador.cl no entrega la serieipcdel año en curso (muerta upstream desde 2025-12, issue #43), la variación mensual se toma de la página pública del INE — la fuente autoritativa — antes de recurrir al backfill. El patrón de parseo (anclado al<h1>del IPC) es el validado en el proyecto Monedario desde 2026-05-16. - procesamiento local desde
src/extractors/bcentral_extractor.py
Método de acceso actual
- llamada HTTP a
https://mindicador.cl/api - refresh incremental del año en curso cuando ya existe staging
- si una serie falla, recuperación desde
data/rawcuando hay snapshot utilizable - si
ipcdel año en curso viene vacío o falla, override desde el INE (https://www.ine.gob.cl/.../indice-de-precios-al-consumidor) — solo para el año en curso (el INE publica el último mes, no historial) - si un código esperado ya no está en staging, reuso del último artifact publicado para no degradar silenciosamente la capa
- si no se logra construir un dataset usable, generación local de registros de fallback
Señales operativas publicadas
El estado efectivo del último refresh ya no queda solo en staging; también se publica en los artifacts compartidos del hub.
Campos relevantes:
source_mode:liveofallbacksource_detail: distingue live sano de recuperación parcialindicator_codes: lista de códigos esperados presentes en el artifactindicator_delivery: mapa compacto por código con estadolive,raw_recovery,preserved_existing,ine_overrideopublished_backfillwarnings: explica fallas parciales detectadas durante el refreshnotes: deja trazabilidad compacta de series vacías, overrides INE, backfills y recuperacionesdegradation,driftytop_issue: consolidan la acción operativa sugerida
Ejemplo real del estado actual:
source_mode:livesource_detail:public_api_with_published_backfillindicator_delivery:ipcquedó comoine_override(serie tomada de la fuente autoritativa INE cuando mindicador.cl no la entrega — Plan 069), mientrasdolar,euro,ufyutmsiguieronlivewarnings: la API devolvió serie vacía paraipc/2026y el hub usó el override del INE para ese código
Por qué existe esta capa
Problemas que resuelve:
- consultas repetidas para indicadores de uso cotidiano
- inconsistencias entre formatos de fecha y nombres de indicador
- necesidad de una salida local y simple para pipelines o dashboards
Salidas
data/normalized/indicadores.parquetdata/normalized/indicadores_hoy.jsondata/staging/indicadores.metadata.json- tabla
indicadoresendata/normalized/chile_data.duckdb - tabla
indicadoresendata/normalized/chile_data.db - hoja
Indicadores Diariosendata/normalized/chile_data_latest.xlsx
Esquema actual
Fuente observada: data/normalized/chile_data.duckdb
| Campo | Tipo | Descripción |
|---|---|---|
fecha |
DATE |
Fecha del valor publicado |
codigo_indicador |
VARCHAR |
Identificador corto del indicador |
valor |
DOUBLE |
Valor numérico normalizado |
Indicadores considerados hoy
ufdolareuroutmipc
Normalizaciones aplicadas
- truncado de fecha ISO a
YYYY-MM-DD - renombre de claves de la API a un código corto canónico
- casteo consistente a
DATE,VARCHARyDOUBLE - ordenamiento por
fechaycodigo_indicador
Join value
Cruces sugeridos:
fechapara análisis temporalescodigo_indicadorpara pivoteo o series comparativas
Advertencias
- la salida puede provenir de datos live, de una mezcla live + recuperación parcial o de fallback local
indicadores_hoy.jsonlleva solo la última fecha publicada por código (una fila porcodigo_indicador); el historial completo vive enindicadores.parquet/.db/.duckdb- la cobertura histórica sigue siendo oportunista; no es todavía un archivo histórico oficial curado capa por capa
- la capa sirve bien para conveniencia operativa, pero no aún como fuente definitiva de archivo histórico
- el modo efectivo del último refresh queda registrado en
data/staging/indicadores.metadata.jsony consolidado endata/normalized/pipeline_metadata.json - cuando una serie viene vacía desde la fuente, el hub prioriza no perder cobertura ya publicada y deja ese hecho visible en
warnings,notes,driftytop_issue
Notas legales
- la API actual es pública y está orientada a desarrolladores, pero no expone una licencia abierta explícita en la superficie revisada
- si esta capa se redistribuye fuera del repo, conviene revisar términos vigentes de la fuente y mantener atribución visible
Recomendación de evolución
Esta capa puede seguir en MVP, pero todavía conviene mejorar en:
- una estrategia más robusta para series que la API devuelve vacías aunque el resto del refresh siga sano
- una política explícita para distinguir backfill desde raw local versus backfill desde artifact publicado
- una estrategia histórica más clara para IPC y UTM frente a snapshots parciales del agregador
Entregada (ADR-017): la estrategia del punto 3 para el IPC está decidida y documentada en
ADR-017— cadena multi-fuente (agregador → override INE → backfill) con delivery visible y escape hatch; pendiente el análogo para UTM (pregunta abierta del mismo ADR).
Vigencia de las series (ADR-016)
pipeline_metadata.json expone indicator_max_date e indicator_age_days por
serie: la antigüedad se mide sobre el dato entregado, no sobre cuándo corrió
el extractor. Las edades negativas son normales — la UF y la UTM se publican por
adelantado.
Si una serie se entrega vía published_backfill (reuso del último artefacto
publicado ante un hueco de la fuente) y su último dato supera el umbral de su
cadencia — 70 días para mensuales (UTM, IPC), 10 para diarias (UF, dólar, euro)
—, el gate de publicación rechaza el build hasta que alguien confirme el
estado contra la fuente y use --allow-stale-backfills.
El delivery ine_override (serie tomada del INE, la fuente autoritativa del
IPC) no es un backfill (es un dato nuevo, no una reutilización del
artefacto publicado) y no se marca como unsafe — pero sí dispara el gate de
edad (ADR-016): si la página del INE sirve el mismo valor mes tras mes, el
dato entregado es stale y el build se rechaza, igual que un backfill repetido
(Plan 069).
Estado conocido: la serie ipc no recibe datos nuevos desde 2025-12-01. El
diagnóstico upstream está abierto en el issue #43.
Schema (auto-generado desde contracts/datasets/indicadores.schema.json)
| Columna | Tipo | Ejemplo | Requerida | Nota |
|---|---|---|---|---|
fecha |
DATE |
"2026-05-30" |
Sí | PK |
codigo_indicador |
VARCHAR |
"uf" |
Sí | PK |
valor |
DOUBLE |
39420.5 |
Sí | — |