1. Datos

Se usan dos tablas del Banco de la República, organizadas con los trimestres en filas:

  • Cuenta corriente (serie desestacionalizada, 1T-1996 a 2T-2026): exportaciones e importaciones de bienes y de servicios, su balanza, e ingresos y egresos de ingreso primario y secundario.
  • Cuenta financiera (sin desestacionalizar, 1T-2000 a 2T-2026): componentes 3.1 a 3.5 según el Manual de Balanza de Pagos (sexta edición) del FMI.

Todas las cifras están en millones de dólares (USD).

# Los dos Excel deben estar en la misma carpeta que este archivo .Rmd
archivo_cc <- list.files(pattern = "^cuenta_corriente.*\\.xlsx$")[1]
archivo_cf <- list.files(pattern = "^cuenta_financiera.*\\.xlsx$")[1]
if (is.na(archivo_cc) || is.na(archivo_cf)) {
  stop("No encuentro los Excel. Copie cuenta_corriente_transpuesta.xlsx y ",
       "cuenta_financiera_3.1_a_3.5_transpuesta.xlsx en la carpeta de este .Rmd")
}

# La hoja 'Transpuesta' tiene el título en las filas 1-2 y los encabezados en la fila 4
cc <- read_excel(archivo_cc, sheet = "Transpuesta", skip = 3)
names(cc) <- c("periodo", "bienes_x", "bienes_m", "serv_x", "serv_m", "bal_bys",
               "ip_ingresos", "ip_egresos", "is_ingresos", "is_egresos")

cf <- read_excel(archivo_cf, sheet = "Transpuesta", skip = 3)
names(cf) <- c("periodo", "inv_directa", "inv_cartera", "derivados",
               "otra_inversion", "activos_reserva")

# Convierte "1 Trimestre 1996" en año, trimestre y fecha
agregar_fecha <- function(df) {
  df %>%
    mutate(trimestre = as.integer(sub(" Trimestre.*", "", periodo)),
           anio      = as.integer(sub(".*Trimestre ", "", periodo)),
           fecha     = as.Date(sprintf("%d-%02d-01", anio, (trimestre - 1) * 3 + 1)))
}

cc <- agregar_fecha(cc) %>%
  mutate(cuenta_corriente = bal_bys + (ip_ingresos - ip_egresos) + (is_ingresos - is_egresos))
cf <- agregar_fecha(cf)

# Totales anuales (solo años con los 4 trimestres completos)
anual_cc <- cc %>%
  group_by(anio) %>% filter(n() == 4) %>%
  summarise(across(c(bienes_x:is_egresos, cuenta_corriente), sum), .groups = "drop")
anual_cf <- cf %>%
  group_by(anio) %>% filter(n() == 4) %>%
  summarise(across(inv_directa:activos_reserva, sum), .groups = "drop")

# Acuerdos comerciales de referencia (fecha de entrada en vigor)
acuerdos <- data.frame(
  acuerdo = c("TLC Estados Unidos", "Acuerdo Unión Europea", "Alianza del Pacífico"),
  fecha   = as.Date(c("2012-05-15", "2013-08-01", "2016-05-01"))
) %>%
  mutate(anio_dec = as.numeric(format(fecha, "%Y")) + (as.numeric(format(fecha, "%j")) - 1) / 365)

# Líneas punteadas numeradas; la explicación va en la nota al pie de cada gráfico
lineas_acuerdos <- function(anual = FALSE) {
  x <- if (anual) acuerdos$anio_dec else acuerdos$fecha
  list(
    geom_vline(xintercept = x, linetype = "dashed", colour = "grey50"),
    annotate("label", x = x, y = Inf, label = seq_along(x), vjust = 1.1,
             size = 3, label.size = 0, fill = "white", colour = "grey20")
  )
}
nota_acuerdos <- paste("Líneas punteadas: (1) TLC Estados Unidos, mayo 2012;",
                       "(2) Acuerdo Unión Europea, agosto 2013; (3) Alianza del Pacífico, mayo 2016.")

