The Spread Maps Request an invite

Updates

What I have changed, newest first. This is the half of the work you can see; where a change does not solve the whole problem, it says so.

improved

The maps now count which region you crop to

The map pages let you crop to eight parts of the country. That happens entirely in your browser — the picture is already drawn and the picker just shows you part of it — which meant we had no way of knowing whether anyone used it.

We do now. When you pick a region, your browser tells us which one, and nothing else. Not where you are, not what you searched for: one word from a list of eight, the same kind of thing as the model you single out on a forecast chart. It is switched off by the same choice as everything else on the privacy page, which now describes it.

It is there for two reasons. A region nobody ever opens is one we should take off the list. And it decides how finely we draw — a cropped map is magnified three times over, so the extra detail costs us nothing to leave out unless people are actually looking at it.

improved

The temperature film is drawn finer, for when you zoom into a region

Every map on the site is drawn once for the whole country, and picking a region magnifies that same picture three times over. So the temperature film's colour bands were being simplified for a view of the United States and then shown to you at a third of that width.

We measured what that costs by drawing the map again at full detail and comparing the two, pixel by pixel, in two browsers. Zoomed into a region, 2.9% of the map was showing the wrong colour band — not a rough edge, an area of the map reporting a temperature it should not have been. That is now 0.13%.

Two things were doing the damage and only one of them was obvious. The straight-line simplification was part of it. The bigger part was that every point on every band edge was being rounded to a whole pixel of the national map, which is three pixels once you zoom in. Both are fixed.

It is a bigger download. The film's frames roughly double, and they arrive behind the first frame rather than in front of it, so the map still appears before the rest of the run does — though that first frame is a little heavier than it was. The Evolution film and the other maps are unchanged for now; they are built a different way and we will price them separately.

improved

The rain row can name a model now, when the lead is real

The rain row on the Verification board can name a model now. When the board shipped it named nobody, and said why: we could price how far ahead a temperature leader has to be before the lead means anything, and we could not do the same for a hit rate.

So we took ninety days of every model's rain forecasts at all thirty cities we score, drew the days again at random four hundred times over, and asked how big a lead has to be before the same model still wins on a different draw of the weather.

The answer is: bigger than almost any of them get. A model has to be ahead on hit rate by a wide margin, and across the two hundred and nineteen cells we measured, twelve cleared it. So the row still reports how many of the rainy days each model called, best to worst, nearly all the time — and where one has genuinely pulled ahead, it is named, with what it actually did beside it: how many of the rainy days it caught, and how many dry days it called wet.

Each of those cells now also says what it counted: how much rain makes a day count as rainy, and how many days we scored. A rainy day is a hundredth of an inch or more — or a quarter of a millimetre if you read in millimetres, which is not quite the same line — so the cell names the one it used rather than leaving you to assume.

That second number is there because it is the honest half. The model that wins this row is usually not the one that called every rainy day — most of them manage that — but the one that cried wolf least while doing it.

improved

Highs and Lows draws its bands in your browser

The colour bands on the highs and lows map used to arrive already drawn, as outlines simplified to keep the download reasonable. How finely they were simplified had to be decided in advance, for one zoom level — so a map you had zoomed into a region was showing boundaries cut for the whole country.

Now the map arrives as the temperature numbers themselves and your browser draws the bands from them. The country-wide view looks the same. Zoomed into a region, the edge between two colours sits closer to where the model actually put it.

improved

The rain disagreement map draws its heaviest colours true

The map of how far apart the models are on rain used to average each grid cell into its neighbours before drawing the colours. That smooths a picture and it also shrinks it: the deepest bands — the places the models disagree most — came out as much as half their real size, and sometimes were not drawn at all, while the palest band spread wider than it should.

Nothing on the map is averaged now. The shading, the contours and the ringed widest gap all come from the models' own grids, so the number printed over a colour agrees with the colour under it. The map is grainier as a result, and that grain is the forecast.

new

Verification opens with every variable at once

The Verification page used to open by telling you which model had been closest on the daily high. It now opens with a board: daily highs, overnight lows, feels-like and rain, each answered at one, three and seven days out, and each saying what it was measured against — because they are not always the same instrument. In Milan the temperatures are scored at the airport thermometer and the rain at a gauge two and a half miles away, and the page says so on the row it applies to.

Most cells say too close to call, and that is the honest answer rather than a missing one: across the cities we track, no model separates from the field on about three quarters of them. Where one does, it is named with the size of its typical miss beside it.

The rain row names nobody on purpose. We can price how far ahead a temperature leader has to be before the lead means something; we cannot yet do the same for a hit rate, so instead of a winner the row tells you how many of the rainy days the models called — best to worst. It also tells you when there is nothing to score, which in a dry month is most of what there is to say.

improved

Every map downloads a third to two fifths lighter

The maps are drawn as shapes rather than as pictures, which is what lets them stay sharp when you zoom into a region and follow the light and dark themes. The cost is that each shape is a long list of coordinates, and on a played map those lists are almost the whole download.

Each coordinate is now written as the step from the one before it rather than as a position on the page — a smaller number, and one that repeats, so it compresses far better. A maps page is a third lighter and a played map's frames two fifths lighter. No edge between two colours moves, and no line shifts; the maps simply arrive sooner, and soonest on a phone.

improved

Four European cities get a truer daily high

London, Paris, Berlin and Milan are scored against the high their own airport thermometer actually reached. Until now we used the highest of the readings each station files through the day — every half hour, which is often enough that the peak between two of them is small. At Heathrow it was not: its published high ran about a degree and a half above the reading we had been using, on two days in three.

Berlin and Paris now read the daily high their national weather service publishes for that exact station. London and Milan file no daily high, but their standard weather reports carry the highest temperature reached in each twelve hours, so their day is rebuilt from those and their half-hourly readings.

The dashed normal range behind the chart moved with them, so the band and the line still come from the same thermometer. Berlin's is built from thirty years of its own record now, where before we could reach about nineteen.

improved

The Model Lab's camps use that same word

The companion to the change below. The Model Lab sorts the models into camps each day, and the warm one was labelled "Hotter camp" in the key while everything else on the site calls that direction warm. It says Warmer camp now — in the key, in the sentence a finished watch leaves behind, and in the lines that say camps merged or split.

That last part covers entries written long before today, too: what we store is a short code, and the words are written fresh each time you read them, so the older records say it the new way as well.

improved

One word for a model that came in high

A model that forecast a higher temperature than the one that turned up has always been described two ways here. The model leaderboards define a model's bias as "positive means the model ran warm", and Verification says "ran warm" too — but a single day's receipt said the model "ran 4° hot", and the national page headed a table "Which models run hot" directly above its own Warm and Cool columns.

It is "warm" and "cool" everywhere now, on the receipts, on their shareable cards, on the epilogue a finished watch leaves behind, and on the national page. Hot and cold are kept for the weather itself, which is the reason for picking this pair rather than the other one: a day can be hot, and a model runs warm.

improved

Los Angeles' who-was-right receipts arrive two days later

Downtown Los Angeles' weather station moved in May 2024, and since then it has been filing its rain late: on about a third of its rainy days the first figure published is zero, corrected a day or two afterwards. Every other city we track publishes its rain right the first time.

Our receipts — the "here's what each model said, here's what happened" cards on the model leaderboards — are written once and never rewritten, so a receipt written too early froze the zero. Los Angeles' now wait until the figure has settled. The trade is plain: its receipts show up two days later than other cities', and in exchange they are right.

This does not change any other city, and it does not change the Verification page anywhere — that one re-reads the record as it is corrected, so it has been showing the right number all along.

fixed

The rest of the shared maps show their coastlines too

The same fix as the temperature maps below, for the other eight: model spread, rain coverage, rain disagreement, heights, thickness, both pressure maps and the moisture agreement map. When you paste one of those links somewhere, the preview image draws the coasts and state lines with a faint outline under them, so they stay findable where the colour is heaviest — the rain maps were the worst of it, with borders that disappeared completely inside a rain area.

As before, previews you already shared may show the old picture for a while.

fixed

Shared temperature maps show their coastlines again

Paste a link to one of the temperature maps into a chat or a post and you get a preview image of the map. On the four temperature maps whose colour covers the whole picture, that preview drew the coasts and state lines in a grey that the colour under them swallowed — so the picture that travelled furthest from the site was the one hardest to place. On Maps itself those lines have always been drawn with a pale outline under a dark core, which reads whatever colour it crosses; the preview images now draw them the same way.

Previews you shared before today may still show the old picture for a while, depending on where you shared them.

improved

The Model Lab's model buttons say whose model it is

On the Model Lab, the "Follow a model" buttons above the charts read `AIFS` and `AIGFS` — two names one letter apart, and neither said which centre ran it. They now carry the model's full name, the same one the forecast page and Verification already use: ECMWF AIFS (AI), NOAA AIGFS (AI), NOAA GFS, ECMWF IFS, DWD ICON, GEM (Canada), UKMO (UK).

What this costs: on a phone the row of buttons is one line deeper. The short names are still what you see on the chart itself, beside each line.

improved

Zoomed in, Highs and Lows draws the sharpest spots

Zooming the Highs and Lows maps to a region used to round the outlines to whole pixels of the whole-country map, which smoothed away the smallest hot and cold spots — a single grid cell, about three pixels, often vanished even though its ring and number were drawn. The outlines are cut finely enough for the zoomed view now, so those spots appear in their own colour, and the ring's number agrees with the colour under it far more often.

What this costs: playing the film downloads about twice as much as before. The page itself is unchanged.

improved

Highs and Lows shows the day's real extremes

The Highs and Lows maps ring the hottest and coldest spot of each day and print its temperature. The colours under those rings were smoothed first, so about half the time the ring's number belonged to a colour the map wasn't showing there — sometimes by a lot. The maps are now drawn from the model's own grid, so the ring and the colour agree, and small hot and cold pockets appear instead of being averaged away.

improved

The Highs and Lows maps load about five times lighter

The Highs and Lows maps on Maps were sending all fourteen days to your browser before showing you one. They now send the day you asked for and fetch the rest when you play the film, which is what the other maps already did. The page is about a fifth of what it was.

improved

The normal range on Verification reaches more places

The daily-highs chart on Verification draws a dashed band behind the models — the normal range, the middle 80% of the highs recorded at that spot around this date. It tells you whether the models are disagreeing by a lot or a little *for that place*: seven degrees apart is most of a San Francisco September and a quarter of a Salt Lake City one.

Until now the band only appeared at our station locations, because it was read off that thermometer's own record. A place with no thermometer nearby — a downtown address, or anywhere you searched for — got no band at all. Those places now get one, built from a 30-year reanalysis of that exact point and set to the level of the line it sits behind. The caption says so, because it is a different record from the station one.

What this doesn't solve: the band still needs the forecast for that place to have been looked at once — open Forecast there first and it appears. It is drawn on the 30-day view and not the 90-day one, because setting it to the level of the line takes one number and three months of weather need more than one. And a reanalysis of a point is not a thermometer standing in it, which is why we say which one you are looking at rather than drawing them the same way.

improved

The Model Lab's camp colours are easier to tell apart

The Model Lab groups the models into camps — a hotter camp, a cooler camp, mid-pack, and consensus when they agree — and gives each one a colour. In dark mode the mid-pack green and the grey consensus were nearly the same brightness, so to a reader with the commonest kind of colour blindness they read as one colour. The two are clearly apart now, and the light mode's gold camp, which had been too pale against the page, is a shade deeper.

The colours have moved as little as the fix allows: hotter is still a red-orange and cooler is still a blue, on every chart that uses them, including the bias dots on Verification. Two smaller things went with it — the number printed inside a consensus bubble was white on light grey in dark mode and is now dark, and the whole set is checked automatically from now on, so this can't drift back.## 2026-09-19 — Rain in the US now comes from the weather office's own record

- tag: improved

When we score how well a model did on rain at a US city, the amount we score it against comes from the weather station's gauge. Until now we read that number from a weather-data aggregator. We now read the National Weather Service's own published record first, and fall back to the aggregator where the record hasn't got the day yet.

Most days this changes nothing — the two agreed on 35,220 of 35,230 station-days we checked over nearly four years. It matters on the handful where the office corrects a number and the aggregator never picks the correction up. Downtown Los Angeles on September 6 is one: 0.71 inches fell and the aggregator still reads zero, so every model was being graded against a dry day on the Verification page. That day now reads correctly.

What this does not fix: the who-was-right receipts on the model leaderboards are written once, two days after the fact, and never rewritten. Los Angeles' September 6 receipt was written before the office published its correction, so it still says the day was dry. We left it rather than rebuild every city's receipts, which would have thrown away several hundred older ones.

improved

The temperature maps are drawn as the model has it

The temperature maps on Maps (the Time lapse, Evolution and the shared picture) are no longer smoothed before they're drawn. Smoothing blurred away the warmest and coldest spots: on some frames the day's warmest colour didn't appear at all, and a city's number could sit on a colour a band or two away from it. Now small warm and cold pockets, like valleys and ridgelines out West, show in their own colours, and the numbers match the map under them far more often.

What this costs: the maps look a little busier, and a film takes about twice as long to download before it plays. The Highs and Lows maps haven't changed yet.

fixed

The ECMWF, AIFS and GEM pressure films play again

On Maps, the pressure Time lapse for the ECMWF, AIFS and GEM models showed its first frame and then wouldn't step forward; only the GFS film played. All four play now.

improved

The rain on the pressure maps is drawn as the model has it

The rain on the pressure Time lapse on Maps is no longer smoothed before it's drawn. Smoothing spread light rain out and shaved down the heaviest cores, and on about a quarter of frames the map showed no red at all while the line under it named a rate in the red band. Now the map and that line agree, and single-cell showers show up where the model has them.

Zoomed to a region, the rain is also drawn as finely as the model's grid allows. The outlines had been simplified for the whole-country view, so up close they showed as straight-edged polygons.

What this costs and doesn't change: the map looks patchier, because it is showing the rain rate at the moment of each frame rather than an average over six hours, and the film takes about twice as long to download before it plays.

improved

Feels like is a blend of the models too

The Feels like number on the day view used to be one model's heat index, the GFS's, taken as it came. It is now a blend: every model's own heat index, each with its own recent error taken out, the same way the high and low beside it are made. Checked against the hourly readings at our stations over the past six weeks, it misses by about a third less than the old number.

Taking out a model's temperature error alone would have made it worse: the GFS tends to run both too warm and too dry, and those two errors cancel inside the heat index. So the correction is made to each model's heat index itself. Where a place doesn't have enough history yet, Feels like shows the middle of the models' heat indices and says so.

improved

Home cards and watches show the forecast page's high

The high on each home-page card, and on a date you watch, is now the same number the Forecast page and the day view lead with: our blend, each model's forecast with its own recent error taken out. It used to be the middle of the models' forecasts, which misses by more and runs about a degree cold.

I now keep a record of what the blend said on every run, so a watch's chart and the receipt it shows after the day are what we actually said at the time, not something worked out afterwards. A watch you set up before today keeps showing the middle of the models until its date passes, so its chart and its alert don't change what they measure halfway through. Watches from today on use the blend throughout.

improved

One bar at the top, and your place is a button

The two rows of navigation at the top of every page were taking a third of a phone screen before any weather started, and closer to half on a location's own pages. There is one bar now, and it slides away while you read and comes back the moment you scroll up.

On a location's Forecast, Model Lab and Verification pages the bar shows the place you are reading, and tapping it opens a search box and your saved places — pick one and you stay on the same tab. The other sections (Maps, the national page, Locations, the leaderboards), the units switch, the theme and your account are behind one menu button on a phone; on a larger screen they sit on the bar as before, with a house beside them as another way home.

improved

Day view and watch captions fold away on a phone

On a phone, the day view and a watch now do what the forecast, Model Lab and verification pages have done since the 12th: the paragraph under each chart becomes one line saying what the marks mean, and an ⓘ opens the full text as a sheet. Nothing is cut. The day view's "How much to trust this" line tells you how many models have a record here and that the band is GFS's own ensemble, and the run-by-run chart carries the same label it has on the Model Lab. On a desktop nothing changes.

fixed

The Table menu reads in the dark theme on Safari

On Safari and iPhone in the dark theme, the Table menu on the forecast charts drew as a pale box with pale text, so you could not read which model's numbers the table was showing. The page now tells the browser which theme it is in, so that menu, and the two on the watch form, draw in the theme's own colours. Nothing else on any page changes.

