Solutions with more potential to reduce emissions are shown as larger circles. They are grouped by their estimated cost as of 2030. They are ‘sufficient to reduce global greenhouse gas (GHG) emissions to half of the current (2019) level or less,’ according to the IPCC.
colorMap = ({
"Negative": {
fill: "lightblue",
color: "black"
},
"0-20 USD": {
fill: "gold",
color: "black"
},
"20-50 USD": {
fill: "orange",
color: "black"
},
"50-100 USD": {
fill: "red",
color: "white"
},
"100-200 USD": {
fill: "firebrick",
color: "white"
},
"Not allocated": {
fill: "lightgrey",
color: "black"
}
})
allData = FileAttachment("/data/ipcc-decarbonisation-costs-processed.csv")
.csv({ typed: true });
maxPotential = Math.max(...allData.map(d => d.potential_abatement_mtco2eq))
filteredData = allData.filter(d => d.cost_bucket == selectedCostBucket)
Plot = import("https://esm.run/@observablehq/plot")
bubbleTitle = d =>
d.item + " could remove up to the equivalent of " + d3.format(".0f")(d.potential_abatement_mtco2eq) + " Mt of CO2 each year in the \"" + selectedCostBucket + "\" cost bucket.\n\nThat's " + d3.format(".0%")(d.potential_frac) + " of its potential benefit across all cost buckets."
Plot.plot({
marks: [
Plot.dotX(
filteredData,
Plot.dodgeX("middle", {
y: "potential_abatement_mtco2eq",
// fx: "cost_bucket",
r: "potential_abatement_mtco2eq",
title: bubbleTitle,
ariaLabel: bubbleTitle,
channels: {category: "category", item: "item"},
stroke: "cost_bucket",
fill: "cost_bucket",
fillOpacity: 0.2,
padding: 0.5,
tip: true
})),
Plot.text(
filteredData,
Plot.dodgeX("middle", {
filter: d => d.potential_abatement_mtco2eq > 500,
y: "potential_abatement_mtco2eq",
r: "potential_abatement_mtco2eq",
text: d => d.item,
lineWidth: 8,
fontSize: 12,
// fontSize: "potential_abatement_mtco2eq",
channels: {category: "category", item: "item"},
fill: "black",
stroke: "#ffffffcc",
padding: 0.5,
pointerEvents: "none"
})),
/* icons not dodging in sync with bubbles */
// Plot.image(filteredData,
// Plot.dodgeX("middle", {
// src: d =>
// (d.icon != "NA") ?
// ("/solution-beeswarm/assets/" + d.icon + "-black.svg") :
// ("/solution-beeswarm/assets/question-black.svg"),
// y: "potential_abatement_mtco2eq",
// // width: "potential_abatement_mtco2eq",
// width: 20,
// preserveAspectRatio: true
// // filter: ???
// }))
],
y: {
axis: null,
type: "log",
},
r: {
domain: [0, maxPotential],
range: [2, 95],
legend: true
},
color: {
domain: ["Negative", "0-20 USD", "20-50 USD", "50-100 USD", "100-200 USD",
"Not allocated"],
range: ["lightblue", "gold", "orange", "red", "firebrick", "lightgrey"]
},
height: 550,
marginLeft: 20,
marginRight: 20,
// marginBottom: 60,
marginTop: 35,
insetTop: 40,
style: {
fontSize: 14,
fontFamily: "Roboto Condensed"
}
})
viewof selectedCostBucket = Inputs.radio(
new Map([
["Saves money", "Negative"],
["Low", "0-20 USD"],
["Medium", "20-50 USD"],
["High", "50-100 USD"],
["Very high", "100-200 USD"],
["Not allocated", "Not allocated"]
]), {
label: html`<strong>Cost</strong>`,
value: "Negative",
format: x => html`<span style="border-bottom-color: ${colorMap[x[1]].fill}; box-shadow: 0px 0px 1px ${colorMap[x[1]].fill}; padding: 5px;">${x[0]}</span>`
})
description = {
const note = `<br><p style="font-size: 70%">Some solutions may appear in several cost buckets because they have a range of costs depending on the circumstance. The estimate potential for greenhouse gas reduction is subject to uncertainty not shown here.</p>`
switch (selectedCostBucket) {
case "Negative":
return(md`Solutions that **save money** might still cost something upfront, but they save enough in their use—or in their replacement of alternatives—to be cost-negative. ${note}`);
break;
case "0-20 USD":
return(md`**Low-cost solutions** are rated as costing less than US$20 per tonne of CO2 (or equivalent). ${note}`)
case "20-50 USD":
return(md`**Medium-cost solutions** are rated as costing between US$20 and US$50 per tonne of CO2 (or equivalent). ${note}`)
case "50-100 USD":
return(md`**High-cost solutions** are rated as costing between US$50 and US$100 per tonne of CO2 (or equivalent). ${note}`)
case "100-200 USD":
return(md`**Very high-cost solutions** are rated as costing between US$100 and US$200 per tonne of CO2 (or equivalent). ${note}`)
default:
return(md`Some solutions were **not assigned a cost** because of the difficulty in evaluating them. ${note}`);
}
}
Solutions that save money might still cost something upfront, but they save enough in their use—or in their replacement of alternatives—to be cost-negative.
Some solutions may appear in several cost buckets because they have a range of costs depending on the circumstance. The estimate potential for greenhouse gas reduction is subject to uncertainty not shown here.
micro = require("micromodal@0.4.10")
micro.init({
awaitOpenAnimation: true,
awaitCloseAnimation: true
});
These charts, as well as the analyses that underpin them, are available under a Creative Commons Attribution 4.0 licence.
Please acknowledge 360info and our data sources when you use these charts and data.
Copy and paste the following code:
<div style="aspect-ratio: 13 / 20; width: 100%;"> <iframe allow="fullscreen; clipboard-write self https://dec2023.360info-electricitytransition.pages.dev" allowfullscreen="true" src="https://dec2023.360info-electricitytransition.pages.dev/solution-beeswarm/" title="Interactive: climate solutions" style="width:100%; height: 100%; border:none; background-color: white;" scrolling="no"></iframe> </div>
This content is subject to 360info’s Terms of Use.
Visit the GitHub repository to:
This chart summarises data on the cost and efficacy of solutions for reducing greenhouse gas emissions from the Intergovernmental Panel on Climate Change’s Climate Change 2022: Mitigating Climate Change.
Solutions here are evaluated on the amount of greenhouse gas emissions they could avoid each year. This estimate is subject to uncertainty that is not displayed here; the IPCC’s graphic (Technical Summary Figure TS.23) shows this uncertainty.
The solutions are also broken down into “cost buckets” to show how much of a solution can b e implemented either “cost-negative” (that is, saving money) or at low, medium, high or very high cost. There is also uncertainty associated with the proportions that fall into these cost buckets; the IPCC did not evaluate this.