miles <- label_number(big.mark = ".", decimal.mark = ",")
eje_y <- scale_y_continuous(labels = miles, expand = expansion(mult = c(0.05, 0.12)))
colores <- c("Exportaciones" = "#1F4E78", "Importaciones" = "#C55A11")
tema <- theme_minimal(base_size = 12) +
  theme(legend.position = "bottom", legend.title = element_blank(),
        panel.grid.minor = element_blank(), plot.title.position = "plot")

Indicadores anuales seleccionados

anual_cc %>%
  filter(anio %in% c(2000, 2005, 2011, 2012, 2015, 2019, 2021, 2023, 2025)) %>%
  transmute(`Año` = as.character(anio),
            `Exportaciones de bienes` = bienes_x,
            `Importaciones de bienes` = bienes_m,
            `Balanza de bienes y servicios` = bal_bys,
            `Ingreso primario neto` = ip_ingresos - ip_egresos,
            `Ingreso secundario neto` = is_ingresos - is_egresos,
            `Cuenta corriente` = cuenta_corriente) %>%
  kable(format.args = list(big.mark = ".", decimal.mark = ","), digits = 0,
        caption = "Millones de USD, suma de los cuatro trimestres")
Millones de USD, suma de los cuatro trimestres
Año Exportaciones de bienes Importaciones de bienes Balanza de bienes y servicios Ingreso primario neto Ingreso secundario neto Cuenta corriente
2000 13.745 11.042 1.329 -2.156 1.673 845
2005 21.709 20.094 -691 -5.339 4.082 -1.948
2011 58.262 52.126 528 -15.313 5.051 -9.734
2012 61.604 56.648 -1.465 -15.008 4.833 -11.640
2015 38.572 52.051 -19.004 -5.450 5.752 -18.702
2019 40.656 50.518 -14.148 -9.716 9.055 -14.809
2021 42.736 56.719 -20.001 -8.723 10.775 -17.949
2023 52.642 59.449 -7.801 -13.439 12.922 -8.318
2025 51.489 66.329 -14.941 -12.550 16.434 -11.056

2. Comercio de bienes

cc %>%
  select(fecha, Exportaciones = bienes_x, Importaciones = bienes_m) %>%
  pivot_longer(-fecha, names_to = "serie", values_to = "valor") %>%
  ggplot(aes(fecha, valor, colour = serie)) +
  geom_line(linewidth = 0.9) +
  lineas_acuerdos() +
  scale_colour_manual(values = colores) +
  eje_y +
  labs(title = "Bienes: exportaciones e importaciones trimestrales",
       x = NULL, y = "Millones de USD",
       caption = nota_acuerdos) +
  tema + theme(plot.caption = element_text(hjust = 0, colour = "grey35"))

3. Comercio de servicios

cc %>%
  select(fecha, Exportaciones = serv_x, Importaciones = serv_m) %>%
  pivot_longer(-fecha, names_to = "serie", values_to = "valor") %>%
  ggplot(aes(fecha, valor, colour = serie)) +
  geom_line(linewidth = 0.9) +
  lineas_acuerdos() +
  scale_colour_manual(values = colores) +
  eje_y +
  labs(title = "Servicios: exportaciones e importaciones trimestrales",
       x = NULL, y = "Millones de USD",
       caption = nota_acuerdos) +
  tema + theme(plot.caption = element_text(hjust = 0, colour = "grey35"))

4. Balanza de bienes y servicios

ggplot(cc, aes(fecha, bal_bys, fill = bal_bys >= 0)) +
  geom_col(width = 80) +
  geom_hline(yintercept = 0, colour = "grey30") +
  lineas_acuerdos() +
  scale_fill_manual(values = c("TRUE" = "#2E7D32", "FALSE" = "#C62828"),
                    labels = c("TRUE" = "Superávit", "FALSE" = "Déficit")) +
  eje_y +
  labs(title = "Balanza de bienes y servicios (exportaciones - importaciones)",
       x = NULL, y = "Millones de USD",
       caption = nota_acuerdos) +
  tema + theme(plot.caption = element_text(hjust = 0, colour = "grey35"))