new

Every map crops to a US region

The maps have a Region control under the other controls. It opens a set of small outline maps to pick from: Northwest, Southwest, Northern and Southern Plains, Midwest, Northeast, Mid-Atlantic, Southeast, and the whole Lower 48. A region is the same map three times closer, so the lines and labels stay the size they were and the model fields underneath get the room. The address bar follows your pick, so a copied link shows the part you were looking at.

improved

One high for each day, wherever you read it

The Today and Tomorrow tiles on the Forecast page, the dashed Blended line on its temperature chart, the day card that opens from that chart, the day view and the written discussion now all lead with the same high and low: our blend. Each model's forecast has that model's own recent error taken out, the models are weighted by how well each has done at that place, and the result is kept inside the range the models show. Until today the day card and the discussion led with the GFS alone, and the tile you clicked and the card it opened printed a different high on about three days in four.

I checked which one to keep against each place's own thermometer over the last 30 days. The blend's typical miss was about a quarter smaller than the GFS's at one, three and seven days out, and smaller at 28 to 30 of our 30 places. The GFS's own corrected high is still on the day view, as the GFS row of the trust chart.

This doesn't reach the home page yet: its cards still show the models' middle high, uncorrected, and they'll move to the same blend next. Feels like is still built from the GFS's temperature and humidity, and its tile says so.

fixed

The day view's high and its trust chart agree

The high at the top of the day view is the GFS's forecast with its own recent error taken out, and the chart below it, how much to trust this, shows the same thing for the GFS as a ring. On about one day in sixteen they printed a degree apart, 89 in one place and 88 in the other, with nothing to explain it. That was rounding, not weather: the ring rounded its own arithmetic, and the high had been rounded twice. They now print the same number whenever it is the same number. When they still differ, it's because the high was kept inside the models' range or checked against the latest short-range model, and the line under the high says which.

*Later the same day, the high at the top of the day view became our blend (the entry above), so it is no longer the GFS's ring: the two are different numbers now, and each prints its own.*

improved

On a phone, the maps open on the map

On a phone, every map used to open on a full screen of menus — the subject, the chart and the model, three rows of buttons — with the map itself starting right at the bottom edge of the screen. You scrolled past the controls to reach the picture the page is for.

Now those three rows sit behind one button that names where you are ("Temperature · Time lapse · GFS"). Tap it and the menu opens just under it, with all the same choices; tap one and you go there as before. The run stamp, the run buttons and the bias checkbox have moved below the map, next to the play controls they belong with. Measured on a 360-pixel screen, the map now starts 219 pixels higher up.

Nothing changes on a laptop or a desktop, where the menu has its own column beside the map and costs the map nothing.

improved

On a phone, the forecast charts are wider

On a phone, about a third of the width of the Forecast page's charts was being spent before the chart started: a gap either side of the card, and then a wide margin inside it holding the temperature labels down the left-hand edge. That margin was one size for every chart on the page, and it had been cut for the widest number any of them can print — a rainfall total in millimetres. A chart showing `90°` was being given room for `100.00`.

Each chart now takes only the margin its own labels need, and the cards are less padded on a phone. Charts stacked together share one margin, so a day sits in the same place in each of them. Depending on the chart, that is 7% to 13% more width for the picture at a typical phone size — the shape of the spread, and the gap between two models, are that much easier to read. A wide screen has more room than it needs either way, so the change is small there. The chart still covers the same fourteen days, and the numbers themselves are unchanged.

fixed

On a phone, a map's play button stays put when you pan

On a phone, the Maps that play (Time lapse, Evolution, Highs and Lows and PWAT) are wider than the screen, and you pan them sideways to see each coast. The play button and the slider used to pan with the map. After a pan to the east coast they were off the left edge of the screen, with only the end of the line naming the hour still showing. Now only the map pans, and the controls stay under it.

The line that names the hour or the day now sits under the slider on a phone or a tablet, so the slider gets the whole width. It also no longer changes length as you drag, which used to shift the handle under your finger. The map itself still pans sideways on a phone, as before.

improved

The maps say whose forecasts they are drawn from

Every map on Maps is drawn from forecast models run by NOAA, the European Centre for Medium-Range Weather Forecasts (ECMWF) and Environment and Climate Change Canada, and until now none of the maps said so. Each one now names, under the map, the centres whose data it shows. Switch to another model and the name changes with it. A "Sources and licences" note under that gives each centre's terms, including the licence ECMWF publishes its data under.

The PWAT map that compares the air with normal also credits the Copernicus Climate Change Service, whose reanalysis the normals are built from. The picture that appears when a map is shared names the same centres. No map has changed; this only says whose numbers each one is drawn from.

improved

On a phone, Verification's model buttons take one line

On a phone, the model buttons above Verification's daily-highs chart, one for each of the seven models you can follow, stacked three or four rows deep before the chart. Now that row is one line: "Follow a model", then the model you're following, drawn as its dashed line is, or "None". Tapping it opens all seven buttons in a panel at the bottom of the screen, as the Forecast charts' buttons have since September 13.

The panel stays open while you go from model to model, so you can watch each one's line on the chart change above it, and the numbers for a day you've tapped. The cost is one more tap to follow a model. On a wider screen nothing has changed.

improved

On a phone, a day's hourly chart fits the screen

On a phone, the hourly chart on a day's page was wider than the screen, so you saw a few hours at a time and had to drag for the rest. Now the lines fit the screen and show the whole day.

The numbers under the chart, one for each hour, still need more room than a phone has, so they scroll on their own, as they do under the Forecast charts. Arrows on their edges move them along, the chart shades the hours they are showing, and tapping the chart brings that hour's numbers into view. In the rain view, each model's total for the day is listed under the chart, wettest first. On a wider screen nothing has changed.

improved

On a phone, the Model Lab's charts fit the screen

On a phone, the Model Lab's two charts were wider than the screen: you saw about half of each and had to drag for the rest, and their labels were tiny. Now each fits the screen with every day and every run on it. The same goes for the chart of how a forecast changed from run to run on a day's page and on a shared watch.

Where the models split into groups or join back together, the chart now marks it with a small symbol instead of the word "split" or "merge", and the legend says which symbol is which. On a wider screen, that is the only change.

fixed

The day view says whose high it is

The high and low at the top of the day view had a line under them saying they came from seven models, each with its own recent error taken out. They don't. They are one model's, the GFS: its own forecast, adjusted by how far off it has run here over the last 30 days. That line was wrong from the day the tiles appeared, and the update that announced them on August 25 quoted it as the example of a tile telling you what it is built from.

The line now says the temperatures are from the GFS, with its own 30-day bias removed, and it says so when one of the two limits on that adjustment decided the high instead. The adjustment is never allowed past the warmest or coolest model; that happens on about one day in five, and the line then says which one the high was held at. Today's high is also kept within 1.5 degrees of the latest short-range model's forecast high, the HRRR in the US. On the night I measured, that moved today's number in 16 of 26 cities, by up to 5.6 degrees. The model range under the number now says how many models it covers.

I've also stopped calling a model's own numbers "raw", anywhere on the site. What a model says is its number; where a corrected number sits beside it, the other one is "uncorrected", and otherwise I name the model. The maps and the Model Lab say "uncorrected model output" now. The Forecast page's Today tile used to say "HRRR-checked" when that short-range model had moved its high, which didn't tell you that it had; it now says the high was kept within 1.5 degrees of the HRRR's.

Checking that first limit turned up a second mistake. The adjustment could land outside the range printed under it, on about one day in forty, because the National Blend of Models, which is itself a blend, was counted as one of them. It isn't anymore. The same fix reaches the Forecast page's Today and Tomorrow tiles on the days they fall back to a median of the models.

What this doesn't change: the number is still the GFS's. Those Forecast tiles normally show a different number, a blend of every model's adjusted high, and the two can differ. I haven't settled which one the site should lead with.

improved

On a phone, the Forecast charts show all 14 days

On a phone, the Forecast charts used to be wider than the screen, so you saw the first four or five days and had to drag to see the rest. That could hide the most important part of the forecast: this week in Oklahoma City, the drop in temperatures and the rain both come after the first five days. Now each chart fits the screen and shows the whole two weeks.

The numbers under each chart still need more room than a phone has, so that row scrolls on its own. Arrows on its edges move it along, and the chart shades the days the numbers are showing. Pressing a day on the chart brings its numbers into view. On a wider screen nothing has changed.

improved

The time lapse maps play every model run

On Maps, the temperature and PWAT time lapses played only the 00Z and 12Z runs, so they were often a run behind the newest one we had. They now play the newest run whenever it came out, as the pressure time lapse already did. For GFS and the two AI models that makes the time lapse about three hours fresher on average.

ECMWF's 06Z and 18Z runs only go out six days, where its 00Z and 12Z runs go fifteen. The ECMWF time lapse now plays the newest run even when it's a short one, and two new buttons beside the map switch between the latest run and the one before it, each showing how far it goes. So the longer run is always one click away.

Each time lapse also says whose limit its last frame is: the model's own range, or where we stop to keep the page quick. If a run is missing frames, the caption says so, so the film doesn't look like the end of the forecast. What this doesn't do: the Evolution maps still step through the 00Z and 12Z runs only, to keep those pages light.

fixed

Verification counts the days by one clock

The Verification page scores the last 30 days, but depending on the hour its numbers were last rebuilt, it could score 29 or 31. The forecasts were dated by the city's own time zone and the observations by a clock that could be a day ahead of it or behind: a US city's window came up a day short all evening, and just after midnight in Europe one extra observed high appeared at the left edge of the daily highs chart, with no models under it. Both sides now count the same 30 whole days before the city's today, by the city's own clock.

The rain scores had a second problem with the same cause: they could count today, and today's gauge reading is only what has fallen so far. A morning reading of zero on a day that rained later counted against every model that had called for rain. Today is left out now, as it already was for temperatures.

What this doesn't change: in the morning a US city's window can still end a day early, until the Weather Service posts yesterday's official numbers. That day is left out on purpose rather than filled in with an unofficial reading.

new

The Model Lab has a run-by-run table

The Model Lab's convergence drill shows how one day's forecast moved from run to run, but it's a chart, and on a phone you have to drag it sideways to read it. Under it there is now a table of the same numbers: each model's last three runs, newest on top, against every day ahead. Read down a model's rows to see whether its forecast for a day is holding or moving. A muted number is one the model hadn't changed since the run before. A Spread row under each week gives the gap between the warmest and coolest model for each run. A switch shows rain amounts instead of highs. It fits a phone screen with no sideways drag.

Two kinds of gap are kept apart. N/A means that run of the model doesn't forecast that far ahead; ICON and UKMO stop about a week out. An empty cell means we have nothing from that run, usually because a scheduled update of ours didn't arrive. What this doesn't do: the table only appears for the cities we archive, since elsewhere there isn't enough run history to fill it, and it goes back only three runs. For anything older, the drill above it still shows it.

improved

Verification's rain tables fit a phone

On a phone, the two rain tables on Verification were wider than the screen. In a wet month you could see how every model did at the lightest rain amount, half of the next, and none of the heavier ones without dragging sideways. Now each cell puts the model's hit score on top and how often it calls rain underneath, in smaller type, so every column fits. The calibration table underneath fits the same way.

On a wider screen nothing has changed.

improved

The rain on the pressure maps blends between its bands

On Maps, the rain under the pressure charts looked like stacked cut-outs: each of its five rates was a flat colour with a hard, angular edge, so a shower drew as a diamond and a downpour as an octagon. Now the colour blends across each edge between two rates, the way the temperature maps now do, so a storm reads as one field that gets heavier toward its core. The bands themselves haven't moved, and the middle of each is still exactly its colour on the key.

The outside edge of the lightest green, where rain meets dry ground, stays sharp. I tried fading it into the map as well, and it made light rain look lighter than it is, because that band is often only a thin ring. What this doesn't fix: the outline of each rain area is still traced from the model's grid, so it keeps some corners.

improved

On a phone, the Forecast charts start sooner

On a phone, the model buttons above each Forecast chart used to fill most of the screen: six long names stacked five rows deep before you reached the chart. Now that row names only the lines the chart is drawing, with the same colour as each line and the same short name the line ends with, and tapping it opens every model's button in a panel at the bottom of the screen. The chart moves up by more than 100 pixels.

The cost is one more tap: to switch a line on or off, you open the panel first. On a wider screen nothing has changed.

new

PWAT maps: how much moisture is overhead, and how it compares with normal

There's a fourth kind of map on Maps: PWAT, precipitable water — how much water vapour the air overhead holds, which is the moisture a storm has to work with. The same amount means different things in different places, since an inch and a half is an ordinary afternoon in Miami and a soaker in Salt Lake City. So the main PWAT map, Relative to normal, compares each place with itself: where GFS and ECMWF put the air well past normal for that place, hour and time of year, and whether both models do or only one. Pick a model and you get its full map, brown where it's drier than normal, blue-green where it's wetter. A second page, Absolute, shows the plain depth in inches, the kind of map other weather sites draw. All of them play the model run forward six hours at a time.

What it doesn't do yet: only two models are here, because only GFS and ECMWF publish this field. And "normal" comes from five years of reanalysis rather than from each model's own habits, so a model that tends to run moist will look unusual more often than it should. We're measuring how much that matters.

improved

Verification's charts fit a phone

On a phone, Verification's daily-highs chart and its bias ladder were wider than the screen, so you had to drag each one sideways, and their labels were small. On the ladder the zero line and the warm side sat off the edge, so a model that runs warm had its dot hidden. Both charts now fit the screen and their labels read at full size. The daily-highs chart names its lines in a legend underneath, so the chart itself gets the whole width, and the ladder puts each model's name and its numbers on a line above its bar.

What this does not fix yet: the precipitation tables on the same page still scroll a little, and so do the Forecast and Model Lab charts. On a wider screen nothing has changed.

improved

The temperature maps blend from one band to the next

The temperature maps on Maps used to look like a stack of flat terraces: each 5 °F band was one solid colour with a hard edge. Now the colour blends across each edge, so the map reads as the smooth field it's drawn from. The bands themselves haven't moved. The middle of every band is still exactly the colour on the key, and the faint lines and their numbers still mark exactly where each 10 °F boundary runs.

The obvious way to do this is to blur the map, and I measured that first. A blur shrinks the hottest and coldest spots, sometimes until they vanish, so this blends each edge only as far as the midpoint between its two bands. A small cold pocket on a mountain keeps its colour. What this doesn't fix: on the Canadian model's finer map, pockets only a cell or two across still soften at the centre.

new

Verification's daily highs name the warmest and coolest model

On Verification, the daily highs chart shades the models as one band, from the coolest forecast to the warmest, so you could see how far apart they were on a day but not which model was which. Following one model at a time was the only way to find out. Now hover over a day and the chart tells you: the day's verified high, the warmest and the coolest model with what each forecast, and the model you're following, if you are. When two models tie for an edge, both are named. The numbers are to a tenth of a degree, because rounding to whole degrees would sometimes show the high level with a model it had beaten.

On a phone, tap a day to see it and tap it again to close it, or press and hold, then slide along the days. From a keyboard, tab to the chart and use the arrow keys. It shows the two edges and the model you follow, not every model. The receipts further down the page still have every model's forecast for a day.

On a phone, the tooltip on the Forecast chart also stays full width now when the chart is scrolled sideways, instead of squeezing into a tall column.

improved

On a phone, the charts come before the explanations

On a phone, Forecast, Model Lab and Verification opened every chart with a paragraph on how to read it, so most of a screen was words before any evidence. Now each chart has one line saying what its marks mean, and an ⓘ beside it that opens the full explanation, word for word. Nothing was cut. What stays on screen is anything that changes what you are looking at: a model that is missing from a chart, or what a score was measured against. On a wider screen nothing has changed.

On a phone, Verification's scorecard shows highs or lows at a time, with a switch between them, so the whole table fits instead of hiding its lows off the edge. Its receipts show the five most recent, with the rest a tap away, and the page is now about half as long. What this does not fix yet: the charts are still wider than a phone, so they still scroll sideways, and the Model Lab's chart labels are still small. That is next.

fixed

The forecast chart calls ECMWF's model what the rest of the site does

On the Forecast chart, the European model's line and its row under the chart said "IFS", while everywhere else on the site it is "ECMWF", the name people actually use for it. They match now. The chart had been working out its own short names, and that was the one it got wrong.

