
The 3 Year Average for Global Warming is now 1.5C
The 2 Year Average was 1.5C in November 2024
I wondered what the longest running average (where the running average was 1.5C) was for each date. Then I wondered how that would look on a graph with 0.5C, 0.75C, 1C, 1.25C, 1.5C, 1.75C
It suggests that we might see the maximum-running-average-for-1.5C drop back to well under 3 years again, but in about 6 years time (if trends continue) the maximum running average will be over 6 years, and won’t be dropping back.
Centered Moving Average
The previous graph begged for this next one. Given that a 20-year-running average uses 20 years of data, it seems interesting to know show the centre-date for the 20-year period … and the same for the rest of the graph.

So this graph takes each point plotted in the first graph (top of this page), and then draws a grey line, back to the centred date. E.g. December-1985-is-0.5C-for-20-year-running-average. So the central date for that 20-years, is 10 years earlier. So there is a grey line from Dec-1985 back to Dec-1975.
Similarly, for Nov-2004-is-0.75C-for-10-year-running-average, so the central date for that 10 years is 5 years earlier. So there is a grey line from Nov-2004 back to Nov-1999.
What does this show?
Well, given that the more cautious talk about requiring a minimum block of 20 years of data to analyse … that means, you are only confident about what the global temperature was 10 years ago (the mid point or the 20 years). There is of course lots of variability, and this approach means you won’t get caught out in some decadal trend.
That said, after you have a running-average of over 7 years, the central date is pretty static. Interestingly back in the 1980’s global warming was slow enough that the central date did move forwards, but in the 2010’s the global warming is so fast that the central date actually moves backwards !!
How the Graphic was created
I used the data (See GMST Data Sets) from Copernicus, and applied parsing (see Copernicus 1850-1900 Baseline – Daily GMST Anomaly) to get daily GMST Anomaly values. Then I reduced the granularity to 7-days (rather than daily) because the recursive nature of this process (described below) would have taken weeks if I tried to do it with daily data. Then for each date, recursively work out the running average for the last week, 2 weeks, 3 weeks, … years … and if the running average has reached 1.5C keep track of the number of weeks for that running average. Let it go right back to the start (I used data from 1960-present) and you have the longest-running-average for 1.5C for that date. E.g. The result showed that in the first week of December 1995 the longest running average which gives 1.5C was twenty years. Then do this process again for each of the global warming milestones: 0.5C, 0.75C, 1.00C, 1.25C, 1.50C. I had to do various optimisations to keep the run time down. Took about 20min to get the data. Then put it on a graph.
Sanity Testing
Below are three different levels of sanity checks. The first is a quick one, to confirm I am in the right ball-park, stating the three year average is reaching 1.5C GMST Anomaly in the Copernicus dataset.
High Level Quick Sanity Test
Here, I look at the data published by Copernicus, and Zeke Hausfathers post, regarding expectations for 2025. This shows that the 3 year average for 2023, 2024, 2025 is expected to exceed 1.5. The “My Calculations” column is for the data I user, as per: Dataset: GMST Data Sets and Data Handling: Copernicus 1850-1900 Baseline – Daily GMST Anomaly. I show it in this table, simple to show my data is very well aligned with that published by Copernicus on their website.

Here is the Bluesky post from Zeke Hausfather on 3rd October 2025, showing the expectations for 2025 full year.

Sanity Test – Monthly Values
Given that I’m saying the running 3 year average crossed 1.5C on a particular date, this sanity check is more granular, at the monthly level. Here, I look at the data published by Copernicus. This shows that the 36 month average up to September 2025 (inclusive) is nearing 1.5C. The “My Calculations” column is for the data I user, as per: Dataset: GMST Data Sets and Data Handling: Copernicus 1850-1900 Baseline – Daily GMST Anomaly. I show it in this table, simple to show my data is very well aligned with that published by Copernicus on their website. Note that for 2022 months, Copernicus doesn’t explicitly give the warming anomalies relative to 1850, so I use the adjustments I have calculated as per Baseline Adjustment Evidence, to get from a Month-in-2022-relative-to-1991-2020-baseline, to the anomaly relative to 1850-1900.

Sanity Check – Spot Checks
I have a spreadsheet, which gives the daily anomalies, so I just did some spot checks in excel to check the numbers are the same as that created by my python program.

Additional Sanity Check
I noticed that for Berkeley Earth the 3-year-average is also above 1.5C. This averaging is done by weighting each of the numbers in the table, by the number of days in that month / year.
