Saltar a contenido

Finanzas Municipales

Descripción

Indicadores financieros municipales anuales provenientes de SINIM/SUBDERE, normalizados por comuna para cruces territoriales.

Cobertura: 345/346 comunas, año 2024. Falta Antártica (12202), hueco conocido de la fuente (administración especial sin municipio en SINIM).

Cadencia: extracción mensual vía monthly-scrape.yml (cron día 1, 03:00 UTC, extractor live sinim_finanzas_live_extractor.py); último snapshot live 2026-09-01. Freshness anual (max_age_hours: 8760).

Fuente y licencia

  • Fuente: SINIM - SUBDERE
  • URL: https://datos.sinim.gov.cl/datos_municipales.php
  • Reutilización: datos públicos municipales con atribución; términos sujetos a revisión operativa.

Esquema

Campo Tipo Descripción
anio integer Año presupuestario.
codigo_comuna string Código CUT comunal de 5 caracteres.
nombre_comuna string Nombre de la comuna.
ingresos_totales float Ingresos municipales totales.
gastos_totales float Gastos municipales totales.
ingresos_propios_permanentes float Ingresos propios permanentes.
fondo_comun_municipal float Aportes o ingresos asociados al Fondo Común Municipal.
gasto_personal float Gasto en personal.
gasto_inversion float Gasto de inversión.

Uso

from chile_hub import ChileHub

hub = ChileHub()
df = hub.load_polars("finanzas_municipales")
SELECT anio, codigo_comuna, ingresos_totales, gastos_totales
FROM 'data/normalized/finanzas_municipales.parquet';

Limitaciones

La serie proviene del extractor live mensual (Playwright contra SINIM, snapshot versionado en git). Si un ciclo mensual falla, el build retiene el último snapshot bueno — ver source_mode y refreshed_at_utc en data/staging/finanzas_municipales.metadata.json para la vigencia efectiva. Antártica (12202) no tiene municipio en SINIM y queda fuera de la serie por diseño (contrato coverage_policy: "partial_expected").

Registro de cambios

  • v1: Dataset agregado al pipeline con validación centralizada y artefactos Parquet/JSON/DuckDB/SQLite/Excel.

Clasificación de salud (ADR-014)

El contrato declara coverage_policy: "partial_expected": SINIM no publica el universo completo de municipios en cada corte. Cuando la cobertura resulta partial, el artefacto marca coverage.expected: true y el dataset no cuenta como drift — la parcialidad es de diseño, no una degradación.

Schema (auto-generado desde contracts/datasets/finanzas_municipales.schema.json)

Columna Tipo Ejemplo Requerida Nota
anio INTEGER 2024 Sí PK
codigo_comuna VARCHAR(5) "01101" Sí PK
ingresos_totales / gastos_totales DOUBLE 245000000000.0 No —
ingresos_propios_permanentes DOUBLE 162000000000.0 No —
fondo_comun_municipal DOUBLE 39000000000.0 No —