The AI models page still says IFS in one place, on purpose: its table lists each centre's own name for its model beside who runs it, and IFS is what ECMWF calls theirs.

improved

The maps show the sea, and the land past their edge

Every map under maps now tells water from land at a glance: a faint blue lies under the pressure charts and the temperature spread, so the Gulf, the Great Lakes and the coasts stand out. And the corners around each map are no longer blank. The coastlines carry on past the map's edge and fade away, so the edge reads as what it is: where I stop drawing the weather, not where the world stops. The models cover the whole globe, and the map is the part of it I draw.

The rain maps and the two 24-hour change maps keep plain ground inside the map. Their palest shade is a light blue or green, and on a blue sea it disappeared, so a place where one model has rain looked the same as a place where none do. On those maps the blue only shows outside the edge.

This doesn't widen what is drawn: the weather still stops at 20° to 55° north and 65° to 135° west. It did bring back a stretch of coast that had gone missing when the maps widened to 135° west at the start of the month — northern British Columbia and Haida Gwaii, in the top left corner.

improved

Every model has its own colour, and the forecast chart opens on the spread

The highs and lows chart on Forecast now shades the spread, the range of every model's forecast for each day, and draws two models over it: the two furthest apart on highs, named above the chart with how far apart they run. Click any model to add its line, and click it again to take it off — the blended line too. The numbers printed under the chart follow the last model you show, or you can choose them in the Table field above the chart. Nothing is faded out any more. A model you haven't turned on is simply off, and the shading still includes it.

Each model also keeps one colour now, the same on every chart and in either theme, and the colour key is back on the buttons. It came off in August because the old lines were five shades of one colour per chart and too close to tell apart. These five were chosen to stay distinct for the most common kinds of colour blindness as well. The hourly chart on each day's page uses the same colours.

Two things this doesn't change. The shading includes GEM and UKMO, which still have no line of their own, so it can reach past every line drawn. And the pair the chart opens with is chosen from that day's forecast, so it changes as the forecast does.

improved

The maps page shows what each map looks like

The pictures on the maps page are redrawn. Two of them still showed the country as the maps drew it before they widened to take in the eastern Pacific, so they were narrower than the maps they open.

The Temperature picture is a temperature map now: the latest GFS run at its first hour, which is exactly what the card opens. It used to be the model-spread map, which at that size read as orange blotches rather than as anything you could name. The spread map hasn't gone anywhere: it is the first map listed under the card. The Pressure picture now marks its highs and lows.

They are still samples of one run rather than today's weather — open one for the live map.

improved

The rain spread map goes out to six days

The map of how far apart the models are on rain — under Precip on the maps — now offers a six-day total beside the one-, three- and four-day ones. Six days is where a lot of the arguments worth watching live, one model bringing a soaking to a coast another keeps dry, and I held it back until I had measured that the gap out there keeps widening rather than turning into noise. It does.

The three longer windows now share one colour key, so stepping from three days to six shows the disagreement spreading on one scale. The one-day window keeps its own finer key, because a quarter inch is most of a day's rain.

Each model's six-day total arrives a few minutes after the rest of its run, and once in a while an hour after. When one hasn't come in yet, the map says which model it is waiting for rather than drawing the other three: a gap measured across three models always looks narrower than one across four, and that would read as the models agreeing when they are not. What this map still cannot tell you is which of them is right — the leaderboards score every model against what actually fell.

improved

Verification shows the high it scores against

The first chart on Verification used to plot each model's error — its forecast minus what happened — as a tangle of lines around zero. It never showed what actually happened, which was odd on a page that already told you how much rain the gauge measured.

It plots the daily highs themselves now. The shaded band is the spread of the models' forecasts at the lead you pick, and the solid line is the high that was recorded. Where a city is scored against a thermometer, a dashed band behind them shows that station's normal range for the date: the middle 80% of the highs it has recorded around then, over recent decades. Pick a model under the chart and its own forecasts appear as a line, so its miss is the gap to the solid one.

Under the lead buttons, one sentence says which way the models leaned and how often the high landed outside all of them. That is the line worth reading at a city like Salt Lake City, where the models have been running cool and the high beat every one of them on 13 of the last 29 days — nearly twice as often as it would by chance.

What this does not do: it still does not tell you which model to trust (the scorecards under it do that); places scored against the analysis rather than a station get no normal range; and if your city's scores were cached before today, the chart fills in with the next refresh, within six hours.

improved

Scores use the official daily high now

Every US city here is scored against a real thermometer, and until today I read that thermometer's daily high from a feed that could sit a degree or two low for the first two days: at some hours it held the warmest of the hourly readings rather than the true maximum, which often falls between the hours. The high a model is scored against now comes from the station's official daily record, the one the Weather Service publishes.

You will not see much move. The day-by-day receipts on the leaderboards were already being written at an hour when the feed had it right, so none of those change. Where it shows is the newest day or two of the running scores — the rankings on the leaderboards and the numbers under Verification — which could shift by a degree between visits and now wait for the official number instead. Three late-August San Francisco days were scored against a reading the local office later corrected; those stay as they were, because a settled day is never rewritten.

Two things this does not change: rain is still read from the old feed for now, and the European cities have no such record to read, so they stay on the airport's own reports.

improved

The pressure map opens on the loop now

Maps → Pressure used to have two entries that drew the same picture: a still surface analysis, and a loop whose first frame was that same analysis. They were the same isobars, the same highs and lows, the same rain shading, built by the same code. So the still one is gone and the loop has taken its place.

If you open Pressure you will see exactly what you saw before — the analysis, sitting still. What is new is the slider under it: the same run played forward six hours at a time to five days out. Nothing moves until you move it.

Links and bookmarks to the old chart still work, and the row is one entry shorter.

improved

The pressure loop says how hard it is raining

Under Maps → Pressure → Time lapse, there is now a line beneath the colour key giving the heaviest precipitation rate anywhere on the map and roughly where it is — and it changes as you step the loop, because that number is a fact about the forecast hour you are looking at, not about the run. The still analysis chart next to it has had this line for a week; the loop did not.

It is the model's rate at an instant on a grid, so it is not a rain gauge and it is not a storm total. Two of the four models — the European AI model and the Canadian one — publish no rate of their own, so their shading is a six-hour average worked out from their running totals, and the line says so rather than calling it the same thing.

improved

The pressure loop starts from a newer run

The pressure time lapse under Maps → Pressure now plays the newest run we have, whichever cycle it came from. It used to use only the runs from midnight and midday GMT, so for roughly half of every day it opened on a forecast six hours older than the still analysis chart sitting next to it on the same row — two charts disagreeing about what "now" means.

This does not make the forecast better, only more current: it is the same model drawn from a fresher start. And if you look in the window while a run is still arriving, the rain shading can still be missing — we draw the pressure as soon as it lands rather than waiting for everything, and the note under the map says so. That window now comes round four times a day instead of two.

new

NOAA's AI model joins the temperature maps

The American AI model, AIGFS, now has its own map alongside the four we already drew: one of its runs played forward sixteen days, on the same frame and with the same measured-error numbers as the others. It sits next to NOAA's physics model, which is the comparison worth having — same centre, same starting data, two very different ways of getting to a forecast.

Two AI models on the maps now, and they are easy to confuse, so we label them by who built them: ECMWF AIFS is the European one and NOAA AIGFS is the American.

It is not in the spread map. That map asks how far apart the models are, and adding a fifth would change every number on it and make it harder to say what a wider spread means from one day to the next. Whether an AI model belongs in that question is a decision we would rather make deliberately than by adding one and seeing what happens.

new

A new map: the 540 line, and where the models put it

There's a new chart under Maps → Pressure → Thickness. The 1000–500 thickness is how deep the lowest five kilometres of the atmosphere is, which makes it a thermometer for the whole column rather than just the air at head height. Forecasters read one number off it above all others: the 540 line, the usual rain/snow boundary. It is the reason a day can be 35°F at the surface and still snow.

The map you land on shows how far apart the four models are on that depth, with the median pattern drawn through it. Switch to a single model and you get its own contours, plus — if you want it — shading over the band where the four disagree about where the 540 line falls.

Right now that shading is empty, and so is the 540 line. In early September the whole map is milder than 540, so the line sits north of the frame entirely. We built it this way on purpose rather than waiting: the chart is useful today for what it does show, and the rain/snow line arrives on it by itself when the season turns. If you come back in November it will be the main thing on the page.

improved

The temperature time-lapse maps reach much further

The date picker on the Evolution map stopped five days ahead. It goes to eight now, off runs that were already on disk — we had been capping the control below what the archive could serve, and the extra days had been reachable for about a week before anyone checked.

How much evidence a day carries still falls off with distance, and each date says its own: two days out is drawn from ten successive runs, eight days out from three. Fewer runs is less to say about how much the forecast has moved, not a worse forecast — and beyond eight there are too few runs left for the chart to mean anything, so it stops there rather than drawing a comparison it cannot make.

The time lapse charts on the national maps go much further. Those hold one run still and step forward through it, so day and night pass as you drag — the opposite film. Three of the four now play as far as their own model publishes rather than as far as the shortest of them does: the American model runs sixteen days, the European and its AI sibling fifteen. The Canadian model still stops at five, and it is the one we have not decided about — its frames are much heavier than the others', so the question there is what the page should weigh, not what the model can do.

Skill does not run to sixteen days, and the map does not pretend otherwise. A forecast that far out is a pattern to look at, not a number to plan around; we would rather show the model's whole range and say that than cut it off at a line and let it look certain up to the edge.

improved

The European model's high and low maps go two weeks out too

Both models now run the full fifteen days on the high and low maps.

The European model publishes these in three-hour blocks for the first week and six-hour blocks after that, so the map composes each day from whichever blocks cover it and the methodology note says so. Nothing about the picture changes at that point — it is how the model publishes, not a choice we made.

improved

The high and low maps now run two weeks out

The daily high and low maps used to stop five days ahead. They run fifteen days now — today plus fourteen — on the same slider, from the American model's full range. The European model reaches five days for the moment and will get its own longer reach later.

improved

The AI page, redrawn

Comparing AI and physics models now opens with one panel per organization, its physics model above its AI one, so the cleanest comparison on the page — same starting conditions, only the model differs — is the first thing you see. Below it each section runs as a caption beside its figure: the typical-miss race and the run-to-run stability rows are labelled dot plots, and the ensemble biases are bars. Every number that was in a table is still on the page.

improved

The high and low maps play the week

The row of dates above the daily high and low maps is a slider now. Press play and the days run as a short film; drag it and you land on one. Every day is drawn on the same colour scale, so a colour means the same temperature in every frame — what moves is the weather. It opens on today rather than partway through the week, so play starts where the film does.

One day that used to be offered never drew a map: today, whose first six-hour block has usually already passed by the time you arrive. It draws now, from the model run that can still see the whole day. Each day still has its own address, so a link you send lands where you meant it to.

The ringed hottest and coldest spots — which arrived on these maps the same day, from the model pages — travel with the days. Watching that ring move is most of what a week of daily highs has to tell you.

improved

Each model's page is that model's run, playing forward

The four model pages used to show one moment — tomorrow evening, one frame, nothing to do. They now show that model's latest run played forward six hours at a time, from its start to five days out, with the city temperatures and the bias overlay on every frame. It is the same map you could already reach from the Time lapse row; what changed is that each model has its own page for it again, so you can link to the Euro run or the Canadian run directly.

The old Time lapse link still works and lands on GFS.

One honest consequence. The old pages waited for all four centres before drawing anything, so they never showed you a run newer than the slowest of the four — usually half a day behind the GFS run you could read elsewhere. Each page now takes its own model's newest complete run, which is fresher, and means the four pages can sit on different runs for a few hours a day while the Euro data lands. Each page says which run it is showing, at the top, in bold. If you are comparing models against each other, Spread is the page that holds them all to one run on purpose.

improved

Numbers on the time lapse, and the hottest spot on the day maps

The temperature time lapse used to be a picture with no numbers in it. Each frame now prints the forecast temperature at the cities we verify, so you can step a run forward and watch a number move rather than a colour.

The bias overlay came with it, and it works differently here than on a still map. A still map shows one number, so it can pick its best measured lead. A film's whole axis is the lead, so each frame shows what the model's error actually was at that range — and where we have no measurement, it shows nothing rather than borrowing the nearest one. That is honest and it is thin: we score at one day and three days out, so of twenty-one frames, two carry a number. Turning the overlay on and stepping to any other frame shows an empty map, which is the truthful answer and not a satisfying one.

The ringed hottest and coldest points moved off the per-model maps and onto the daily high and daily low maps, where the question they answer — where was the hottest place all day — is the one the map is about.

new

Every centre's AI ensemble, beside its own physics ensemble

NOAA and ECMWF each run an AI ensemble now, alongside the physics one they have run for years. The AI page scores all four the same way it scores WeatherNext — as the average of their members, against the station — so each centre's pair can be read against itself, where only the model changed. A month of each is already scored.

improved

WeatherNext is scored against an ensemble it can be fairly compared to

A month of Google's WeatherNext 2 scored on the AI page came out several degrees cool, and the reason is the product, not the model: what Google publishes is the average of 64 runs, and averaging flattens the afternoon peak. So it is no longer set beside the single-run models. It sits beside NOAA's GEFS average, which flattens the same way, and the two ensembles' spreads are shown in the same terms.

improved

The Canadian model's rain, the same way

GEM was the last chip on the pressure Time lapse playing without rain shading. It now carries the same six-hour averaged rate as the ECMWF AI model, from the running totals it publishes, labelled the same way above the map and in the key. Every model on that chart is shaded now; two of the four show an instantaneous rate and two a six-hour average, and the line above the map says which.

improved

The pressure time lapse shades the AI model's rain, and says how

Earlier today I said the ECMWF AI model would play the pressure Time lapse without rain shading, because it publishes no rain rate. It does publish running totals, and the difference between two of them six hours apart is a rain rate of a kind — the average over those six hours, which is what the sites that show it label it as. So now it is shaded too, and labelled: the line above the map says "6-hour averaged" on that model and "instantaneous" on the others, and the key under the map says the same. An average is smoother and weaker than an instant, so the heaviest colours show up less often on the AI model for the same weather; that is the quantity, not the forecast. Its film starts at six hours out rather than at the analysis, because no six-hour bucket ends there.

The chart is retitled Surface pressure and precip rate time lapse, and every version of it now carries one line above the map naming what is drawn and in which units.

improved

How often each model changes its mind

The AI-versus-physics page gained a row nobody else can draw, because it comes from our own archive: between one sweep and the next, how often each model's forecast high for the same day moved, and how far. The two AI models revise about half as often as the physics models a day or three out, in smaller steps, and the difference is gone by a week out. Steady is not the same as right, so it sits under the accuracy rows and says so.

new

The AI models, scored against the physics models

Two of the seven models on the leaderboards are learned rather than solved: ECMWF's AIFS and NOAA's AIGFS. A new page puts them beside the physics models on the same scores — typical miss by lead, who gets crowned against chance, how far out each reaches and what each does not publish — all against a thermometer, because scoring an AI model against its own centre's analysis roughly doubles its wins.

Google's WeatherNext 2 is there too, as the ensemble mean it is, and its rows fill in as its forecasts come due over the first week. WeatherNext 3 is explained and not shown: its terms do not allow a public forecast line.

improved

ECMWF joins the pressure time lapse, at a finer interval

I said this morning that the ECMWF models would stay off the pressure Time lapse because their sea-level pressure draws small false rings over the mountains. I looked harder at it — counted the rings by sign, and drew our copy of the field beside the same panel on Tropical Tidbits — and changed my mind for ECMWF's main model. The rings are real and they are what every site shows; drawn at 2 hPa rather than 4, they read as terrain noise and do not get in the way of the pressure pattern moving or the rain under it. So the chip row reads GFS, ECMWF, ECMWF AIFS, GEM. ECMWF's film gets its own rain shading from the next run on; the AI model plays without shading, since it publishes no rain rate.

improved

The pressure time lapse plays GEM too

The pressure Time lapse has a model chip now: GFS, and Canada's GEM. Not the two ECMWF models, and that is deliberate — their sea-level pressure field draws false highs and lows over the mountains, which I measured before building the pressure maps and would rather not animate. GEM's does not, so it plays. GEM's film runs without the rain shading, because we do not keep its rain-rate field; the line under the map says so.

