| Nombre | Partido | Región | % Asist. | Interv. | |
|---|---|---|---|---|---|
| Seleccione un período. | |||||
| Nº | Fecha | Tipo | Tema principal | Presidente | Asist. | |
|---|---|---|---|---|---|---|
| Seleccione un período. | ||||||
Dashboard de acceso público a los datos históricos de la Cámara de Diputadas y Diputados de Chile. Centraliza asistencia individual, intervenciones en sala, votaciones detalladas, tramitación legislativa y análisis de sentimiento desde 1990 hasta hoy. Todo el flujo —desde la descarga hasta la visualización— es automatizado y reproducible.
scrape_camara.py y scrape_proyectos.py, que consultan la API de la Cámara y descargan sesiones, diputados, proyectos, votaciones por boletín y proyectos de ley del período activo. El XML completo del boletín de cada sesión se almacena íntegramente para su posterior parseo. El ciclo completo tarda menos de 30 minutos.
camara_diputados (PostgreSQL) actúa como única fuente de verdad. La tabla sesiones_detalle guarda el XML crudo de cada sesión. Las tablas norm_diputados, norm_periodos y norm_legislaturas almacenan el catálogo base de diputados y períodos legislativos desde 1990.
normalize_congreso_data.py parsea el XML de cada sesión y construye tablas estructuradas: norm_sesion_asistencia (asistencia individual), norm_boletin_intervenciones (intervenciones en sala) y norm_boletin_secciones (orden del día). En períodos históricos P3–P6, donde el XML no incluía IDs numéricos, se aplica fuzzy matching de nombres para resolver la identidad de cada diputado con alta precisión.
DIPUTADOValue) pasa por este modelo y los resultados se agregan por diputado y por sesión. Es determinista y reproducible.compute_analytics.py genera tablas de métricas ya calculadas: analytics_diputado_periodo (asistencia %, intervenciones, sentimiento por diputado), analytics_partido_periodo (comparativas por bloque) y analytics_sesion (resumen por sesión). Esto permite que todas las vistas del dashboard carguen de forma instantánea — sin cálculos en tiempo de consulta.
/api/congreso/norm/* para datos normalizados y /api/congreso/analytics/* para métricas pre-computadas. Todos los datos vienen de PostgreSQL — nunca de archivos en disco. El frontend consume estos endpoints con JavaScript puro y renderiza tablas, gráficos de barras, scatter plots y análisis de sentimiento con Chart.js.
id_sesion único necesario para los pasos siguientes.id_sesion, solicita el boletín en formato XML. Este documento contiene: la asistencia nominal de todos los diputados (con código de asistencia: Presente, Justificado, Ausente, etc.), el orden del día con los temas y proyectos tratados, y el texto de las intervenciones en sala. No todas las sesiones tienen boletín publicado — ver la pestaña Cobertura.<SESION> contiene <ASISTENCIA> con un nodo <DIPUTADO> por cada parlamentario (atributos: nombre, partido, región, código de asistencia) y <INTERVENCIONES> con cada discurso anotado mediante el atributo DIPUTADOValue. El atributo VALID en el nodo raíz indica si la sesión alcanzó quórum reglamentario.thefuzz de Python con un umbral de similitud ajustado por período y apellido compuesto.Disponibilidad de boletines XML (actas oficiales) por período legislativo. Sin boletín no hay datos de asistencia, temas ni intervenciones.
| Período | Años | Sesiones | Cobertura actas | Sin quórum | Solo Cuenta | Notas |
|---|---|---|---|---|---|---|
| P1 | 1990–1994 | 429 | 58% |
0 | — | Datos limitados: boletines sin IDs numéricos, asistencia reconstruida por matching de nombres. Sin partido, región ni distrito. |
| P2 | 1994–1998 | 434 | 91% |
0 | — | 91% de cobertura. Actas sin IDs numéricos en sesiones pre-1996; asistencia parcial para esas sesiones. |
| P3 | 1998–2002 | 405 | 63% |
1 | 37 | Asistencia por presentes (sin ausentes registrados) |
| P4 | 2002–2006 | 481 | 69% |
4 | 24 | 149 sin acta; asistencia = 0 en esas sesiones |
| P5 | 2006–2010 | 527 | 73% |
1 | 39 | 142 sin acta; 22% de registros sin región/distrito |
| P6 | 2010–2014 | 540 | 98% |
1 | 72 | Asistencia completa vía API para sesiones sin acta |
| P7 | 2014–2018 | 522 | 98% |
3 | 54 | 13 sin acta + 28 con XML inválido |
| P8 | 2018–2022 | 568 | 71% |
0 | 0 | 166 sin acta (COVID-19). Sin región/distrito en XML |
| P9 | 2022–2026 | 543 | 34% |
0 | 34 | 361 sin acta publicada aún. Sin región/distrito en XML |
| P58 | 2026–2030 | 14 | En curso | — | — | 14 sesiones registradas desde el 11/03/2026; sin boletines publicados aún. Datos de asistencia, temas e intervenciones no disponibles. |
Cada sesión en la tabla puede mostrar uno de estos iconos indicando una situación especial. Haz clic sobre el icono directamente en la tabla para ver el detalle completo de esa sesión.
VALID="False". Los asistentes mostrados son los que se presentaron, pero insuficientes para constituir quórum.Restricciones de origen en los datos fuente que afectan la completitud o comparabilidad de ciertas métricas.
Decisiones de implementación y procesamiento que pueden afectar la interpretación de los datos.
DC → PDC, EVOPOLI → EVOP, PRD → RD, PCS → CS. Errores de parseo donde un nombre quedó concatenado con la sigla (ej. "Abel PRSD") también fueron corregidos manualmente.opendata.camara.cl. La sincronización es automática y se ejecuta cada noche (~22h). Los boletines XML son descargados, parseados y normalizados por un pipeline propio que detecta y registra las anomalías descritas en esta sección.