Metodología
Versión metodológica pública 1.1. ColPulse organiza, valida y presenta información económica sobre Colombia. No produce estadísticas oficiales, no sustituye a las entidades fuente y no convierte asociaciones estadísticas en relaciones causales. Esta página documenta el significado de los datos, sus transformaciones, controles, limitaciones y condiciones de publicación.
La transparencia cubre definiciones, procedencia, fechas, unidades, fórmulas, estados y riesgos de interpretación. No incluye credenciales, archivos crudos privados, rutas de infraestructura ni detalles operativos que no sean necesarios para auditar una afirmación pública. Qué tan sólido es cada módulo está en el inventario de módulos.
Principios no negociables
- Fuente primaria antes que conveniencia.
- Cada indicador público debe tener fuente, fecha y estado de calidad.
- Un dato fallido se marca como pendiente; no se reemplaza con estimaciones silenciosas.
- Las hipótesis editoriales se separan de los hechos observados.
- Una derivación se identifica como derivación y un modelo se identifica como modelo.
- La ausencia de historia suficiente impide publicar una tendencia.
1. Alcance de las afirmaciones
Una tarjeta puede contener un nivel observado, un cambio entre cortes comparables, una derivación aritmética, una referencia editorial o un resultado estadístico. Estas categorías tienen fuerza epistémica distinta. Un nivel oficial informa lo publicado por la entidad; una derivación informa el resultado de una fórmula; una interpretación resume un patrón; un modelo estima bajo supuestos.
ColPulse no presenta recomendaciones de inversión, asesoramiento profesional ni promesas sobre resultados futuros. Las expresiones mejor, peor, aceleración o deterioro se aplican solo bajo reglas declaradas y no implican por sí mismas causalidad, bienestar integral o evaluación de política pública.
2. Jerarquía de fuentes
La prioridad corresponde a Banco de la República, DANE, Superintendencia Financiera y datos.gov.co para las operaciones bajo su responsabilidad. Se prefieren recursos tabulares reproducibles frente a transcripciones, imágenes o documentos secundarios. Una fuente periodística puede aportar contexto, pero no reemplaza una serie primaria disponible.
Por cada observación se conserva, cuando aplica, entidad, operación, URL, hash SHA-256, fecha de descarga, fecha de parseo e identificador de corrida. El hash identifica la versión descargada; no certifica la metodología del productor ni prueba que la fuente nunca será revisada.
3. Contrato de observación
La clave nacional es indicador y periodo. El registro incluye valor, unidad, estado, marca preliminar, marca de revisión, fuente, hash, marcas de tiempo y bandera de calidad. La clave territorial agrega código DIVIPOLA, ISO 3166-2 y nivel geográfico. Las claves duplicadas son un error crítico salvo que se registren como revisión.
Los estados distinguen oficial, derivado, revisado, último válido atrasado y estimado. El estado describe el origen del valor, no su conveniencia política ni su signo económico.
4. Tiempo, frecuencia y frescura
Fecha del periodo, fecha de publicación y fecha de descarga son conceptos distintos. La interfaz muestra el periodo económico informado por la fuente. Las frecuencias diaria, mensual, trimestral y anual mantienen calendarios independientes. No se compara un periodo parcial con uno completo sin advertencia.
Cada serie tiene rezago esperado y umbral de obsolescencia. Un valor puede ser auténtico pero estar atrasado. La frescura se evalúa contra la frecuencia y la naturaleza de la operación; una serie anual no se juzga con el umbral de una serie diaria.
5. Unidades y agregaciones
Porcentajes, razones, índices, pesos, dólares, saldos y flujos no son intercambiables. El ICV se almacena como razón y se presenta como porcentaje. Exportaciones FOB e importaciones CIF conservan bases de valoración distintas. Unidades incompatibles no se agregan.
Los stocks usan el último corte; los precios diarios pueden resumirse por promedio o cierre; los componentes compatibles pueden sumarse; las razones exigen numerador y denominador con igual fecha y cobertura. ColPulse no suma tasas, no promedia promedios sin ponderación y no transforma escalas sin dejar una regla reproducible.
6. Derivaciones activas [derivado]
El promedio mensual de TRM es la media de observaciones diarias válidas del mes. El cierre mensual es el último valor válido disponible. El IPC anual y mensual se calculan del índice oficial de DANE (variación contra el mismo mes del año anterior y contra el mes anterior). La cartera vencida y el índice de calidad de cartera siguen fórmulas documentadas sobre componentes del mismo conjunto y corte. La tasa real ex post del caso de política monetaria es una fórmula sobre dos series publicadas. Una derivación de datos oficiales no se denomina automáticamente cifra oficial.
No se imputan faltantes para la portada. Una fórmula requiere prueba automática, consistencia de unidad y procedencia de todos sus insumos.
7. Controles de calidad
La validación revisa columnas requeridas, conjunto no vacío, fechas legibles, marcas de tiempo, hashes, valores numéricos, booleanos, duplicados, estados permitidos, consistencia de unidad y rangos amplios. Las fallas críticas bloquean; las no críticas producen advertencias.
El estado OK significa que el artefacto satisface el contrato para el uso declarado. No equivale a una auditoría independiente de la operación oficial ni descarta que la entidad publique una revisión posterior.
8. Preliminariedad y revisiones
Una cifra preliminar es una estimación oficial sujeta a revisión, no una cifra falsa. ColPulse conserva esa etiqueta. Cuando cambia una observación almacenada se deben registrar valor anterior, valor nuevo, hashes, fecha de detección y motivo conocido.
Las narrativas se reevalúan después de revisiones materiales. No se defiende una conclusión antigua si la evidencia actualizada cambia el diagnóstico.
9. Cobertura territorial
El mapa reconcilia 32 departamentos y Bogotá D.C. mediante DIVIPOLA e ISO. Cada operación tiene dominios propios: el PIB departamental cubre 33 territorios, mientras algunas publicaciones laborales y de pobreza cubren subconjuntos. Ausencia nunca significa cero.
Los límites del mapa vienen de geoBoundaries (www.geoboundaries.org), con datos de © colaboradores de OpenStreetMap (licencia ODbL), simplificados para dibujarlos. Son líneas de referencia, no un deslinde oficial.
Las regiones son una ayuda descriptiva. No se extrapolan departamentos sin observación desde promedios nacionales y no se comparan dominios muestrales incompatibles sin advertencia.
10. Lectura de indicadores
La pestaña incluye las series activas presentes en el almacén. Un indicador con un solo corte muestra nivel, fuente y fecha, pero no tendencia. Una flecha requiere por lo menos dos cortes comparables. Las variables con interpretación ambigua mantienen una lectura neutral.
Las categorías macro, actividad, laboral, crédito, sector externo y mercados organizan la lectura; no alteran las definiciones de origen.
11. Econometría y modelos
Los modelos se ejecutan fuera del navegador. R-cuadrado no es un objetivo aislado: puede elevarse por tendencias comunes, sobreajuste, multicolinealidad o fuga temporal. La promoción exige muestra suficiente, fundamento económico, diagnósticos, estabilidad y validación fuera de muestra contra bases de comparación simples.
OLS describe relaciones lineales bajo supuestos; SARIMAX modela dinámica y estacionalidad; logit y probit estiman probabilidades binarias; una valoración compara precio con una referencia. Ninguno establece causalidad sin una estrategia de identificación. Los modelos que no superan las compuertas permanecen pendientes.
12. Radar de prensa
Cada titular debe enlazar al artículo original. Las etiquetas Izquierda, Centro y Derecha describen una tendencia editorial general; no califican confiabilidad ni verifican una noticia. ColPulse no reproduce artículos completos y puede retirar enlaces rotos.
13. Mercado de valores
Las cotizaciones intradía requieren fuente y licencia de redistribución. El cierre oficial se separa de cualquier fuente de demostración. Ningún precio, variación, semáforo o texto constituye recomendación de compra o venta.
14. Limitaciones y fallas esperables
Las entidades pueden cambiar formatos, hojas, URL, calendarios, metodologías o dominios. Un conector puede fallar aunque la operación siga vigente. También pueden existir rupturas de serie, valores atípicos reales, revisiones y retrasos institucionales.
La respuesta ante una discrepancia material es marcar, retirar, investigar y corregir. ColPulse no promete la ausencia absoluta de errores; ofrece un proceso explícito para detectarlos y dejar rastro de la corrección (ver mantenimiento y correcciones).
15. Reproducibilidad y transparencia protegida
El paquete público contiene versión, commit, tamaños y hashes. Auditoría y estado muestran salud y periodos. Los archivos crudos, secretos, credenciales, rutas locales y mecanismos operativos sensibles permanecen privados. Esta separación permite auditar afirmaciones sin exponer elementos que no agregan evidencia y facilitarían copiar la operación completa.
16. Diccionario de datos
Una fila por indicador: qué mide, de dónde sale, con qué frecuencia y unidad, si está ajustado estacionalmente, si es nominal o real, qué transformación se aplicó y cuándo empieza. Se genera de config/data_dictionary.csv en cada publicación.
| Indicador (id) | Nombre | Fuente | Frecuencia | Unidad | Ajuste estacional | Nominal o real | Transformación | Regla de agregación | Primer periodo | Rezago de publicación | Notas |
|---|---|---|---|---|---|---|---|---|---|---|---|
| trm | TRM | Banco de la República - TRM | diaria | COP/USD | no aplica | nominal | nivel | serie diaria; a mes se usa fin de periodo (trm_month_end) o promedio (trm_monthly_average); nunca suma | 2005-01-01 | 1 días (declarado en el catálogo; no medido) | La TRM de una fecha se certifica con operaciones del día hábil anterior y rige fines de semana y festivos (serie de días calendario). |
| policy_rate | Tasa de política monetaria | Banco de la República - Tasa de política | diaria | % | no aplica | nominal | nivel | fin de periodo | 2005-01-01 | 1 días (declarado en el catálogo; no medido) | Serie de días calendario: el valor se repite entre decisiones; no es una observación nueva cada día. |
| ibr_overnight | IBR overnight | Banco de la República - IBR | diaria | % | no aplica | nominal | nivel (tasa efectiva overnight; código de la serie en la fuente: IRIBRM00) | fin de periodo | 2008-01-02 | 1 días (declarado en el catálogo; no medido) | — |
| colcap_monthly | COLCAP mensual | Banco de la República - COLCAP | mensual | índice | no aplica | nominal | nivel | una observación por mes (la fuente ya es mensual) | 2008-01-01 | 10 días (declarado en el catálogo; no medido) | BanRep no declara en el flujo si es cierre de fin de mes o promedio ni la versión del índice (COLCAP / MSCI COLCAP). Índice de precio en COP sin dividendos. El día 01 es etiqueta del mes. |
| trm_monthly_average | TRM promedio mensual | Banco de la República - TRM derivada | mensual | COP/USD | no aplica | nominal | promedio de la TRM diaria del mes calendario | promedio del mes | 2005-01-31 | 1 días (declarado en el catálogo; no medido) | — |
| trm_month_end | TRM cierre de mes | Banco de la República - TRM derivada | mensual | COP/USD | no aplica | nominal | última TRM diaria del mes calendario | fin de periodo | 2005-01-31 | 1 días (declarado en el catálogo; no medido) | — |
| ipc_yoy | IPC variación anual | DANE - IPC | mensual | % | sin desestacionalizar (serie original) | no aplica (variación de un índice de precios) | variación porcentual 12 meses del índice IPC | una observación por mes | 2005-01-31 | 10 días (declarado en el catálogo; no medido) | El IPC del DANE no se revisa. El modelo SARIMAX usa la variación anual en nivel. |
| ipc_mom | IPC variación mensual | DANE - IPC | mensual | % | sin desestacionalizar (serie original) | no aplica (variación de un índice de precios) | variación porcentual mensual del índice IPC | una observación por mes | 2005-01-31 | 10 días (declarado en el catálogo; no medido) | Sin desestacionalizar; el modelo de traslado controla estacionalidad con dummies de mes. |
| ise | Indicador de Seguimiento a la Economía | DANE - ISE | mensual | índice | ajustada por estacionalidad y calendario (fuente) | real (índice de volumen) | nivel del índice | una observación por mes | 2005-01-31 | 45 días (declarado en el catálogo; no medido) | Serie revisable por el DANE; los modelos usan la última versión publicada. |
| tasa_desocupacion | Tasa de desocupación | DANE - GEIH empleo | mensual | % | sin desestacionalizar (serie original) | no aplica (tasa) | nivel | una observación por mes | 2005-01-31 | 45 días (declarado en el catálogo; no medido) | Total nacional GEIH mensual sin desestacionalizar; el cambio mes a mes tiene componente estacional. |
| exportaciones_fob | Exportaciones FOB | DANE - Exportaciones | mensual | miles de USD (valor FOB) | sin desestacionalizar (serie original) | nominal (USD corrientes) | nivel (flujo mensual) | flujo: suma si se agrega a trimestre o año (el pipeline no lo agrega) | 2026-05-31 | 45 días (declarado en el catálogo; no medido) | Solo los últimos cortes del anexo; historia corta (4 meses en el snapshot auditado). |
| importaciones | Importaciones | DANE - Importaciones | mensual | miles de USD (valor CIF) | sin desestacionalizar (serie original) | nominal (USD corrientes) | nivel (flujo mensual) | flujo: suma si se agrega a trimestre o año (el pipeline no lo agrega) | 2026-04-30 | 45 días (declarado en el catálogo; no medido) | Solo los últimos cortes del anexo; historia corta (4 meses en el snapshot auditado). |
| cartera_bruta | Cartera bruta | Superfinanciera - Distribución de cartera por producto | mensual | COP | sin desestacionalizar (serie original) | nominal (COP corrientes) | suma del saldo de cartera de todas las entidades y productos por fecha de corte | saldo: fin de periodo | 2015-01-31 | 45 días (declarado en el catálogo; no medido) | — |
| cartera_vencida | Cartera vencida | Superfinanciera - Distribución de cartera por producto | mensual | COP | sin desestacionalizar (serie original) | nominal (COP corrientes) | cartera bruta menos cartera vigente | saldo: fin de periodo | 2015-01-31 | 45 días (declarado en el catálogo; no medido) | — |
| icv | Índice de calidad de cartera | Superfinanciera - Derivado de cartera | mensual | razón | sin desestacionalizar (serie original) | no aplica (razón) | cartera_vencida / cartera_bruta | razón de saldos de fin de periodo | 2015-01-31 | 45 días (declarado en el catálogo; no medido) | — |
| captaciones_publico | Captaciones del público | Superfinanciera - Captaciones por rangos | mensual | COP | sin desestacionalizar (serie original) | nominal (COP corrientes) | suma de cuenta corriente, ahorro, CDT, CDAT y bonos | saldo: fin de periodo | 2015-01-31 | 45 días (declarado en el catálogo; no medido) | — |
| tasa_ocupacion | Tasa de ocupación | DANE - GEIH empleo | mensual | % | sin desestacionalizar (serie original) | no aplica (tasa) | nivel | una observación por mes | 2005-01-31 | 45 días (declarado en el catálogo; no medido) | — |
| tasa_global_participacion | Tasa global de participación | DANE - GEIH empleo | mensual | % | sin desestacionalizar (serie original) | no aplica (tasa) | nivel | una observación por mes | 2005-01-31 | 45 días (declarado en el catálogo; no medido) | — |
| brent_usd | Precio Brent | FRED - Brent Crude Oil Spot Price | diaria | USD/bbl | no aplica | nominal | nivel; en el pulso global: variación porcentual a 12 meses y distancia al promedio histórico (puntaje z) | a mes: promedio (pulso global, probit de actividad) y fin de periodo (modelo de TRM y escenarios) | 2005-01-04 | 3 días (declarado en el catálogo; no medido) | — |
| dxy_broad | Índice amplio del dólar | FRED - Nominal Broad US Dollar Index | diaria | índice | no aplica | nominal | nivel; en el pulso global: variación porcentual a 12 meses y distancia al promedio histórico (puntaje z) | a mes: promedio (pulso global) y fin de periodo (modelo de TRM y escenarios) | 2006-01-02 | 3 días (declarado en el catálogo; no medido) | — |
| fed_funds | Tasa fondos federales | FRED - Effective Federal Funds Rate | diaria | % | no aplica | nominal | nivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z) | a mes: fin de periodo | 2005-01-01 | 3 días (declarado en el catálogo; no medido) | — |
| embi_proxy_hy | Spread riesgo emergente (proxy) | FRED - ICE BofA EM High Yield OAS | diaria | % | no aplica | no aplica (spread) | nivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global y modelo de TRM) | 2023-07-11 | 3 días (declarado en el catálogo; no medido) | Proxy corporativo ICE BofA EM HY; no es el EMBI soberano de Colombia. Historia en el snapshot desde 2023-07. |
| tes_cop_1y | TES pesos 1 año (cero cupón) | Banco de la República - Curva cero cupón TES vía ColPulse Research (cop_1y) | diaria | % | no aplica | nominal | nivel | fin de periodo (serie diaria de tasas) | No determinado | 14 días (declarado en el catálogo; no medido) | Paquete sellado ColPulse Research; el snapshot auditado no contiene estas series y por eso se desconoce el primer periodo. |
| tes_cop_5y | TES pesos 5 años (cero cupón) | Banco de la República - Curva cero cupón TES vía ColPulse Research (cop_5y) | diaria | % | no aplica | nominal | nivel | fin de periodo (serie diaria de tasas) | No determinado | 14 días (declarado en el catálogo; no medido) | Paquete sellado ColPulse Research; el snapshot auditado no contiene estas series y por eso se desconoce el primer periodo. |
| tes_10y | TES pesos 10 años (cero cupón) | Banco de la República - Curva cero cupón TES vía ColPulse Research (cop_10y) | diaria | % | no aplica | nominal | nivel | fin de periodo (serie diaria de tasas) | No determinado | 14 días (declarado en el catálogo; no medido) | Paquete sellado ColPulse Research; el snapshot auditado no contiene estas series y por eso se desconoce el primer periodo. |
| tes_uvr_1y | TES UVR 1 año (cero cupón) | Banco de la República - Curva cero cupón TES vía ColPulse Research (uvr_1y) | diaria | % | no aplica | real (tasa sobre UVR) | nivel | fin de periodo (serie diaria de tasas) | No determinado | 14 días (declarado en el catálogo; no medido) | Paquete sellado ColPulse Research; el snapshot auditado no contiene estas series y por eso se desconoce el primer periodo. |
| tes_uvr_5y | TES UVR 5 años (cero cupón) | Banco de la República - Curva cero cupón TES vía ColPulse Research (uvr_5y) | diaria | % | no aplica | real (tasa sobre UVR) | nivel | fin de periodo (serie diaria de tasas) | No determinado | 14 días (declarado en el catálogo; no medido) | Paquete sellado ColPulse Research; el snapshot auditado no contiene estas series y por eso se desconoce el primer periodo. |
| tes_uvr_10y | TES UVR 10 años (cero cupón) | Banco de la República - Curva cero cupón TES vía ColPulse Research (uvr_10y) | diaria | % | no aplica | real (tasa sobre UVR) | nivel | fin de periodo (serie diaria de tasas) | No determinado | 14 días (declarado en el catálogo; no medido) | Paquete sellado ColPulse Research; el snapshot auditado no contiene estas series y por eso se desconoce el primer periodo. |
| tes_slope_10_1 | Pendiente TES pesos 10a-1a | Banco de la República - Curva cero cupón TES vía ColPulse Research (slope_10_1) | diaria | puntos básicos | no aplica | nominal | TES COP 10a menos 1a (pb) | fin de periodo (serie diaria de tasas) | No determinado | 14 días (declarado en el catálogo; no medido) | Paquete sellado ColPulse Research; el snapshot auditado no contiene estas series y por eso se desconoce el primer periodo. |
| tes_bei_5y | Inflación implícita 5 años | Banco de la República - Curva cero cupón TES vía ColPulse Research (bei_5y) | diaria | % | no aplica | no aplica (diferencia nominal menos real) | TES COP 5a menos TES UVR 5a | fin de periodo (serie diaria de tasas) | No determinado | 14 días (declarado en el catálogo; no medido) | Paquete sellado ColPulse Research; el snapshot auditado no contiene estas series y por eso se desconoce el primer periodo. |
| tes_bei_10y | Inflación implícita 10 años | Banco de la República - Curva cero cupón TES vía ColPulse Research (bei_10y) | diaria | % | no aplica | no aplica (diferencia nominal menos real) | TES COP 10a menos TES UVR 10a | fin de periodo (serie diaria de tasas) | No determinado | 14 días (declarado en el catálogo; no medido) | Paquete sellado ColPulse Research; el snapshot auditado no contiene estas series y por eso se desconoce el primer periodo. |
| tes_fwd_5y5y | Forward TES pesos 5a5a | Banco de la República - Curva cero cupón TES vía ColPulse Research (fwd_5y5y) | diaria | % | no aplica | nominal | forward implícita desde la curva cero cupón | fin de periodo (serie diaria de tasas) | No determinado | 14 días (declarado en el catálogo; no medido) | Paquete sellado ColPulse Research; el snapshot auditado no contiene estas series y por eso se desconoce el primer periodo. |
| wti_usd | Petroleo WTI | FRED - DCOILWTICO | diaria | USD/bbl | no aplica | nominal | nivel; en el pulso global: variación porcentual a 12 meses y distancia al promedio histórico (puntaje z) | a mes: promedio (pulso global) | 2005-01-03 | No determinado | — |
| coffee_global | Cafe índice global | FRED - PCOFFOTMUSDM | mensual | índice | No determinado | nominal | nivel; en el pulso global: variación porcentual a 12 meses y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-01 | No determinado | — |
| food_global | Alimentos índice global | FRED - PFOODINDEXM | mensual | índice | No determinado | nominal | nivel; en el pulso global: variación porcentual a 12 meses y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-01 | No determinado | — |
| coal_australia | Carbon Australia | FRED - PCOALAUUSDM | mensual | USD/ton | No determinado | nominal | nivel; en el pulso global: variación porcentual a 12 meses y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-01 | No determinado | — |
| us_treasury_2y | Tesoro EE.UU. 2 años | FRED - DGS2 | diaria | % | no aplica | nominal | nivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-03 | No determinado | — |
| us_treasury_10y | Tesoro EE.UU. 10 años | FRED - DGS10 | diaria | % | no aplica | nominal | nivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-03 | No determinado | — |
| us_curve_10y2y | Curva 10 años menos 2 años | FRED - T10Y2Y | diaria | puntos porcentuales | no aplica | no aplica (spread) | nivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-03 | No determinado | — |
| us_curve_10y3m | Curva 10 años menos 3 meses | FRED - T10Y3M | diaria | puntos porcentuales | no aplica | no aplica (spread) | nivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-03 | No determinado | — |
| vix | VIX | FRED - VIXCLS | diaria | índice | no aplica | no aplica (volatilidad implícita) | nivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-03 | No determinado | — |
| us_hy_oas | Spread high yield EE.UU. | FRED - BAMLH0A0HYM2 | diaria | % | no aplica | no aplica (spread) | nivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2023-07-11 | No determinado | Historia en el snapshot desde 2023-07. |
| stl_financial_stress | Estres financiero St Louis | FRED - STLFSI4 | semanal | índice | no aplica | no aplica (índice) | nivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-07 | No determinado | — |
| chicago_financial_conditions | Condiciones financieras Chicago | FRED - NFCI | semanal | índice | no aplica | no aplica (índice) | nivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-07 | No determinado | — |
| us_cpi | IPC Estados Unidos | FRED - CPIAUCSL | mensual | índice | ajustada por estacionalidad (fuente) | no aplica (índice de precios) | nivel; en el pulso global: variación porcentual a 12 meses y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-01 | No determinado | Serie revisable; se archivan primeras publicaciones (ALFRED) pero el pulso usa el valor vigente (revisado). |
| us_unemployment | Desempleo Estados Unidos | FRED - UNRATE | mensual | % | ajustada por estacionalidad (fuente) | no aplica (tasa) | nivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-01 | No determinado | Serie revisable; se archivan primeras publicaciones (ALFRED) pero el pulso usa el valor vigente (revisado). |
| us_industrial_production | Producción industrial EE.UU. | FRED - INDPRO | mensual | índice | ajustada por estacionalidad (fuente) | real (índice de volumen) | nivel; en el pulso global: variación porcentual a 12 meses y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-01 | No determinado | Serie revisable; se archivan primeras publicaciones (ALFRED) pero el pulso usa el valor vigente (revisado). |
| us_retail_sales | Ventas minoristas EE.UU. | FRED - RSAFS | mensual | millones de USD | ajustada por estacionalidad (fuente) | nominal (USD corrientes) | nivel; en el pulso global: variación porcentual a 12 meses y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-01 | No determinado | Serie revisable; se archivan primeras publicaciones (ALFRED) pero el pulso usa el valor vigente (revisado). |
| us_real_gdp | PIB real Estados Unidos | FRED - GDPC1 | trimestral | miles de millones de USD de 2017 | ajustada por estacionalidad, tasa anual (fuente) | real (USD encadenados) | nivel; en el pulso global: variación porcentual a 12 meses y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-01 | No determinado | Serie revisable; se archivan primeras publicaciones (ALFRED) pero el pulso usa el valor vigente (revisado). |
| us_recession_probability | Probabilidad recesión EE.UU. | FRED - RECPROUSM156N | mensual | % | No determinado | no aplica (probabilidad) | nivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z) | a mes: fin de periodo (pulso global) | 2005-01-01 | No determinado | — |
| bvc_equities | Precios diarios de acciones BVC (15 especies) | Superfinanciera - precios promedio diarios BVC | diaria | COP por accion | no aplica | nominal | precio promedio ponderado diario; retornos de precio (retYtd y ret12m) sin dividendos | sin agregación; una sesión sin valor transado no es una observación de precio | 2026-01-02 | No determinado | La fuente no informa si el precio está ajustado por dividendos ni por eventos corporativos. No publica cantidad de acciones. El snapshot auditado solo contiene 2026. |
| pib_departamental_corriente | PIB departamental a precios corrientes | DANE - Cuentas nacionales departamentales | anual | miles de millones de COP | no aplica | nominal (precios corrientes) | nivel; variación nominal anual derivada | flujo anual (la fuente ya es anual) | 2005 | No determinado | El último año es preliminar (pr). La variación publicada es nominal; no es crecimiento real. |
17. Cómo reproducir
Un caso, sin instalar nada
El caso de política monetaria trae un script de la biblioteca estándar de Python que recalcula su tabla desde el archivo público indicator_data.json y comprueba su huella SHA-256.
El sitio completo
El código está en un repositorio privado; para clonarlo hace falta acceso. colombia-strategy-monitor (repositorio privado; pide acceso por LinkedIn).
Con acceso al repositorio y Python 3.12 (los comandos son los de PowerShell en Windows, igual que el flujo diario, que corre en windows-latest):
git clone https://github.com/FelipeCuelloC/colombia-strategy-monitor
cd colombia-strategy-monitor
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe -m pytest
.\.venv\Scripts\python.exe -m src.monthly_update --publish-content --check-product --check-v2-product --start-period 2005-01-01
.\.venv\Scripts\python.exe -m src.monthly_update --package-public-only --publication-version vAAAA.MM.DD
Qué debería aparecer
pytest: la suite completa del sitio pasa (la cifra actual está en el Caso de estudio).data/published/: las páginas HTML,data_health.md,manifest.jsony los JSON públicos.site/: el paquete cerrado conpackage_manifest.json(tamaño y SHA-256 de cada archivo) y la líneaPackage check: oken la consola.
Las series de FRED necesitan una clave en la variable de entorno FRED_API_KEY; sin ella esas series quedan marcadas como fallidas y el resto se publica. El laboratorio de investigación se prueba aparte: ver research/README.md.
18. Mantenimiento y correcciones
Qué se actualiza solo
El flujo .github/workflows/daily.yml corre cada día a las 11:30 UTC (06:30 en Bogotá), además de cuando se fusionan a la rama principal cambios en las rutas que vigila y cuando se lanza a mano. En cada corrida descarga las fuentes, valida, recalcula, genera las páginas, empaqueta el sitio y lo publica. Cada fuente tiene su propio calendario (DANE publica una vez al mes, por ejemplo): la corrida diaria recoge lo nuevo cuando existe y no inventa nada cuando no.
No es automático: añadir fuentes, cambiar fórmulas, revisar paquetes externos (como el de renta fija) y corregir errores.
Quién mantiene
Una sola persona: Felipe Cuello Castro. No hay guardia ni soporte; si un problema ocurre fuera de mi atención, el sitio sigue publicando lo que las fuentes entreguen y marca lo que no.
Cuando una fuente falla
- El conector registra el error como estado del indicador (fallido, atrasado o con aviso) y el resto del sitio se publica.
- El último valor válido se conserva y se marca como atrasado; no se estima ni se rellena.
- El fallo es visible en Estado y en Auditoría, con su acción recomendada.
- Si falla el flujo completo (por ejemplo la verificación del paquete), no se publica una versión nueva: el sitio conserva la anterior y el flujo guarda los registros de la falla.
Política de correcciones
Si se detecta un error en una cifra o en un texto: se marca, se corrige en el código con una prueba que lo cubra, se publica en la siguiente corrida (o antes, lanzando el flujo a mano) y queda registrado abajo con fecha, qué estaba mal, cómo se corrigió y dónde verificarlo. Las entradas no se borran.
Registro de correcciones
| Fecha | Qué estaba mal | Corrección | Evidencia |
|---|---|---|---|
| 2026-10-08 | La página Artículos publicaba cuatro tarjetas de relleno ("Buscando autor", "En edición", "Próximo artículo") sin ningún artículo real. | Se vació `config/site_articles.csv`; solo cuentan las filas con estado Publicado y fecha ISO, y sin ellas la página muestra un estado vacío. | `src/content/articles.py`, `tests/test_article_pages.py` |
| 2026-10-08 | Los enlaces a "Código" apuntaban a un repositorio que es privado (respuesta 404 para quien no tiene acceso). | Las páginas estáticas rotulan el repositorio como privado y ofrecen pedir acceso; el interruptor `REPO_IS_PUBLIC` cambia todas a la vez cuando se haga público. | `src/content/seo.py`, `src/content/chrome.py` |
| 2026-10-08 | Las páginas estáticas pedían las fuentes IBM Plex y Fraunces, pero el `site.css` publicado no declaraba ninguna `@font-face`: el navegador usaba Arial y Georgia. | El CSS compartido declara las 11 fuentes autoalojadas; una prueba comprueba que cada `url()` apunta a un archivo de la lista cerrada del paquete. | `src/content/chrome.py`, `tests/test_chrome.py` |
| sin fecha registrada (anterior a 2026-10-08) | El prototipo de la portada traía textos fijos escritos a mano ("corte 2026-07-09", "16/16 indicadores OK") y series de precios simuladas. | La portada muestra solo lo que lee de `data/*.json`; una prueba falla si reaparece cualquiera de esos valores. | `tests/test_home_assets.py::test_template_has_no_hardcoded_fallback_figures` |
Privacidad y medición
ColPulse mide cuántas personas visitan el sitio y qué herramientas usan, para saber qué páginas sirven y cuáles no. La medición es opcional y solo ocurre si la persona la acepta.
Qué se mide
- Las páginas que se abren y, en la portada, la vista que se abre (mapa, radar, indicadores y demás).
- Si se usa el simulador, una sola vez por visita. Nunca se envían los montos, las metas, los plazos ni las tasas que se escriben; del control de riesgo solo se envía el nivel en cinco categorías (muy bajo, bajo, medio, alto, muy alto).
- El dominio de destino cuando se pulsa un enlace a un medio u otro sitio (por ejemplo, un titular del Radar). Solo el dominio, no la dirección completa.
- Datos técnicos que envía todo navegador, como idioma, tamaño de pantalla, tipo de navegador y de dispositivo, la página desde la que se llega y una ubicación aproximada. Según la documentación de Google, Analytics 4 no registra ni guarda direcciones IP.
Con qué herramienta
Google Analytics 4, un servicio de Google. Los datos los procesa Google en sus propios servidores, que pueden estar fuera de Colombia. Las direcciones que se envían a Analytics no incluyen parámetros de consulta, salvo las etiquetas de campaña utm_.
Solo con consentimiento
Mientras no se pulse «Aceptar», no se carga ningún recurso de Google y no se guarda ninguna cookie de medición. Si el navegador envía la señal Global Privacy Control o «No rastrear», se trata como un rechazo, salvo que la persona acepte de forma expresa. Si el navegador no permite guardar la decisión, se trata como no decidido y no se mide.
Qué se guarda en el navegador
_ga: cookie de Google Analytics que distingue un navegador de otro sin saber quién es. Según Google, dura dos años._ga_seguida del identificador de la propiedad: cookie de Google Analytics que guarda el estado de la sesión. Según Google, dura dos años.cp_analytics_consent: no es una cookie sino un dato local del navegador (localStorage) con la decisión de aceptar o rechazar. No se envía a ningún servidor.
Lo que no se hace
- No se activan las señales de Google ni la personalización de anuncios, y no se permite el almacenamiento para publicidad.
- No se usa identificador de usuario ni se cruzan los datos con ninguna cuenta.
- El sitio no recoge nombres, correos ni lo que se escribe en el simulador.
- No se mide desde direcciones locales de desarrollo.
Cómo cambiar la decisión
En cualquier momento, con el enlace «Preferencias de privacidad» del pie de cada página o con este botón:
Al rechazar después de haber aceptado, la medición se detiene y se borran las cookies _ga del sitio en ese navegador. Los datos ya enviados siguen en Google Analytics durante el periodo de conservación que define la configuración de la propiedad.
Responsable de la medición: Felipe Cuello Castro.
No endoso oficial
ColPulse utiliza información pública oficial, pero no está afiliado, avalado ni operado por las entidades fuente.