new

Pressure gets its time lapse

Time lapse under Pressure now: one GFS run played forward six hours at a time, from the hour it was made to five days out. The isobars and their highs and lows move, and the rain shaded under them moves with them — the same picture as the surface analysis, twenty-one times over. It opens at the run's first frame and loads the rest in the background once you arrive.

What it does not do. GFS only, because the other models' sea-level pressure draws false highs and lows over mountains and I would rather not show that. And if any hour of the run is missing its rain field, the whole film runs without shading rather than showing rain that comes and goes as you step — that flicker would read as weather, and it is not.

improved

The time lapse plays the other models too

Time lapse under Temperature now has a row of model chips above the run stamp: GFS, ECMWF, AIFS and GEM, each playing its own newest run forward six hours at a time. A chip only appears when that model's run is complete in our store, so you will occasionally see three rather than four while a run is still landing. And the film now opens at its first frame, the run's own starting picture, rather than two days in — press play and it runs from the beginning.

What it does not do. The four films are four separate runs, not one picture, so switching models is not a comparison of the same moment — for that, the Spread map and Forecast Evolution still do the work. And it still stops at five days.

new

The time lapse that really is one

The map I said I was keeping the name for is built. Under Temperature on the maps, Time lapse plays one GFS run forward six hours at a time, from the hour it was made to five days out — twenty-one frames of 2 metre temperature over the whole grid. Press play and the sky moves: the afternoon warms, the night cools, a front walks across the map. That motion is the weather this one run forecasts, which is exactly what Forecast Evolution next to it is built not to show — there the moment is held still and only the forecast moves.

The page opens on the same moment the plain GFS map shows, about two days out at 2pm Eastern, and loads the other twenty frames in the background once you arrive, so it costs no more to open than that map does. If scripting is off you get that one frame and a note saying so.

What it does not do. It is the GFS only for now; the other models will follow as a switch on the same page. It stops at five days, where the other models' maps stop, though the GFS itself runs further. And it is one run — it says nothing about whether the forecast is holding or changing. For that, step the runs on Forecast Evolution, or read the 24h Change map.

improved

Time lapse was the wrong name, so it is Forecast Evolution now

Two of the maps have been renamed. The run-to-run films — one under Temperature, one under Pressure — are Forecast Evolution, and the row calls them Evolution. Nothing about the pictures has changed.

The old name described the opposite of what these maps do. A time lapse speeds weather up: clouds run, a shadow crosses a wall. These films do the reverse — they hold one moment in the future perfectly still and step backwards through the model runs that have forecast it. Nothing in the frame is weather moving. Everything that moves is the forecast changing its mind, which is the whole reason the map exists, and calling it a time lapse invited you to read it as the one thing it is built not to be.

I am also keeping the words for the map that really will be one: stepping through the forecast hours of a single run, where the sky does move. That one is not built, and I would rather not have its name already spent on something else.

What this breaks. A saved link or bookmark to either of the old addresses stops working — it will tell you there is no such map rather than quietly sending you somewhere. That is deliberate: those addresses are being held for the other map, and a redirect your browser remembers for a year would put you on the wrong picture the day the second one ships. Open Maps and save the new one.

improved

The pressure maps say what they show before they say how

The surface analysis had three paragraphs of method sitting under it, and the one number worth reading — the heaviest rate the model has falling anywhere on the frame — was the opening clause of the third one. That number is now a line of its own directly under the key, and the method is behind a Methodology panel you open if you want it, the way the temperature and precipitation maps already worked. The page is about a screenful shorter.

The two 24-hour change maps had a related problem: the line telling you which way the colours run and how far they reach was two paragraphs below the colours it describes. It sits beside them now.

None of this changes a forecast or a number. It is where things are on the page, which matters most on the one screen where a picture is the whole point.

improved

The temperature maps tell you the number, not just the colour

A filled map answers "which five degrees" and no more, so the national temperature maps now open with each model's own forecast temperature printed at the 26 cities we verify. It is the raw model value at that spot, uncorrected, from the same run and the same moment the colours come from — which means it can sit the other side of a band edge where the map has been smoothed to stay readable. That happens where the weather really does turn over a short distance: a shoreline, or a valley like Salt Lake City's. Those are the places the colour cannot tell you and the number can.

The measured-bias numbers have not gone anywhere — same dots, one checkbox away, and the box says which is which. They used to be what you landed on, and they are a better second look than a first one: how far a model has run from the thermometer is a different question from what it says tomorrow, and it reads better once you know what the map is showing. If you arrive before the day's verification numbers have caught up you now get the temperatures anyway, where the map used to have no numbers at all.

new

A rain map that shows the argument, not one model's answer

There is a new map on Maps, under Precip: how far apart four weather models are on how much rain falls, over the next day, three days or four — and, drawn inside that, one model you pick, with its own totals contoured and its heaviest spots marked. The map beside it counts who is wet; this one measures how much they differ about it.

It only offers multi-day windows, and that is the honest limit rather than an oversight. Over a few hours these models disagree by a factor rather than by an amount — one puts a tenth of an inch where another puts two, which shades almost nothing and then blows out over a thunderstorm — so a map of the gap says very little until you give it a few days to accumulate. Over three or four it says quite a lot.

The scale changes when you change the window, which no other map here does: a quarter inch is most of what falls in a day and almost nothing over four. The key under the map always names the window it belongs to. And nothing on this map is a forecast of who is right — for that, the leaderboards score every model against what actually fell.

new

Every archived location has an outlook, and its own address

Each place The Spread archives now has a public page showing where the weather models disagree about it over the next 14 days: the range they span on each day's high, which model is hottest and coldest, and how many models are still forecasting at that lead — because the roster thins from seven on day one to four by day fourteen, and a narrower band at the far end is fewer opinions, not more agreement. Nothing is called a divergence: a wide band ten days out is ordinary, so each day is compared with the last month of forecasts made there at the same lead instead.

The city scoreboards moved under the same address — every location now has an outlook and a scoreboard side by side, listed on one page. Old links redirect. The leaderboards still rank every location on one page.

improved

The maps reach 135W

Every map on Maps now draws ten degrees further west — to 135W, the Gulf of Alaska and the open Pacific off Baja — which is where the systems that reach the West Coast come from. The store had held that ground since late August; the picture caught up once every run on file was drawn at the wider box. The lower 48 draw about an eighth narrower for it, and the frame lost the blank band that would otherwise have sat above and below the map. What it does not change: the models, the runs, or the numbers on any face.

improved

Home and Maps, from wherever you are

Every page now carries the same row of links — Home, Maps, National, Leaderboards — so you can cross between them without doubling back. Your home page, your account, a search result and a watch had no navigation at all before this: once you were on one of them, the only thing that went anywhere was the site name in the top left.

On the pages that did already carry the row — the maps, the national page, the leaderboards — Home was missing from it even when you were signed in. It is there now.

A shared watch gets the row too, so if someone sends you one you can look around instead of landing on a single page with nothing to click.

What this does not solve: signed out, you still will not see Home in the row. The front page needs a beta sign-in, and a link that turns into a login screen is worse than no link — the site name in the top left is the way back for a visitor.

improved

The site name takes you to your home page

Click The Spread in the top left from a public page — a leaderboard, a map, a watch someone shared with you — and if you are signed in you now land on your own home page instead of the leaderboards. Signed out, it still goes to the leaderboards, which is the home a visitor can actually open.

One case this does not solve: sign-ins to the beta itself expire after a week, and if yours has, the click will put you back on the leaderboards rather than home. Sign in in the top bar is the way through — that link is there for exactly this.

improved

Your account link is in the top bar now

When you are signed in, the top bar says My account — in the same place it says Sign in when you are not. It used to be a Your account link at the very bottom of the page, which meant that signing in made the link you wanted move somewhere you had to scroll for.

Same page, same everything on it. This only changes where the way to it lives, and what it is called.

improved

Account details leave the backups in about two weeks

The two fixes below closed the live site's half of account deletion. The remaining half was the backups, which the privacy page has always been explicit about: deleting something here cannot reach copies already made, and a backup taken last month still holds what was there last month until it ages out on its own.

What has changed is how long "until it ages out" is. The backup copies that contain account details — the address, the preferences, the dates you are watching — are now kept for about two weeks rather than about a year. The weather data keeps the longer schedule, because none of it is about you.

Nothing on the privacy page needed rewriting: this shortens a window that page already described, rather than making a new promise. Copies made before today keep the old schedule and age out on their own.

improved

The maps pages open on the map

The map pages put half the picture below the fold. You landed on a title, a date line, a run stamp and three rows of buttons, and had to scroll before you could see the thing you came for — and scroll again to reach the colour scale that says what the colours mean.

The chart's name now sits on the same line as Maps / National / Leaderboards, and the Subject / Chart / Model buttons have moved into a column down the left. The map starts near the top of the window, and on a normal laptop screen the whole map and its scale fit without scrolling. All the same choices are still visible — nothing has been hidden behind a menu.

What this does not solve: the map is a little narrower than it was, because that column has to come from somewhere.

On a phone the buttons go back to rows above the map — that is the only thing that fits there — and the map still starts much higher up than it did. But the bar at the top, the one that stays put as you scroll, is taller now that it carries the chart's name: about 78px instead of 47, and 101px on the two charts with the longest names. That is a real cost on a small screen, and I would rather say so than let you find it.

improved

The highs and lows map gains ECMWF

The Highs and Lows maps under Temperature now draw from ECMWF as well as GFS, with a switch above the date picker. It is the same day, composed the same way, from the other centre.

The two models do not file this the same way, and the map says which it used. GFS publishes its daily maxima in six-hour blocks, so a day is the highest of four; ECMWF publishes them in three-hour blocks, so a day is the highest of eight. The finer blocks also make the map a little more honest about where you are: each column takes the blocks covering its own local day, and at three hours the map carries three different local days across its width rather than one. On the GFS map that choice changes a single column out of 281. On the ECMWF map it changes a hundred of them.

ECMWF files these further ahead than GFS does, so its date picker generally reaches further — though the two do not always offer the same days, since a run can only cover a day it actually reaches. The picker never offers a date it cannot draw, so whichever days are listed are days you can open.

fixed

A watched date's two temperature numbers now agree

A watch card could show you a temperature range and, two lines below it, a current high that sat outside that range — "genuinely uncertain, 93 to 96 degrees" above "now 90 degrees". Both numbers were real. They were just coming from two different sets of models, and nothing on the card said so.

The range came from one American ensemble; the current high, the shaded band on the little chart, and the moment your alert fires all came from the seven independent models. That ensemble runs about three degrees warmer than the others, so the two numbers disagreed by roughly that much whenever the card had reason to quote a range at all.

Everything on the card now reads the same seven models. The range you see is the range the chart shades, the current high sits inside it, and within range and far off are judged against the number your alert actually watches.

new

A map of the day's high, and one of the day's low

Under Temperature there is now Highs and Lows — the highest temperature each place reaches over a whole day you pick, and the lowest. This is the map I wanted when I built the time lapse: that one shows a single instant, 18Z, which is early afternoon on the east coast and mid-morning out west. A useful moment, but not anyone's high.

Two honest limits. It is GFS only at first — ECMWF joined it later the same day, see above — because of the four models on these pages, only two publish a daily maximum at all, and the other two give temperature at instants, from which a day's high cannot be recovered without guessing. And a "day" here runs 06Z to 06Z, because the model files its maxima in six-hour blocks and that is the closest those blocks come to your local midnight. Each column of the map takes the four blocks covering its own local day rather than one window for the whole country, which matters little on six-hour blocks and matters a great deal on three-hour ones.

The lows map is the one winter is for. It is there now so it is not being built in a hurry in December.

improved

The biggest-movers strip holds its numbers to a tighter bar

The strip on the home page names the day's largest forecast changes — "Denver 84 to 70 degrees for Thursday". It has always checked that the newest run still backs a move before printing it, but that check was a proportion: a move had to survive 60% of itself. Sixty percent of a small move is a degree or two out. Sixty percent of a fourteen-degree move is more than five degrees out, and the biggest number on the strip is the one you are most likely to read.

Now the printed number also has to sit within two degrees of what the models currently say, whatever the size of the move. Across the last four weeks of archive that takes the worst gap from over seven degrees down to two.

It costs nothing to show you. There are always more eligible changes than the five slots on the strip, so a stricter bar changes which story leads rather than leaving the strip empty — but it does mean you will sometimes see a different city at the top than you would have yesterday.

fixed

Deleting an account now removes its saved places too

Deleting an account removed the email and the sign-in details, but the places you had saved and the dates you were watching stayed behind in separate files. They are gone in the same moment now.

To be clear about what this did and did not affect: nobody's data was exposed, because no account has ever been deleted here — I found this while checking the deletion path rather than after it went wrong. And places you save while signed *out* are still yours and untouched: they belong to the browser rather than to an account, which the privacy page has always said.

fixed

Deleting an account now clears it from disk properly

When you delete an account, the email address was being removed from the database immediately — as the privacy page says — but a copy could linger for a while in a working file the database keeps alongside it, until routine housekeeping cleared it. Deleting now clears that file too, in the same moment.

Nothing about what is stored has changed, and the privacy page did not need rewriting: this makes a promise it already made actually true on disk. What it still does not reach is the encrypted nightly backups, which that page has always been explicit about.

improved

The maps now call the models what you call them

If you search for a weather model, you probably type "euro" rather than "ECMWF" — and until today the map pages were written entirely in the second one. The page titles and search descriptions across the maps now lead with the word people actually use and keep the formal name in brackets, the way the leaderboards already did.

Nothing on the pages themselves changed. The headings, the chart labels and the legends still say ECMWF, because that is what a forecaster reading the map expects to see, and because the model's name is wired into how the archive stores things. This is only about how the pages describe themselves to a search engine or a link preview.

One address moved: the ECMWF temperature map is now at `/maps/temperature/ecmwf` rather than `/maps/temperature/ifs`. The old link still works and always will — it forwards.

new

The maps are open to anyone

The maps and the national page no longer need a sign-in. Anyone can open them, and a link you share to one now works for whoever you send it to — which is the half that was missing when the map previews landed yesterday.

Nothing about the maps themselves has changed, and nothing else has opened: the per-place pages — your forecast, the Model Lab, a saved place, a watched date — still need an account. The leaderboards and this page were already open.

Two things I have deliberately left alone. The national page is readable but I have asked search engines not to list it, because I have not decided yet whether that page stays as it is, folds into the maps, or goes away — and a page search engines have indexed is much harder to withdraw. And the maps are drawn from model runs I download on a schedule, so if you arrive just after a run lands you may find one of them saying it has nothing to draw yet. That is the map being honest rather than broken.

improved

The pressure maps get a 24h change map too

The same tidy-up the temperature maps got: the 24-hour pressure change, which used to sit underneath the pressure time lapse, is now its own 24h Change entry beside it — and it is shaded rather than drawn in contour lines, with a key underneath.

One thing to know before you read it, because it is the opposite of the temperature map next door. Here red means the pressure is falling and blue means it is rising. That is the convention on a pressure chart rather than an oddity: a deepening low is the thing you look at first, and it gets the colour that says "look here". The key spells it out either way, so you do not have to remember which map you are on.

On a quiet day this map is mostly empty, and that is the honest answer — the shading starts at 2 hPa, and plenty of days never get there.

improved

The temperature maps are easier to move around

The row of temperature charts had grown into one long line — Spread, then four model names, then Time lapse — which asked you two questions at once: which map do you want, and which model. The four models now sit behind Forecast Models, with their own row underneath when you are on one. Nothing moved: a link to the GFS map still works.

The 24h Change map, which used to sit underneath the time lapse, is now its own entry beside it. It was odd where it was — you had to scroll past a slider you were not using to reach a picture that never moved — and it answers a different question anyway: not how the forecast has drifted over many runs, but what changed since yesterday. It is also shaded now rather than drawn in contour lines, blue where the forecast came down and red where it went up, with a key underneath: deeper colour means a bigger change. The line that used to say which colour meant what is gone, since the key says it better.

Two smaller things. The time lapse now prints temperatures on its contours the way the model maps do, so you can read a number off it while you step through the runs. And the numbers on the contours everywhere are a little smaller and lighter, because on the model maps they were the same size as the city bias figures and the two were easy to mix up. The city numbers are the ones that matter more, so they stay loud.

fixed

The time lapse was not actually moving