5. Inversión extranjera directa y renta factorial

En la metodología del FMI, un valor negativo en la cuenta 3.1 significa que el país recibió más inversión directa de la que realizó en el exterior. Por eso se grafica con el signo invertido, como entrada neta de IED.

anual_cc %>%
  select(anio, `Egresos de ingreso primario (utilidades enviadas al exterior)` = ip_egresos) %>%
  inner_join(anual_cf %>% transmute(anio, `Entrada neta de IED (3.1 con signo invertido)` = -inv_directa),
             by = "anio") %>%
  pivot_longer(-anio, names_to = "serie", values_to = "valor") %>%
  ggplot(aes(anio, valor, colour = serie)) +
  geom_line(linewidth = 1) +
  geom_point(size = 1.8) +
  lineas_acuerdos(anual = TRUE) +
  scale_colour_manual(values = c("#6A1B9A", "#00897B")) +
  eje_y +
  labs(title = "IED recibida y utilidades remitidas al exterior (totales anuales)",
       x = NULL, y = "Millones de USD",
       caption = nota_acuerdos) +
  tema + theme(plot.caption = element_text(hjust = 0, colour = "grey35")) +
  guides(colour = guide_legend(ncol = 1))

6. Remesas frente al déficit comercial

anual_cc %>%
  transmute(anio,
            `Ingreso secundario neto (principalmente remesas)` = is_ingresos - is_egresos,
            `Balanza de bienes y servicios` = bal_bys) %>%
  pivot_longer(-anio, names_to = "serie", values_to = "valor") %>%
  ggplot(aes(anio, valor, colour = serie)) +
  geom_hline(yintercept = 0, colour = "grey30") +
  geom_line(linewidth = 1) +
  geom_point(size = 1.8) +
  lineas_acuerdos(anual = TRUE) +
  scale_colour_manual(values = c("#C55A11", "#1F4E78")) +
  eje_y +
  labs(title = "Remesas y balanza de bienes y servicios (totales anuales)",
       x = NULL, y = "Millones de USD",
       caption = nota_acuerdos) +
  tema + theme(plot.caption = element_text(hjust = 0, colour = "grey35")) +
  guides(colour = guide_legend(ncol = 1))

7. Componentes de la cuenta financiera

anual_cf %>%
  rename(`3.1 Inversión directa` = inv_directa,
         `3.2 Inversión de cartera` = inv_cartera,
         `3.3 Derivados financieros` = derivados,
         `3.4 Otra inversión` = otra_inversion,
         `3.5 Activos de reserva` = activos_reserva) %>%
  pivot_longer(-anio, names_to = "componente", values_to = "valor") %>%
  ggplot(aes(anio, valor, fill = componente)) +
  geom_col() +
  geom_hline(yintercept = 0, colour = "grey30") +
  scale_fill_manual(values = c("#1F4E78", "#C55A11", "#7F7F7F", "#00897B", "#F2B701")) +
  scale_y_continuous(labels = miles) +
  labs(title = "Cuenta financiera por componente (totales anuales)",
       subtitle = "Valores negativos = entrada neta de capital al país",
       x = NULL, y = "Millones de USD") +
  tema + guides(fill = guide_legend(nrow = 2))

8. Preguntas de investigación

1. ¿Los TLC de 2012–2013 crearon comercio o sobre todo aumentaron las importaciones?

Evidencia. En 2011 la balanza de bienes registró un superávit cercano a 6.100 millones de USD, pero desde 2014 pasó a un déficit persistente. En promedio, la balanza de bienes pasó de un superávit de 1.588 millones de USD al año en 2000–2011 a un déficit de 4.963 millones en 2012–2019 y de 11.393 millones en 2021–2025. Entre 2012 y 2016 las exportaciones de bienes cayeron 44,7 % (de 61.604 a 34.063 millones de USD), mientras que las importaciones bajaron solo 23,7 % (de 56.648 a 43.239 millones). En la recuperación posterior, las importaciones promedio crecieron 21,3 % entre 2012–2019 y 2021–2025, más del doble que las exportaciones (9,9 %). En 2025 las importaciones estaban 17,1 % por encima de su nivel de 2012, mientras que las exportaciones seguían 16,4 % por debajo.

