Principio rector
Cada figura termina con una etiqueta ideológica (ej. social-democracy, liberal-conservatism). Esa etiqueta debe ser consecuencia de su posición en el compás, no una decisión previa.
Dos campos distintos, ambos con fuentes:
ideologySelfAssignment— la ideología que mejor representa lo que la figura dice ser (derivada decompassSelfPerceived).ideologyEvidencedAssignment— la ideología que mejor representa lo que las acciones muestran (derivada decompassEvidenced).
Cada asignación va con una justificación escrita y al menos una fuente verificable. Sin fuentes no hay asignación — el schema Zod y Pydantic lo rechaza.
La regla de proximidad (flexible con justificación)
Cada ideología en ideologies.json tiene un centro (x, y) y unas dimensiones (width, height) que definen su “caja” en el compás.
Regla por defecto: asignar la ideología cuyo centro esté más cerca (distancia euclidiana) del punto de la figura, dando preferencia a ideologías del mismo cuadrante.
Excepción justificada: se puede asignar una ideología distinta a la más cercana si:
- la figura se identifica explícitamente con esa etiqueta en una fuente propia, o
- hay evolución ideológica documentada (ej. ex-combatiente, cambio de partido con declaración pública), o
- la ideología describe mejor la familia política aun cuando su posición numérica la haya movido (ej. socialliberal que queda en lib-der)
Cuando se usa la excepción, la justificación debe nombrar el motivo y citar la fuente.
Sin límite de distancia entre self y evidenced
No existe límite artificial de distancia entre ideologySelfAssignment e ideologyEvidencedAssignment. Si la evidencia muestra que un político gobierna desde una ideología opuesta a la que declara, eso se refleja tal cual — hacer visible esa divergencia es precisamente el propósito de Brújula Política.
Lo único obligatorio es el “por qué”: a mayor distancia entre self y evidenced, más robusta debe ser la justificación y las fuentes de la posición evidenciada.
Fuentes requeridas por tipo de asignación
ideologySelfAssignment.sources
Representan la voz de la figura:
- página web oficial del político, campaña o partido
- Wikipedia en español
- programa de gobierno registrado en CNE/Registraduría
- estatutos/plataforma programática del partido
- perfil institucional (Senado, Cámara, Alcaldía, Gobernación)
No aceptadas: medios de comunicación, redes sociales como fuente primaria, blogs de opinión, think tanks sin cross-check.
ideologyEvidencedAssignment.sources
Evidencia primaria sobre acciones:
- CongresoVisible (votaciones en el Congreso)
- SUIN-Juriscol / Diario Oficial (decretos, actos administrativos)
- Contraloría (ejecución presupuestal)
- Registraduría (resultados electorales, coaliciones)
- sentencias judiciales, informes oficiales, datos de planes de desarrollo
Los medios pueden complementar como fuentes de hechos verificables, nunca como etiqueta ideológica.
Estructura en el JSON
{
"id": "ejemplo-politico",
"ideologies": ["social-democracy", "progressivism"],
"ideologySelf": "social-democracy",
"ideologyEvidenced": "social-democracy",
"ideologySelfAssignment": {
"ideologyId": "social-democracy",
"justification": "Se autodefine como socialdemócrata en su sitio oficial y plataforma 2022. Su posición auto-percibida (x=-3.2, y=-2.8) cae dentro del rectángulo de social-democracy.",
"sources": [
{ "url": "https://sitio-oficial.co/quien-soy", "outlet": "Sitio oficial", "date": "2024-01-15" },
{ "url": "https://es.wikipedia.org/wiki/...", "outlet": "Wikipedia", "date": "2024-01-15" }
]
},
"ideologyEvidencedAssignment": {
"ideologyId": "social-democracy",
"justification": "Análisis metodológico del proyecto: votaciones en CongresoVisible (2022-2024) muestran apoyo sistemático a reforma tributaria progresiva, reforma laboral y derechos sociales. Posición resultante coincide con el centro de social-democracy.",
"sources": [
{ "url": "https://congresovisible.uniandes.edu.co/...", "outlet": "CongresoVisible", "date": "2024-12-01" },
{ "url": "https://www.suin-juriscol.gov.co/...", "outlet": "SUIN-Juriscol", "date": "2024-06-01" }
]
}
}
Compatibilidad con campos legacy
Los campos ideologySelf e ideologyEvidenced (string) se mantienen por compatibilidad. Si están presentes ambos, sus ideologyId deben coincidir — el schema lo valida.
El campo ideologies: string[] sigue como lista de etiquetas tangenciales que no son la principal.
Proceso paso a paso
- Calcular
compassEvidencedcon la metodología de scoring, fuentes primarias, confianza calibrada. - Calcular
compassSelfPerceiveddesde sitio oficial, Wikipedia, plataforma. - Asignar
ideologyEvidencedbuscando enideologies.jsonla ideología del mismo cuadrante cuyo centro esté más cerca de la posición evidenciada. - Asignar
ideologySelfcon la misma lógica sobre la posición auto-percibida, con preferencia a etiquetas que la figura use. - Documentar divergencia. Si
ideologySelf≠ideologyEvidenced, explicar en la justificación qué evidencia causa la diferencia. A mayor distancia, más detallada la justificación y más fuentes. - Escribir justificaciones citando al menos 1 fuente por cada
Assignment. - Validar con Zod/Pydantic. Sin justificación ≥20 caracteres o sin fuente, falla.
Qué NO hacer
- No asignar ideología antes de calcular el compás. La ideología es consecuencia, no premisa.
- No asignar ideologías sin justificación escrita. Toda asignación requiere explicar por qué. A mayor distancia entre self y evidenced, más detallada la justificación — pero el salto en sí no está prohibido si la evidencia lo sustenta.
- No usar ideologías que no existan en
ideologies.json. Si falta una, agregarla primero (conwikipediaUrl,externalLinks,description). - No omitir fuentes. Sin fuentes = no se asigna.
Metadata obligatoria de ideologías y partidos
Para que un usuario pueda verificar por sí mismo qué significa cada ideología:
En ideologies.json
wikipediaUrl— enlace directo a Wikipedia (ES preferente)externalLinks[]— al menos 1 fuente académica/enciclopédicadescriptiondetallada
En parties.json
websiteUrl— sitio oficial verificadosources[]— al menos 1 fuente externa (CNE, Registraduría, análisis)compassPositioncon justificación, fuentes y confianza
Historial de cambios
| Versión | Fecha | Cambio |
|---|---|---|
| 1.0.0 | 2026-04-15 | Versión inicial. Introducción de ideologySelfAssignment, ideologyEvidencedAssignment, regla de proximidad flexible con justificación, requisito de fuentes por asignación. |
| 1.1.0 | 2026-04-15 | Se elimina el límite de ~6 unidades entre self y evidenced. Lo que importa es la justificación documentada, no un tope numérico artificial. |