If you tried the new Time lapse map today and the slider did nothing, that was real and it was mine. The map was drawing all of the runs on top of each other with the newest one covering the rest, so the controls worked, the labels changed, and the picture underneath never did. It steps properly now.

The cause is a small browser rule I had already been caught by once on the pressure map and did not carry across. Nothing about the data was wrong — the older runs were all there, just buried — so there is nothing to re-check and nothing you saw was inaccurate. It was only ever showing you the newest run when it should have been showing you all of them in turn.

new

Watch the forecast for one day change its mind

There is a new temperature map: Time lapse, under Temperature. Pick a day, and it shows you one instant on that day as each of the last several model runs drew it. Step through them and the pattern shifts around — and that shifting is not weather. It is the model changing its mind about the same afternoon, run after run, which is the thing this site is actually about and the thing almost nobody shows you.

The important part is what does *not* move. Every frame is the same moment, so the map never cycles through day and night the way a normal forecast animation does. If you see a warm patch grow and shrink, that is a real disagreement between two runs, not the sun coming up. Underneath the film there is a second map of the last 24 hours of revision on its own: red where the newest run went warmer, blue where it went colder.

Two honest limits. That instant is 18Z, which is early afternoon on the east coast and late morning out west — so it is a moment inside the day, not the day's high. A proper highs-and-lows map is the next thing I want to build, and it is a different map rather than a setting on this one. And the number beside each day is how many runs I have that can see it: further-out days have fewer, because a run from three days ago was not looking that far. Days I cannot film at all are simply not offered. That count will grow over the next few days as I start keeping more runs — I only began storing the longer forecasts today, so right now the film is deepest for tomorrow and thinnest for next week.

new

Paris joins the tracked cities

Paris is now archived and verified daily, alongside London, Milan and Berlin. Its forecasts start accumulating today, so its leaderboard fills out over the next week or two.

The forecasts and the scoring both sit at Le Bourget, which came out best on every measure I check a station on — nearest to the city of the ones that report reliably, the closest match to central Paris on both temperature and altitude, and records back to 1928. The rain is measured by Météo-France's own gauge at that same airfield, a few hundred metres from the thermometer, which is as close a pairing as any city on the site has.

One thing I owe you plainly: the models scored here do not include a French one. Météo-France's ARPEGE and AROME are not among the seven, so a Paris reader sees the American, European, German, Canadian and British models and not their own. Milan is in the same position with no Italian model, and I would rather have the city on the site with that gap stated than keep it off until the gap closes. Whether to add a French model is a separate decision and it is on the list.

improved

What changed says how it knows again

Every line in the What changed panel used to carry a second line under it saying how we got there — the bar a number crossed, the lead a shift beat, the model camps behind a merge. I rebuilt that panel a week ago and dropped the second line by accident, and did not notice, because nothing else on the site uses it. It is back.

It is also better than it was. Three kinds of line used to say the same sentence every time, whatever they were about: "detected from deterministic convective/fire diagnostics." Those now name the actual threshold — a gust forecast reads against the 55 mph mark that made it worth telling you about, and a record watch names the record to a tenth of a degree instead of the rounded number in the headline.

The same line shows up in the Model Lab now too, when you hover one of the marks on the run axis. The camp rosters live there and nowhere else on the chart.

improved

The disagreement and rain-coverage maps are easier to read

Two of the maps shaded their bands in one colour at five strengths — a pale version for a small number, a stronger one for a big one. It looked tidy and it did not work: the steps were close enough together that telling a middling patch from a strong one meant going back to the key, and if you have any of the common forms of colour blindness they were closer still.

Both now use a proper light-to-dark scale, so the order is carried by brightness rather than by how saturated a colour is, and the darkest band is the same colour the map always ended on. Model spread goes from a pale warm tint at two degrees of disagreement to a full red at ten or more; Precip goes from pale blue where one model has rain to full blue where all four do. The thin temperature lines on the spread map picked up a faint halo at the same time, so they still read where the shading underneath them is dark.

Nothing about the maps themselves changed — same models, same thresholds, same numbers in the key. This is only about being able to see them.

new

Berlin joins the tracked cities

Berlin is now archived and verified daily, alongside London and Milan. Its forecasts start accumulating today, so its leaderboard fills out over the next week or two — a scorecard needs settled days before it can say anything, and a thin one is worse than none.

The hold-up was rain, not temperature. Every tracked city is scored against a real instrument standing at the location rather than against a model's estimate of what happened, and the source that supplies those readings across the United States carries no rainfall for European airports — the reports simply do not include it. So each European city has to be wired to the national weather service that owns the gauge. Berlin's is about as good as this gets: the German Weather Service publishes the airport's own gauge, hourly, a couple of hundred metres from the thermometer we already use.

Dublin was meant to arrive in the same batch and has not. Met Éireann has an excellent gauge at Dublin Airport with records back to 1946, but publishes it either within the last day or in a monthly batch several weeks later, and the scorecard needs it in the few days between. That is a solvable problem and it is on the list; I would rather say so than quietly score Dublin's rain against an estimate and not mention it.

improved

A row of links between the pages, and a picture when you share one

Every page that is about the whole country rather than about one place — the Maps, the National read, the leaderboards — now carries a row of links to the others, and it stays with you as you scroll. Before this, moving between them meant going back through the site name at the top of the page, and on a long table that had already scrolled out of sight. The row only ever offers pages you can actually open, so it is shorter for some readers than others.

Sharing a link to a map also shows the map now. Paste one into Slack, Bluesky or anywhere else that previews a link and you get the map itself — the fill, the coastline, the isobars where there are any — with the day's headline number beside it, instead of a line of text. It is drawn from the same model run the page is, so it changes as the page does.

What this does not solve: the maps are still behind the beta sign-in, so a link you share is a picture your reader can see and a page they cannot open yet.

improved

The pressure maps now show you where it is raining

The surface analysis and the run-to-run time lapse used to be pressure and nothing else — isobars, highs and lows. They now have the precipitation falling under them, taken from the same model run at the same moment, in the same green-yellow-orange-red you already read off a radar image. On the time lapse that means you can watch the rain move between runs as well as the pattern, which is usually the part you actually wanted to know about.

Those colours are borrowed on purpose. This is a forecast rather than a radar scan, but the scale means the same thing it always does, so there is nothing new to learn: green is light, and it gets warmer as it gets heavier.

Two things worth knowing before you read it. The shading is a rate — how hard it is falling right now — not a total, so it answers "where is it raining" and not "how much will fall"; the Precip map is the one for totals. And the numbers in the key are lower than they look. Each shaded patch is an average over about 28 km of ground, so it smooths a downpour out across the neighbourhood around it: a cell reading 0.10 in/h can easily contain rain that a gauge underneath would record at several times that. I have used numbers in the key rather than words like "heavy" for exactly that reason — "heavy" is defined for a rain gauge, and this is not one.

Coastlines, state borders and the Great Lakes stay readable underneath it — they are drawn with a thin halo in the page's own colour, so they cut through the heaviest rain instead of disappearing into it. That was not true when this first went out, and it is the kind of thing you only notice by looking at a wet day.

If you are looking at the time lapse in the next day or two you may see no shading at all. I only started storing this field today, and rather than shade the newest run and leave the older ones bare — which would look like the forecast dropping the rain, when it is just me not having the data — I leave the whole film unshaded until every run in it has the field. It fills itself in.

improved

The disagreement map now tells you the temperature too

The model-spread map shows how far apart the forecasts are — but not what they are actually forecasting. An 8 °F disagreement means something different at 45° than at 95°, and you had to open another map to find out which.

Thin labelled lines now run across it, every 10 °F, so you can read the temperature and the disagreement in one look. They come from the middle of the four models rather than any one of them, which draws a much quieter picture — and the map says so, because a middle-of-four line is a temperature none of the models actually forecast.

The number in the ring is still the widest gap, and it is larger than the temperature labels on purpose: the two are different kinds of number and should not look alike.

improved

The spread map tells you where the models argue most

The map of model disagreement used to end with a line like "the widest gap on this map is 38.2 °F, near 49.75N 113.25W". That is a real answer to the wrong question — it asks you to do geography in your head.

It now names the nearest place instead: "Widest gap 38.2 °F, 35 mi NW of Lethbridge, Alberta". And because a town name still does not tell you where to look on the picture, the spot itself is ringed on the map.

The rest of the page follows the temperature and precipitation maps: a single line above the map saying what it shows and which run it came from, the reading underneath, and the method folded into a Methodology section you can open if you want it. The explanation used to come before the picture, which meant reading an argument to reach a map.

fixed

Distances read in miles if you read in Fahrenheit

Every distance on the site was in kilometres, whatever units you had chosen. The station entries, the note about how far the nearest thermometer is, the rain gauge on Verification — all of them said km to everyone. They follow your setting now, so if you are on °F and inches you get miles.

The one exception is deliberate: where a page describes the models' grid as "~9 km", that stays. Grid spacing is quoted in kilometres everywhere in weather, including by the centres that run the models, and converting it would make our description harder to check against theirs rather than easier.

new

When you search a city, you now get two places, and I say which is which

Search for Chicago and you will see two entries: Chicago, Midway station and Chicago, downtown. They are different places, and until today you were quietly given only one of them.

Here is why. Every city I archive is scored against a real thermometer, and that thermometer is at an airfield — Midway for Chicago, 11 km from where you probably mean. When I moved the scoring onto those thermometers I moved the whole city with it, so the page you got for "Chicago" was the airfield's, with nothing on it saying so. Now you choose. The station entry is forecast and scored at the instrument, against what the instrument actually measured. The downtown entry is the point your search resolves to, and it is scored against a model's reconstruction of the weather rather than a measurement of it — because there is no thermometer there to ask.

Neither is the right answer for everyone, which is why both are offered even where they are almost the same spot: in San Francisco the two are 800 m apart and the only real difference is what the scores are checked against, while in Denver they are 30 km apart and the airport sits out on the prairie. Each entry tells you the distance and which of the two it is scored against, and stops there — I do not yet have a measurement of how much warmer or cooler a station runs than the middle of its own city, and I would rather leave that unsaid than guess at it. And on Verification, a downtown page will now tell you that its scores rest on a model, offer you the station's scorecard instead, and own up to one more thing: comparing a forecast made for an exact point against a grid square's average also compares two different heights above sea level. It is under a degree almost everywhere, but I would rather print it than have you find it.

What this does not fix: I have not moved anything, so a place you saved before today still points where it pointed. And if there is no thermometer within 40 km — most of the map — the page says so and the scores stay what they were.

improved

The maps are organised by what they show

The maps used to be one flat row: Model spread, Precip, Surface analysis, Run to run, Temperature. Five names, and no two of them were the same kind of thing — two named a weather field, one named a way of comparing models, one named a field and a treatment together, and one named a way of stepping through time. Worse, two pairs of them were secretly the same map seen twice.

They are organised now by what they are of: three subjects — Temperature, Precip and Pressure — and under each, the different pictures we can draw of it. Temperature opens on where the models disagree, with each of the four models one click away on the same frame. Pressure opens on the current surface analysis, with the run-to-run time lapse beside it.

Every map also says what moment it is valid for now, which the old row could not: the surface analysis is *now*, the spread map is *tomorrow evening*, and they used to sit side by side with nothing telling you so.

Old links still work — they redirect to the same picture under its new address.

improved

The maps count how long you looked, and the privacy page says so

The Maps pages and the national page now report one thing your browser has to tell me: how long the page was actually in front of you. It counts only while the page is visible and you are doing something, so a tab left open overnight adds nothing. It is the same measurement the forecast, Model Lab and model-accuracy pages have made for a while, and the privacy page now names all five — along with the switch that turns the whole of it off.

I am telling you before it can matter rather than after. The last time a page started reporting this, the notice took fourteen days to catch up and 110 records went undisclosed in the meantime. This time the sentence and the code shipped together.

What it is for: I want to know whether a map is worth drawing. A picture nobody looks at for more than a moment is one I should draw differently or not at all, and nothing the server sees can tell me that — a page served is not a page read. So the record is which map page, and for how many seconds. Each map has its own address and is counted under it, which is the point: the spread map and the precip map are different questions and I would learn nothing from a number that averaged them. What it is not is anything about you — no address, no browser fingerprint, no analytics service, and nothing that leaves this site.

new

A precip map that shows the argument, not one model's answer

There is a new map on Maps: how many of the four models put at least a tenth of an inch of precipitation on each point over 24 hours. Palest blue is one model out of four saying so; the deepest is all four. Unshaded ground is where every one of them keeps it under that.

Every rain map you have ever looked at is one model's answer wearing nobody's name. This one is four, and the disagreement turned out to be most of the picture — on a typical day some model reaches that tenth of an inch over about half the country, and all four agree on a tenth of it. What they are arguing about is not how much falls: give them the whole map and they put down almost exactly the same total. They disagree about where it lands.

It is called precip rather than rain because that is what the models actually publish — a total that counts snow as the water it would melt to. In August that is a distinction with no difference; in January it is the whole thing, and naming it now means a rain-or-snow split can arrive later as something added to this map rather than as a different map.

Two honest limits. A tenth of an inch is a choice, and it is the choice that decides how much of the map has anything on it — a lower bar fills the map in, and it is also the bar these models are least reliable at, since they put down something measurable on roughly twice as many days as gauges actually record. And four models agreeing is not four models being right: they can agree and all be wrong together, in the same way the disagreement map can be narrow over a forecast nobody should trust. For who has actually been right about precipitation, the model leaderboards are still the place.

improved

Colder colours start where it starts feeling cold

The temperature map's colours turned warm just above freezing, so 40 °F came out a pale red — which is not what 40 °F feels like. The changeover now sits at 60 °F, where most people stop calling it cool. Below zero gets its own purple, the way winter maps usually do.

That also fixed something you may have noticed: the 80s and 90s were hard to tell apart, because the warm colours had to stretch from freezing all the way to 120 and were spread thin. Covering a shorter range means they change faster, and mid-80s against mid-90s is now an obvious difference rather than a squint.

We also printed the numbers on the lines where the colours change, so you can read a boundary straight off the map instead of estimating it against the scale. No colour scale can tell you whether somewhere is 86 or 94 — that is what the numbers are for, and it is why the big model sites print them over their maps too.

improved

If your browser says don't count me, it now also says how often

If your browser sends a Global Privacy Control signal, nothing about your visit is recorded and no id is created for you. That has always been true and has not changed. What is new is that the site adds one to a plain daily total of pages served — a single number per day, with no id, no page, and no time beyond the date. The privacy page describes it, and it is kept and deleted on the same 25-month schedule as everything else.

The reason is that a reader who asks not to be counted and a reader who never came look exactly the same from here, and we would rather know that people are arriving than know anything about them. It does not tell us who you are, which page you read, or when — and it cannot, because there is nothing in it but a count.

improved

The temperature map reads better

Two fixes to the map that went up this morning. The checkbox that hides the per-city bias numbers did nothing at all — it is a real switch now.

And the colours carry more. The scale was too gentle in the range most of the country sits in for most of the year, so two places ten degrees apart looked nearly the same; they are clearly different now, and the difference survives the common forms of colour blindness. The scale still runs the same −30 to 120 °F every day, so a colour still means a temperature rather than "warm for today", and the coastlines are drawn with a pale edge under them so they stay visible over the deepest colours.

One thing we tried and threw away, since it explains the choice: adding more *hues* made the hot end drift toward purple, which is what the cold end already looks like. A scale whose two extremes resemble each other is worse, not more colourful.

new

A temperature map, one model at a time

There is now a plain temperature map on Maps — what the air will be at mid-afternoon tomorrow, everywhere at once. Four of them, really: GFS, ECMWF, ECMWF's AI model and Canada's GEM, each with its own page, all drawn from the same run at the same moment so that flipping between them is a comparison rather than four different questions.

The numbers printed on it are the part no other site shows you. These maps are the models' own raw output, uncorrected — which matters, because the city forecasts elsewhere here are corrected. So at each city we verify, the map prints how far that model's daily high has actually run from what the thermometer recorded over the last month. On the day it shipped, GFS was running about 2 °F warm across those cities while the other three sat a degree or two cool. Switch models and the numbers change with them.

Two things it is not. The bias figures are measured on daily highs, and the map is one instant — they are a guide to the model, not a correction you can add to the colour under your town. And the colour scale is fixed all year, so a January map will use the blue half that August never touches; that is what lets you compare two days rather than two pictures.

