| Title: | Access Carbon Market Data from Emissions Trading Systems and Voluntary Registries |
|---|---|
| Description: | Unified access to carbon market data from compliance emissions trading systems ('EU ETS', 'UK ETS', 'RGGI', California Cap-and-Trade) and voluntary carbon markets (Verra, Gold Standard, American Carbon Registry, Climate Action Reserve, via the Berkeley Voluntary Registry Offsets Database and the 'CarbonPlan' 'OffsetsDB' API). Includes cross-market price data from the 'International Carbon Action Partnership' ('ICAP') Allowance Price Explorer <https://icapcarbonaction.com/en/ets-prices>, global carbon pricing from the World Bank Carbon Pricing Dashboard <https://carbonpricingdashboard.worldbank.org/>, and the historical 'RFF' World Carbon Pricing Database following Dolphin, Pollitt and Newbery (2020) <doi:10.1038/s41597-022-01659-x>. Data is downloaded from public sources on first use and cached locally. |
| Authors: | Charles Coverdale [aut, cre] |
| Maintainer: | Charles Coverdale <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.2.0 |
| Built: | 2026-10-08 10:52:59 UTC |
| Source: | https://github.com/charlescoverdale/carbondata |
Returns information about the local cache: directory, file count,
size, and list of cached files. Useful for debugging stale
results or deciding whether to call co2_clear_cache().
co2_cache_info()co2_cache_info()
A list with elements dir, n_files, size_bytes,
size_human, and files (a data frame with name,
size_bytes, modified).
Other configuration:
co2_clear_cache()
op <- options(carbondata.cache_dir = tempdir()) co2_cache_info() options(op)op <- options(carbondata.cache_dir = tempdir()) co2_cache_info() options(op)
CAD Trust is the Chia-Network "cadt" software designed to be self-hosted. There is no unauthenticated public API. To use CAD Trust data you must either:
Self-host a cadt node, or
Arrange a private partnership for API access via https://climateactiondata.org/how-to-connect/
co2_cad_trust(...)co2_cad_trust(...)
... |
Ignored. |
This function is a placeholder that errors with guidance. It will gain an implementation once CAD Trust offers a stable public endpoint.
Never returns (always errors).
Other voluntary markets:
co2_offsets_db(),
co2_vrod()
## Not run: co2_cad_trust() ## End(Not run)## Not run: co2_cad_trust() ## End(Not run)
Fetches the California Cap-and-Trade program overall cap and allocation channels, by vintage year.
co2_california_caps(refresh = FALSE)co2_california_caps(refresh = FALSE)
refresh |
Re-download? Default |
A data frame.
Other compliance markets:
co2_california_prices(),
co2_rggi_allowances(),
co2_rggi_state_proceeds(),
co2_ukets(),
co2_ukets_allocations()
op <- options(carbondata.cache_dir = tempdir()) try({ caps <- co2_california_caps() }) options(op)op <- options(carbondata.cache_dir = tempdir()) try({ caps <- co2_california_caps() }) options(op)
Fetches the California Air Resources Board auction settlement price time series, updated quarterly after each joint California- Quebec auction.
co2_california_prices(refresh = FALSE)co2_california_prices(refresh = FALSE)
refresh |
Re-download? Default |
A data frame with joint_auction, quarter,
settlement_price_usd, reserve_price_usd.
Other compliance markets:
co2_california_caps(),
co2_rggi_allowances(),
co2_rggi_state_proceeds(),
co2_ukets(),
co2_ukets_allocations()
op <- options(carbondata.cache_dir = tempdir()) try({ prices <- co2_california_prices() }) options(op)op <- options(carbondata.cache_dir = tempdir()) try({ prices <- co2_california_prices() }) options(op)
Deletes all locally cached carbon market data files. The next call to any data function will re-download.
co2_clear_cache()co2_clear_cache()
Invisibly returns NULL.
Other configuration:
co2_cache_info()
op <- options(carbondata.cache_dir = tempdir()) co2_clear_cache() options(op)op <- options(carbondata.cache_dir = tempdir()) co2_clear_cache() options(op)
Fetches the emissions-weighted carbon price dataset published alongside the World Carbon Pricing Database at https://worldcarbonpricing.org. Unlike the raw WCPD files, these endpoints remain open and are updated with each release, so this is the current route to World Carbon Pricing Database derived data.
co2_ecp_prices( level = c("jurisdiction", "sector", "coverage", "coverage_sector", "region"), gas = "CO2", country = NULL, refresh = FALSE )co2_ecp_prices( level = c("jurisdiction", "sector", "coverage", "coverage_sector", "region"), gas = "CO2", country = NULL, refresh = FALSE )
level |
Character. One of |
gas |
Character. Greenhouse gas. Default |
country |
Optional character vector of jurisdiction names to
filter (matched case-insensitively, e.g. |
refresh |
Re-download? Default |
level = "jurisdiction" returns average effective carbon prices by
jurisdiction and year and "sector" disaggregates by IPCC sector.
Coverage shares, the fraction of emissions subject to a price, come
from "coverage" (by jurisdiction) and "coverage_sector".
"region" is accepted because the publisher documents the endpoint,
but their server currently has no data file behind it for any gas;
the call errors with that explanation until they restore it.
A data frame.
Dolphin, G., Xiahou, Q. (2022). "World carbon pricing database: sources and methods." Scientific Data, 9, 573. https://doi.org/10.1038/s41597-022-01659-x
Other aggregators:
co2_icap_prices(),
co2_icap_systems(),
co2_rff_pricing(),
co2_world_bank()
op <- options(carbondata.cache_dir = tempdir()) try({ ecp <- co2_ecp_prices(country = "United Kingdom") }) options(op)op <- options(carbondata.cache_dir = tempdir()) try({ ecp <- co2_ecp_prices(country = "United Kingdom") }) options(op)
Returns free allowance allocations per installation per year.
Same source file as co2_euets_emissions().
co2_euets_allocations( country = NULL, year = NULL, file_year = NULL, scheme = c("ets1", "ets2", "all"), refresh = FALSE )co2_euets_allocations( country = NULL, year = NULL, file_year = NULL, scheme = c("ets1", "ets2", "all"), refresh = FALSE )
country |
Optional character vector of two-letter registry
codes to filter (e.g. |
year |
Optional integer vector of emissions years. When
|
file_year |
Publication year of the DG CLIMA file to use.
Default is the latest year available in the package (see
|
scheme |
Which trading system to return. |
refresh |
Logical. Re-download? Default |
A data frame with country, installation_id,
installation_name, activity, scheme, year,
allocation_eua.
Other EU ETS:
co2_euets_emissions(),
co2_euets_files(),
co2_euets_installations(),
co2_euets_price(),
co2_euets_surrendered()
op <- options(carbondata.cache_dir = tempdir()) alloc <- co2_euets_allocations(country = "DE") options(op)op <- options(carbondata.cache_dir = tempdir()) alloc <- co2_euets_allocations(country = "DE") options(op)
Fetches annual verified greenhouse-gas emissions for installations covered by the EU Emissions Trading System, from the DG CLIMA Union Registry bulk download. Coverage: ~10,000 stationary installations plus ~1,500 aircraft operators across the EU, EEA, and linked Swiss ETS. Emissions data from 2005 onwards; annual files published each April for the prior compliance year.
co2_euets_emissions( country = NULL, year = NULL, file_year = NULL, scheme = c("ets1", "ets2", "all"), refresh = FALSE )co2_euets_emissions( country = NULL, year = NULL, file_year = NULL, scheme = c("ets1", "ets2", "all"), refresh = FALSE )
country |
Optional character vector of two-letter registry
codes to filter (e.g. |
year |
Optional integer vector of emissions years. When
|
file_year |
Publication year of the DG CLIMA file to use.
Default is the latest year available in the package (see
|
scheme |
Which trading system to return. |
refresh |
Logical. Re-download? Default |
A data frame with columns country, installation_id,
installation_name, activity, scheme, year,
verified_emissions_tco2e, allocation_eua.
Other EU ETS:
co2_euets_allocations(),
co2_euets_files(),
co2_euets_installations(),
co2_euets_price(),
co2_euets_surrendered()
op <- options(carbondata.cache_dir = tempdir()) de <- co2_euets_emissions(country = "DE") options(op)op <- options(carbondata.cache_dir = tempdir()) de <- co2_euets_emissions(country = "DE") options(op)
Returns a data frame of the DG CLIMA file vintages available. The package scrapes the Union Registry page at runtime so new annual releases appear automatically; when the page is unreachable, the vintages bundled with the package are listed instead.
co2_euets_files()co2_euets_files()
A data frame.
Other EU ETS:
co2_euets_allocations(),
co2_euets_emissions(),
co2_euets_installations(),
co2_euets_price(),
co2_euets_surrendered()
co2_euets_files()co2_euets_files()
Returns the registry of stationary EU ETS installations with operator name, activity type, country, and permit details.
co2_euets_installations(country = NULL, refresh = FALSE)co2_euets_installations(country = NULL, refresh = FALSE)
country |
Optional two-letter registry codes. |
refresh |
Re-download? Default |
Vintage warning: the only bulk installation registry DG CLIMA
publishes is a Union Registry snapshot dated 28 August 2012 (Phase
2). It predates every installation added since, and permit statuses
have not been updated. For current installation-level detail, use
the identifier columns returned by co2_euets_emissions(), which
come from the latest annual verified-emissions file.
A data frame.
Other EU ETS:
co2_euets_allocations(),
co2_euets_emissions(),
co2_euets_files(),
co2_euets_price(),
co2_euets_surrendered()
op <- options(carbondata.cache_dir = tempdir()) try({ inst <- co2_euets_installations(country = "PL") }) options(op)op <- options(carbondata.cache_dir = tempdir()) try({ inst <- co2_euets_installations(country = "PL") }) options(op)
Fetches EU Allowance (EUA) primary-auction settlement prices from the EEX public auction report. Auctions are held several times per week; each year's file accumulates all auctions for that year.
co2_euets_price(from = NULL, to = NULL, year = NULL, refresh = FALSE)co2_euets_price(from = NULL, to = NULL, year = NULL, refresh = FALSE)
from, to
|
Optional character or Date. Date range. |
year |
Optional integer year. If supplied, only the file for
that year is fetched (faster than |
refresh |
Re-download? Default |
A data frame with date, auction_name, contract,
status, price_eur, min_bid_eur, max_bid_eur, volume_t.
Other EU ETS:
co2_euets_allocations(),
co2_euets_emissions(),
co2_euets_files(),
co2_euets_installations(),
co2_euets_surrendered()
op <- options(carbondata.cache_dir = tempdir()) try({ prices <- co2_euets_price(year = 2025) }) options(op)op <- options(carbondata.cache_dir = tempdir()) try({ prices <- co2_euets_price(year = 2025) }) options(op)
Returns cumulative total surrendered allowances per installation, compliance code, and account closure date. Per-year surrender events require the EUTL transaction log ZIP, which is deferred to v0.2.0 because it is ~1.5 GB uncompressed and requires LZMA extraction.
co2_euets_surrendered(country = NULL, file_year = NULL, refresh = FALSE)co2_euets_surrendered(country = NULL, file_year = NULL, refresh = FALSE)
country |
Optional two-letter registry codes. |
file_year |
Publication year of the compliance file. Default is the latest in the package. |
refresh |
Re-download? Default |
A data frame with country, installation_id,
installation_name, compliance_code, compliance_status,
total_verified_emissions, total_surrendered_allowances,
year_of_first_emissions, year_of_last_emissions,
account_closure.
Other EU ETS:
co2_euets_allocations(),
co2_euets_emissions(),
co2_euets_files(),
co2_euets_installations(),
co2_euets_price()
op <- options(carbondata.cache_dir = tempdir()) try({ comp <- co2_euets_surrendered(country = "FR") }) options(op)op <- options(carbondata.cache_dir = tempdir()) try({ comp <- co2_euets_surrendered(country = "FR") }) options(op)
Fetches allowance prices across 20+ Emissions Trading Systems from the International Carbon Action Partnership (ICAP) Allowance Price Explorer. Covers EU ETS, UK ETS, California, RGGI, New Zealand, Korea, and other jurisdictions with auction and secondary-market prices where available.
co2_icap_prices(jurisdiction = NULL, include_download = FALSE, refresh = FALSE)co2_icap_prices(jurisdiction = NULL, include_download = FALSE, refresh = FALSE)
jurisdiction |
Optional character vector. Filter by
jurisdiction name. Matching is case-insensitive and partial, so
|
include_download |
Logical. ICAP publishes a second "(download)"
copy of several systems carrying the same prices as the main
series. These are excluded by default, because including them
duplicates a system in any chart or average. Set |
refresh |
Re-download? Default |
A data frame with date, jurisdiction, market_type
("primary" auction or "secondary"), price, and currency.
Other aggregators:
co2_ecp_prices(),
co2_icap_systems(),
co2_rff_pricing(),
co2_world_bank()
op <- options(carbondata.cache_dir = tempdir()) prices <- co2_icap_prices(jurisdiction = "EU ETS") options(op)op <- options(carbondata.cache_dir = tempdir()) prices <- co2_icap_prices(jurisdiction = "EU ETS") options(op)
Lists the emissions trading systems carried by the ICAP Allowance
Price Explorer, with the date range and number of observations for
each. Use this to find the exact jurisdiction names accepted by
co2_icap_prices().
co2_icap_systems(include_download = FALSE, refresh = FALSE)co2_icap_systems(include_download = FALSE, refresh = FALSE)
include_download |
Logical. ICAP publishes a second "(download)"
copy of several systems carrying the same prices as the main
series. These are excluded by default, because including them
duplicates a system in any chart or average. Set |
refresh |
Re-download? Default |
A data frame with jurisdiction, currency, market_type,
first_date, last_date, and n_obs.
Other aggregators:
co2_ecp_prices(),
co2_icap_prices(),
co2_rff_pricing(),
co2_world_bank()
op <- options(carbondata.cache_dir = tempdir()) co2_icap_systems() options(op)op <- options(carbondata.cache_dir = tempdir()) co2_icap_systems() options(op)
Returns a data frame of the carbon markets (compliance and voluntary) supported by this package, with coverage metadata.
co2_markets(type = c("all", "compliance", "voluntary"))co2_markets(type = c("all", "compliance", "voluntary"))
type |
Character. One of |
A data frame with columns market, name, type,
coverage_start, jurisdiction, function_name, and notes.
co2_markets() co2_markets(type = "compliance")co2_markets() co2_markets(type = "compliance")
Fetches the CarbonPlan OffsetsDB daily snapshots of voluntary carbon market projects and credits, stored as Parquet in a public S3 bucket. Covers Verra, ART TREES, Gold Standard, American Carbon Registry, and Climate Action Reserve.
co2_offsets_db( kind = c("projects", "credits"), date = NULL, max_lookback = 180L, refresh = FALSE )co2_offsets_db( kind = c("projects", "credits"), date = NULL, max_lookback = 180L, refresh = FALSE )
kind |
Character. |
date |
Optional character. ISO date of the snapshot to fetch.
The function walks backwards from this date to find a published
snapshot. Default |
max_lookback |
Integer. How many days to walk back before giving up. Default 180, because CarbonPlan's publication cadence became irregular during 2026 and the last snapshot seen was 1 June 2026. |
refresh |
Re-download? Default |
The CarbonPlan REST API at offsets-db-api.carbonplan.org was
deprecated; this function uses the S3 bucket directly. Parquet
reading requires an installed Parquet reader; the arrow
package is the recommended suggest.
A file path to the downloaded Parquet file. The caller
must have arrow or nanoparquet installed to read it.
Other voluntary markets:
co2_cad_trust(),
co2_vrod()
op <- options(carbondata.cache_dir = tempdir()) try({ path <- co2_offsets_db("projects") if (requireNamespace("arrow", quietly = TRUE)) { df <- arrow::read_parquet(path) } }) options(op)op <- options(carbondata.cache_dir = tempdir()) try({ path <- co2_offsets_db("projects") if (requireNamespace("arrow", quietly = TRUE)) { df <- arrow::read_parquet(path) } }) options(op)
Fetches the Dolphin-Pollitt-Newbery World Carbon Pricing Database for one country: national-level carbon pricing with CO2 tax and ETS instruments harmonised by IPCC sector across 200+ jurisdictions.
co2_rff_pricing(country, version = "v2025.0.0", refresh = FALSE)co2_rff_pricing(country, version = "v2025.0.0", refresh = FALSE)
country |
Character. Country name using underscores
(e.g. |
version |
Character. Git tag of the dataset release to read.
Default |
refresh |
Re-download? Default |
On 30 May 2026 the maintainer stopped distributing WCPD through
GitHub and stripped the data files from the default branch; new
releases moved to https://worldcarbonpricing.org behind an
emailed download token. This function therefore reads the last
openly published snapshot, the v2025.0.0 tag, which remains
available and covers 1990 to 2023. For newer vintages, request
access on the WCPD site. For the companion emissions-weighted
carbon price, which is still served openly, see co2_ecp_prices().
A data frame of annual carbon prices by IPCC sector code.
Dolphin, G. G., Pollitt, M. G. and Newbery, D. M. (2020). "The political economy of carbon pricing: a panel analysis." Oxford Economic Papers, 72(2), 472–500. https://doi.org/10.1093/oep/gpz042
Other aggregators:
co2_ecp_prices(),
co2_icap_prices(),
co2_icap_systems(),
co2_world_bank()
op <- options(carbondata.cache_dir = tempdir()) try({ uk <- co2_rff_pricing("United_Kingdom") }) options(op)op <- options(carbondata.cache_dir = tempdir()) try({ uk <- co2_rff_pricing("United_Kingdom") }) options(op)
Fetches the Regional Greenhouse Gas Initiative (RGGI) annual CO2 allowance distribution table from the public RGGI website. Covers 11 participating US states from 2009 onwards.
co2_rggi_allowances(year = NULL, refresh = FALSE)co2_rggi_allowances(year = NULL, refresh = FALSE)
year |
Integer year (2009-present). Default is the current year. |
refresh |
Re-download? Default |
Auction clearing prices are NOT returned here because RGGI
publishes them only as per-auction PDFs (no CSV aggregation
exists). For RGGI prices, use co2_icap_prices() with
jurisdiction = "Regional Greenhouse Gas Initiative".
A data frame of allowance distribution by state.
Other compliance markets:
co2_california_caps(),
co2_california_prices(),
co2_rggi_state_proceeds(),
co2_ukets(),
co2_ukets_allocations()
op <- options(carbondata.cache_dir = tempdir()) try({ a <- co2_rggi_allowances(year = 2026) }) options(op)op <- options(carbondata.cache_dir = tempdir()) try({ a <- co2_rggi_allowances(year = 2026) }) options(op)
Fetches cumulative auction proceeds time series for one RGGI state, indexed by auction number. Derived from the per-state XLSX files on rggi.org. Combining all states gives the full RGGI auction time series.
co2_rggi_state_proceeds(state, refresh = FALSE)co2_rggi_state_proceeds(state, refresh = FALSE)
state |
Two-letter state code (one of: CT, DE, MA, MD, ME, NH, NJ, NY, RI, VA, VT). |
refresh |
Re-download? Default |
A data frame.
Other compliance markets:
co2_california_caps(),
co2_california_prices(),
co2_rggi_allowances(),
co2_ukets(),
co2_ukets_allocations()
op <- options(carbondata.cache_dir = tempdir()) try({ ny <- co2_rggi_state_proceeds("NY") }) options(op)op <- options(carbondata.cache_dir = tempdir()) try({ ny <- co2_rggi_state_proceeds("NY") }) options(op)
Fetches the UK Emissions Trading Scheme Section 4 compliance report (verified emissions and allowance surrenders per account per scheme year), published annually by the UK Emissions Trading Registry after the 30 April reconciliation deadline.
co2_ukets(refresh = FALSE)co2_ukets(refresh = FALSE)
refresh |
Re-download? Default |
A data frame with one row per account-year.
Other compliance markets:
co2_california_caps(),
co2_california_prices(),
co2_rggi_allowances(),
co2_rggi_state_proceeds(),
co2_ukets_allocations()
op <- options(carbondata.cache_dir = tempdir()) try({ uk <- co2_ukets() }) options(op)op <- options(carbondata.cache_dir = tempdir()) try({ uk <- co2_ukets() }) options(op)
Fetches the UK ETS free-allocation table for stationary installations (OHA) published by DESNZ on GOV.UK. Filename includes a media GUID that changes when DESNZ republishes, so the package scrapes the stable publications landing page.
co2_ukets_allocations(sector = c("installations", "aviation"), refresh = FALSE)co2_ukets_allocations(sector = c("installations", "aviation"), refresh = FALSE)
sector |
Character. |
refresh |
Re-download? Default |
A data frame.
Other compliance markets:
co2_california_caps(),
co2_california_prices(),
co2_rggi_allowances(),
co2_rggi_state_proceeds(),
co2_ukets()
op <- options(carbondata.cache_dir = tempdir()) try({ alloc <- co2_ukets_allocations() }) options(op)op <- options(carbondata.cache_dir = tempdir()) try({ alloc <- co2_ukets_allocations() }) options(op)
Fetches the Berkeley GSPP Voluntary Registry Offsets Database, an aggregator of Verra, Gold Standard, ACR, CAR, and ART TREES project registrations and issuances. Released bimonthly under CC BY 4.0.
co2_vrod(sheet = "PROJECTS", refresh = FALSE)co2_vrod(sheet = "PROJECTS", refresh = FALSE)
sheet |
Character. Which workbook sheet to read. |
refresh |
Re-download? Default |
A data frame of project-level data.
Other voluntary markets:
co2_cad_trust(),
co2_offsets_db()
op <- options(carbondata.cache_dir = tempdir()) try({ vrod <- co2_vrod() }) options(op)op <- options(carbondata.cache_dir = tempdir()) try({ vrod <- co2_vrod() }) options(op)
Reads the World Bank Carbon Pricing Dashboard Excel file, which covers 70+ carbon pricing initiatives worldwide (carbon taxes and emissions trading systems) with price, coverage, and revenue data.
co2_world_bank(path = NULL, sheet = 1L, refresh = FALSE)co2_world_bank(path = NULL, sheet = 1L, refresh = FALSE)
path |
Optional path to a locally downloaded dashboard |
sheet |
Sheet to read. Default |
refresh |
Re-download? Default |
Manual download may be required. Since 2026 the dashboard host
rejects non-browser HTTP clients (every request returns HTTP 403,
regardless of user agent), so this function often cannot fetch the
file for you. When the automatic download fails it reports the
direct file URL: download that in a browser and pass the local path
via path. The file is republished roughly twice a year, so a
manual copy stays current for months.
A data frame.
Other aggregators:
co2_ecp_prices(),
co2_icap_prices(),
co2_icap_systems(),
co2_rff_pricing()
op <- options(carbondata.cache_dir = tempdir()) wb <- try(co2_world_bank(), silent = TRUE) options(op)op <- options(carbondata.cache_dir = tempdir()) wb <- try(co2_world_bank(), silent = TRUE) options(op)