Análisis. Según Viner (1950), un acuerdo de libre comercio genera creación de comercio cuando las importaciones desde un socio más eficiente sustituyen producción nacional más costosa, y desviación de comercio cuando esas importaciones desplazan a proveedores de terceros países más eficientes solo porque el socio dejó de pagar arancel. Que las importaciones crezcan más que las exportaciones es coherente con un efecto de los acuerdos por el lado de las importaciones. Sin embargo, la entrada en vigor de los TLC coincidió con el desplome del precio del petróleo entre mediados de 2014 y 2015, y la canasta exportadora colombiana depende de productos minero-energéticos.

Respuesta. La evidencia sugiere que los TLC no explican el inicio del déficit, pero sí son coherentes con su persistencia. El paso a déficit lo detonó la caída de las exportaciones por el choque petrolero: si los acuerdos hubieran provocado una ola inmediata de importaciones, estas habrían crecido entre 2012 y 2016, y en realidad cayeron. Lo que sí apunta a un efecto de los acuerdos es la recuperación asimétrica posterior: las importaciones superaron con holgura su nivel previo y las exportaciones no. Los acuerdos no lograron una diversificación exportadora capaz de compensar la caída minero-energética. Para distinguir entre creación y desviación de comercio se necesitan datos por país socio y producto (DANE o UN Comtrade) y un modelo gravitacional estimado por PPML (Santos Silva y Tenreyro, 2006) con una variable de acuerdo comercial (Baier y Bergstrand, 2007), o el método de control sintético (Abadie et al., 2010).

2. ¿Son los servicios una vía de integración menos dependiente de las materias primas?

Evidencia. Entre 2000 y 2025 las exportaciones de servicios se multiplicaron por 9,7 (de 2.062 a 20.053 millones de USD), mientras que las de bienes se multiplicaron por 3,7. La participación de los servicios en las exportaciones totales subió de 12,7 % en 2000–2011 a 16,8 % en 2012–2019 y a 22,5 % en 2021–2025, y llegó a 28,0 % en 2025. El déficit de servicios, que fue de 6.430 millones de USD en 2013, se redujo a 101 millones en 2025. En cuanto al ritmo, las exportaciones de servicios crecieron 11,0 % por año entre 2000 y 2011, se desaceleraron a 5,1 % anual entre 2012 y 2019 y volvieron a crecer 11,1 % anual entre 2019 y 2025. En 2020 cayeron 44,6 %, frente a 20,5 % de las exportaciones de bienes.

Análisis. Los acuerdos de nueva generación, como el TLC con Estados Unidos, el acuerdo con la Unión Europea y el Protocolo Comercial de la Alianza del Pacífico, incluyen capítulos sobre comercio transfronterizo de servicios, por lo que podría esperarse que impulsaran este rubro. Sin embargo, el crecimiento también coincide con dos fuertes devaluaciones del peso (2014–2015 y 2022), que abaratan los servicios colombianos para los compradores extranjeros, y con el auge del turismo después de la pandemia.

Respuesta. Sí: los servicios se convirtieron en el principal canal de diversificación de las exportaciones colombianas y casi cerraron su déficit. Pero el momento del crecimiento indica que los acuerdos no son su motor principal: el crecimiento se desaceleró justamente cuando los TLC entraron en vigor y se aceleró casi una década después, junto con la devaluación de 2022 y la recuperación del turismo. Esto respalda la hipótesis de que la tasa de cambio y el turismo pesan más que las preferencias comerciales. La caída de 2020 muestra, además, que este canal es muy sensible a los choques sobre la movilidad de personas. Para confirmarlo se requiere la balanza de servicios por tipo (viajes, transporte, servicios empresariales y servicios de tecnologías de la información) y el índice de tasa de cambio real del Banco de la República, en un modelo ARDL con variables para la entrada en vigor de cada acuerdo.

