We have spent this whole book looking at the evidence together: higher temperatures and the warming planet, melting glaciers and ice sheets, warming oceans, the droughts and extreme events.
So now comes the question we have been building toward the entire time.
What can we actually do to mitigate the effects of global warming?
Here is the honest answer: we don’t have a complete list. Nobody does. What we do have is you - every reader of this book, each with different skills, budgets, neighborhoods and ideas. So instead of writing this chapter alone, we decided to write it with you.
TipLearning Objectives: Climate and Data
Think about climate actions the way we have analyzed climate data: with evidence, costs AND benefits.
Contribute your own proposal to our shared list.
Vote on the proposals you would actually do.
Learn how a live, crowd-sourced dataset can be read and visualized with the exact same Python we have used all book long.
18.1 Thinking in Costs and Benefits
Every action has a cost — money, time, effort, convenience — and a benefit. Some benefits are direct (less electricity used every day), some are slower but bigger (a city that builds bike lanes changes thousands of trips at once), and some are sneaky-cheap but powerful (just talking about climate, with data, costs nothing and is how ideas spread).
The key issue is that there are going to be different opinions on which actions to take, how much do they cost, whether they have any impact or not. If there are no disagreements, no costs and the measurement and impact is clear, then many of these actions would have been aleady taken!
When you propose an action below, we will ask you to rate it on two simple scales:
Effort (1–5): how hard is it, really? Be honest.
1 = you could do it today;
5 = this needs organizing, persistence and probably some meetings.
Impact (1–5): how much difference does it make if it actually happens?
1 = small but real;
5 = changes things for many people at once.
These ratings are opinions, not measurements — and that is fine! Reasonable people will disagree, and that disagreement is exactly what the voting is for. This is a different kind of data than the temperature records we have been downloading. It is data that we create together. Our analysis can shed light on what the readers collectively think about the issues and where the disagreements are.
18.2 Add Your Proposal
Have an idea? Put it on the record — this form goes straight to us for review:
Here is the live proposal list — the shared sheet itself, embedded in the page. When a new proposal is approved, it shows up here with no rebuild needed:
And the raw votes as they arrive — a proposal number and a first name, which is all we ever ask for:
The pipeline below now reads that live sheet — which, today, holds our own starter proposals, so you can see exactly what happens to yours once it lands. Yes, we seeded the list with our own ideas and our own votes. Somebody has to go first!
18.3 What Happens to Your Proposal? Let Us Look at the Pipeline
Your form answers land in a shared spreadsheet, and that spreadsheet can be published as a CSV file with a URL. And what do we know how to do really, really well by now? Read a CSV from a URL!
We wrote the code below the way we learned to in the Arctic ice chapter: try the live source first, and fall back to a local copy if the live one is not reachable. Our data sources chapter taught us the hard way that servers move — so this time we planned for it from day one.
import pandas as pd# The live crowd-sourced sheets, published as CSV (manifest id: reader-proposals).# If a live read fails — or comes back empty — we fall back to the seed files.# gid=0 pins the moderated Sheet1 tab, not the form's raw-responses tab.PROPOSALS_URL ="https://docs.google.com/spreadsheets/d/e/2PACX-1vTf_knTvKKUBjMWfcjk-vqOwqEOUcusy4tutTXZWf12n0MaP_rov-FBAPJQDWqyUCv5KEaAs-qaraCL/pub?gid=0&single=true&output=csv"VOTES_URL ="https://docs.google.com/spreadsheets/d/e/2PACX-1vSidZU3R6B32rp6XpzV-tF-AqDomRvpasYufb7yb1V4C43CupKmbQcz-ZJxnKU5-qBV-uxRUWXjbteY/pub?gid=0&single=true&output=csv"try:ifnot PROPOSALS_URL:raiseValueError("live proposals sheet not wired up yet") proposals = pd.read_csv(PROPOSALS_URL)iflen(proposals) ==0:raiseValueError("live sheet exists but has no rows yet") proposals_source ="the live reader sheet"exceptException: proposals = pd.read_csv("../../data/proposals_seed.csv") proposals_source ="our seed file (could not read the live sheet)"try:ifnot VOTES_URL:raiseValueError("live votes sheet not wired up yet") votes = pd.read_csv(VOTES_URL)iflen(votes) ==0:raiseValueError("live sheet exists but has no votes yet") votes_source ="the live voting sheet"exceptException: votes = pd.read_csv("../../data/votes_seed.csv") votes_source ="our seed votes (could not read the live sheet)"print(f"Read {len(proposals)} proposals from {proposals_source}.")print(f"Read {len(votes)} votes from {votes_source}.")
Read 9 proposals from the live reader sheet.
Read 6 votes from the live voting sheet.
What did we do?
We put the live URLs in variables at the top — when the sheets went live, we changed exactly two lines and nothing else.
The try/except pattern attempts the live read and falls back to the local seed CSVs in the book’s data/ folder if anything goes wrong — including a live sheet with no rows in it yet. No mysterious crashes for readers running this at home.
We recorded which source we actually read — so the graphs below can say so honestly.
proposals
id
action
scale
effort_1to5
impact_1to5
cost_note
benefit_note
submitted_by
0
1
Switch home lighting to LED and fix draft leaks
individual
1
2
small upfront cost, pays for itself in the pow...
less electricity used every single day
authors (seed)
1
2
Walk, bike or take the bus for trips under 2 m...
individual
2
2
a little planning and sometimes sweat
no fuel burned, and it is healthy
authors (seed)
2
3
Eat more plant-based meals each week
individual
2
3
trying new recipes, some meals cost less
food is a big slice of a household's footprint
authors (seed)
3
4
Fly less; make video calls or take the train w...
individual
3
4
longer travel time, less convenience
one avoided flight outweighs many small savings
authors (seed)
4
5
Start or join a school/community energy audit
community
3
3
organizing time, permission from the school
finds the cheapest savings first, and teaches ...
authors (seed)
5
6
Plant and care for local trees with a communit...
community
3
2
ongoing care, not just planting day
shade, cooler streets, and carbon uptake over ...
authors (seed)
6
7
Talk about climate with family and friends usi...
individual
1
3
courage! conversations can be awkward
the cheapest action of all, and how ideas spread
authors (seed)
7
8
Ask your city for safe bike lanes and better t...
policy
4
5
letters, meetings, patience — change is slow
one policy change moves thousands of trips at ...
authors (seed)
8
9
install solar panels
Community
4
4
depends on the state and subsidies
lower emissions, resiliency and lower costs
s
Each row is one proposed action, its scale (individual, community or policy), the effort and impact ratings, and — most importantly — the proposer’s own words on costs and benefits.
18.4 Counting the Votes
Voting works the same way: a tiny form that asks one question (“which proposal number would you actually do?” — plus your first name), a sheet, a CSV.
Cast yours right here:
Counting votes is a one-liner we have used since the FEMA chapter — groupby and count.
We merged the vote counts onto the proposals (a left merge, so proposals with zero votes stay in the table — zero votes is information too!) and sorted.
The colors carry meaning: blues for individual and community actions, red for policy asks — the same colorblind-friendly palette family as our warming stripes.
18.6 Effort vs Impact: the Chart That Starts Arguments
This is our favorite figure in the whole chapter. Every proposal lands in one of four corners:
Bottom-left (low effort, low impact): easy little habits. Do them — they add up, and they get you started.
Top-left (low effort, high impact): the easy wins. If you find something here, tell everyone.
Top-right (high effort, high impact): the big projects — bike lanes, energy audits, policy. These need groups, not heroes.
Bottom-right (high effort, low impact): think twice! Sometimes an action feels virtuous but the numbers do not follow. This corner is why we ask about costs AND benefits.
Remember: the positions are the proposers’ own honest guesses, and the votes are yours. If you think proposal 8 is rated wrong — vote, or better, submit a sharper version of it.
18.7 The Fine Print (Because We Analyze Data Honestly)
NoteThis is opinion data — treat it that way
The temperature records in Part 1 were measurements. This chapter’s data is people’s judgments: self-rated effort and impact, votes from whoever showed up. That means selection bias (voters are readers of this book!), round numbers, and enthusiasm spikes. We are fine with all of that — it is a starting point for conversations and experiments, not a scientific ranking. But notice how naturally you just thought about data quality. That is the real lesson of this book.
A practical note on safety: submissions show up publicly once we refresh the book, so first names or nicknames only, no contact details, and be kind — we review submissions before they go into the published sheet.
18.8 Exercises
Submit a proposal! Rate it honestly on both scales.
Pick one proposal from the leaderboard and try it for a week. Did the effort rating match your experience? Vote accordingly.
For coders: the seed CSVs live in the book’s data/ folder. Add a region column idea — how would the charts change if we could compare proposals from different places?
Harder: our vote counter allows anyone to vote many times. How would you detect that in the data? (Hint: we never ask for anything personal — so what can you check?)