improved

The maps get pages of their own

The three national maps — where the models disagree, the surface pressure analysis, and how the forecast has moved between runs — used to sit stacked on one long page, in the order they happened to be built. Each has its own page now, with a row at the top to move between them, and an index that shows you what each one looks like before you open it.

The reason is not tidiness. All three draw the same coastline, state lines and lakes, and one page carrying three of them was sending that outline to your browser three times over. One map to a page sends it once. The page the maps left is about an eighth of the size it was, and it no longer waits on three maps being drawn before it can show you a word of what it says.

One small honesty note: a map here is drawn from model runs we have already downloaded, so a face occasionally has nothing recent enough to draw from. It used to disappear when that happened, which looked exactly like a map that had never existed. Now it says so.

improved

A fourth model, from a third weather service

The disagreement map now carries Environment Canada's model alongside the American GFS and ECMWF's two. That matters more than a count: two of the previous three were ECMWF's, so where those agreed they agreed partly for family reasons, and the map was closer to two opinions than three. Canada is a genuinely separate answer.

You will see a wider map because of it — the typical gap between the warmest and coolest model went from about 3 °F to about 4 °F, which is the honest number rather than a worse one. Where four models from three services still land close together, that agreement now means something it did not mean yesterday.

It does not make the map a forecast of who is right, and a fourth model does not make the middle of the range more likely. For who has actually been right, the model leaderboards are still the place.

new

A map of where the models disagree

Until now everything on this site compared models city by city. There is a new map on the national page that does it everywhere at once: the gap between the warmest and coolest of three models — the American GFS and two of ECMWF's — at every point on their shared grid, for mid-afternoon tomorrow. Shaded ground is where they disagree; unshaded is where all three land within a couple of degrees.

Two things worth knowing about what you are looking at. The three are not three independent opinions — two of them are ECMWF's, so where those two agree they agree partly for family reasons, and the map says so. And these are the models' raw numbers, uncorrected on every side, which is the only way a comparison between them stays a comparison.

What it does not do is tell you who is right. A wide gap means the models are unsure, not that the forecast is wrong, and a narrow one is agreement rather than proof — three models can be confidently wrong together. For who has actually been right, the model leaderboards are still the place.

new

Watch the forecast change its mind

The national page now has a run-to-run film: one moment, about two days out, as each successive model run has drawn it. Drag the slider or press play and the pressure pattern moves — that movement is the forecast changing, which is the thing this site exists to show. With scripts off you still get the newest run's chart.

Beneath it, a change map: where the latest run has raised or lowered the pressure compared with the run a day earlier, for the same moment. Warm lines mean the forecast has deepened something there — usually the spot worth watching.

improved

The surface analysis shows the whole picture

The surface analysis now draws the model's full domain — the coasts, the Gulf, southern Canada and northern Mexico, and the open ocean — instead of stopping at the border. The reason that matters today: there is a hurricane off the Pacific coast of Mexico, and on the earlier version it was invisible. Isobars are labelled with their values now, and the highs and lows are marked everywhere, over water included.

Under the hood the chart also switched to the sea-level pressure reduction that official charts use, which behaves properly over the Rockies — so the mountain states are no longer blanked out.

new

A surface analysis map

The national page now carries a surface analysis: sea-level isobars every 4 hPa with highs and lows marked, drawn from the GFS model's own initialization — the model's starting picture of right now, not a forecast. It names its source and its valid time on the map, because a chart from one model should say so.

Pressure is left blank over the high mountains, where "sea-level pressure" is an estimate for a surface that is not there, and the chart stops at the coastline. No fronts yet — those are drawn by human analysts, and this map only shows what the model itself publishes.

improved

The national map gets the Great Lakes and state lines

The map on the national roundup now draws the Great Lakes and state boundaries, along with Chesapeake Bay, Long Island, Cape Cod, Puget Sound and the Florida Keys. Chicago and Cleveland sit on water now, which is where they are, and a marker in the middle of the country reads as a place rather than as a dot — Denver is in Colorado, not somewhere west of Kansas.

All of it is drawn faintly on purpose. The markers are the data; the geography is only there to put them somewhere.

The northern border was also being drawn about 16 pixels too far south, along its whole length. The border follows a line of latitude, which is straight on a globe but curved on this map, and it had been drawn as if it were straight.

improved

The day view opens with the answer instead of the evidence

Clicking a date used to give you sixteen rows of forecaster shorthand at one size, with no explanation of any of it, over five small charts that each showed a single model. The day view now opens with four plain tiles — the high and low, what it will feel like, rain, and what to watch for — and each one says what it is built from. "7 models, each model's own 31-day bias removed" is a different claim from "one model's raw number", and you should not have to guess which you are looking at. (Corrected on September 14: that first example was itself wrong. The high was one model's, the GFS's, adjusted, and the tile says so now.)

Underneath, the five single-model charts are now one chart with every model on it. That is the whole point of this site and the hourly view was the one place it was hidden: you picked a model and saw only that model's line. Now you see all of them and the spread between them, and you can still pick one to read its hour-by-hour numbers off the axis. Three buttons switch between temperature, rain and wind & sky.

Two things I want to be straight about. The hourly chart carries five models where the numbers above it carry seven — the two missing ones are fetched once a day rather than hourly — and the chart says so rather than leaving you to count. And on a narrow phone it scrolls sideways instead of shrinking, because the alternative was the labels rendering at three pixels, which is what they were doing before.

There is also a new chart answering the question I think you actually have: how much should I trust this? Every model's high for the day sits next to a hollow ring showing where that model's own record here — the last 30 days, scored — puts it. For Orlando today the GFS says 97° and its record says 90°, and the gap between the two dots is the whole story. A model that runs cool gets a ring on the other side.

The little pop-up you get by clicking a date on the forecast chart has changed too, in the other direction: it used to be the whole page squeezed into a box. Now it answers the question — the four tiles and the trust chart — and links you to the rest rather than trying to fit it all in.

Every number still comes from the same place it always did. Nothing about the forecasts changed here; what changed is how much of it you have to decode.

new

Six more cities, and they start out verified properly

Philadelphia, Detroit, Tampa, San Diego, St. Louis and San Antonio are now archived, which takes the site to 28 cities. Each one gets the full set: the day-by-day model comparison, the run-to-run change feed, and a page on the leaderboards showing which model has actually been closest there.

Every earlier city was added at a point on the map first and moved onto a real weather station later, which wipes its scorecard when it happens. These six were checked against their station before they were added, so they have been verified at a real thermometer since their very first forecast — nothing to redo later. The honest cost is distance: Detroit verifies at the metro airport, about 16 miles from downtown, because that is where Detroit's official climate records come from.

What they do not have yet is history. I never fill in the past — a forecast's score only means something if it was recorded before the day arrived — so their scorecards start from today and get more useful every week. Berlin and Dublin were meant to be in this group and are not: the rain data I verify against is not published in the same form outside the US, and I would rather they wait than ship them scored against something weaker.

improved

Denver is now verified at the airport, and its record starts over

Denver's forecasts and scores were being checked against a weather station downtown, a couple of miles from the map point — the closest thing to "Denver's own weather" I could find. On the 20th, that station simply stopped reporting. It had recorded every single day of last year and every day of this one until then, so this was not a station going gradually bad; it went quiet overnight, and it took the rain measurements with it.

Denver now verifies at Denver International instead. It is further out — about 18 miles — and it is an automated station rather than one a person reads each morning, which is the whole reason for the change. It is also the station Denver's official climate records come from, so "warmest since 1974" on a Denver page now means the same thing there as it does everywhere else. The honest cost: the airport sits out on the prairie, and downtown genuinely runs a degree or two warmer on a summer afternoon. Denver's numbers will read very slightly cooler than the city centre from here on.

Two things this does not solve. Denver's verification history starts fresh — I score every location against one fixed point, so moving the point means the old scorecard cannot honestly be carried across, and it will take about a week before Verification has receipts for Denver again. And I found this four days late, by running an unrelated check. Nothing alerted me, which is its own problem and one I am fixing next.

new

See how last week's rain forecast actually turned out

The forecast page shows how much rain each model expects over the next six days, and they disagree wildly — often one says a washout and another says nothing. The Verification page now shows you the other half: one finished six-day week, what every model said about it beforehand, and how much rain actually fell, measured by the gauge.

I have deliberately not crowned a winner, and I want to say why rather than leave you to notice. I checked 474 finished weeks across twenty cities. When it does rain, the models really do separate — the closest is usually within a tenth of an inch and the furthest is out by more than an inch. But *which* model comes closest moves around: across the weeks that were far enough apart to count as independent evidence, the best model wins about as often as picking one at random, and the first and second halves of that record name different models. One week tells you what happened. It does not tell you who to trust, and a panel that named a winner would be inventing one.

Two things this does not solve. Better than half of all six-day windows have almost no rain in them at all, and on those weeks everyone is right — the panel says so rather than hiding it. And it only appears for cities I have been archiving, once a full week has finished; every city moved to a new measuring point in the last few days, so the first weeks start appearing from 25 August and fill in over the following week.

improved

Rain is now scored against a rain gauge

The Verification page used to grade every model's rain calls against a computer weather map — an average over a grid square roughly nine kilometres across. That is not what a rain forecast is a forecast of. It now grades them against the actual rain gauge at your location, and the page tells you which gauge and how far away it is.

It matters more than it sounds. A grid square is wet if it rained anywhere in it, so it called rain on more than twice as many days as a gauge in the city did — which made every model look like it under-called rain when most of them do the opposite. The rain-chance table was the worst of it: a model saying "25% chance" was being marked against a truth that said it rained on well over half the days.

A handful of places have no gauge we can reach. Those keep the old method and the page says so, rather than quietly looking the same as everywhere else.

improved

Your reading preferences are all in one place

How you read the site is three choices — °F or °C, plain language or forecaster idiom, light or dark — and until now each one lived wherever it happened to apply. Units and theme are in the header on every page, which is fine. The plain-versus-forecaster switch was under the written discussion on a forecast page and nowhere else, so changing it meant going and finding a forecast first.

All three are now together on your account page, with a note beside each saying where it is kept: units and the discussion register follow your account between devices, and your theme stays in this browser because we never learn it. You do not need an account to use them — signed out they work exactly the same and live in this browser, which the page now says rather than implying.

Two smaller corrections while we were in there. What this browser has stored was reporting your discussion register as `fx`, which is what our database calls it and not a word anyone has been shown, and it was not mentioning your units at all even though the file you can download from that page always had them. Both fixed, and the privacy page's list of what an account holds now names both preferences instead of just the one.

improved

Every city now verifies against its own weather station

Scores on the leaderboards and on each city's verification page are now measured against observations from a station in that city — a thermometer, not a gridded analysis — and the forecast you see is for that same point. Each city page names its station. One station reports on a morning schedule and is handled for it; where a station misses a day, the page says so.

fixed

The rain scorecard says what its truth actually does

The Verification page scores every model's rain calls against a gridded analysis, and it used to warn you that the analysis "smooths convective cores" — that it would flatten a downpour. We went and measured that, and it is not what happens. The test the warning rested on gives the same answer whichever way round you run it, so it never actually showed anything.

What the analysis really does is rain on more days than a rain gauge in the city would — a bit over twice as many at the lightest amount — while matching the gauge once you get to a real soaking. That matters for reading the page: the bias column compares each model against that truth, so the models look drier than they are.

The caption now says this instead. We are also planning to move the whole rain scorecard onto the city's own gauge, which is what the field does and what the rain-chance percentages were always meant to be scored against.

improved

What changed is now readable at a glance

The What changed panel on a forecast page used to be one long list, newest-first, with everything about tomorrow mixed in with everything about next Tuesday. A typical location had 38 lines in it, a quarter of them about days that had already happened, and the busiest ones were quietly cut off.

It is grouped by the day it is about now, soonest first, with a short Standing block at the top for anything that has been true for several days running — "record high challenged" across a whole week is one line rather than seven. Every line also says which model run it came from, because a line about next Tuesday can easily be two days older than the one above it and there was no way to tell.

Lines say their numbers now, too. "Rain chances exceed 50%" tells you it is now 58%; "model spread collapsed" tells you the models were 89-97° and are now 88-91°. Older entries in your list will still show the shorter wording — those numbers were never recorded and cannot be recovered — so this fills in over about a week.

This does not reduce how often the detector fires, only how much of it you have to read at once. That is a separate piece of work.

improved

Verification moves to the thermometer in five cities

Oklahoma City, Orlando, Boston, Washington and Phoenix now score every model against their own station's observed highs and lows — OKC, ORL, BOS, DCA and PHX — instead of a gridded analysis. The point you get forecasts for is the station now, so both halves of every score describe one place, and each city's page names its station and how far it stands from downtown. On a day the station doesn't report, the analysis stands in and the page says so. One honest cost: these five cities' receipts and change history restart fresh at the new point, so their per-day records are thin for a few days. More cities move over the coming days; the leaderboards name each city's truth in place.

improved

The Model Lab marks where a model changed

Yesterday I swapped the GFS row over to the plain GFS. In the Model Lab, which draws what every model said over the last few days, that switch looked exactly like weather: the GFS line stepped about five degrees between two columns on Tuesday evening for no reason at all.

There is now a line down the chart at that point, and the write-up under it says which model changed and what it changed to. Nothing is joined across it — the shaded bands stop there, and if you are following the GFS its thread is cut in two. Follow any other model and its thread runs straight through, because nothing happened to those.

What this does not solve: the numbers either side are both real and both stay. I have not smoothed the step away or restated the older ones, because they are what the site was actually showing at the time.

fixed

Four record warnings for Orlando that should not have run

When I switched the GFS row to the plain GFS yesterday, the correction I apply to it — the GFS runs about three degrees warm in Orlando — stopped being applied for a few hours, because it was filed under the old name. For that window the site read the raw model instead. Orlando got four "forecast high 100° challenges the record 98°" notices off numbers that should have been closer to 96, and the model's own row jumped five degrees in an hour for a reason that had nothing to do with the weather.

Nothing about the weather changed and nothing needs re-reading; the correction came back on its own within a few hours. But those four notices were wrong, and a record warning is exactly the kind of thing I would rather over-explain than quietly drop.

What it does not solve: the numbers in the archive from before the switch are still there and still say what they said, so if you look at a Model Lab window covering Tuesday the 18th you will see that jump in the GFS line. I have not smoothed it over, because it is a real record of what the site was showing at the time.

fixed

The GFS row is now actually the GFS

The row labelled NOAA GFS was not only the GFS. For US locations the weather service I get it from splices in HRRR — a 3-kilometre short-range model — for roughly the first two days, and hands it back under the GFS's name. So the GFS was being credited with another model's short-range skill, and only inside the US: the same row in London was the plain GFS all along. Its rain chance was not its own either — that came from the NBM blend.

It is the plain GFS at every range now, everywhere. Only the first two days change, by about a degree on the first day; from day three the numbers are identical to what you already saw. Expect the GFS to look worse on the leaderboards at one and two days out than it did yesterday — that is the correction, not a new problem.

If you had picked the GFS as your line on a chart, you will need to pick it once more; the old name is gone and the chart falls back to the blend.

improved

The discussion stops talking you into the warm number

Every forecast discussion has a GFS ensemble behind it — 31 runs of the same model, which the write-up used to treat as a tiebreak when the models disagreed. Scored against 33,188 days of settled forecasts, the middle of that ensemble comes in 3 to 4 degrees too warm at every lead, including for today, while the other centres land within half a degree. So the discussion was reaching for the warmest number on the page, and sometimes reaching for it in place of the bias correction that had just taken those degrees back off.

It no longer does. The spread of the members still sets how much the write-up hedges — that part was always sound — but the range you read now comes from what the models themselves say, and the ensemble's warm top end is never offered as a plausible high.

What this does not fix: the band itself is still the GFS family's own, and it is drawn that way on the watch cards. The numbers on those charts have not moved. And the discussion is still one model's ensemble rather than a consensus of all seven — you can see the full spread on the leaderboards and on each city's Model Lab.

improved

The way in is where you can see it

"Sign in" sat in the footer, below every row of a leaderboard, and on the public pages so did "Request an invite". Both are now in the bar at the top of the page, and the invite ask is a button rather than a line of small print. Nothing about either changed except where it is: the sign-in link still takes you to the same gate, and the invite still opens an email to me — say where you forecast and I will send you one.