3. ¿La inversión extranjera atraída por los acuerdos generó una salida estructural de utilidades?

Evidencia. La entrada neta promedio de IED subió de 3.944 millones de USD al año en 2000–2011 a 10.030 millones en 2012–2019 y se estancó en 10.004 millones en 2021–2025. Los egresos de ingreso primario, en cambio, siguieron creciendo: 7.857, 15.189 y 21.153 millones de USD en los mismos periodos, con un aumento de 39,3 % entre los dos últimos. El déficit de ingreso primario equivale al 71 % del déficit de cuenta corriente acumulado en 2012–2019 y al 99 % en 2021–2025; en 2025 fue incluso mayor que todo el déficit de cuenta corriente (12.550 frente a 11.056 millones de USD). Los egresos cayeron 39,2 % en 2015, con la caída del petróleo, y 43,1 % en 2020, con la pandemia, y alcanzaron su máximo en 2022 (24.061 millones de USD), un año de precios altos del petróleo y del carbón.

Análisis. Las utilidades que se envían al exterior dependen del acervo acumulado de inversión y de su rentabilidad, no del flujo de cada año. Por eso el costo de la integración financiera aparece con rezago y puede seguir creciendo aunque la nueva inversión se estanque. Hay dos precauciones metodológicas. Primero, los egresos de ingreso primario también incluyen intereses de la deuda externa y rentas de la inversión de cartera. Segundo, según el MBP6 (Fondo Monetario Internacional, 2009), las utilidades reinvertidas se registran a la vez como egreso de ingreso primario y como entrada de IED, de modo que parte de la relación entre ambas series es contable.

Respuesta. La evidencia respalda la existencia de una salida estructural de rentas. El ingreso primario pasó a ser prácticamente todo el déficit de cuenta corriente, y sus egresos siguen el ciclo de las materias primas, lo que es coherente con una IED concentrada en el sector minero-energético. El resultado es una dependencia del financiamiento externo: para cubrir un déficit de cuenta corriente promedio de 13.051 millones de USD al año en 2021–2025, el país necesitó entradas de capital, y la IED aportó cerca de tres cuartas partes (77 %). La magnitud exacta atribuible a la IED requiere desagregar el ingreso primario (renta de la inversión directa, de cartera e intereses) y la IED por actividad económica, y estimar un modelo VAR o ARDL con pruebas de causalidad de Granger (1969).

4. ¿Qué papel tiene la movilidad de personas en la sostenibilidad externa?

Evidencia. Los ingresos de ingreso secundario, compuestos principalmente por remesas de trabajadores, pasaron de 1.911 millones de USD en 2000 a 17.995 millones en 2025, es decir, se multiplicaron por 9,4. El ingreso secundario neto promedio pasó de 3.949 millones al año en 2000–2011 a 6.271 millones en 2012–2019 y a 13.588 millones en 2021–2025. En 2025 alcanzó 16.434 millones y cubrió el 110 % del déficit de bienes y servicios (14.941 millones). Además, es más estable que las exportaciones: entre 2001 y 2025 la desviación estándar de su crecimiento anual fue de 10,1 puntos porcentuales, frente a 19,1 en las exportaciones de bienes y 20,0 en las de servicios. Cayó solo en 4 de 25 años, frente a 11 en las exportaciones de bienes, y en 2020 bajó apenas 3,6 %.

Análisis. Los TLC con Estados Unidos y con la Unión Europea no cubren la movilidad laboral. En cambio, la Alianza del Pacífico incluye la libre circulación de personas entre sus objetivos (Alianza del Pacífico, 2012), y la Comunidad Andina cuenta con el Instrumento Andino de Migración Laboral (Comunidad Andina, 2003). La movilidad de personas es, por tanto, una dimensión de la integración que va más allá del comercio y que hoy tiene un peso decisivo en la balanza de pagos.

