ColPulse.
Datos abiertos. Contexto claro.
ColPulse · capa de confianza

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.

Diccionario de datos: 52 indicadores
Indicador (id)NombreFuenteFrecuenciaUnidadAjuste estacionalNominal o realTransformaciónRegla de agregaciónPrimer periodoRezago de publicaciónNotas
trmTRMBanco de la República - TRMdiariaCOP/USDno aplicanominalnivelserie diaria; a mes se usa fin de periodo (trm_month_end) o promedio (trm_monthly_average); nunca suma2005-01-011 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_rateTasa de política monetariaBanco de la República - Tasa de políticadiaria%no aplicanominalnivelfin de periodo2005-01-011 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_overnightIBR overnightBanco de la República - IBRdiaria%no aplicanominalnivel (tasa efectiva overnight; código de la serie en la fuente: IRIBRM00)fin de periodo2008-01-021 días (declarado en el catálogo; no medido)—
colcap_monthlyCOLCAP mensualBanco de la República - COLCAPmensualíndiceno aplicanominalniveluna observación por mes (la fuente ya es mensual)2008-01-0110 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_averageTRM promedio mensualBanco de la República - TRM derivadamensualCOP/USDno aplicanominalpromedio de la TRM diaria del mes calendariopromedio del mes2005-01-311 días (declarado en el catálogo; no medido)—
trm_month_endTRM cierre de mesBanco de la República - TRM derivadamensualCOP/USDno aplicanominalúltima TRM diaria del mes calendariofin de periodo2005-01-311 días (declarado en el catálogo; no medido)—
ipc_yoyIPC variación anualDANE - IPCmensual%sin desestacionalizar (serie original)no aplica (variación de un índice de precios)variación porcentual 12 meses del índice IPCuna observación por mes2005-01-3110 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_momIPC variación mensualDANE - IPCmensual%sin desestacionalizar (serie original)no aplica (variación de un índice de precios)variación porcentual mensual del índice IPCuna observación por mes2005-01-3110 días (declarado en el catálogo; no medido)Sin desestacionalizar; el modelo de traslado controla estacionalidad con dummies de mes.
iseIndicador de Seguimiento a la EconomíaDANE - ISEmensualíndiceajustada por estacionalidad y calendario (fuente)real (índice de volumen)nivel del índiceuna observación por mes2005-01-3145 días (declarado en el catálogo; no medido)Serie revisable por el DANE; los modelos usan la última versión publicada.
tasa_desocupacionTasa de desocupaciónDANE - GEIH empleomensual%sin desestacionalizar (serie original)no aplica (tasa)niveluna observación por mes2005-01-3145 días (declarado en el catálogo; no medido)Total nacional GEIH mensual sin desestacionalizar; el cambio mes a mes tiene componente estacional.
exportaciones_fobExportaciones FOBDANE - Exportacionesmensualmiles 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-3145 días (declarado en el catálogo; no medido)Solo los últimos cortes del anexo; historia corta (4 meses en el snapshot auditado).
importacionesImportacionesDANE - Importacionesmensualmiles 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-3045 días (declarado en el catálogo; no medido)Solo los últimos cortes del anexo; historia corta (4 meses en el snapshot auditado).
cartera_brutaCartera brutaSuperfinanciera - Distribución de cartera por productomensualCOPsin desestacionalizar (serie original)nominal (COP corrientes)suma del saldo de cartera de todas las entidades y productos por fecha de cortesaldo: fin de periodo2015-01-3145 días (declarado en el catálogo; no medido)—
cartera_vencidaCartera vencidaSuperfinanciera - Distribución de cartera por productomensualCOPsin desestacionalizar (serie original)nominal (COP corrientes)cartera bruta menos cartera vigentesaldo: fin de periodo2015-01-3145 días (declarado en el catálogo; no medido)—
icvÍndice de calidad de carteraSuperfinanciera - Derivado de carteramensualrazónsin desestacionalizar (serie original)no aplica (razón)cartera_vencida / cartera_brutarazón de saldos de fin de periodo2015-01-3145 días (declarado en el catálogo; no medido)—
captaciones_publicoCaptaciones del públicoSuperfinanciera - Captaciones por rangosmensualCOPsin desestacionalizar (serie original)nominal (COP corrientes)suma de cuenta corriente, ahorro, CDT, CDAT y bonossaldo: fin de periodo2015-01-3145 días (declarado en el catálogo; no medido)—
tasa_ocupacionTasa de ocupaciónDANE - GEIH empleomensual%sin desestacionalizar (serie original)no aplica (tasa)niveluna observación por mes2005-01-3145 días (declarado en el catálogo; no medido)—
tasa_global_participacionTasa global de participaciónDANE - GEIH empleomensual%sin desestacionalizar (serie original)no aplica (tasa)niveluna observación por mes2005-01-3145 días (declarado en el catálogo; no medido)—
brent_usdPrecio BrentFRED - Brent Crude Oil Spot PricediariaUSD/bblno aplicanominalnivel; 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-043 días (declarado en el catálogo; no medido)—
dxy_broadÍndice amplio del dólarFRED - Nominal Broad US Dollar Indexdiariaíndiceno aplicanominalnivel; 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-023 días (declarado en el catálogo; no medido)—
fed_fundsTasa fondos federalesFRED - Effective Federal Funds Ratediaria%no aplicanominalnivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z)a mes: fin de periodo2005-01-013 días (declarado en el catálogo; no medido)—
embi_proxy_hySpread riesgo emergente (proxy)FRED - ICE BofA EM High Yield OASdiaria%no aplicano 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-113 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_1yTES 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 aplicanominalnivelfin de periodo (serie diaria de tasas)No determinado14 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_5yTES 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 aplicanominalnivelfin de periodo (serie diaria de tasas)No determinado14 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_10yTES 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 aplicanominalnivelfin de periodo (serie diaria de tasas)No determinado14 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_1yTES 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 aplicareal (tasa sobre UVR)nivelfin de periodo (serie diaria de tasas)No determinado14 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_5yTES 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 aplicareal (tasa sobre UVR)nivelfin de periodo (serie diaria de tasas)No determinado14 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_10yTES 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 aplicareal (tasa sobre UVR)nivelfin de periodo (serie diaria de tasas)No determinado14 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_1Pendiente TES pesos 10a-1aBanco de la República - Curva cero cupón TES vía ColPulse Research (slope_10_1)diariapuntos básicosno aplicanominalTES COP 10a menos 1a (pb)fin de periodo (serie diaria de tasas)No determinado14 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_5yInflación implícita 5 añosBanco de la República - Curva cero cupón TES vía ColPulse Research (bei_5y)diaria%no aplicano aplica (diferencia nominal menos real)TES COP 5a menos TES UVR 5afin de periodo (serie diaria de tasas)No determinado14 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_10yInflación implícita 10 añosBanco de la República - Curva cero cupón TES vía ColPulse Research (bei_10y)diaria%no aplicano aplica (diferencia nominal menos real)TES COP 10a menos TES UVR 10afin de periodo (serie diaria de tasas)No determinado14 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_5y5yForward TES pesos 5a5aBanco de la República - Curva cero cupón TES vía ColPulse Research (fwd_5y5y)diaria%no aplicanominalforward implícita desde la curva cero cupónfin de periodo (serie diaria de tasas)No determinado14 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_usdPetroleo WTIFRED - DCOILWTICOdiariaUSD/bblno aplicanominalnivel; 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-03No determinado—
coffee_globalCafe índice globalFRED - PCOFFOTMUSDMmensualíndiceNo determinadonominalnivel; 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-01No determinado—
food_globalAlimentos índice globalFRED - PFOODINDEXMmensualíndiceNo determinadonominalnivel; 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-01No determinado—
coal_australiaCarbon AustraliaFRED - PCOALAUUSDMmensualUSD/tonNo determinadonominalnivel; 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-01No determinado—
us_treasury_2yTesoro EE.UU. 2 añosFRED - DGS2diaria%no aplicanominalnivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z)a mes: fin de periodo (pulso global)2005-01-03No determinado—
us_treasury_10yTesoro EE.UU. 10 añosFRED - DGS10diaria%no aplicanominalnivel; en el pulso global: nivel y distancia al promedio histórico (puntaje z)a mes: fin de periodo (pulso global)2005-01-03No determinado—
us_curve_10y2yCurva 10 años menos 2 añosFRED - T10Y2Ydiariapuntos porcentualesno aplicano 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-03No determinado—
us_curve_10y3mCurva 10 años menos 3 mesesFRED - T10Y3Mdiariapuntos porcentualesno aplicano 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-03No determinado—
vixVIXFRED - VIXCLSdiariaíndiceno aplicano 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-03No determinado—
us_hy_oasSpread high yield EE.UU.FRED - BAMLH0A0HYM2diaria%no aplicano 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-11No determinadoHistoria en el snapshot desde 2023-07.
stl_financial_stressEstres financiero St LouisFRED - STLFSI4semanalíndiceno aplicano 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-07No determinado—
chicago_financial_conditionsCondiciones financieras ChicagoFRED - NFCIsemanalíndiceno aplicano 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-07No determinado—
us_cpiIPC Estados UnidosFRED - CPIAUCSLmensualíndiceajustada 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-01No determinadoSerie revisable; se archivan primeras publicaciones (ALFRED) pero el pulso usa el valor vigente (revisado).
us_unemploymentDesempleo Estados UnidosFRED - UNRATEmensual%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-01No determinadoSerie revisable; se archivan primeras publicaciones (ALFRED) pero el pulso usa el valor vigente (revisado).
us_industrial_productionProducción industrial EE.UU.FRED - INDPROmensualíndiceajustada 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-01No determinadoSerie revisable; se archivan primeras publicaciones (ALFRED) pero el pulso usa el valor vigente (revisado).
us_retail_salesVentas minoristas EE.UU.FRED - RSAFSmensualmillones de USDajustada 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-01No determinadoSerie revisable; se archivan primeras publicaciones (ALFRED) pero el pulso usa el valor vigente (revisado).
us_real_gdpPIB real Estados UnidosFRED - GDPC1trimestralmiles de millones de USD de 2017ajustada 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-01No determinadoSerie revisable; se archivan primeras publicaciones (ALFRED) pero el pulso usa el valor vigente (revisado).
us_recession_probabilityProbabilidad recesión EE.UU.FRED - RECPROUSM156Nmensual%No determinadono 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-01No determinado—
bvc_equitiesPrecios diarios de acciones BVC (15 especies)Superfinanciera - precios promedio diarios BVCdiariaCOP por accionno aplicanominalprecio promedio ponderado diario; retornos de precio (retYtd y ret12m) sin dividendossin agregación; una sesión sin valor transado no es una observación de precio2026-01-02No determinadoLa 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_corrientePIB departamental a precios corrientesDANE - Cuentas nacionales departamentalesanualmiles de millones de COPno aplicanominal (precios corrientes)nivel; variación nominal anual derivadaflujo anual (la fuente ya es anual)2005No determinadoEl ú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.json y los JSON públicos.
  • site/: el paquete cerrado con package_manifest.json (tamaño y SHA-256 de cada archivo) y la línea Package check: ok en 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

Registro de correcciones: más reciente primero, sin entradas borradas
FechaQué estaba malCorrecciónEvidencia
2026-10-08La 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-08Los 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-08Las 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.