improved

A far-out watch says when its trend chart starts

Pin a date near the two-week edge and the card showed the current read with a blank where the trend chart belongs — no hint that more was coming, or when. That slot now holds a quiet tray showing the wait itself: one dot per day of runs banked, filling toward the three the chart needs, beside the day it arrives — "chart starts by tomorrow." A date the models don't reach yet says why instead, so an empty card explains itself. Every promise reads "within N days": that is the day the chart is assured by our own sweeps, and it can start sooner — it never starts later. What this does not change: the chart still refuses to draw from fewer than three days of runs, because two points drawn as a trend claim a shape the history doesn't have.

improved

Each city page says what it verifies against

A reader asked whether "Los Angeles" on the leaderboards means LAX. It does not — it means the city's own map point — and the page now says so instead of leaving you to wonder. Each city's method note also states that city's truth: where a nearby thermometer qualifies, it names the station and the measured gap ("over the last 30 days the cell has run 4.0° cooler than the ORL station, and that difference is removed before any model is scored"); where none does, it says plainly that models are scored against the grid cell's own values. The numbers were already computed this way — what changed is that the page stops making you ask.

improved

The verdict column names names

Yesterday's race view told you how close the race was — "top two within 0.17°" — which turned out to be a question wearing an answer's clothes: the first thing you ask is *which two*. It says so now: "ICON & GFS within 0.17°". And where a model does lead, the verdict names who it beat — "ECMWF by 0.5° over GFS" — because a margin only means something against a named runner-up.

The bar for calling anyone most accurate has not moved. Naming who is currently ahead is information you could already read one click away on the city page; the crown is a claim, and it still has to survive the same resampling test as before.

new

This page is public now, and there is a way to ask for an invite

You are reading a page that until today required an invitation. That was backwards: this is where I write down what I got wrong and what I fixed, and it is the most useful thing to read before deciding whether to trust any of the numbers here — so it was exactly the wrong page to keep behind a login. Anyone can read it now, and search engines can index it.

The other half: there was no way to ask for access. The public pages had been stripped of every link that led somewhere you couldn't go, which was right, but it left nothing in their place. The footer now has Request an invite — it opens an email to me. Say where you forecast, and I will send you one.

What this does not change: the forecasts, the Model Lab and your saved places are still invitation-only, and the beta is still small on purpose.

new

The leaderboards show the whole race now

The leaderboards used to give each city one line: a winner, or "too close to call", or a dash — and since I raised the bar for naming winners, most rows were the shrug. Now every row shows the race itself: one dot per model on a single scale shared by every city, so a tight pack reads tight, a spread-out field reads spread out, and you can see exactly how close "too close" is. The verdict column carries the number either way — "top two within 0.1°" — because showing the numbers was always the promise behind not crowning anyone.

Two additions ride along. Each city now shows today's spread beside its race — how far apart the models are right now, the same number the home page tracks. And under the worked example sits a feed of the latest scored days across the archive: records, not rankings. Each day happened, one model landed closest, and the full receipt is a click away — so the page has real answers even on a day when every ranking is too close to call.

One more thing, about the fine print: the scoring notes now say plainly that two of the seven models come from the same forecasting centre as the yardstick, and that the yardstick is corrected toward a real thermometer where one sits close enough. Both were true before; until today you had to be signed in to read them.

fixed

Every archived city has leaderboard numbers now

Five cities on the leaderboards — Charlotte, Denver, Houston, Minneapolis and New York — showed dashes where their numbers should be. Not for lack of data: their scores were only computed when a signed-in reader browsed them, and the public page never triggers that work by design — it is the page crawlers hit all day, and nothing a crawler does may make this site spend. Every archived city's scores now refresh on the same schedule regardless of who has been looking, so the table is full for everyone, all the time.

improved

Model comparisons are same-days comparisons now, everywhere

Two models can only be fairly compared on days they both forecast. The scores behind the leaderboards are now computed on exactly the shared set of days for every model at a given lead — which is why you'll see the same "days" count on every row of a scoreboard. I checked what this changes on the current archive before shipping it: the day sets already matched everywhere, so no number moved. This locks the door for the day they stop matching, rather than fixing a wrong answer today.

Two smaller pieces of the same idea. Verification's "which model should I trust here" cards now apply the same bar the leaderboards do — a model has to beat the runner-up by more than the noise, on enough days — so where the race is tight they say "too close to call" instead of crowning someone by a hundredth of a degree. And in the rain scorecards, the National Blend now sits below the models as a labelled reference: it is an average of them, and an average agreeing with its own inputs is not evidence.

improved

The front page now shows strangers the leaderboards

Until today, spreadwx.com greeted anyone who wasn't signed in with a login screen — including people I had just told "go look at the site". Arrive without a session now and you land on the leaderboards instead: the one part of The Spread that has always been open to everyone. Signed in, nothing changes — the front page is your home page, as before.

One thing is worth knowing if you're a tester: sessions here expire after a week, and once yours does, the front page will show you the leaderboards like any stranger. The Sign in link in the footer is the way back to your home page.

What this does not solve: the rest of the site is still invitation-only. This makes the front door honest about what is open — it does not open anything new.

improved

I will name a most accurate model less often

On the city accuracy pages I sometimes say which model has been most accurate lately. That claim is only worth making when the winner is clearly ahead — and I have raised the bar for it, so you will see it in fewer places than before.

Here is the test I put it to. I took each city's scored days, drew a different random sample of those same days hundreds of times, and asked whether the same model still came out on top. Under the old bar, the model I named survived that about four times in five at best. Under the new one, closer to nine in ten. Where a model does not clear it, the page shows the numbers and simply does not crown anyone.

This costs a couple of the claims I was making. I would rather show you a ranking and let you read it than put a rosette on a model that a slightly different fortnight would have taken away.

improved

The discussion leads with the flooding now

I compare my forecast discussions against the National Weather Service's own area forecast discussions and fix what mine miss. This round produced five changes, and four of them turned out to be missing data rather than clumsy writing.

The one you're most likely to notice: on a day when the air is very wet and the steering winds are weak — the setup that produces slow, soaking storms — the discussion now leads with the flooding risk instead of the heat, even if the day is also near a record high. It used to stay quiet about those days entirely, because it only looked for heavy rain on days that already had thunderstorm energy, and the most dangerous flooding days often don't.

Three smaller ones. Storm energy is now given as the range the models actually span rather than one model's number, so a single outlier can't set the headline. When one model breaks away from the rest, the discussion names it as the outlier instead of quoting its temperature as a real possibility. And for a coastal city, it no longer describes conditions "inland" when the point it's reading is out at sea — a real problem in places like Florida, where the state is narrower than the area I sample. Tropical systems that reach the Pacific Northwest as leftover moisture can also be named now, rather than turning up as an anonymous "Pacific trough".

improved

Your forecast should match the thermometer, not the grid square

Yesterday I told you the yardstick I score models against was mislabelled. Here is the bigger half of that problem: it is a grid, and one square of it can cover a lake, some farmland and downtown all at once. In Orlando that square runs about four degrees cooler than the airport thermometer — every single day I have measured. So the forecast here read 93 while the news said 97, and both were being honest about different things.

The numbers now get corrected toward the nearest real thermometer before any model is scored against them, using the last thirty days of both. It is recomputed constantly rather than fixed, because the gap changes with the season — Orlando's is four degrees in July and one in April, and a number I wrote down in August would have been quietly wrong by Christmas.

A few places get no correction, and say so. Los Angeles is one: every thermometer near enough to use sits inside the marine layer and downtown does not, so "correcting" toward it would make the forecast worse by ten degrees. I would rather tell you nothing was adjusted than adjust it wrongly.

This also changes which model I call most accurate in about half the places I track — I said otherwise when I first published this, and I was wrong. Scoring against a corrected number is a different test, and Orlando's most accurate model is now the GFS rather than ECMWF's AI one. That is the answer a thermometer gives, so I think it is the better one, but I should not have told you nothing had moved.

What it still does not fix: two of the seven models I score come from the same forecasting centre as the yardstick itself. That one is next.

fixed

I was naming the wrong yardstick

Every accuracy number on this site is a model's forecast compared against what actually happened. The pages said "what actually happened" came from ERA5, a well-known weather reconstruction. It didn't. It comes from ECMWF's operational analysis — a different, finer-grained product — and it has for years. The comparison was always real and the scores were always computed the same way; the label was wrong, and I've corrected it everywhere it appeared.

Two things worth saying plainly now that the name is right. Two of the seven models I score are ECMWF's own, and so is the yardstick — you'll now see that noted on the Forecast page's scoring panel. And that yardstick is a grid, not a thermometer: one cell can cover water, farmland and downtown at once, so in some cities it sits a few degrees off what the airport reports. That gap is why a forecast here can read cooler than the one on the news. I'm working on it, and I'd rather tell you it exists than quietly split the difference.

improved

The rain panel gets the same treatment

The Model Lab's Models view now draws one line per model in the lower rain panel too, not just the temperature panel above. It is the same line: a model sits somewhere in the top panel and somewhere in the bottom one, and picking it out lights up both at once. That is the point — "what is ECMWF doing" is one question with two answers, and until now you could only see one of them per model.

Models forecasting no rain all sit together on the dry line. They are agreeing, and I would rather draw that than fan them apart into a disagreement that isn't there.

I had written this off. The plan said a rain braid would collapse into a useless bundle because so many models say zero, and when I went to check that before arguing about it, it turned out nobody ever had. About three models in seven do sit on the dry line — but the ones forecasting rain separate from each other a little *better* than the temperature lines do. The rule was half right, and the wrong half had been riding along on the right one.

Hovering a day also reads more clearly now: the model your cursor is nearest stays sharp and the rest fade back, so it is easier to tell which line you are actually on.

new

You can now follow one model through the argument

The Model Lab's top chart has always shown the models grouped into camps — a bubble per camp, sized by how many models are in it. There is now a Models button above it that zooms in: one line per model instead, hottest at the top, each coloured by the camp it is travelling with that day.

That turns two things into something you can see rather than take on trust. Where two lines cross, the models have swapped places. Where a line changes colour, that model has left its camp and joined another — which is the thing worth noticing, because a model that keeps defecting to the cold side is telling you something a camp count cannot.

It also stops pretending we know as much about next week as about tomorrow. The lines simply end where each model's forecast does, and a line under the chart names them: for most places, four models run the full two weeks and the others stop somewhere between day six and day nine. The old view drew camps all the way across, which quietly made the far end look better attended than it is.

Camps is still what you see by default, and nothing about it has changed. Two models forecasting within a fifth of a degree will share a line at this size — that is honest rather than a rendering fault, and hovering a day gives you the exact ranked list.

new

I'll tell you when the rain outlook shifts

Yesterday's change put each model's rain total on a location's Forecast page. This one watches it for you: when the number of models expecting at least a quarter inch over the coming week moves by two or more, that now shows up in what changed, the same way a temperature shift does.

Two models rather than one, deliberately. A single model breaking ranks is usually noise — it is the thing this whole site exists to put in context — so one model going wet does not get a notification. Two or more is a real change of story, and I checked how often that happens before choosing: about once every eight days for a given city, and nineteen of the forty places I watch never saw it at all in a month.

It counts models rather than averaging their rainfall, because averaging rain does not mean much: the middle of "four say nothing and one says an inch" is a number none of them forecast.

What this does not fix: it tells you the outlook moved, not which day the rain lands on. That is a harder question and it is still open.

new

How much rain each model expects, side by side

The rain chart on a location's Forecast page has always shown you which day, and never how much in total. So if one model saw a wet week and another saw almost nothing, you could squint at fourteen lines and try to add them up yourself. There is now a strip under that chart with one row per model: its own total over the next several days, longest bar to shortest, and the gap between the wettest and the driest stated on top.

The models disagree about this far more than they disagree about temperature. On the day I built it, every one of the cities I archive had a wettest model forecasting at least twice the driest — in Orlando it was 3.72 inches against 0.20. A model expecting no rain gets a row too, at zero. That sounds obvious and it is the whole reason the strip exists: "four of seven say it stays dry" is a real answer, and until now nothing here could show it to you.

Two things it deliberately does not do. There is no single consensus number, because rain is not the kind of measurement an average describes — the middle of "four say nothing, one says an inch" is a figure no model forecast. And the window is six days rather than seven, which is a deliberate floor: one of the models publishes a seventh day only for part of each day, so reading the window off whatever happened to be available would have changed the totals depending on what time you loaded the page. Six is always there.

What this does not fix: a total tells you how much, not when. Read it beside the chart, which is still where the timing lives.

improved

Every model's own numbers, day by day

At the bottom of the forecast page there used to be a table called "All model data". It was not quite that. It folded fourteen days into four blocks and showed you the hottest day in each — so "Days 4–7, 94°" was a number no model had actually forecast for any particular day. It is a page of its own now, linked from each chart, and it is the real thing: one row per model, one column per day, nothing averaged and nothing blended. Pick the variable with the buttons at the top — high, low, dew point, heat index, CAPE, wind gust, rain chance, precipitation.

Two things I fixed while moving it. The old table counted the National Blend of Models as one of the models, which it is not — it is an average *of* them, so counting it makes the field look more agreed than it is. It is still there, listed separately as a reference. And a dash used to mean two different things with no way to tell them apart: a model that does not forecast that far ahead, and a model that does not publish that variable at all. The note under each table now says which one you are looking at.

Worth knowing before you read the right-hand side: not every model runs two weeks out. Seven of them cover the first week; by day eleven it is four. The bottom row counts how many are left on each day, because a range that narrows out there is usually a smaller field rather than better agreement.

improved

A read on your watched date from the day you set it

If you watched a date more than ten days out, the card had nothing to say about your alert line — it could not tell you whether the temperature you were watching for was a plausible outcome or a long shot, because the ensemble we read that from only ran ten days ahead. Watches go out to sixteen.

It runs sixteen days now. The forecast service publishes the same ensemble in a version that keeps going, at the same detail for the first ten days and slightly coarser after — so nothing about the near part of your watch changes, and the far part stops being blank. I checked that carefully before switching: across the days both versions cover, every number I publish came out identical.

What this does not fix: a read at fourteen days is still a read at fourteen days. The band will be wide, and it should be — that width is the honest answer, not a defect.

improved

Your watched dates now show every model, not just the middle

A watched date used to show one line: the middle of what the models were saying, day by day. That tells you where the forecast went and nothing about how far apart the models were while it got there — which is the thing this whole site is about. Now the full range sits behind that line, so you can see the disagreement as well as the answer. It wipes in once when the card loads, then stays put.

There is a catch I did not want to hide, so I drew it instead. Not every model forecasts two weeks ahead — a few stop around five days out, others around eight or thirteen — so the range at the far left is often narrow simply because only two models are in it. That looks exactly like the models agreeing, and it is not. The shading gets stronger where more models are behind it, and the panel spells the number out, so a pale narrow stretch reads as thin evidence rather than as confidence.

What this does not solve: a watch on rain-chance shows its own range now, but a probability still cannot be marked right or wrong against a single day, so those receipts report the rain that fell and stop there. And a watch set more than about ten days out still cannot tell you whether your alert line is within reach — the spread it checks against does not run that far yet.

improved

A way back home, and tomorrow's rain chance

Two people I showed the site to got stuck on a forecast page with no obvious way back. They were right: the wordmark at the top scrolls away, and the bar that follows you down the page had nothing on it that went home. There is now a Home link in that bar, beside Forecast, Model Lab and Verification, on every location page.

The tiles at the top of a forecast used to give you today's rain chance and then say nothing about tomorrow's. Each day now gets one tile with its temperature and its rain chance side by side, so the same question gets answered twice rather than once.

A few smaller things in the same pass. What changed and the sentence about how the models are grouping are one panel now, instead of two loose lines above the charts. The notes about how something is worked out — how accuracy is scored, how the discussion is written — used to appear two different ways on the same page; both are now a Methodology button in the panel's corner. What is deliberately *not* behind that button is when the discussion was written, because that is the part telling you how fresh it is — and it now reads in your own time zone, named, rather than UTC. On the charts, the little colour swatches came off the model names: five shades of one hue are not really distinguishable, so hovering a model's name now highlights its line for as long as you hover it.

What this does not fix: the change list inside that new panel is still a raw feed, newest first, with no sense of which entries matter most. That is the next thing I want to work on.

