Climate Change: Simple, Serious, Solvable › Models
The Push and the Response: Forcing, Feedback and Warming
Something pushes the Earth's heat in and heat out apart. Feedbacks make the world's response to that push bigger, and the ocean makes it slow. Set the strength of each, and see how much the world has warmed and how much more it could.
Loading the data…
The push: climate forcing since 1850
- Carbon dioxide
- Reflective smog
- All of them together
- Each of the others
Move over the graph, or select it and use the arrow keys, to read values.
A forcing is a push. Something changes the heat coming in to the Earth or the heat going out, by so many watts per square meter (W/m²). That number is the climate forcing. It's the push itself, before the temperature responds. These are counted from 1750, as the IPCC counts them.
Greenhouse gases push toward warming. Reflective smog pushes back. Smog is the haze of tiny particles that comes mostly from burning coal and oil. Scientists call the particles aerosols. They reflect Sunlight and brighten clouds, and how hard they push is much less certain than it is for CO₂. The sharp dips in the graph are big volcanic eruptions, which fill the upper air with reflective haze for a year or two.
The sliders don't change the world. They change how hard the model takes each push to be, as a percentage of the IPCC's best estimate for every year. Leave them at 100% for now. They matter most on the third tab.
The amplifier: feedbacks and climate sensitivity
Move over the graph, or select it and use the arrow keys, to read values.
A feedback's gain is the share of each round of warming that comes back as more warming. A gain of 0.11 for ice and snow means that for every degree the world warms, the melting adds another 0.11 of a degree, and then 0.11 of that, and so on. A negative gain takes warming away. Start with ice and snow, or clouds: move one and watch the total gain and the dot.
The curve bends upward. The gains add together, but the warming doesn't just add. Each step of gain counts for more than the one before it. That's why a little uncertainty about clouds turns into a lot of uncertainty about warming. And it's why a total gain of 1 would mean a climate with no stable temperature at all. The Earth's is well short of that.
Water vapor and vertical mixing come as a pair. Open them last. Water vapor is the strongest amplifier and vertical mixing is a damper, and the box under them ties them together. Move one with the box ticked, and then with it clear.
The response: warming since 1850, beside the measurements
- The model's surface
- Measured, with its 95% range
- The model's deep ocean
- The measured imbalance, 2006 to 2018
Move over the graph, or select it and use the arrow keys, to read values.
| Climate forcing, F | |
|---|---|
| The surface's warming as the year begins, T | |
| Paid back to space by that warming, T ÷ S | |
| Energy imbalance, N | |
| The deep ocean's warming as the year begins, D | |
| Heat passing down to the deep ocean, H | |
| The surface's warming during the year, ΔT | |
| The deep ocean's warming during the year, ΔD |
The ocean makes the response slow. A push doesn't warm the world all at once. The air, the land and the top of the ocean warm within a few years, but they keep passing heat down to the deep ocean, which takes centuries to catch up. Set the heat passing down to zero, and the model's surface runs far ahead of the measurements.
The lower graph is the energy imbalance: the part of the push that the warming hasn't paid back yet. It's heat still piling up, nearly all of it in the ocean. Floats in the ocean and satellites measure it, and the bar shows what they found.
More than one setting fits the past. Open the other two sets of controls. Stronger smog cools the model's past, and stronger feedbacks warm it back up. The next tab shows why it matters which is right.
The future: five scenarios to 2100
- The model, to 2014
- Measured
- SSP1-1.9
- SSP1-2.6
- SSP2-4.5
- SSP3-7.0
- SSP5-8.5
Move over the graph, or select it and use the arrow keys, to read values.
Five futures. Each scenario is a story about the rest of this century: how many people, how much energy and where it comes from. From each story the IPCC worked out the forcing, year by year. In SSP1-1.9 and SSP1-2.6 the world cuts its emissions quickly. In SSP3-7.0 and SSP5-8.5 it burns more coal, oil and gas every decade. The model takes each scenario's forcing and does the same sum it did for the past.
The bars at the right are the IPCC's own answers for the average of 2081 to 2100: its best estimate and its very likely range. They come from far bigger models and from many lines of evidence. This model has two numbers for the whole planet, so read its lines as a sketch.
The same sliders reach into the future. A setting that fits the past with strong smog and strong feedbacks warms much more by 2100 than one that fits it with weak smog and weak feedbacks. Whatever the settings, the scenario matters most: how much more we burn is the biggest thing the graph shows.
About this model
This is a very simple model of the temperature of the whole Earth. It follows three ideas from Chapter 4 of the book. A climate forcing is a push: something changes the heat coming in or the heat going out, by so many watts per square meter. The climate sensitivity is how much the world warms for each W/m² of push, once it has had time to settle. And feedbacks set the sensitivity. Warming changes the water vapor in the air, the snow and ice on the ground and the clouds, and those changes warm the world some more.
The model adds one thing that the chapter describes in words: time. The ocean takes a long while to warm, so the response lags the push. The model keeps two temperatures, one for the surface and one for the deep ocean, and moves them along a year at a time.
Its forcing is the IPCC's, year by year from 1850. Its answers sit beside the measured temperature of the world, and beside the IPCC's own projections to 2100. It's a toy: the whole planet is two numbers. But the IPCC's authors used a model of this same kind, with its numbers fitted to the big climate models, to work out how much of the warming so far came from each forcing.
How to use this page
The page has four views, and they're numbered because each builds on the one before.
- "1. Forcing" shows the push for each year from 1850 to 2019. Three sliders set how hard the model takes CO₂, methane and reflective smog to push, as a percentage of the IPCC's best estimate. At 100% a slider changes nothing. Under each slider is the forcing it gives in 2019 and the IPCC's range for that year.
- "2. Feedback" has a slider for the gain of each of four feedbacks: ice and snow, clouds, water vapor and vertical mixing. Its upper drawing lays the four gains end to end, so you can see what they add up to. Its lower drawing is the curve that turns the total gain into warming, with a dot at your setting. The box "Keep these two adding up to 0.40" ties water vapor to vertical mixing, and the page opens with it ticked.
- "3. Response" runs the model from 1850 to 2019 and draws its surface temperature beside the measurements. A new slider sets how fast heat passes down to the deep ocean. The sliders from the first two views are here too, folded away on a phone until you open them. The lower graph is the model's energy imbalance.
- "4. The future" runs the model on to 2100 for five of the IPCC's scenarios, with all the same sliders.
"Back to the opening settings" puts every slider back where it started. The page opens with every forcing at 100% and every gain at the IPCC's central value.
Move over a graph to read its numbers for one year. Or select the graph and press the left or right arrow key. The first press reads the last year the model has. After that, each press moves a year, or ten years with Shift. On the second view the keys move along the curve. Under each graph, a few lines of text say what it shows for your settings. Under the third graph, a table shows the model's whole sum for the year you're reading.
The address in your browser changes as you move the controls, so you can bookmark a view or send it to someone. Nothing is sent anywhere as you work.
This page is part of the website for Climate Change: Simple, Serious, Solvable, an open textbook by Scott Denning. It goes with Chapter 4, "How Climate Changes".
The equations
You don't need any of this to use the page. But the whole model is eight short equations, and you can follow every one of them with a calculator.
The model asks one question: when something pushes on the climate, how much does the world warm, and how fast? Steps 1 to 4 answer the first half, with no time in them at all. Steps 5 to 7 put the ocean in, and they're done over again for every year.
You choose eight things:
- how hard three of the forcings push: ac for CO₂, am for methane and as for reflective smog. Each is your slider's percentage as a number, so 100% is 1 and 160% is 1.6.
- the gain of each of four feedbacks: gw for water vapor, gv for vertical mixing, gi for ice and snow and gc for clouds
- how fast heat passes down to the deep ocean, γ (the Greek letter gamma)
Four numbers never change:
| Letter | What it is | Its value |
|---|---|---|
| S0 | the baseline climate sensitivity, with no feedbacks: the warming for each W/m² when the only thing that answers a push is that hotter things glow more. It's 1 ÷ 3.22, in °C per W/m². | 0.3106 |
| F2× | the forcing from doubling the CO₂ in the air, in W/m² | 3.93 |
| C | the heat capacity of the surface layer: the W/m² it takes, kept up for a year, to warm it by 1 °C | 7.3 |
| Cd | the same for the deep ocean | 110 |
The rest comes from the data: for each year, the forcing from CO₂ (Fc), from methane (Fm), from reflective smog (Fs) and from everything else together (Fo), all in W/m².
1. How hard is the push?
The forcing in one year is the four pieces added up, with your three sliders on the first three:
in W/m². Everything else, Fo, is the other greenhouse gases, changes to the land, soot on snow, volcanoes and the Sun. Smog's forcing is negative, so it takes away from the total. In 2019 the four pieces were 2.16, 0.54, −1.06 and 1.20 W/m². Reflective smog was hiding about half of the push from CO₂.
2. How strong are the feedbacks together?
Box 4.1 in Chapter 4 says that the gains of the separate feedbacks add together:
A gain has no units. It's the share of each round of warming that comes back as more warming. Water vapor, ice and snow are amplifiers, so their gains are positive. Vertical mixing is a damper, so gv is negative. Clouds do some of each, and on balance they amplify. As the page opens, g is 0.64, close to the two-thirds of Box 4.1.
3. How sensitive is the climate?
A push warms the Earth a little. The feedbacks add g times that, then g times the extra, and so on. Box 4.1 adds up all those rounds: 1 + g + g² + … comes to 1 ÷ (1 − g). So the climate sensitivity is the baseline, made that many times bigger:
in °C per W/m². With g at 0.64, the feedbacks make the response 2.8 times the baseline. This is the curve on the second view. Because g is on the bottom of the fraction, the curve gets steeper as g grows. Going from 0.5 to 0.6 adds less than going from 0.6 to 0.7.
Where it stops. At a gain of 1 the bottom of the fraction is zero. Every round of warming would be as big as the one before, and the rounds would never add up to anything. So when your gains add up to 1 or more, the page says there's no stable climate and draws nothing. The real climate is nowhere near that. Chapter 4 explains why positive feedback isn't a runaway.
4. How much warming for doubled CO₂?
Scientists usually give the sensitivity as the warming from doubling CO₂, once the ocean has caught up. Chapter 4 calls it the equilibrium climate sensitivity. It's the forcing from a doubling, times the sensitivity:
in °C. Your slider for CO₂ is in here, because it changes how hard a doubling pushes. As the page opens, T2× is 3.4 °C. That's what the IPCC got when it added up the feedbacks one at a time, as Chapter 4 says. Its best estimate from all the evidence together is 3 °C, and the second view marks that and its ranges.
5. How much of the push is still unpaid?
Now time comes in. Call the warming of the surface so far T. A warmer Earth sends more energy to space, and that pays back part of the push: T ÷ S of it. What's left is the energy imbalance:
in W/m². This is heat that's still piling up. When T reaches F × S, the imbalance is zero and the warming stops. That's all the sensitivity means. A more sensitive climate pays back less for each degree, so it has to warm more before the books balance.
6. How much heat goes down into the deep ocean?
The model's surface layer is the air, the land and the top of the ocean, which the wind keeps stirred. Under it is the deep ocean, with its own warming so far, D. Heat passes from the warmer one to the cooler one:
in W/m². The bigger the difference, the faster the heat goes down. Your slider is γ: the W/m² that pass down for each °C of difference. The page opens with it at 0.7.
7. How much do the two layers warm in a year?
The surface layer keeps the heat that's piling up, less what it passes down. The deep ocean keeps what comes down to it:
both in °C for the year. The two heat capacities set the pace. The surface layer's is as much as a layer of water about 55 m deep over the whole globe, so it warms within a few years. The deep ocean's is 15 times that, like 830 m of water, so it takes centuries. That's why the response lags the push. If a push were held steady, the warming would go on for a long time before it leveled off.
The model starts in 1850 with T and D both at zero. Each year it works out N and H from the temperatures the year began with, then adds ΔT and ΔD to them.
Where the equations stop
This is a toy, and it leaves a lot out.
- One sensitivity for all time. The model's feedbacks are the same in 1900 as in 2100. In the real world they change a little as the pattern of warming over the oceans changes. Chapter 4 says that pattern has let the planet shed heat a little more easily so far than it will later on. That may be part of why the model, at its opening settings, runs warmer than the measurements in recent decades.
- Every W/m² counts the same. A watt of forcing from a volcano warms or cools the model exactly as much as a watt from CO₂.
- No weather and no El Niño. The measured temperature wobbles from year to year by itself. The model's doesn't, so don't expect it to match every bump.
- No carbon cycle. The model is handed its forcing. It doesn't work out how much CO₂ stays in the air, and nothing in it thaws or burns. So it can't show what happens when emissions stop. Then the CO₂ in the air falls and the push shrinks, and Chapter 9 explains why the warming stops.
- The world as two numbers. There's no map here: no land and sea, no poles and tropics. The deep ocean is one layer with one temperature.
- Time in steps of a year. That's coarse for the surface layer after a big eruption, when the forcing changes sharply. At the opening settings, taking 100 steps a year instead moves the model's temperature by 0.04 °C at most.
A worked example
Open the page and leave the sliders alone. Go to "3. Response", select the graph and press the left arrow key once. You're reading 2019, the last year of the forcing data. Here's the model's sum for that year.
- The push (step 1). Every slider is at 100%, so each a is 1. F = 1 × 2.16 + 1 × 0.54 + 1 × (−1.06) + 1.20 = 2.84 W/m².
- The gain (step 2). g = 0.56 + (−0.16) + 0.11 + 0.13 = 0.64.
- The sensitivity (step 3). S = 0.3106 ÷ (1 − 0.64) = 0.863 °C per W/m².
- Doubled CO₂ (step 4). T2× = 1 × 3.93 × 0.863 = 3.39 °C, the 3.4 °C on the second view.
- The imbalance (step 5). As 2019 begins, the model's surface has warmed by 1.493 °C since its start. That pays back 1.493 ÷ 0.863 = 1.73 W/m². N = 2.84 − 1.73 = 1.11 W/m².
- Heat passing down (step 6). The deep ocean has warmed by 0.270 °C. H = 0.7 × (1.493 − 0.270) = 0.86 W/m².
- The year's warming (step 7). ΔT = (1.11 − 0.86) ÷ 7.3 = 0.034 °C, and ΔD = 0.86 ÷ 110 = 0.008 °C.
Those are the numbers in the table under the graph. More than three-quarters of the heat that's piling up goes on down into the deep ocean, and what's left warms the surface by 0.034 °C in the year. That brings the surface to 1.53 °C above its start. The graph shows 1.43 °C, because it counts from the model's average over 1850 to 1900, which is 0.10 °C above its start.
A few details
- Counting from 1850 to 1900. The measurements are given as the difference from their own average over 1850 to 1900, a stand-in for the time before industry. So the graphs take the model's average over the same years away from the model. The table under the third graph doesn't: it counts from the model's start, because that's what the equations use.
- Starting in 1850. The forcing is counted from 1750, but the model starts a century later, with the surface and the deep ocean in balance and a push of 0.33 W/m² in its first year. At the opening settings, starting in 1750 instead lifts the graphs' first years by as much as 0.08 °C. After 1855 it changes them by 0.01 °C or less.
- The year a number belongs to. For each year the page shows the imbalance and the heat passing down as the year's sum used them, and the two temperatures as the year left them.
- The gain as a whole number of hundredths. The sliders move in steps of 0.01, so the page rounds the total gain to two places before it uses it. Then a total of exactly 1 is treated as 1.
- The fit. The text under the third graph gives the typical difference between the model and the measurements. It's the square root of the average squared difference, over 1850 to 2019.
- Joining the past to the future. Each scenario's own forcing starts in 2015. Before that, every scenario uses the same history, and in 2015 the two agree to within 0.01 W/m². After that the scenarios go their own way. By 2019 their forcing is 0.01 to 0.13 W/m² less than what happened, so the fourth view's lines for 2015 to 2019 aren't quite the third view's.
- The scenarios' names. The second number in a name, such as the 7.0 in SSP3-7.0, is roughly the forcing in 2100 that the scenario was designed for, in W/m². The IPCC calls these labels approximate. Its own later estimates, which the model uses, run higher for the high scenarios: 8.2 W/m² for SSP3-7.0 and 10.0 for SSP5-8.5.
See the equations at work
- Each step of gain counts for more. On "2. Feedback", leave the box ticked and raise clouds from 0.13 to 0.23. The total gain goes from 0.64 to 0.74, and the warming for doubled CO₂ goes from 3.4 °C to 4.7. Raise clouds by the same amount again, to 0.33, and it goes to 7.6 °C. That's the fraction in step 3.
- A pair that cancels. With the box ticked, raise water vapor from 0.56 to 0.70. Vertical mixing moves from −0.16 to −0.30 and the total gain stays at 0.64. Now clear the box and put vertical mixing back to −0.16. The gain jumps to 0.78, and doubled CO₂ gives 5.5 °C. Climate models differ a good deal in each of these two feedbacks, and much less in the two together.
- No stable climate. Clear the box and set water vapor to 0.75, vertical mixing to 0, ice and snow to 0.19 and clouds to 0.41. The gains add up to 1.35. Step 3 has no answer, and the page says so. Every one of those settings is at the far end of its slider, and the first two don't go together in the real world.
- A world without a deep ocean. Press "Back to the opening settings". On "3. Response", set the heat passing down to zero. With nowhere else for the heat to go, the surface warms at once: the model reaches 2.03 °C in 2019, where the measured temperature was 1.24 °C. And its energy imbalance over 2006 to 2018 is only 0.35 W/m², less than half of what was measured.
- Two pasts that look alike. Go back to the opening settings and open all the controls on "3. Response". Set reflective smog to 40% and clouds to −0.15. Doubled CO₂ now gives only 1.9 °C, and the model's average for 2010 to 2019 is 1.11 °C. Now set smog to 160% and clouds to 0.29. Doubled CO₂ gives 6.1 °C, and the average for 2010 to 2019 is 1.09 °C. The measured average was 1.09 °C. Weak smog with a sluggish climate and strong smog with a touchy one both land on the last decade. This is why Chapter 4 calls smog the biggest source of error in working out the sensitivity from the measured record.
- Two futures that don't. Take those same two settings to "4. The future". For SSP2-4.5, the first gives 2.1 °C for 2081 to 2100 and the second gives 4.2 °C. The past alone can't easily tell them apart, but they aren't equally good. The second one is too cold through the middle of the last century: its typical difference from the measurements is 0.34 °C, against 0.12 °C for the first. And other evidence rules out both. The IPCC's very likely range for doubled CO₂ is 2 to 5 °C, from the ice ages and from physics as well as from the measured record, and both of these settings fall outside it.
- The part that's a choice. Back at the opening settings, read 2081 to 2100 under the last graph: 2.0 °C for SSP1-2.6 and 4.2 °C for SSP3-7.0. That's 2.2 °C between two futures with the same climate. The sliders are about what scientists don't know yet. The scenarios are about what people do.
Where the data come from
The forcing is from the IPCC's Sixth Assessment Report, published in 2021. Chapter 7 of its first volume worked out the forcing from each cause for every year from 1750 to 2019, and for each scenario to 2500. The page uses the best estimates for 1850 to 2019 and for five scenarios to 2100. The chapter's authors share the numbers and the code that made them, under the MIT license.
Smith, C., Forster, P., Palmer, M., Collins, B., Leach, N., Watanabe, M., Berger, S., Hall, B., Zelinka, M., Lunt, D., Cain, M., Harris, G., and Ringer, M. (2021). IPCC WGI AR6 Chapter 7 (v.1.0). Zenodo. doi:10.5281/zenodo.5211358
Forster, P., Storelvmo, T., Armour, K., Collins, W., Dufresne, J.-L., Frame, D., Lunt, D. J., Mauritsen, T., Palmer, M. D., Watanabe, M., Wild, M., and Zhang, H. (2021). The Earth's energy budget, climate feedbacks, and climate sensitivity. In Climate Change 2021: The Physical Science Basis. Contribution of Working Group I to the Sixth Assessment Report of the Intergovernmental Panel on Climate Change, 923–1054. Cambridge University Press. doi:10.1017/9781009157896.009
The same chapter is the source of the model's fixed numbers and its opening settings. Its Table 7.10 gives each feedback in W/m² per °C: 1.30 for water vapor and vertical mixing together, 0.35 for ice and snow and 0.42 for clouds, against 3.22 for the baseline. Each gain on this page is the feedback divided by 3.22. The IPCC assesses water vapor and vertical mixing as a pair. The split between them on this page, 0.56 and −0.16, uses the chapter's value for vertical mixing alone. The forcing from doubled CO₂, 3.93 W/m², is the chapter's too.
The two heat capacities and the opening value of γ come from the files the chapter's authors share with the forcing. They're the averages of the values that make this kind of model behave like each of the big climate models of the report. The kind of model is Held and colleagues' and Geoffroy and colleagues'.
Held, I. M., Winton, M., Takahashi, K., Delworth, T., Zeng, F., and Vallis, G. K. (2010). Probing the fast and slow components of global warming by returning abruptly to preindustrial forcing. Journal of Climate 23(9), 2418–2427. doi:10.1175/2009JCLI3466.1
Geoffroy, O., Saint-Martin, D., Olivié, D. J. L., Voldoire, A., Bellon, G., and Tytéca, S. (2013). Transient climate response in a two-layer energy-balance model. Part I: Analytical solution and parameter calibration using CMIP5 AOGCM experiments. Journal of Climate 26(6), 1841–1857. doi:10.1175/JCLI-D-12-00195.1
The measured temperature is HadCRUT5, from the Met Office Hadley Centre and the University of East Anglia: the average temperature of the whole Earth's surface for each year from 1850 to 2025, with its 95% range. It was 1.41 °C above the 1850 to 1900 average in 2025. It contains public sector information licensed under the Open Government Licence v3.0, © Crown copyright, Met Office.
Morice, C. P., Kennedy, J. J., Rayner, N. A., Winn, J. P., Hogan, E., Killick, R. E., Dunn, R. J. H., Osborn, T. J., Jones, P. D., and Simpson, I. R. (2021). An updated assessment of near-surface temperature change from 1850: The HadCRUT5 data set. Journal of Geophysical Research: Atmospheres 126(3), e2019JD032361. doi:10.1029/2019JD032361
The IPCC's own answers, drawn beside the model's: the warming for 2081 to 2100 in each scenario is from Table SPM.1 of the report's Summary for Policymakers. The sensitivity of 3 °C with its ranges, the measured energy imbalance of 0.79 W/m² over 2006 to 2018 and the ranges under the forcing sliders are from Chapter 7.
IPCC (2021). Summary for policymakers. In Climate Change 2021: The Physical Science Basis. Contribution of Working Group I to the Sixth Assessment Report of the Intergovernmental Panel on Climate Change, 3–32. Cambridge University Press. doi:10.1017/9781009157896.001
What's newer than this. The forcing data stop in 2019. Chapter 4 uses an update to 2025, in which the total push is about 3.1 W/m². The model's total for 2019 is 2.84.
How it was checked
A set of tests comes with the model, and they run every time the page changes. Here's what they hold it to.
- The code, against a second copy. The tests have the eight equations written out a second time, in another programming language. For the past and for all five futures, at the opening settings and at eleven others, the two copies give the same temperatures to a billionth of a degree.
- Step 3, the long way. The second copy adds up the rounds of feedback one at a time, as Box 4.1 describes them, until they stop growing. The total matches 1 ÷ (1 − g).
- The end of the story. Hold the forcing at 3.93 W/m², the push from doubled CO₂, and let the model run. After 100 years the surface has warmed by 2.50 °C, and after 1,000 years by 3.36 °C. In the end it settles at 3.39 °C, which is what step 4 says.
- Heat in, against heat kept. Add up the energy imbalance for every year from 1850 to 2019. It has to equal the heat the two layers have gained, and it does. About 73% of it is in the deep ocean.
- The model, against the measurements. At the opening settings the model's typical difference from the measured temperature is 0.14 °C. It runs warm in recent decades: its average for 2010 to 2019 is 1.25 °C, and the measured average is 1.09 °C. Its energy imbalance over 2006 to 2018 is 0.94 W/m². The measured imbalance is 0.79, with a very likely range of 0.52 to 1.06.
- The model, against the IPCC. For 2081 to 2100 the model gives 1.5, 2.0, 3.1, 4.2 and 5.2 °C for the five scenarios, from SSP1-1.9 to SSP5-8.5. The IPCC's best estimates are 1.4, 1.8, 2.7, 3.6 and 4.4 °C. Every one of the model's is inside the IPCC's very likely range, and every one is above its best estimate. Most of that gap is the opening sensitivity of 3.4 °C, where the IPCC's best estimate is 3. With clouds at 0.07, which makes it 2.9 °C, the model gives 1.4, 1.8, 2.8, 3.8 and 4.7 °C.
- A standard test. Raise the CO₂ in the air by 1% a year, and it doubles in 70 years. The warming at that moment is called the transient climate response. The model's is 2.2 °C. The IPCC's best estimate is 1.8 °C, likely between 1.4 and 2.2.
- The data, against its sources. The forcing and the temperatures were downloaded again on November 12, 2026, and made into the page's data a second time. Every number matched.
- This tab, against the model. Every equation above is tried with the model's own numbers. The worked example is done again from the rounded numbers a calculator would use. And each number in the text is worked out again from the model.
The code
The code is small enough to read. Two files do all the work, and they use no outside software. The comments in model.js use the same step numbers and letters as the equations above.
model.js is the science: the eight equations, and the loop that runs them a year at a time.
app.js is the page: the controls, the graphs and the lines under them.
To keep a copy, save model.js, app.js or the data, data.json.
All of the model's code is on GitHub, at github.com/airscottdenning/climate-models. You're free to use it, change it and teach with it.
Credits
By Scott Denning, for Climate Change: Simple, Serious, Solvable. The forcing is the work of the authors of Chapter 7 of the IPCC's Sixth Assessment Report, who made this possible by sharing it. The temperatures are the work of the Met Office Hadley Centre and the Climatic Research Unit at the University of East Anglia.
The model is Scott Denning's, and he built its first version with OpenAI Codex. Claude, from Anthropic, rebuilt it for the book and checked it against the IPCC's report and the measurements. The rebuild gave the model its deep ocean. The first version had a single delay in place of steps 5 to 7, and it warmed too fast.