Exclusive: Most voters believe climate change threatens the American Dream

Like
Liked

Date:

In his inaugural address in January 2025, President Donald Trump promised that “the American Dream will soon be back and thriving like never before.” Apparently, that required undoing policies to tackle climate change: The Trump administration has invoked “the American Dream” as a justification to propose ending mandatory reporting of greenhouse gas emissions, reverse rules to cut emissions from cars, and deregulate coal. 

Voters, on the other hand, view climate change itself as a problem for their aspirations. Exclusive polling for Grist from the think tank Data for Progress shows that 58 percent of likely U.S. voters believe that the warming climate will hinder their ability to achieve or maintain the American Dream over the next 20 years — including 42 percent of Republicans. 

“We identify a strong concern about climate change as a threat to achieving the American Dream,” said Grace Adcox, a senior climate strategist at the progressive think tank.

Diverging bar chart of how much likely voters say climate change will affect their ability to achieve or maintain the American Dream over the next 20 years. Overall, 25 percent say a great deal and 33 percent somewhat, while 20 percent say not very much and 17 percent not at all. Democrats (74 percent a great deal or somewhat) and Black voters (79 percent) are the most likely to say it will; Republicans split 42 percent to 55 percent.

.amdream-q5#amdream-q5-a{margin-top:1.5rem!important;margin-bottom:1.5rem!important;text-align:left}
#amdream-q5-a div,#amdream-q5-a span,#amdream-q5-a p,#amdream-q5-a h2,#amdream-q5-a h4,#amdream-q5-a b{margin:0;padding:0;line-height:inherit;text-transform:none}
#amdream-q5-a svg{max-width:none}
.amdream-q5#amdream-q5-a{box-sizing:border-box;position:relative;width:100%;font-family:”Basis Grotesque”,Arial,sans-serif;font-weight:500;font-size:16px;line-height:1.3;color:#3C3830}.amdream-q5#amdream-q5-a *{box-sizing:border-box}#amdream-q5-a .amdream-q5__title{font-family:”PolySans”,Arial,sans-serif;font-weight:500;font-size:25px;line-height:1.15;letter-spacing:-0.018em;margin:0 0 8px}#amdream-q5-a .amdream-q5__subtitle{font-size:16px;line-height:1.4;margin:0 0 12px;color:#6B665E;text-wrap:pretty}#amdream-q5-a .amdream-q5__legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0 0 10px;font-size:14px}#amdream-q5-a .amdream-q5__legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}#amdream-q5-a .amdream-q5__footer>div{flex:1;min-width:0}#amdream-q5-a .amdream-q5__plot svg{display:block;width:100%;overflow:visible}.amdream-q5#amdream-q5-a svg text{font-family:”Basis Grotesque”,Arial,sans-serif;font-weight:500;font-size:13px;fill:#3C3830}.amdream-q5#amdream-q5-a .tick{font-size:12px;fill:#6B665E;font-variant-numeric:tabular-nums}.amdream-q5#amdream-q5-a .group{font-size:13px;font-weight:700;fill:#6B665E}.amdream-q5#amdream-q5-a .seg-label{font-size:12px;font-variant-numeric:tabular-nums;pointer-events:none}.amdream-q5#amdream-q5-a .halo{paint-order:stroke fill;stroke:#FFFFFF;stroke-width:3px;stroke-linejoin:round}#amdream-q5-a .amdream-q5__footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:10px;gap:12px}#amdream-q5-a .amdream-q5__source,#amdream-q5-a .amdream-q5__credit{font-size:12px;line-height:1.35;color:#6B665E;display:block}#amdream-q5-a .amdream-q5__credit{margin-top:3px;font-weight:700;font-style:italic}#amdream-q5-a .amdream-q5__logo{display:block;height:18px;width:54px;flex:none}#amdream-q5-a .amdream-q5__tooltip{position:absolute;display:none;pointer-events:none;z-index:5;min-width:170px;padding:9px 12px 10px;background:#FFFFFF;border:1.5px solid #3C3830;border-radius:6px;box-shadow:3px 3px 0 #3C3830;font-size:13px;line-height:1.35}#amdream-q5-a .amdream-q5__tooltip h4{font-family:”PolySans”,Arial,sans-serif;font-weight:500;font-size:14px;margin:0 0 5px}#amdream-q5-a .amdream-q5__tooltip div{display:flex;align-items:center;gap:6px}#amdream-q5-a .amdream-q5__tooltip b{margin-left:auto;font-variant-numeric:tabular-nums}
@media (max-width:600px){#amdream-q5-a .amdream-q5__title{font-size:21px}#amdream-q5-a .amdream-q5__subtitle{font-size:15px}#amdream-q5-a .amdream-q5__legend{font-size:13px}}

A majority of likely voters think climate change will get in the way of the American Dream

Percentage of respondents who say climate change will affect their ability to achieve or maintain the American Dream over the next 20 years, by how much

function __gvOr(a,b){return aa:b()};(function(){
function run(d3){
(function () {
const INIT_KEY = ‘__grist_amdream-q5_options_initialized__’;
if (window[INIT_KEY]) return;
window[INIT_KEY] = true;
// Values: a great deal, somewhat, not very much, not at all, don’t know (percent).
const ROWS = [
{ group: ‘All’, key: ‘All likely voters’, v: [25, 33, 20, 17, 6], n: 1167 },
{ group: ‘Party’, key: ‘Democrat’, v: [31, 43, 12, 6, 8], n: 461 },
{ group: ‘Party’, key: ‘Independent / third party’, short: ‘Independent’, v: [27, 28, 21, 17, 8], n: 241 },
{ group: ‘Party’, key: ‘Republican’, v: [18, 24, 27, 28, 3], n: 465 },
{ group: ‘Gender’, key: ‘Female’, v: [25, 31, 22, 15, 7], n: 625 },
{ group: ‘Gender’, key: ‘Male’, v: [24, 34, 17, 19, 5], n: 542 },
{ group: ‘Age’, key: ‘Under 45’, v: [25, 41, 18, 9, 7], n: 375 },
{ group: ‘Age’, key: ’45 and older’, short: ’45+’, v: [24, 29, 21, 21, 6], n: 792 },
{ group: ‘Education’, key: ‘No college’, v: [22, 32, 22, 17, 7], n: 735 },
{ group: ‘Education’, key: ‘College’, v: [29, 34, 16, 16, 5], n: 432 },
{ group: ‘Race’, key: ‘Black’, v: [44, 35, 11, 5, 5], n: 135 },
{ group: ‘Race’, key: ‘White’, v: [23, 28, 21, 21, 6], n: 812 },
{ group: ‘Race’, key: ‘Latino’, v: [21, 47, 21, 8, 3], n: 168 },
];
const ANSWERS = [‘A great deal’, ‘Somewhat’, ‘Not very much’, ‘Not at all’, “Don’t know”];
// Project palette (#FF5134, #FFAEC6, #8AB6E6) plus a deeper blue for the far end of the scale.
const COLOR = [‘#FF5134’, ‘#FFAEC6’, ‘#8AB6E6’, ‘#2E64B0’, ‘#D9D7D2’];
const INK = [‘#3C3830’, ‘#3C3830’, ‘#3C3830’, ‘#FFFFFF’, ‘#3C3830’];
const EARTH = ‘#3C3830’, GRID = ‘#E6E3DD’, MUTED = ‘#6B665E’;
const PEBBLE = ‘M11.3,4.9Q12.4,6.0 12.5,7.7Q12.5,9.5 10.5,10.1Q8.4,10.7 6.7,10.3Q4.9,9.8 3.5,9.2Q2.1,8.6 1.3,7.3Q0.6,6.0 0.9,4.5Q1.3,3.0 2.9,1.9Q4.4,0.8 6.3,1.2Q8.2,1.7 9.2,2.8Q10.1,3.9 11.3,4.9Z’;
const LOGO = ‘x3csvg class=”amdream-q5__logo” viewBox=”0 0 305 103″ fill=”none” xmlns=”http://www.w3.org/2000/svg” aria-label=”Grist”>x3cpath d=”M137 98.5C133 98.5 132 97.5 132 92.5V50.2C133.579 49.0591 135.454 48.3993 137.4 48.3C140.5 48.3 143.2 49.6 147.5 54.7C148.8 56.3 150 57 151.3 57C153.3 57 154.5 55.7 154.5 53.4V38H151.5C147.812 37.9397 144.155 38.6872 140.786 40.1901C137.418 41.6931 134.419 43.915 132 46.7V38H108V41.5H112C116 41.5 117 42.5 117 47.5V92.5C117 97.5 116 98.5 112 98.5H108V102H145V98.5H137ZM158.5 41.5H161.2C165.2 41.5 166.2 42.5 166.2 47.5V92.5C166.2 97.5 165.2 98.5 161.2 98.5H156.8V102H189.9V98.5H186.2C182.2 98.5 181.2 97.5 181.2 92.5V38H158.5V41.5ZM195.4 102H199.1V101C199.1 98.7 200.8 98.8 202.8 99.5C210.5 102.2 214.4 103 220.5 103C236.8 103 244.5 95.4 244.5 82.7C244.5 74.2 239.6 66.7 227.3 63.1L211.2 58.4C203.5 56.1 201.2 53 201.2 49.7C201.2 46.4 204.2 43.4 209.1 43.4C216.6 43.4 223.8 48 234.3 56.3C235.151 57.0952 236.241 57.5873 237.4 57.7C239.4 57.7 240.6 56.4 240.6 54.1V38H236.9V39C236.9 40.7 235.8 41.5 233.7 40.7C226.3 37.9 221.8 37 217.6 37C203.1 37 196 45.2 196 56.9C196 65.3 201.8 72.4 215.2 76.5L229.6 80.9C236.8 83.1 239.3 86 239.3 89.9C239.3 93.8 236 96.6 231.1 96.6C224.3 96.6 215.3 93.2 202.1 83C201.131 82.094 199.911 81.5015 198.6 81.3C196.6 81.3 195.4 82.6 195.4 84.9V102ZM257.8 83.9C257.8 96.3 265.1 103 278.7 103C285.1 103 294.8 101.2 302.3 98.7V87C302.3 84.7 301.1 83.4 299.1 83.4C297.9 83.4 296.8 84.1 295.6 85.9C288.4 96.7 282.8 99.6 278.2 99.6C274.2 99.6 272.8 97.8 272.8 92.7V49.5H304.7V38H272.8V14H269.1V14.7C269.1 29 260.3 40.4 247.8 42.8V49.5H257.8V83.9ZM166.2 30H181.2V12.5H166.2V30ZM84.9 64V88.3C79.1 91.9 72.6 94 67.1 94C39.7 94 15.1 64.1 15.1 33C15.1 18.4 24.7 6.9 41.4 6.9C51.9 6.9 72.3 13.6 87.4 29.8C87.8588 30.38 88.4339 30.8576 89.0884 31.2021C89.7428 31.5465 90.4621 31.7502 91.2 31.8C93.2 31.8 94.4 30.5 94.4 28.2V2H90.7V3C90.7 6.6 88.6 7.6 83.4 6C72.9626 2.50408 62.0057 0.813193 51 1C18.1 1 0 26.8 0 52C0 80.8 21.9 103 51 103C63.148 102.914 74.9783 99.11 84.9 92.1V102H99.4V50H46.4V64H84.9Z” fill=”#3C3830″/>x3c/svg>’;
const affected = (r) => r.v[0] + r.v[1];
const pebble = (c) => `x3csvg width=”13″ height=”12″ viewBox=”0 0 13 12″ aria-hidden=”true”>x3cpath d=”${PEBBLE}” fill=”${c}”/>x3c/svg>`;
// Option A keys its legend and tooltip with round dots; B and C keep the pebbles.
const dot = (c) => `x3csvg width=”12″ height=”12″ viewBox=”0 0 12 12″ aria-hidden=”true”>x3ccircle cx=”6″ cy=”6″ r=”6″ fill=”${c}”/>x3c/svg>`;
const narrow = () => (600)>(window.innerWidth);
function legend(root, idx, key = pebble) {
root.select(‘.amdream-q5__legend’).html(idx.map((i) => `x3cspan>${key(COLOR[i])}${ANSWERS[i]}x3c/span>`).join(”));
}
function tooltip(root, html, event) {
const tip = root.select(‘.amdream-q5__tooltip’);
if (!html) { tip.style(‘display’, ‘none’); return; }
const box = root.node().getBoundingClientRect();
tip.html(html).style(‘display’, ‘block’);
const w = tip.node().offsetWidth;
let x = event.clientX – box.left + 14;
if (x + w > box.width) x = event.clientX – box.left – w – 14;
tip.style(‘left’, Math.max(0, x) + ‘px’).style(‘top’, (event.clientY – box.top + 14) + ‘px’);
}
function rowTip(r, key = pebble) {
return `x3ch4>${r.key}x3c/h4>` + r.v.map((x, i) => `x3cdiv>${key(COLOR[i])}${ANSWERS[i]}x3cb>${x}%x3c/b>x3c/div>`).join(”) +
`x3cdiv style=”color:${MUTED};margin-top:4px”>Weighted N = ${d3.format(‘,’)(r.n)}x3c/div>`;
}
// Option A: diverging stacked bars grouped by demographic split.
function drawA() {
const root = d3.select(‘#amdream-q5-a’);
legend(root, [3, 2, 1, 0], dot);
const plot = root.select(‘.amdream-q5__plot’).html(”);
const W = plot.node().clientWidth;
const labelW = narrow() ? 92 : 168, dkW = narrow() ? 34 : 54, rowH = 26, groupH = 24, top = 26;
const x = d3.scaleLinear().domain([-60, 85]).range([labelW, W – dkW – 8]);
let y = top;
const layout = [];
let last = null;
ROWS.forEach((r) => {
if ((r.group !== last ? r.group !== ‘All’:!1)) { layout.push({ header: r.group, y: y + groupH – 7 }); y += groupH; }
layout.push({ row: r, y }); y += rowH; last = r.group;
if (r.group === ‘All’) y += 4;
});
const H = y + 4;
const svg = plot.append(‘svg’).attr(‘height’, H + 18).attr(‘viewBox’, `0 0 ${W} ${H + 18}`);
[-50, -25, 25, 50, 75].forEach((t) => {
svg.append(‘line’).attr(‘x1’, x(t)).attr(‘x2’, x(t)).attr(‘y1’, top – 4).attr(‘y2’, H).attr(‘stroke’, GRID);
svg.append(‘text’).attr(‘class’, ‘tick’).attr(‘x’, x(t)).attr(‘y’, H + 14).attr(‘text-anchor’, ‘middle’).text(Math.abs(t) + ‘%’);
});
svg.append(‘text’).attr(‘class’, ‘tick’).attr(‘x’, x(0) – 6).attr(‘y’, 12).attr(‘text-anchor’, ‘end’).text(narrow() ? ‘← Not’ : ‘← Not much or not at all’);
svg.append(‘text’).attr(‘class’, ‘tick’).attr(‘x’, x(0) + 6).attr(‘y’, 12).text(narrow() ? ‘Affected →’ : ‘A great deal or somewhat →’);
svg.append(‘text’).attr(‘class’, ‘tick’).attr(‘x’, W – dkW / 2).attr(‘y’, 12).attr(‘text-anchor’, ‘middle’).text(narrow() ? ‘DK’ : “Don’t know”);
layout.forEach((d) => {
if (d.header) { svg.append(‘text’).attr(‘class’, ‘group’).attr(‘x’, 0).attr(‘y’, d.y).text(d.header); return; }
const r = d.row, g = svg.append(‘g’).attr(‘transform’, `translate(0,${d.y})`);
const bh = rowH – 6;
g.append(‘text’).attr(‘x’, 0).attr(‘y’, bh / 2 + 4).style(‘font-weight’, r.group === ‘All’ ? 700 : 500)
.text(narrow() ? (__gvOr(r.short ,()=>( r.key))) : r.key);
// Right of center: somewhat, then a great deal. Left of center: not very much, then not at all.
const segs = [
{ i: 1, x0: 0, x1: r.v[1] }, { i: 0, x0: r.v[1], x1: r.v[1] + r.v[0] },
{ i: 2, x0: -r.v[2], x1: 0 }, { i: 3, x0: -r.v[2] – r.v[3], x1: -r.v[2] },
];
segs.forEach((s) => {
g.append(‘rect’).attr(‘x’, x(s.x0)).attr(‘width’, x(s.x1) – x(s.x0)).attr(‘y’, 0).attr(‘height’, bh).attr(‘fill’, COLOR[s.i]);
if (r.v[s.i] >= (narrow() ? 12 : 8)) {
g.append(‘text’).attr(‘class’, ‘seg-label’).attr(‘x’, (x(s.x0) + x(s.x1)) / 2).attr(‘y’, bh / 2 + 4)
.attr(‘text-anchor’, ‘middle’).style(‘fill’, INK[s.i]).text(r.v[s.i]);
}
});
g.append(‘text’).attr(‘class’, ‘seg-label’).attr(‘x’, W – dkW / 2).attr(‘y’, bh / 2 + 4).attr(‘text-anchor’, ‘middle’).style(‘fill’, MUTED).text(r.v[4]);
g.append(‘rect’).attr(‘x’, 0).attr(‘width’, W).attr(‘y’, -3).attr(‘height’, rowH).attr(‘fill’, ‘transparent’)
.on(‘mousemove’, (e) => tooltip(root, rowTip(r, dot), e)).on(‘mouseleave’, () => tooltip(root, null));
});
svg.append(‘line’).attr(‘x1’, x(0)).attr(‘x2’, x(0)).attr(‘y1’, top – 4).attr(‘y2’, H).attr(‘stroke’, EARTH).attr(‘stroke-width’, 1.5);
}
// Option B: ranked two-tone bars of the “affected” share.
function drawB() {
const root = d3.select(‘#amdream-q5-b’);
legend(root, [0, 1]);
const plot = root.select(‘.amdream-q5__plot’).html(”);
const W = plot.node().clientWidth;
const rows = ROWS.slice().sort((a, b) => affected(b) – affected(a));
const labelW = narrow() ? 92 : 168, rowH = 28, top = 20, H = top + rows.length * rowH;
const x = d3.scaleLinear().domain([0, 100]).range([labelW, W – 34]);
const svg = plot.append(‘svg’).attr(‘height’, H).attr(‘viewBox’, `0 0 ${W} ${H}`);
[0, 25, 50, 75, 100].forEach((t) => {
svg.append(‘line’).attr(‘x1’, x(t)).attr(‘x2’, x(t)).attr(‘y1’, top – 4).attr(‘y2’, H).attr(‘stroke’, t === 0 ? EARTH : GRID);
svg.append(‘text’).attr(‘class’, ‘tick’).attr(‘x’, x(t)).attr(‘y’, 10).attr(‘text-anchor’, ‘middle’).text(t + ‘%’);
});
rows.forEach((r, k) => {
const all = r.group === ‘All’, bh = rowH – 9;
const g = svg.append(‘g’).attr(‘transform’, `translate(0,${top + k * rowH})`);
g.append(‘text’).attr(‘x’, 0).attr(‘y’, bh / 2 + 5).style(‘font-weight’, all ? 700 : 500).text(narrow() ? (__gvOr(r.short ,()=>( r.key))) : r.key);
g.append(‘rect’).attr(‘x’, x(0)).attr(‘width’, x(affected(r)) – x(0)).attr(‘y’, 0).attr(‘height’, bh).attr(‘rx’, 4).attr(‘fill’, all ? ‘#B9B5AC’ : COLOR[1]);
g.append(‘rect’).attr(‘x’, x(0)).attr(‘width’, x(r.v[0]) – x(0)).attr(‘y’, 0).attr(‘height’, bh).attr(‘rx’, 4).attr(‘fill’, all ? EARTH : COLOR[0]);
g.append(‘text’).attr(‘x’, x(affected(r)) + 6).attr(‘y’, bh / 2 + 5).style(‘font-weight’, 700).style(‘font-variant-numeric’, ‘tabular-nums’).text(affected(r) + ‘%’);
g.append(‘rect’).attr(‘x’, 0).attr(‘width’, W).attr(‘y’, -4).attr(‘height’, rowH).attr(‘fill’, ‘transparent’)
.on(‘mousemove’, (e) => tooltip(root, rowTip(r), e)).on(‘mouseleave’, () => tooltip(root, null));
});
}
// Option C: one dumbbell per demographic split, on the “affected” share.
function drawC() {
const root = d3.select(‘#amdream-q5-c’);
const plot = root.select(‘.amdream-q5__plot’).html(”);
const W = plot.node().clientWidth;
const splits = [‘Race’, ‘Party’, ‘Age’, ‘Education’, ‘Gender’].map((g) => {
const rs = ROWS.filter((r) => r.group === g).sort((a, b) => affected(a) – affected(b));
return { group: g, rows: rs, gap: affected(rs[rs.length – 1]) – affected(rs[0]) };
}).sort((a, b) => b.gap – a.gap);
const labelW = narrow() ? 78 : 104, gapW = 54, rowH = 64, top = 30, H = top + splits.length * rowH;
const x = d3.scaleLinear().domain([35, 85]).range([labelW + 10, W – gapW – 10]);
const svg = plot.append(‘svg’).attr(‘height’, H).attr(‘viewBox’, `0 0 ${W} ${H}`);
[40, 50, 60, 70, 80].forEach((t) => {
svg.append(‘line’).attr(‘x1’, x(t)).attr(‘x2’, x(t)).attr(‘y1’, top – 6).attr(‘y2’, H).attr(‘stroke’, GRID);
svg.append(‘text’).attr(‘class’, ‘tick’).attr(‘x’, x(t)).attr(‘y’, H + 16).attr(‘text-anchor’, ‘middle’).text(t + ‘%’);
});
svg.attr(‘height’, H + 20).attr(‘viewBox’, `0 0 ${W} ${H + 20}`);
const all = affected(ROWS[0]);
svg.append(‘line’).attr(‘x1’, x(all)).attr(‘x2’, x(all)).attr(‘y1’, top – 10).attr(‘y2’, H).attr(‘stroke’, EARTH).attr(‘stroke-dasharray’, ‘5,5’);
svg.append(‘text’).attr(‘class’, ‘tick halo’).attr(‘x’, x(all)).attr(‘y’, top – 14).attr(‘text-anchor’, ‘middle’).text(`All likely voters, ${all}%`);
svg.append(‘text’).attr(‘class’, ‘tick’).attr(‘x’, W).attr(‘y’, top – 14).attr(‘text-anchor’, ‘end’).text(‘Gap’);
splits.forEach((s, k) => {
const cy = top + k * rowH + rowH / 2;
const g = svg.append(‘g’);
g.append(‘text’).attr(‘class’, ‘group’).attr(‘x’, 0).attr(‘y’, cy + 4).style(‘fill’, EARTH).text(s.group);
const lo = affected(s.rows[0]), hi = affected(s.rows[s.rows.length – 1]);
g.append(‘line’).attr(‘x1’, x(lo)).attr(‘x2’, x(hi)).attr(‘y1’, cy).attr(‘y2’, cy).attr(‘stroke’, COLOR[0]).attr(‘stroke-width’, 3.5).attr(‘stroke-linecap’, ’round’);
s.rows.forEach((r, i) => {
const above = i % 2 === (s.rows.length === 2 ? 1 : 0);
g.append(‘circle’).attr(‘cx’, x(affected(r))).attr(‘cy’, cy).attr(‘r’, 6.5).attr(‘fill’, EARTH).attr(‘stroke’, ‘#FFFFFF’).attr(‘stroke-width’, 2)
.on(‘mousemove’, (e) => tooltip(root, rowTip(r), e)).on(‘mouseleave’, () => tooltip(root, null));
g.append(‘text’).attr(‘class’, ‘halo’).attr(‘x’, x(affected(r))).attr(‘y’, above ? cy – 13 : cy + 24).attr(‘text-anchor’, ‘middle’)
.style(‘font-size’, ’12px’).text(`${__gvOr(r.short ,()=>( r.key))} ${affected(r)}%`);
});
g.append(‘text’).attr(‘x’, W).attr(‘y’, cy + 5).attr(‘text-anchor’, ‘end’).style(‘font-weight’, 700).style(‘fill’, s.gap >= 10 ? ‘#D63A20’ : MUTED).text(`${s.gap} pts`);
});
}
function render() {
d3.selectAll(‘.amdream-q5__footer’).each(function () {
if (!this.querySelector(‘.amdream-q5__logo’)) this.insertAdjacentHTML(‘beforeend’, LOGO);
});
// Each chart draws only where its markup is on the page (the WordPress embeds carry one chart each).
if (document.getElementById(‘amdream-q5-a’)) drawA();
if (document.getElementById(‘amdream-q5-b’)) drawB();
if (document.getElementById(‘amdream-q5-c’)) drawC();
}
if (document.readyState === ‘loading’) document.addEventListener(‘DOMContentLoaded’, render, { once: true });
else render();
window.addEventListener(‘resize’, render);
})();
}
function fail(){var el=document.getElementById(“amdream-q5-a”);if(el)el.insertAdjacentHTML(“beforeend”,”x3cp>This chart could not load. Try refreshing the page.x3c/p>”);}
function loadD3(){return new Promise(function(res,rej){
var s=document.createElement(“script”),page=window.d3,mine,trap=false;
try{Object.defineProperty(window,”d3″,{configurable:true,enumerable:true,
get:function(){return document.currentScript===s?mine:page;},
set:function(v){if(document.currentScript===s)mine=v;else page=v;}});trap=true;}
catch(e){window.d3=undefined;}
function settle(){if(trap){delete window.d3;if(page!==undefined)window.d3=page;}else{mine=window.d3;window.d3=page;}}
s.src=”https://cdnjs.cloudflare.com/ajax/libs/d3/7.8.5/d3.min.js”;s.integrity=”sha384-su5kReKyYlIFrI62mbQRKXHzFobMa7BHp1cK6julLPbnYcCW9NIZKJiTODjLPeDh”;s.crossOrigin=”anonymous”;s.async=true;
s.onload=function(){settle();if(mine?mine.stack:!1)res(Object.assign({},mine));else rej(new Error(“d3 did not load”));};
s.onerror=function(e){settle();rej(e);};
document.head.appendChild(s);});}
var started=false;
function go(){if(started)return;started=true;
if(((window.d3?window.d3.stack:!1)?/^7./.test(__gvOr(window.d3.version,()=>(“”))):!1)){run(window.d3);return;}
if(!window.__gvD3)window.__gvD3=loadD3();
window.__gvD3.then(run,fail);}
if(document.readyState===”loading”)document.addEventListener(“DOMContentLoaded”,go);else go();
})();

The survey, conducted this spring with 1,167 likely voters, shows that more than half see the cost of living as the biggest threat to reaching the American Dream today. That tracks with other political polls this year as well as reports on rising inflation. A recent analysis from Investopedia found that the typical elements of the American Dream — owning a home and a new car, raising kids, and other milestones — now add up to a price tag of $5.3 million per household. Only 2 percent of voters surveyed named climate change and extreme weather events as the central threat.

Bar chart of what likely voters named as the greatest threat today to their ability to achieve or maintain the American Dream. Cost of living leads with 55 percent, followed by domestic political instability and polarization at 12 percent. Climate change and extreme weather events ranks last at 2 percent.

.amdream-q3#amdream-q3-threat{margin-top:1.5rem!important;margin-bottom:1.5rem!important;text-align:left}
#amdream-q3-threat div,#amdream-q3-threat span,#amdream-q3-threat p,#amdream-q3-threat h2,#amdream-q3-threat h4,#amdream-q3-threat b{margin:0;padding:0;line-height:inherit;text-transform:none}
#amdream-q3-threat svg{max-width:none}
.amdream-q3#amdream-q3-threat{box-sizing:border-box;position:relative;width:100%;font-family:”Basis Grotesque”,Arial,sans-serif;font-weight:500;font-size:16px;line-height:1.3;color:#3C3830}.amdream-q3#amdream-q3-threat *{box-sizing:border-box}#amdream-q3-threat .amdream-q3__title{font-family:”PolySans”,Arial,sans-serif;font-weight:500;font-size:25px;line-height:1.15;letter-spacing:-0.018em;margin:0 0 8px}#amdream-q3-threat .amdream-q3__subtitle{font-size:16px;line-height:1.4;margin:0 0 12px;color:#6B665E;text-wrap:pretty}#amdream-q3-threat .amdream-q3__legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0 0 10px;font-size:14px}#amdream-q3-threat .amdream-q3__legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}#amdream-q3-threat .amdream-q3__footer>div{flex:1;min-width:0}#amdream-q3-threat .amdream-q3__plot svg{display:block;width:100%;overflow:visible}.amdream-q3#amdream-q3-threat svg text{font-family:”Basis Grotesque”,Arial,sans-serif;font-weight:500;font-size:13px;fill:#3C3830}.amdream-q3#amdream-q3-threat .tick{font-size:12px;fill:#6B665E;font-variant-numeric:tabular-nums}.amdream-q3#amdream-q3-threat .group{font-size:13px;font-weight:700;fill:#6B665E}.amdream-q3#amdream-q3-threat .seg-label{font-size:12px;font-variant-numeric:tabular-nums;pointer-events:none}.amdream-q3#amdream-q3-threat .halo{paint-order:stroke fill;stroke:#FFFFFF;stroke-width:3px;stroke-linejoin:round}#amdream-q3-threat .amdream-q3__footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:10px;gap:12px}#amdream-q3-threat .amdream-q3__source,#amdream-q3-threat .amdream-q3__credit{font-size:12px;line-height:1.35;color:#6B665E;display:block}#amdream-q3-threat .amdream-q3__credit{margin-top:3px;font-weight:700;font-style:italic}#amdream-q3-threat .amdream-q3__logo{display:block;height:18px;width:54px;flex:none}#amdream-q3-threat .amdream-q3__tooltip{position:absolute;display:none;pointer-events:none;z-index:5;min-width:170px;padding:9px 12px 10px;background:#FFFFFF;border:1.5px solid #3C3830;border-radius:6px;box-shadow:3px 3px 0 #3C3830;font-size:13px;line-height:1.35}#amdream-q3-threat .amdream-q3__tooltip h4{font-family:”PolySans”,Arial,sans-serif;font-weight:500;font-size:14px;margin:0 0 5px}#amdream-q3-threat .amdream-q3__tooltip div{display:flex;align-items:center;gap:6px}#amdream-q3-threat .amdream-q3__tooltip b{margin-left:auto;font-variant-numeric:tabular-nums}
@media (max-width:600px){#amdream-q3-threat .amdream-q3__title{font-size:21px}#amdream-q3-threat .amdream-q3__subtitle{font-size:15px}#amdream-q3-threat .amdream-q3__legend{font-size:13px}}#amdream-q3-threat .amdream-q3__bars{display:flex;flex-direction:column;gap:12px;margin:4px 0 0}#amdream-q3-threat .amdream-q3__row-label{font-size:14px;line-height:1.25;margin:0 0 4px}#amdream-q3-threat .amdream-q3__track{display:flex;align-items:center;gap:6px}#amdream-q3-threat .amdream-q3__bar{height:20px;border-radius:4px;flex:none}#amdream-q3-threat .amdream-q3__value{font-size:14px;font-variant-numeric:tabular-nums}#amdream-q3-threat .amdream-q3__row–hl .amdream-q3__row-label,#amdream-q3-threat .amdream-q3__row–hl .amdream-q3__value{font-weight:700}#amdream-q3-threat .amdream-q3__dots{display:flex;flex-direction:column;gap:4px;margin:4px 0 0}#amdream-q3-threat .amdream-q3__gap-head{display:flex;justify-content:flex-end;font-size:12px;color:#6B665E;margin:0 0 -4px}#amdream-q3-threat .amdream-q3__dot-row{display:grid;grid-template-columns:minmax(0,1fr) 56px;align-items:center}#amdream-q3-threat .amdream-q3__dot-track{position:relative;height:48px;margin:0 10px}#amdream-q3-threat .amdream-q3__grid{position:absolute;top:0;bottom:0;width:1px;background:#D9D6D0}#amdream-q3-threat .amdream-q3__span{position:absolute;top:31.5px;height:3.5px;border-radius:2px;background:#C9C5BD}#amdream-q3-threat .amdream-q3__dot{position:absolute;top:26px;width:14px;height:14px;margin-left:-7px;border-radius:50%;box-shadow:0 0 0 2px var(–amdream-q3-bg,#FFFFFF)}#amdream-q3-threat .amdream-q3__dot-value{position:absolute;transform:translateX(-50%);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1}#amdream-q3-threat .amdream-q3__dot-value–above{top:8px}#amdream-q3-threat .amdream-q3__gap{text-align:right;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}#amdream-q3-threat .amdream-q3__dot-axis{position:relative;height:18px;margin:2px 66px 0 10px}#amdream-q3-threat .amdream-q3__dot-axis span{position:absolute;transform:translateX(-50%);font-size:12px;color:#6B665E;font-variant-numeric:tabular-nums}#amdream-q3-threat .amdream-q3__note{font-size:12px;line-height:1.35;color:#6B665E;margin:12px 0 0}

Cost of living tops voters’ worries about the American Dream; climate change ranks last

Share of likely voters who named each as the greatest threat today to their ability to achieve or maintain the American Dream

5 percent said they didn’t know.

(function () {
const INIT_KEY = ‘__grist_amdream-q3_companions_initialized__’;
if (window[INIT_KEY]) return;
window[INIT_KEY] = true;
// Topline percentages from the Data for Progress crosstabs (QT7YZW).
const THREAT = [
[‘Cost of living’, 55],
[‘Domestic political instability and polarization’, 12],
[‘Immigration, crime, and public safety’, 10],
[‘Health care affordability and access’, 9],
[‘Global conflicts and national security’, 5],
[‘Education quality and costs’, 3],
[‘Climate change and extreme weather events’, 2],
];
// Very worried, percent: all likely voters, then Democrat, Independent / third party, Republican.
const WORRY = [
[‘Increasing cost of living’, 52, [62, 53, 42]],
[‘More severe extreme weather’, 39, [57, 39, 21]],
[‘Crop failures’, 37, [48, 40, 24]],
[‘Warmer temperatures’, 33, [49, 30, 18]],
[‘Degraded natural areas’, 31, [45, 32, 17]],
];
const PARTIES = [‘Democrat’, ‘Independent’, ‘Republican’];
// Project palette: deeper blue, warm gray, #FF5134.
const PARTY_COLOR = [‘#2E64B0’, ‘#9C968C’, ‘#FF5134’];
const PARTY_KEY = [‘Democrat’, ‘Independent / third party’, ‘Republican’];
const HIGHLIGHT = ‘#FF5134’, MUTED = ‘#C9C5BD’, MAX = 60, DOT_MIN = 10, DOT_MAX = 70;
const LOGO = ‘x3csvg class=”amdream-q3__logo” viewBox=”0 0 305 103″ fill=”none” xmlns=”http://www.w3.org/2000/svg” aria-label=”Grist”>x3cpath d=”M137 98.5C133 98.5 132 97.5 132 92.5V50.2C133.579 49.0591 135.454 48.3993 137.4 48.3C140.5 48.3 143.2 49.6 147.5 54.7C148.8 56.3 150 57 151.3 57C153.3 57 154.5 55.7 154.5 53.4V38H151.5C147.812 37.9397 144.155 38.6872 140.786 40.1901C137.418 41.6931 134.419 43.915 132 46.7V38H108V41.5H112C116 41.5 117 42.5 117 47.5V92.5C117 97.5 116 98.5 112 98.5H108V102H145V98.5H137ZM158.5 41.5H161.2C165.2 41.5 166.2 42.5 166.2 47.5V92.5C166.2 97.5 165.2 98.5 161.2 98.5H156.8V102H189.9V98.5H186.2C182.2 98.5 181.2 97.5 181.2 92.5V38H158.5V41.5ZM195.4 102H199.1V101C199.1 98.7 200.8 98.8 202.8 99.5C210.5 102.2 214.4 103 220.5 103C236.8 103 244.5 95.4 244.5 82.7C244.5 74.2 239.6 66.7 227.3 63.1L211.2 58.4C203.5 56.1 201.2 53 201.2 49.7C201.2 46.4 204.2 43.4 209.1 43.4C216.6 43.4 223.8 48 234.3 56.3C235.151 57.0952 236.241 57.5873 237.4 57.7C239.4 57.7 240.6 56.4 240.6 54.1V38H236.9V39C236.9 40.7 235.8 41.5 233.7 40.7C226.3 37.9 221.8 37 217.6 37C203.1 37 196 45.2 196 56.9C196 65.3 201.8 72.4 215.2 76.5L229.6 80.9C236.8 83.1 239.3 86 239.3 89.9C239.3 93.8 236 96.6 231.1 96.6C224.3 96.6 215.3 93.2 202.1 83C201.131 82.094 199.911 81.5015 198.6 81.3C196.6 81.3 195.4 82.6 195.4 84.9V102ZM257.8 83.9C257.8 96.3 265.1 103 278.7 103C285.1 103 294.8 101.2 302.3 98.7V87C302.3 84.7 301.1 83.4 299.1 83.4C297.9 83.4 296.8 84.1 295.6 85.9C288.4 96.7 282.8 99.6 278.2 99.6C274.2 99.6 272.8 97.8 272.8 92.7V49.5H304.7V38H272.8V14H269.1V14.7C269.1 29 260.3 40.4 247.8 42.8V49.5H257.8V83.9ZM166.2 30H181.2V12.5H166.2V30ZM84.9 64V88.3C79.1 91.9 72.6 94 67.1 94C39.7 94 15.1 64.1 15.1 33C15.1 18.4 24.7 6.9 41.4 6.9C51.9 6.9 72.3 13.6 87.4 29.8C87.8588 30.38 88.4339 30.8576 89.0884 31.2021C89.7428 31.5465 90.4621 31.7502 91.2 31.8C93.2 31.8 94.4 30.5 94.4 28.2V2H90.7V3C90.7 6.6 88.6 7.6 83.4 6C72.9626 2.50408 62.0057 0.813193 51 1C18.1 1 0 26.8 0 52C0 80.8 21.9 103 51 103C63.148 102.914 74.9783 99.11 84.9 92.1V102H99.4V50H46.4V64H84.9Z” fill=”#3C3830″/>x3c/svg>’;
function bars(id, rows) {
const root = document.getElementById(id);
root.querySelector(‘.amdream-q3__bars’).innerHTML = rows.map(([label, v], i) => {
const hl = i === 0;
return `x3cdiv class=”amdream-q3__row${hl ? ‘ amdream-q3__row–hl’ : ”}”>x3cdiv class=”amdream-q3__row-label”>${label}x3c/div>` +
`x3cdiv class=”amdream-q3__track”>x3cdiv class=”amdream-q3__bar” style=”width:calc((100% – 44px) * ${v / MAX});background:${hl ? HIGHLIGHT : MUTED}”>x3c/div>` +
`x3cspan class=”amdream-q3__value”>${v}%x3c/span>x3c/div>x3c/div>`;
}).join(”);
const foot = root.querySelector(‘.amdream-q3__footer’);
if (!foot.querySelector(‘.amdream-q3__logo’)) foot.insertAdjacentHTML(‘beforeend’, LOGO);
}
function dots(id, rows) {
const root = document.getElementById(id);
const pct = (v) => `${((v – DOT_MIN) / (DOT_MAX – DOT_MIN)) * 100}%`;
// Legend runs left to right in the order the dots do, with round keys to match the dots (pebbles elsewhere).
root.querySelector(‘.amdream-q3__legend’).innerHTML = [2, 1, 0].map((i) =>
`x3cspan>x3csvg width=”12″ height=”12″ viewBox=”0 0 12 12″ aria-hidden=”true”>x3ccircle cx=”6″ cy=”6″ r=”6″ fill=”${PARTY_COLOR[i]}”/>x3c/svg>${PARTY_KEY[i]}x3c/span>`).join(”);
const grid = [20, 40, 60].map((t) => `x3cdiv class=”amdream-q3__grid” style=”left:${pct(t)}”>x3c/div>`).join(”);
root.querySelector(‘.amdream-q3__dots’).innerHTML = ‘x3cdiv class=”amdream-q3__gap-head”>Party gapx3c/div>’ + rows.map(([label, all, vals], i) => {
const lo = Math.min(…vals), hi = Math.max(…vals);
// Party values sit at least 8 points apart, so every value label fits above its dot.
const marks = vals.map((v, k) =>
`x3cdiv class=”amdream-q3__dot” style=”left:${pct(v)};background:${PARTY_COLOR[k]}” title=”${PARTIES[k]}: ${v}%”>x3c/div>` +
`x3cspan class=”amdream-q3__dot-value amdream-q3__dot-value–above” style=”left:${pct(v)}”>${v}%x3c/span>`).join(”);
return `x3cdiv class=”amdream-q3__row${i === 0 ? ‘ amdream-q3__row–hl’ : ”}”>` +
`x3cdiv class=”amdream-q3__row-label”>${label}x3c/div>` +
`x3cdiv class=”amdream-q3__dot-row”>x3cdiv class=”amdream-q3__dot-track”>${grid}` +
`x3cdiv class=”amdream-q3__span” style=”left:${pct(lo)};width:calc(${pct(hi)} – ${pct(lo)})”>x3c/div>${marks}x3c/div>` +
`x3cdiv class=”amdream-q3__gap”>${hi – lo} ptsx3c/div>x3c/div>x3c/div>`;
}).join(”) +
`x3cdiv class=”amdream-q3__dot-axis”>${[20, 40, 60].map((t) => `x3cspan style=”left:${pct(t)}”>${t}%x3c/span>`).join(”)}x3c/div>`;
const foot = root.querySelector(‘.amdream-q3__footer’);
if (!foot.querySelector(‘.amdream-q3__logo’)) foot.insertAdjacentHTML(‘beforeend’, LOGO);
}
// Each chart draws only where its markup is on the page (the WordPress embeds carry one chart each).
function render() {
if (document.getElementById(‘amdream-q3-threat’)) bars(‘amdream-q3-threat’, THREAT);
if (document.getElementById(‘amdream-q3-worry’)) dots(‘amdream-q3-worry’, WORRY);
}
if (document.readyState === ‘loading’) document.addEventListener(‘DOMContentLoaded’, render, { once: true });
else render();
})();

Why do so many people think climate change will hurt the American Dream, if it’s so close to the bottom of the list of their concerns today? One likely reason is that people are making the connection between climate change and the rising cost of living. More than half of voters are very worried about climate change making life more expensive over the next 20 years, according to the Data for Progress poll. That’s higher than the share of voters who are worried about warmer temperatures, extreme weather, crop failures, and degraded natural areas.

Climate change is already showing up in household bills. A study from MIT earlier this year found that families in the United States were paying between $400 and $900 more each year because of the effects of global warming, from higher utility bills to climbing insurance premiums, with costs above $1,000 in the hardest-hit counties.

Dot chart of the share of likely voters who are very worried about five effects of climate change in the next 20 years, by party. Increasing cost of living draws the most worry in every party: 62 percent of Democrats, 53 percent of independents and 42 percent of Republicans. The party gap runs from 20 points on cost of living to 36 points on more severe extreme weather.

.amdream-q6#amdream-q6-worry{margin-top:1.5rem!important;margin-bottom:1.5rem!important;text-align:left}
#amdream-q6-worry div,#amdream-q6-worry span,#amdream-q6-worry p,#amdream-q6-worry h2,#amdream-q6-worry h4,#amdream-q6-worry b{margin:0;padding:0;line-height:inherit;text-transform:none}
#amdream-q6-worry svg{max-width:none}
.amdream-q6#amdream-q6-worry{box-sizing:border-box;position:relative;width:100%;font-family:”Basis Grotesque”,Arial,sans-serif;font-weight:500;font-size:16px;line-height:1.3;color:#3C3830}.amdream-q6#amdream-q6-worry *{box-sizing:border-box}#amdream-q6-worry .amdream-q6__title{font-family:”PolySans”,Arial,sans-serif;font-weight:500;font-size:25px;line-height:1.15;letter-spacing:-0.018em;margin:0 0 8px}#amdream-q6-worry .amdream-q6__subtitle{font-size:16px;line-height:1.4;margin:0 0 12px;color:#6B665E;text-wrap:pretty}#amdream-q6-worry .amdream-q6__legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0 0 10px;font-size:14px}#amdream-q6-worry .amdream-q6__legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}#amdream-q6-worry .amdream-q6__footer>div{flex:1;min-width:0}#amdream-q6-worry .amdream-q6__plot svg{display:block;width:100%;overflow:visible}.amdream-q6#amdream-q6-worry svg text{font-family:”Basis Grotesque”,Arial,sans-serif;font-weight:500;font-size:13px;fill:#3C3830}.amdream-q6#amdream-q6-worry .tick{font-size:12px;fill:#6B665E;font-variant-numeric:tabular-nums}.amdream-q6#amdream-q6-worry .group{font-size:13px;font-weight:700;fill:#6B665E}.amdream-q6#amdream-q6-worry .seg-label{font-size:12px;font-variant-numeric:tabular-nums;pointer-events:none}.amdream-q6#amdream-q6-worry .halo{paint-order:stroke fill;stroke:#FFFFFF;stroke-width:3px;stroke-linejoin:round}#amdream-q6-worry .amdream-q6__footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:10px;gap:12px}#amdream-q6-worry .amdream-q6__source,#amdream-q6-worry .amdream-q6__credit{font-size:12px;line-height:1.35;color:#6B665E;display:block}#amdream-q6-worry .amdream-q6__credit{margin-top:3px;font-weight:700;font-style:italic}#amdream-q6-worry .amdream-q6__logo{display:block;height:18px;width:54px;flex:none}#amdream-q6-worry .amdream-q6__tooltip{position:absolute;display:none;pointer-events:none;z-index:5;min-width:170px;padding:9px 12px 10px;background:#FFFFFF;border:1.5px solid #3C3830;border-radius:6px;box-shadow:3px 3px 0 #3C3830;font-size:13px;line-height:1.35}#amdream-q6-worry .amdream-q6__tooltip h4{font-family:”PolySans”,Arial,sans-serif;font-weight:500;font-size:14px;margin:0 0 5px}#amdream-q6-worry .amdream-q6__tooltip div{display:flex;align-items:center;gap:6px}#amdream-q6-worry .amdream-q6__tooltip b{margin-left:auto;font-variant-numeric:tabular-nums}
@media (max-width:600px){#amdream-q6-worry .amdream-q6__title{font-size:21px}#amdream-q6-worry .amdream-q6__subtitle{font-size:15px}#amdream-q6-worry .amdream-q6__legend{font-size:13px}}#amdream-q6-worry .amdream-q6__bars{display:flex;flex-direction:column;gap:12px;margin:4px 0 0}#amdream-q6-worry .amdream-q6__row-label{font-size:14px;line-height:1.25;margin:0 0 4px}#amdream-q6-worry .amdream-q6__track{display:flex;align-items:center;gap:6px}#amdream-q6-worry .amdream-q6__bar{height:20px;border-radius:4px;flex:none}#amdream-q6-worry .amdream-q6__value{font-size:14px;font-variant-numeric:tabular-nums}#amdream-q6-worry .amdream-q6__row–hl .amdream-q6__row-label,#amdream-q6-worry .amdream-q6__row–hl .amdream-q6__value{font-weight:700}#amdream-q6-worry .amdream-q6__dots{display:flex;flex-direction:column;gap:4px;margin:4px 0 0}#amdream-q6-worry .amdream-q6__gap-head{display:flex;justify-content:flex-end;font-size:12px;color:#6B665E;margin:0 0 -4px}#amdream-q6-worry .amdream-q6__dot-row{display:grid;grid-template-columns:minmax(0,1fr) 56px;align-items:center}#amdream-q6-worry .amdream-q6__dot-track{position:relative;height:48px;margin:0 10px}#amdream-q6-worry .amdream-q6__grid{position:absolute;top:0;bottom:0;width:1px;background:#D9D6D0}#amdream-q6-worry .amdream-q6__span{position:absolute;top:31.5px;height:3.5px;border-radius:2px;background:#C9C5BD}#amdream-q6-worry .amdream-q6__dot{position:absolute;top:26px;width:14px;height:14px;margin-left:-7px;border-radius:50%;box-shadow:0 0 0 2px var(–amdream-q6-bg,#FFFFFF)}#amdream-q6-worry .amdream-q6__dot-value{position:absolute;transform:translateX(-50%);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1}#amdream-q6-worry .amdream-q6__dot-value–above{top:8px}#amdream-q6-worry .amdream-q6__gap{text-align:right;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}#amdream-q6-worry .amdream-q6__dot-axis{position:relative;height:18px;margin:2px 66px 0 10px}#amdream-q6-worry .amdream-q6__dot-axis span{position:absolute;transform:translateX(-50%);font-size:12px;color:#6B665E;font-variant-numeric:tabular-nums}#amdream-q6-worry .amdream-q6__note{font-size:12px;line-height:1.35;color:#6B665E;margin:12px 0 0}

Voters in every party worry most about climate change raising the cost of living

Share of likely voters who are very worried about each effect of climate change in the next 20 years, by party

(function () {
const INIT_KEY = ‘__grist_amdream-q6_companions_initialized__’;
if (window[INIT_KEY]) return;
window[INIT_KEY] = true;
// Topline percentages from the Data for Progress crosstabs (QT7YZW).
const THREAT = [
[‘Cost of living’, 55],
[‘Domestic political instability and polarization’, 12],
[‘Immigration, crime, and public safety’, 10],
[‘Health care affordability and access’, 9],
[‘Global conflicts and national security’, 5],
[‘Education quality and costs’, 3],
[‘Climate change and extreme weather events’, 2],
];
// Very worried, percent: all likely voters, then Democrat, Independent / third party, Republican.
const WORRY = [
[‘Increasing cost of living’, 52, [62, 53, 42]],
[‘More severe extreme weather’, 39, [57, 39, 21]],
[‘Crop failures’, 37, [48, 40, 24]],
[‘Warmer temperatures’, 33, [49, 30, 18]],
[‘Degraded natural areas’, 31, [45, 32, 17]],
];
const PARTIES = [‘Democrat’, ‘Independent’, ‘Republican’];
// Project palette: deeper blue, warm gray, #FF5134.
const PARTY_COLOR = [‘#2E64B0’, ‘#9C968C’, ‘#FF5134’];
const PARTY_KEY = [‘Democrat’, ‘Independent / third party’, ‘Republican’];
const HIGHLIGHT = ‘#FF5134’, MUTED = ‘#C9C5BD’, MAX = 60, DOT_MIN = 10, DOT_MAX = 70;
const LOGO = ‘x3csvg class=”amdream-q6__logo” viewBox=”0 0 305 103″ fill=”none” xmlns=”http://www.w3.org/2000/svg” aria-label=”Grist”>x3cpath d=”M137 98.5C133 98.5 132 97.5 132 92.5V50.2C133.579 49.0591 135.454 48.3993 137.4 48.3C140.5 48.3 143.2 49.6 147.5 54.7C148.8 56.3 150 57 151.3 57C153.3 57 154.5 55.7 154.5 53.4V38H151.5C147.812 37.9397 144.155 38.6872 140.786 40.1901C137.418 41.6931 134.419 43.915 132 46.7V38H108V41.5H112C116 41.5 117 42.5 117 47.5V92.5C117 97.5 116 98.5 112 98.5H108V102H145V98.5H137ZM158.5 41.5H161.2C165.2 41.5 166.2 42.5 166.2 47.5V92.5C166.2 97.5 165.2 98.5 161.2 98.5H156.8V102H189.9V98.5H186.2C182.2 98.5 181.2 97.5 181.2 92.5V38H158.5V41.5ZM195.4 102H199.1V101C199.1 98.7 200.8 98.8 202.8 99.5C210.5 102.2 214.4 103 220.5 103C236.8 103 244.5 95.4 244.5 82.7C244.5 74.2 239.6 66.7 227.3 63.1L211.2 58.4C203.5 56.1 201.2 53 201.2 49.7C201.2 46.4 204.2 43.4 209.1 43.4C216.6 43.4 223.8 48 234.3 56.3C235.151 57.0952 236.241 57.5873 237.4 57.7C239.4 57.7 240.6 56.4 240.6 54.1V38H236.9V39C236.9 40.7 235.8 41.5 233.7 40.7C226.3 37.9 221.8 37 217.6 37C203.1 37 196 45.2 196 56.9C196 65.3 201.8 72.4 215.2 76.5L229.6 80.9C236.8 83.1 239.3 86 239.3 89.9C239.3 93.8 236 96.6 231.1 96.6C224.3 96.6 215.3 93.2 202.1 83C201.131 82.094 199.911 81.5015 198.6 81.3C196.6 81.3 195.4 82.6 195.4 84.9V102ZM257.8 83.9C257.8 96.3 265.1 103 278.7 103C285.1 103 294.8 101.2 302.3 98.7V87C302.3 84.7 301.1 83.4 299.1 83.4C297.9 83.4 296.8 84.1 295.6 85.9C288.4 96.7 282.8 99.6 278.2 99.6C274.2 99.6 272.8 97.8 272.8 92.7V49.5H304.7V38H272.8V14H269.1V14.7C269.1 29 260.3 40.4 247.8 42.8V49.5H257.8V83.9ZM166.2 30H181.2V12.5H166.2V30ZM84.9 64V88.3C79.1 91.9 72.6 94 67.1 94C39.7 94 15.1 64.1 15.1 33C15.1 18.4 24.7 6.9 41.4 6.9C51.9 6.9 72.3 13.6 87.4 29.8C87.8588 30.38 88.4339 30.8576 89.0884 31.2021C89.7428 31.5465 90.4621 31.7502 91.2 31.8C93.2 31.8 94.4 30.5 94.4 28.2V2H90.7V3C90.7 6.6 88.6 7.6 83.4 6C72.9626 2.50408 62.0057 0.813193 51 1C18.1 1 0 26.8 0 52C0 80.8 21.9 103 51 103C63.148 102.914 74.9783 99.11 84.9 92.1V102H99.4V50H46.4V64H84.9Z” fill=”#3C3830″/>x3c/svg>’;
function bars(id, rows) {
const root = document.getElementById(id);
root.querySelector(‘.amdream-q6__bars’).innerHTML = rows.map(([label, v], i) => {
const hl = i === 0;
return `x3cdiv class=”amdream-q6__row${hl ? ‘ amdream-q6__row–hl’ : ”}”>x3cdiv class=”amdream-q6__row-label”>${label}x3c/div>` +
`x3cdiv class=”amdream-q6__track”>x3cdiv class=”amdream-q6__bar” style=”width:calc((100% – 44px) * ${v / MAX});background:${hl ? HIGHLIGHT : MUTED}”>x3c/div>` +
`x3cspan class=”amdream-q6__value”>${v}%x3c/span>x3c/div>x3c/div>`;
}).join(”);
const foot = root.querySelector(‘.amdream-q6__footer’);
if (!foot.querySelector(‘.amdream-q6__logo’)) foot.insertAdjacentHTML(‘beforeend’, LOGO);
}
function dots(id, rows) {
const root = document.getElementById(id);
const pct = (v) => `${((v – DOT_MIN) / (DOT_MAX – DOT_MIN)) * 100}%`;
// Legend runs left to right in the order the dots do, with round keys to match the dots (pebbles elsewhere).
root.querySelector(‘.amdream-q6__legend’).innerHTML = [2, 1, 0].map((i) =>
`x3cspan>x3csvg width=”12″ height=”12″ viewBox=”0 0 12 12″ aria-hidden=”true”>x3ccircle cx=”6″ cy=”6″ r=”6″ fill=”${PARTY_COLOR[i]}”/>x3c/svg>${PARTY_KEY[i]}x3c/span>`).join(”);
const grid = [20, 40, 60].map((t) => `x3cdiv class=”amdream-q6__grid” style=”left:${pct(t)}”>x3c/div>`).join(”);
root.querySelector(‘.amdream-q6__dots’).innerHTML = ‘x3cdiv class=”amdream-q6__gap-head”>Party gapx3c/div>’ + rows.map(([label, all, vals], i) => {
const lo = Math.min(…vals), hi = Math.max(…vals);
// Party values sit at least 8 points apart, so every value label fits above its dot.
const marks = vals.map((v, k) =>
`x3cdiv class=”amdream-q6__dot” style=”left:${pct(v)};background:${PARTY_COLOR[k]}” title=”${PARTIES[k]}: ${v}%”>x3c/div>` +
`x3cspan class=”amdream-q6__dot-value amdream-q6__dot-value–above” style=”left:${pct(v)}”>${v}%x3c/span>`).join(”);
return `x3cdiv class=”amdream-q6__row${i === 0 ? ‘ amdream-q6__row–hl’ : ”}”>` +
`x3cdiv class=”amdream-q6__row-label”>${label}x3c/div>` +
`x3cdiv class=”amdream-q6__dot-row”>x3cdiv class=”amdream-q6__dot-track”>${grid}` +
`x3cdiv class=”amdream-q6__span” style=”left:${pct(lo)};width:calc(${pct(hi)} – ${pct(lo)})”>x3c/div>${marks}x3c/div>` +
`x3cdiv class=”amdream-q6__gap”>${hi – lo} ptsx3c/div>x3c/div>x3c/div>`;
}).join(”) +
`x3cdiv class=”amdream-q6__dot-axis”>${[20, 40, 60].map((t) => `x3cspan style=”left:${pct(t)}”>${t}%x3c/span>`).join(”)}x3c/div>`;
const foot = root.querySelector(‘.amdream-q6__footer’);
if (!foot.querySelector(‘.amdream-q6__logo’)) foot.insertAdjacentHTML(‘beforeend’, LOGO);
}
// Each chart draws only where its markup is on the page (the WordPress embeds carry one chart each).
function render() {
if (document.getElementById(‘amdream-q6-threat’)) bars(‘amdream-q6-threat’, THREAT);
if (document.getElementById(‘amdream-q6-worry’)) dots(‘amdream-q6-worry’, WORRY);
}
if (document.readyState === ‘loading’) document.addEventListener(‘DOMContentLoaded’, render, { once: true });
else render();
})();

Ahead of the midterm elections this week, climate advocacy groups have been talking about high energy costs, a top issue for voters in battleground districts. They have championed wind and solar as cheaper sources of energy and have argued that Trump’s efforts to block offshore wind farms and slow down other renewable energy projects will drive up costs. 

While Trump has been talking about the “Green New Scam” and emphasizing the costs of taking climate action, that message doesn’t appear to be gaining much traction with voters. When participants in the Data for Progress poll were asked to choose between phrases that captured their views on climate policies, very few of them — only 6 percent — opted for “an expensive burden on working people.” Even Republicans didn’t pick that characterization, identifying climate action instead as a distraction from more important issues or a misguided approach based on faulty information. The most common phrase respondents chose to describe their views on climate policies was “a critical step to protect our environment.”

“That really is interesting, and suggests that potentially voters are not going to be as susceptible to the sacrifice or expense framing, despite this top-down use of the rhetoric,” Adcox said.

This story was originally published by Grist with the headline Exclusive: Most voters believe climate change threatens the American Dream on Nov 2, 2026.

ALT-Lab-Ad-1

Recent Articles