improved

Sometimes no model is winning, and the page now says so

The leaderboards name the model that has been closest in each city. Until now they named one however narrow its lead was — and a lot of those leads were narrower than the measurement is sharp. To find out how much narrower, I scored the same forecasts a second time against airport thermometers instead of the reanalysis we normally use. Same days, same models, only the thing being compared against. The winner changed in 14 of 18 cases. So a model that led by a tenth of a degree was not really leading; it was winning against one particular yardstick.

A model now has to beat the runner-up by more than that wobble before the page will name it. Where nobody does, the city says too close to call, which is a result and not a gap in the data — those cities have plenty of scored days, the models just finished level. You will see it on a fair number of rows, and that is the honest picture rather than a worse one.

What this does not fix: the threshold is cut from three weeks of summer archive, and it is deliberately the permissive end of what I measured, so it lets through some calls that are closer than I would like. It will get stricter as the archive deepens. It also only accounts for which yardstick we use — not for how few days some of these numbers still rest on, which the small-sample note on each city page covers separately.

fixed

Asking for a discussion no longer looks like nothing happened

If a place had never been looked at before, the forecast page offered a "Write the discussion" button rather than writing one unprompted. Clicking it started a job that takes about thirty seconds — and removed every sign that anything was happening. No spinner, no progress, just an empty space until the text arrived.

The waiting indicator now comes back when you click, and stays until the discussion is finished. Thanks to the reader who reported it.

improved

Weather alerts now show you what they actually say

A banner reading "Special Weather Statement" tells you an office issued something and nothing at all about the weather. Every alert now carries a "What it says" link that opens the alert's own text — the radar report, the hazard, the expected impact, and the office's own advice under "What to do". It is closed by default, because a severe thunderstorm warning runs to about forty lines and the banner still has to work as a banner.

The text is reflowed for reading. The National Weather Service writes these for teleprinters, hard-wrapped at seventy characters, which turns into ragged half-lines on a phone; the paragraph breaks and the WHAT/WHERE/WHEN bullets are kept exactly as the office wrote them.

improved

Hover a tab to see what that page is for

The line under Forecast / Model Lab / Verification told you what the page you were already on was for. Now hovering — or tabbing to — any of the three shows you what that one answers, so you can tell what the Model Lab is without going there first.

Also on the forecast page: the "writing the discussion" animation used to stop the moment the first sentence appeared, though the writing carries on for another half minute. It now stays with the text until the discussion is finished.

improved

See one day get scored, on the leaderboards page

The public leaderboards page tells you which model is closest in each city and by how much, and until now it never showed you a single day being scored — you had to click into a city and then into a date to see any of the working. There is now one worked example under the city table: what the models said about a real day two weeks out, how their range tightened as it approached, what actually happened, and which model got closest. One bar per day of lead time, all on the same temperature scale, with the verified high running through them as a line.

It is always the most recent day we settled, anywhere in the archive — never one we picked. That means it sometimes shows a day the models got wrong, which is the point of showing it at all. Two things it deliberately does not do: the earliest bar is where at least four models had a forecast, because a range drawn from two models looks reassuringly narrow for the wrong reason, and the caption compares like with like — the range tightens even though more models arrive as the day gets closer, not because fewer are left.

improved

Every archived city's spread, on one page

The "Cities we archive" block on the home page used to show four cities, with four more behind a "show the rest" link — and that was all it could show, because the cards it was built from stop at eight. There are 22 cities in the archive. Now every one of them gets a row: the city, today's spread as a bar, the number, and the two temperatures it is the gap between. Widest disagreement first, so the top of the list is where the models are arguing most today.

The bars are comparable to each other and to nothing else. They scale to the widest spread on the page that day, not to a fixed number of degrees, so a short bar means "less disagreement than the other cities right now" rather than "a settled forecast" in any absolute sense — and a quiet day everywhere still fills the top of the list. A city whose latest run is still describing yesterday is left out rather than shown with a stale number, which is why the line above the list counts the cities it drew instead of claiming all of them.

improved

The overnight changes block reads faster

The five biggest temperature moves at the top of the home page now carry their number on the bar itself rather than in a column beside it, and each bar brightens toward its own tip. The point is comparison: a column of numbers gets read against the other numbers in the column, and a number sitting on its mark gets read against the mark — which is the thing that shows you how one city's move compares to another's.

Underneath, each change now leads with the day it is about, in a chip, with a dot marking what kind of change it was — something arriving, or the models settling down. The date used to be buried mid-sentence, so scanning for "what happens Friday" meant reading every line.

This does not change which moves reach the block or how they are chosen, and it adds nothing that was not already on the page. It is the same five moves and the same three changes, arranged so the numbers are easier to compare and the days easier to find.

improved

Model Lab now marks the moments we alerted on

The Model Lab's convergence drill has always drawn every time the models merged into agreement or broke apart — including the small ones nobody would want a notification about. Now the ones we *did* send an alert for carry a mark of their own, above the column they happened in. A filled dot is one we called notable, an outline one is routine, and hovering either shows the alert as it was written.

So if a change caught your eye in What changed, you can find the exact six-hour window it came from and see what the models were doing on either side of it. The Lab still shows far more merges and splits than we would ever alert on — that has not changed, and it is deliberate.

improved

The site now opens in the units you actually use

If you are outside the United States, every page now starts in °C and mm instead of °F and inches. Nothing to set, and no account needed — we read the country your network provider reports, the same signal the privacy page has always named, and we do not write it down.

If you would rather have it the other way, the switch in the header still decides, and now it sticks. It did not before, and that was the more embarrassing half of this: switching to °C worked on the page you were looking at and then quietly reverted the moment you clicked anything, because the setting was travelling in the address bar rather than being remembered. On the model leaderboards — the pages we point people at from outside — that meant it lasted exactly one click.

What this does not solve: the choice lives in your browser, so a different browser or device starts fresh unless you are signed in. And it is one switch for the whole site, not per-page — if you want London in °C and Phoenix in °F, there is still no way to say that.

new

London and Milan have joined the archive

Until today every city we scored was in the United States, which made the method hard to check if you forecast anywhere else. Knowing whether 103° against 95° was a reasonable argument in Phoenix takes priors about Phoenix. So there are now two European cities on the model leaderboards: London and Milan.

They are not there for the population. London brings UKMO — a model we already name — to a place people have opinions about it, and Milan brings Po Valley fog and Alpine barrier effects, which are a classic way for a global model to go wrong and the same physics that turned out to explain Los Angeles. Both leaderboards are already full: thirty days of scored forecasts each, because the scoring reads the models' own archived runs rather than waiting for us to accumulate them.

What this does not solve: the per-day receipts underneath those averages, and the record of what changed run to run, both start from today and build up from here — so those two cities have the leaderboard now and the history in a few weeks. NBM, the US official blend we benchmark against elsewhere, is a US product and has no row on either page. And both still open in °F unless you switch them.

improved

Verification now shows you the individual days

Verification has always told you how the models have done on average — the typical miss, the lean, lead by lead. Underneath those averages were per-day pages showing what every model said as one particular day approached, what actually happened, and who was closest. They existed, they were public, and there was no way to reach them from the page whose numbers they explain.

There is now, at the bottom of Verification: one line per settled day, newest first. If an average looks surprising, the days it is made of are one click away.

What this does not solve: only the twenty archived cities have receipts, so a place outside that list still gets the averages and nothing under them.

fixed

Links you share no longer land on a sign-in screen

The model leaderboards are open to anyone — no account, no invitation — and so are the pages for a watch you have shared. But every one of them was still wearing the rest of the site's navigation: the logo, the search box and two footer links, all of which lead somewhere that is still invitation-only during the beta.

So if you sent someone a leaderboard, the first thing they clicked was probably a sign-in screen for a site they had just been told was open. Those pages now only offer links a stranger can actually follow. A watch you share keeps its full navigation for you and drops it for the person you sent it to, since none of it would have worked for them.

What this does not solve: the rest of the site is still behind the invitation list. This makes the open pages honest about where they lead — it does not open anything new.

fixed

Saved places refresh themselves on the home page

A card for one of your saved places used to show whatever the site last read for it, which for a place outside the twenty archived cities could be days old — and once it was more than a day old, it was quietly showing an old day's forecast under the word today.

Two things now. A card that has been overtaken prints no numbers at all: it says when it was last read, rather than dressing up a stale answer. And when you load the home page, any saved place that has gone stale fetches a fresh reading right there, with a spinner while it works. If the fetch fails it says so instead of pretending.

What this does not solve: it only runs for places you have saved, and only when you visit — the site does not poll your places in the background. The twenty archived cities are unaffected; those are already read on a schedule.

improved

Today's icon now means the rest of today

The little weather symbol on the Today tile used to describe the whole calendar day, midnight to midnight — so a deck that broke up at ten still showed cloud at four in the afternoon, and a morning fog bank made the entire day look socked in. It now describes the hours you have left. Late in the evening, once there is no daylight to forecast, it goes back to summarising the day.

When it does change, it says so and names the model it came from, because that reading comes from a single high-resolution local model rather than the several the rest of the page compares.

What this does not solve: it only ever adjusts the sky — clear, cloudy, fog. If the models call the day wet, the icon stays wet even after the rain has gone through, because one model saying the coast is clear is not enough to drop a rain symbol the others still stand behind. The high and low, and everything on the chart, are unchanged. In France it does not apply at all — the local model there does not publish the hourly reading it needs.

improved

The front page starts with your things, if you have any

If you have watched a date or saved a place, the front page now opens with them, under a heading called Your weather. What the models changed overnight comes next, and the cities we archive last. You came back for your own places; the national picture is context around them, not the headline.

If you have not saved anything yet, the order is the other way round — what changed in the models first, because it is the one thing on the page that shows you what this site does before you have given it anything.

Those sections are also easier to tell apart now. Their titles used to be very slightly *smaller* than the city names inside them, which is a strange thing to discover about your own page — so the titles are bigger, and there is real space between one section and the next instead of just a thin line. Under Your weather, your watched dates and your saved places are labelled separately, because the two kinds of card look different without ever saying which is which.

Two smaller things. The search box in the top bar is gone from this page: the big one in the middle does the same job, and two search boxes on one screen is just the same question asked twice. And the date field for watching a day now sits centred under the search box instead of hanging off to the left.

improved

Fewer words on the front page, and a definition

The line under the headline was thirty words promising four things at once. It now promises the two that are actually the product: forecasts that show you when they move, and which models have earned your trust where you live.

City cards no longer repeat a change the list above them has already reported. Seeing the same event twice on one screen made it look like two things were happening. What a card carries now is the state of the forecast — today's number, how far apart the models are, and the first day ahead they stop agreeing — and the list above carries what changed about it.

And a card used to say "POPs 15–58%". That is forecaster shorthand for the chance of rain, defined exactly once in this whole site, on a page most people reach later if at all. It says "rain chance 15–58%" now. The shorthand is not wrong and it is not going away where there is room to explain it — but a card you skim is not that place.

Same idea in the change list. When the models come round to one answer, it used to name every model in the winning group: "settled toward the cooler camp (AIFS, ECMWF, GEM, ICON, UKMO)". Which models agreed is real evidence and worth having, so it is still there if you switch to the forecaster wording — but five abbreviations in the middle of a sentence is a lot to step over when you were reading for the weather. It now says "settled toward the cooler camp". The camps stay: they are the thing this site is for.

improved

A front page you can use on a phone

Every button, link and field on the home page is now at least 44 pixels tall. Several were closer to 33, and the ✕ that removes a saved place was a bare character with no height at all — on a phone that is a precision tap for something you meant to do once. Form fields also have a visible edge now; they were drawn in a grey barely separable from the page behind them.

The search box is the one thing the front page asks you to do. Forecast and "Watch this date" used to sit side by side as equals, and pressing Enter did one or the other depending on whether you had filled in a date — the same key, two outcomes, with nothing on screen saying which. Enter goes to Forecast now, always. Watching a date is still right there, one step down, with its own label instead of an unexplained date box.

The change list is three lines instead of seven, the archived cities are one row with the rest a click away, and if you have not pinned a date yet you now see an example of what a watched date looks like rather than a paragraph describing one. None of this changes a single forecast — it is the same numbers, arranged so the page stops asking you to read all of it.

new

The biggest moves, on the front page

The home page now opens with the five largest temperature moves the models made in the last day — which city, how far, from what to what, and for which day. They were always in the record, but the list underneath ranks by how severe a change is, and that ranking never once surfaced a temperature shift. Denver dropping fourteen degrees for the following Thursday was on file and nowhere on the page.

A move only appears if the newest model run still stands behind it. That sounds like a detail and is the whole feature: forecasts get walked back, and the largest move on record the day this shipped had already been taken back past where it started. Showing it would have put a retraction at the top of the page. The honest version of this list is quieter than the raw record, and that is the correct trade.

The list underneath changed too. It ranks by how severe a change is, and one kind of change — models that had disagreed coming back into agreement — was severe enough to win every slot, every day: across a week, forty-one of forty-nine lines were that one thing. No single kind may take more than two lines now while another is waiting, so storm signals and models *breaking* into disagreement reach the page instead of queueing behind it. On a genuinely one-note day the list still fills up as before.

None of this ranks how *important* a change is to you — only how far past its own threshold the models went. A three-degree change on the day of your wedding matters more than thirteen degrees somewhere you don't live; that is what watching a date is for.

improved

Two more things the usage log writes down

On a forecast or Model Lab page, the site now records how long the page was actually in front of you, and which forecast model you singled out if you picked one. Which model, not which place — and the timer only runs while the page is visible and you are doing something, so a tab left open in the background adds nothing.

These are the only two things your browser has to tell us; everything else in the log we can see for ourselves because we served the page. I added them because I cannot otherwise tell whether the model-comparison tools are worth building on, and guessing at that is how features get kept that nobody uses. The privacy page says all of this too, and the same switch there turns it off along with everything else — it always did, this changes nothing about how declining works.

fixed

The model leaderboards read in metric

The model leaderboards and the receipt pages under them showed °F no matter what you asked for. The toggle was there, it just did nothing — which is worse than not offering it, because it looks like an answer. They convert properly now, and each page says which system it is in rather than leaving a bare degree sign to be guessed at.

I found this while fixing something smaller and cosmetic on other pages, which is the honest version of the story: nobody reported it, because everyone using The Spread so far reads Fahrenheit.

new

A page for what changes

You are reading it. From here on, what changes in The Spread gets written down on this page — what is new, what got better, and what was broken and is not any more. The last one matters most to me: a product that only ever announces wins is telling you half a story.

If you are one of the founding thirty, this is where you will see your own reports land. I will name you only if you tell me you want that, and the default is that I do not.

improved

The Spread works in metric

Every number is now stored and compared in one unit system and converted only where it is printed. Before this, switching to °C pointed you at an archive that did not exist: a metric reader got "no archive yet" for all 21 cities, and change detection had never once run for them.

Two things follow. A metric visitor no longer pays to fetch the same weather a second time, and a run-to-run change has to clear the same real threshold either way — a move that mattered in °F used to come up short in °C, so the same weather told two different stories depending on how you read it.

new

Your saved places follow you, not your browser

You can sign in with an email address now, and your saved places and watched dates follow the account rather than whichever browser you happened to open. Signing in adopts what that browser was already carrying, as a move rather than a copy — two owners holding one place drift apart the moment either one edits it, and "which device is right" is the question an account exists to end.

What it deliberately does not do is join your email address to anything measured. Those stay separate on purpose, and the privacy notice says exactly what is kept.

new

The forecast page says who has been right

The Recent accuracy block showed the numbers and never delivered the verdict. It now names the model that has led at your location and which way it has been biased, in the same words the model leaderboards use.

Below 14 scored days it says nothing rather than crowning a leader on a sample one busted forecast could flip. The National Blend and our own blend are never eligible for the verdict — a consensus product agreeing with the models it is built from is not evidence of anything.

fixed

Pages stopped scrolling sideways on phones

The Forecast / Model Lab / Verification tabs hung about 15 px past the edge of a 390 px screen and dragged the whole page with them. They wrap now instead of scrolling, because three tabs is a fixed set and a scrolling row only hides the third one.

It happened only in dark mode, where the labels are uppercased and "VERIFICATION" becomes the widest thing on the page. That is the part worth saying out loud: every layout check had been running in light mode, so nothing in the tooling could see it. Both themes are checked now.