Overview

This report analyzes a curated database of real-world Direct Air Capture (DAC) facilities worldwide, spanning operational plants, projects under construction, and announced installations. Data is sourced from the IEA, the U.S. DOE DAC Hubs program, and company disclosures.

The companion interactive dashboard (built in R Shiny with Leaflet and Plotly) is in the project repository.

# Load the real facilities database
dac <- read_csv("data/dac_facilities.csv", show_col_types = FALSE) %>%
  mutate(
    start_date = as.Date(start_date),
    status = factor(status, levels = c("Operational", "Under Construction", "Planned"))
  )

n_fac      <- nrow(dac)
n_op       <- sum(dac$status == "Operational", na.rm = TRUE)
total_cap  <- sum(dac$capacity_tonnes_yr, na.rm = TRUE)
op_cap     <- sum(dac$capacity_tonnes_yr[dac$status == "Operational"], na.rm = TRUE)

23 facilities tracked across 7 countries. 9 are operational today, with a combined pipeline capacity of 9,077,900 tonnes CO₂/year (65,900 tonnes/year already operational).

Global Map

pal <- colorFactor(c("#2f5e28", "#3F7D34", "#8BC34A"), domain = dac$status)

leaflet(dac) %>%
  addProviderTiles(providers$CartoDB.Positron) %>%
  addCircleMarkers(
    ~longitude, ~latitude,
    radius = ~pmax(4, log10(capacity_tonnes_yr) * 2.5),
    color = ~pal(status), fillOpacity = 0.75, stroke = FALSE,
    popup = ~paste0(
      "<b>", name, "</b><br>", company, "<br>",
      format(capacity_tonnes_yr, big.mark = ","), " t/yr &middot; ", status, "<br>",
      technology
    )
  ) %>%
  addLegend("bottomright", pal = pal, values = ~status, title = "Status")

Capacity by Facility

dac %>%
  arrange(desc(capacity_tonnes_yr)) %>%
  slice_head(n = 15) %>%
  plot_ly(
    x = ~capacity_tonnes_yr,
    y = ~reorder(name, capacity_tonnes_yr),
    color = ~status,
    colors = c("#2f5e28", "#3F7D34", "#8BC34A"),
    type = "bar", orientation = "h"
  ) %>%
  layout(
    title = "Top 15 DAC Facilities by Announced Capacity",
    xaxis = list(title = "Capacity (tonnes CO2 / year)"),
    yaxis = list(title = ""),
    margin = list(l = 160)
  )

Pipeline by Status and Region

dac %>%
  group_by(region, status) %>%
  summarise(capacity = sum(capacity_tonnes_yr), .groups = "drop") %>%
  plot_ly(
    x = ~region, y = ~capacity, color = ~status,
    colors = c("#2f5e28", "#3F7D34", "#8BC34A"), type = "bar"
  ) %>%
  layout(
    barmode = "stack",
    title = "Announced Capacity by Region and Status",
    xaxis = list(title = ""),
    yaxis = list(title = "Capacity (tonnes CO2 / year)")
  )

Technology Mix

dac %>%
  count(technology, wt = capacity_tonnes_yr, name = "capacity") %>%
  arrange(desc(capacity)) %>%
  mutate(capacity = paste0(format(capacity, big.mark = ","), " t/yr")) %>%
  kable(col.names = c("Technology", "Total Announced Capacity")) %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Technology Total Announced Capacity
Solid Sorbent 5,021,900 t/yr
Liquid Solvent 1,001,000 t/yr
Hybrid (Solid + Limestone) 1,000,000 t/yr
Electrochemical (Seawater) 600,000 t/yr
Limestone Kiln 501,000 t/yr
Liquid Solvent (High-temp) 500,000 t/yr
Limestone Mineralization 321,000 t/yr
Solid Sorbent + Mineralization 50,000 t/yr
Solid Sorbent (Low-temp) 40,000 t/yr
Multi-technology 30,000 t/yr
Electrochemical 7,000 t/yr
Passive (MechanicalTree) 5,000 t/yr
Geothermal + Mineralization 1,000 t/yr

Deployment Timeline

dac %>%
  filter(!is.na(start_date)) %>%
  arrange(start_date) %>%
  mutate(cumulative = cumsum(capacity_tonnes_yr)) %>%
  plot_ly(x = ~start_date, y = ~cumulative, type = "scatter", mode = "lines+markers",
          line = list(color = "#3F7D34"), marker = list(color = "#2f5e28")) %>%
  layout(
    title = "Cumulative Announced Capacity Over Time",
    xaxis = list(title = ""),
    yaxis = list(title = "Cumulative capacity (tonnes CO2 / year)")
  )

Notes

  • Capacities are announced/nameplate figures; operational output varies with load factor, energy source, and ambient conditions.
  • “Planned” facilities are subject to final investment decisions and may shift.
  • Data compiled from IEA, DOE DAC Hubs, and 1PointFive / Climeworks / Heirloom disclosures. See data/dac_facilities.csv for the full source column.