Respuesta. Las remesas se convirtieron en el principal amortiguador de la cuenta corriente: compensan casi todo el déficit comercial y son la fuente de divisas más estable del país, incluso en crisis como la de 2020. Esto respalda incluir la movilidad laboral en la agenda de integración, por ejemplo con acuerdos de reconocimiento de títulos, portabilidad de la seguridad social y menores costos de envío de remesas. Pero también revela un riesgo: la sostenibilidad externa de Colombia depende cada vez más de las condiciones económicas y migratorias de los países donde viven sus migrantes. Para concluir con mayor certeza, conviene usar la serie específica de remesas de trabajadores por país de origen del Banco de la República, ya que el ingreso secundario incluye otras transferencias, y verificar qué parte proviene de socios de los bloques comerciales.

Síntesis. En 2021–2025 la cuenta corriente combinó un déficit promedio de bienes y servicios de 13.720 millones de USD y un déficit de ingreso primario de 12.918 millones, compensados en buena parte por 13.588 millones de ingreso secundario neto. La integración económica de Colombia ha avanzado más en la circulación de capitales y de personas que en la diversificación de sus exportaciones de bienes. Ese cambio transformó la estructura de la cuenta corriente: hoy su desequilibrio depende tanto de las rentas de la inversión extranjera y de las remesas como del comercio.

Referencias

Abadie, A., Diamond, A., & Hainmueller, J. (2010). Synthetic control methods for comparative case studies: Estimating the effect of California’s tobacco control program. Journal of the American Statistical Association, 105(490), 493–505. https://doi.org/10.1198/jasa.2009.ap08746

Alianza del Pacífico. (2012). Acuerdo Marco de la Alianza del Pacífico. Suscrito en Antofagasta, Chile, el 6 de junio de 2012.

Baier, S. L., & Bergstrand, J. H. (2007). Do free trade agreements actually increase members’ international trade? Journal of International Economics, 71(1), 72–95. https://doi.org/10.1016/j.jinteco.2006.02.005

Banco de la República. (2026). Balanza de pagos de Colombia: cuenta corriente y cuenta financiera [Conjunto de datos]. https://www.banrep.gov.co/es/estadisticas/balanza-pagos

Comunidad Andina. (2003). Decisión 545: Instrumento Andino de Migración Laboral.

Fondo Monetario Internacional. (2009). Manual de balanza de pagos y posición de inversión internacional (6.ª ed.). FMI.

Granger, C. W. J. (1969). Investigating causal relations by econometric models and cross-spectral methods. Econometrica, 37(3), 424–438. https://doi.org/10.2307/1912791

Santos Silva, J. M. C., & Tenreyro, S. (2006). The log of gravity. The Review of Economics and Statistics, 88(4), 641–658. https://doi.org/10.1162/rest.88.4.641

Viner, J. (1950). The customs union issue. Carnegie Endowment for International Peace.

Declaración de uso de inteligencia artificial

En la elaboración de este trabajo utilicé Claude, un asistente de inteligencia artificial desarrollado por Anthropic, el 27 de octubre de 2026. Lo utilicé para reorganizar en dos archivos de Excel las series de la balanza de pagos descargadas del Banco de la República. También lo usé para escribir el código en R Markdown que carga los datos, calcula los indicadores y genera la tabla y los gráficos. Por último, lo utilicé para proponer y redactar las preguntas de investigación, la evidencia que las sustenta, las hipótesis y las respuestas preliminares, y para sugerir las referencias bibliográficas.

Las cifras provienen de los datos oficiales del Banco de la República y se calculan con el código incluido en el documento, que puede consultarse en cada bloque de código. Revisé los resultados, las interpretaciones y las referencias, y asumo la responsabilidad por el contenido final del trabajo. Las herramientas de inteligencia artificial pueden cometer errores, por lo que las conclusiones deben leerse como preliminares.


Fuente: Banco de la República de Colombia, Sección Sector Externo. Elaboración propia.