What it is
Forecord Weather builds one forecast by blending several weather models, then shows how much they agree and how they’ve been changing. Everything is downloaded from Open-Meteo and calculated right here in your browser. There’s no account, no server and nothing stored anywhere but this browser.
The page is read top to bottom: the forecast first, then how sure it is, then how the models got there.
Visits are counted anonymously. Each time the page opens, it sends one “page opened” note to GoatCounter (a privacy-friendly counter) with the screen size and the site you came from. No cookies, no location, no settings and nothing personal.
Normals and Anomalies
Normal means the average high and low for that date over the standard 30-year period: the 30 years ending with the last full decade (1991–2020 through 2030; the app switches to 2001–2030 on its own in 2031). They come from Open-Meteo’s historical weather for this spot, pulled once per place and kept, and are smoothed over the two weeks around each date. They’re modeled history on a grid a few miles across, so they can differ by a degree or two from the official normals at the nearest airport.
- Unusual is judged by the season: a day stands out when it’s at least 4° off normal and warmer or colder than most past years on that date. A big swing in a changeable month counts for less than the same swing in a steady one.
- Anomalies (a Timeline view): each day’s anomaly, its departure from the 1991–2020 normal for that date. The top row is each day’s forecast against normal, the same highs or lows as the cards. Underneath, each earlier main run, newest first, so you can see whether a warm or cold pattern has held, grown or faded. Hover a cell for the forecast, the normal, and the likely range for that day (the same range shown on its card). Within 2° of normal shows plain. The earlier rows use only each run’s main models, so they can differ slightly from the cards.
- The summary adds a sentence when there’s a stretch of unusual days, and the Extended Forecast line says when a pattern turns.
Getting Around
The bar at the top stays with you as you scroll: ↑ Top and a button for each section.
- Click a day card (or an Extended Forecast card) to follow that day. The bar switches to that day’s shortcuts: Hour by Hour (the Forecast chart), Precipitation Timing (only when a model has rain that day), What’s Changed (only when that day’s forecast moved or the models split since yesterday), Model Evolution (on rain for a wet day, the high otherwise), Plumes, and Odds (only when something there reaches 10% of runs).
- The followed day is outlined or shaded everywhere it appears: its card, the Forecast chart, Precipitation Timing, Plumes, Odds, its row in What’s Changed, and a marker on its button in Model Evolution. It stays that way however you move around the page.
- Click the same day again, another day, or ✕ in the bar to stop following.
- When the heads-up box warns about something Odds tracks, See the odds opens it on that day.
The models
- HRRR
- NOAA’s high-detail model for the lower 48. A new run every hour. The hourly runs go out 18 hours, and the 00, 06, 12 and 18Z runs go out 48 hours. Best for timing, storms and local detail in the next day or two.
- NAM Nest
- NOAA’s other high-detail model for the lower 48. Runs every 6 hours and goes out 60 hours.
- GFS
- NOAA’s global model. Runs every 6 hours and goes out about 16 days.
- ECMWF
- The European global model, long rated the most accurate global model. Runs every 6 hours.
- AIFS
- The European center’s AI-based global model (ECMWF AIFS). It has no gust forecast.
- Ensembles
- ECMWF ENS, GEFS and AIFS ENS each run a model dozens of times with slightly different starting points. Forecord uses the middle (median) of those runs, and their spread to judge how uncertain things are.
Run times are in Z (UTC). 12Z is 8 AM Eastern in summer and 7 AM in winter.
Locations
- Search by city or zip in the box at the top (press / to jump there). Place search is also from Open-Meteo.
- Home is your own location, saved only in this browser. It’s pinned at the top of the location menu. Use ☆ on any place, or Set as home, to change it.
- Recent keeps your last 5 places. Remove one with ×, which also deletes its saved data from this browser.
- When you’re viewing somewhere other than home, a Viewing strip says so and offers a way back. The address bar then carries that place, so you can copy the link to share it.
- Outside the lower 48 (Alaska, Hawaii, other countries), HRRR and NAM Nest don’t cover the location, so the forecast uses the global models and ensembles only. A note says so.
Headline, summary & heads-up
The headline picks the most important thing in the next four days, checking in this order:
- Snow of ½″ or more
- Thunderstorms on the busiest day
- Soaking rain: 1″ or more (unless it’s part of a rainy stretch)
- Freeze: a low of 32° or colder
- Heat: a high of 95° or more
- Rain ending today, with the rest of the days dry
- Rainy stretch: three or more wet days in a row
- Rain or light rain on the busiest day
- Models split: rain possible, but the models disagree on it
- A little snow (under ½″)
- Frost: a low of 33–36°
- A big temperature change: highs 12° or more apart from one day to the next
- Gusty winds
- Otherwise a dry stretch, noted as muggy (dew points 70°+) or comfortable (55° or lower, with highs 62–84°)
After a weather event (snow, storms, rain, a rainy stretch, heat or a freeze), the headline can add one detail, the first of these that applies and still fits on one line:
- Something dangerous: “with storms Sunday” inside a rainy stretch, or “then a freeze Sunday night” or “then storms Sunday” afterward
- A big temperature change the next day: “then much cooler” or “then much warmer” (12° or more)
- In a rainy stretch, “heaviest Saturday” when one day has at least half the rain, or the total (“about 2.9″ in all”) when the models agree
- “Totals uncertain” when the models disagree on rain amounts
- “Then dry” when every day after is dry
Rain on the day of a freeze becomes one headline: “Rain on Saturday, then a freeze Saturday night (28°)”. Storms inside a rainy stretch are named in the stretch’s headline instead of replacing it.
“Wet” means at least a 50% rain chance. A rain amount appears only when the models agree on it (High confidence); otherwise the headline uses words, like “Soaking rain”. Snow amounts are the models’ snowfall, not the melted water.
Ice (freezing rain or sleet) is worked out hour by hour. For GFS, HRRR, ECMWF, AIFS and the ECMWF and AIFS ensembles, it uses the temperature about 2,500 and 5,000 feet up: when the ground is 32° or colder but a layer above it is warmer than freezing, snow melts on the way down and refreezes as ice. NAM and GEFS don’t provide those temperatures, so their ice is estimated from the ground temperature and their snowfall alone, and is marked “ice estimated”. Upper-air temperatures are used for the next 5 days.
The headline, summary and heads-up only describe what’s still ahead. Once part of today has passed, they use the models’ forecast from now on: “Rain continues until about 4 PM”, “about 0.40″ more”, or nothing at all about rain once the models show no more today. The day card still shows the whole day’s forecast. After 5 PM, today’s high is behind us and the headline looks to tonight and the days ahead.
So the wording doesn’t flip back and forth on runs that land right at a line, a line the headline has crossed holds until the number is clearly back: rain chance below 40% (not 50%), rain below 0.85″ (not 1″) or 0.2″ (not 0.25″), gusts below 31 mph (not 35), and a clearly wider spread before the total drops out. This applies while the headline is about the same day. The numbers always show the latest run.
The summary adds up to three more facts, chosen in this order and skipping anything the headline already says: when the rain or snow starts, ends and is heaviest (for a rainy stretch, which day carries most of it, or each day’s amount); how much; which models are wetter and which are drier, when they disagree; a second event (a freeze, frost, heat or snow on another day); when storms are most likely; peak gusts; and what the following day looks like.
Day cards add their own short notes the same way, including “Freeze overnight” or “Frost possible overnight” before cold nights and “Storms most likely 2–6 PM” on stormy days.
The orange Heads-up bar appears when the busiest day reaches any of these:
- 1″ of rain or more, with at least a 60% chance
- gusts of 40 mph or more
- thunderstorms
- 1″ of snow or more on any day
- a high of 95° or more, or a low of 32° or less, on any of the four days
The bar adds the heaviest-rain window, the gusts, and how sure the rain total is. These are Forecord’s own thresholds, not official warnings from the National Weather Service.
Official alerts: when the National Weather Service has a warning (red), watch (orange) or advisory (yellow) in effect for the location, it shows in a bar at the very top, most serious first: warnings, then watches, then Special Weather Statements from the last hour (usually a strong storm nearby), then advisories and other statements. Click an alert to open or close its full NWS text. Alerts are checked every 2 minutes. “Details” shows the full NWS text. US locations only; the bar is hidden when nothing is active.
Confidence
The panel at top right rates each part of the forecast by how closely the models agree. It opens on the busiest day; click any day card to see that day.
| High | Moderate |
| Timing: share of guidance showing rain during the day’s rainy hours | 80%+ | 60%+ |
| Rain totals: how wide the range is, compared with the expected amount | half or less | up to equal |
| Gusts: spread between models | 10 mph or less | 15 mph or less |
| Temperatures: spread of the highs | 4° or less | 8° or less |
Anything wider is Low. On a dry day, Staying dry replaces timing and rain. When there’s a chance of rain but not enough in the blend to rate timing or totals, Rain or dry shows how split the runs are. The overall rating is the average of the rows.
Spreading out or coming together compares how far apart the main models are now with how far apart their runs were 24 hours ago. It shows when the change is at least 2° for temperatures, 3 mph for gusts, or, for rain, the larger of 0.15″ and a quarter of the expected amount.
Model Runs
The bar under the header shows the newest run of each model in use, grouped as short-range, global and ensembles. Up to date means every model’s newest published run is loaded. When a run is expected within 45 minutes, the bar names it.
Details opens the table:
- Run: the model run in use. For HRRR, the newest hourly run covers the first 18 hours, and the latest 00, 06, 12 or 18Z run covers beyond that.
- Arrived: when Open-Meteo made the run available.
- In app: when this page first loaded the run, and how long after it arrived. While the page is open it checks for new runs every 2 minutes when one is due (every 10 minutes otherwise, and right away when you come back to the tab), so this is usually within a few minutes. “page opened” means the run arrived while the page was closed and came in when you opened it; “Refresh” means you pressed the button. A gap of more than 20 minutes from the regular check is highlighted.
- Next run: an estimate from how long that model’s runs at the same hour took to arrive the last few times, learned as the page sees them (until then, from how long the current run took, with about 45 minutes more for HRRR’s longer 00, 06, 12 and 18Z runs). The green badge is the model due next. Late means more than 90 minutes past the estimate.
- NEW: arrived within the last hour.
Open-Meteo publishes each run after it finishes, usually 1½–2 hours after the run time for HRRR and longer for the global models and ensembles. Sites that read NOAA’s files directly can show a run sooner.
Day cards
Four days, starting with today. From 5 PM to midnight, today’s card also shows Tonight: the overnight low, rain tonight and peak gusts until 8 AM. Tonight runs into early tomorrow, so its rain can include some of tomorrow morning’s. High is the warmest hour from 7 AM to 8 PM, Low the coolest from 7 PM to 8 AM the next morning (the night after the high, as the NWS pairs them, so today’s card carries tonight’s low), Rain the day’s total, and Gusts the peak from 6 AM to 10 PM. Every card covers its whole day, Today included: hours that have already passed use what each model forecast for that hour just before it, so the morning’s rain stays in today’s total. These are model forecasts, not measured rain.
Each number is a weighted blend of the models. A model counts for a day only if its run covers at least 95% of that day’s hours.
| Weight | Within 48 h | Later |
| HRRR | 2 | 0 |
| NAM Nest | 1.5 | 0 |
| ECMWF | 1 | 1.5 |
| GFS | 1 | 1 |
| ECMWF AIFS | 0.5 | 1 |
| ECMWF ENS (median) | 1 | 2 |
| GEFS (median) | 0.5 | 1.5 |
| AIFS ENS (median) | 0.5 | 1 |
“Within 48 h” means the day’s midday is no more than 48 hours away. For days whose midday is within 24 hours, the three newest hourly HRRR runs are also blended in, at 0.75 each. These weights are informed judgment, not yet tuned to how each model has actually verified.
- Range (amber): within 48 hours, the spread across the models in use; later, the middle half of all ensemble runs. It appears only when it’s wide enough to matter: more than 4° for highs, 5° for lows or 10 mph for gusts, or for rain at least 0.15″ and more than half the expected amount.
- Outlier (gray, like “HRRR 83°”): with 4 or more models, one that sits clearly apart from the next-closest is named and left out of the range. “Clearly apart” means 3°, 5 mph, or for rain 0.25″ and 40% of the typical value. It still counts in the blend.
- Rain chance: the share of ensemble runs and models with at least 0.01″, plus nearby grid points from HRRR and NAM, rounded to 5%.
- Storm icon: rain chance of 40% or more, and at least 40% of the models that report storm energy (HRRR, NAM, GFS, ECMWF) show CAPE of 1,000+ at the same time as rain. Within the next 72 hours, a storm day is exactly a day with a ⚡ block on the chart, so the cards, the chart and the headline always agree. A morning storm day that clears reads “Early storms, then clearing”.
- Tag: Short-range models when HRRR and NAM both cover the day, Short-range + global when one does, Global models otherwise.
Timeline
- Temperature line: the hourly blend, using the same weights as the cards. The shaded band is the middle half of all ensemble runs.
- Dew Point view: the teal line is the dew point from the main models, with the same weights as the cards. When the temperature falls to within 2° of the dew point on a calm, mostly clear night (wind 5 mph or less, cloud cover 40% or less), fog, heavy dew or frost is possible, and the chart says so; hover any hour for the temperature and humidity. Each day’s pill is its daytime dew point, the same as its day card: under 50° dry, 50–59° comfortable, 60–67° humid, 68° and up muggy. In 10 days the line is one point per day.
- Front passes marks a front within the 72 hours: the dew point falls 10° or more and the wind turns to the west, northwest, north or northeast. Where the wind already blows from there (common in the mountains), a drop of 14° or more that lasts a day counts too. Hover the label for the numbers.
- Wind arrows under the gust bars point the way the wind is blowing.
- Latest HRRR marks the hours covered by the newest hourly HRRR run.
- Rain bars: the height is each 3-hour block’s blended rain amount (the number underneath), and the shade is the chance: a pale bar is unlikely, a solid one near certain. The line is the running total from midnight today (it starts above zero when rain has already fallen this morning), with the total at its end. Each day’s label is its full-day total, the same number as its card.
- Now marks the current time at the left edge.
- Precipitation Timing (switch at the top of the chart): one row per model showing the hours it has rain falling, brighter for heavier rain, and a “dry by” mark where each model’s rain ends. Ensemble rows are brighter when more of their members have rain. ⚡ marks hours where a model has storm energy with its rain; hatching means the hours are past that model’s range. On the HRRR and NAM rows, a small green dot means rain within about 10 miles but none at your location. Those two models are fine-grained enough that a nearby shower can miss your exact spot, so this shows the near misses without counting them as rain here. It updates with every new run, including HRRR’s hourly runs. The page remembers which view you last used.
- Plumes (third switch): every ensemble run drawn as a thin line, with the main models bold on top. Choose Rain total (rain added up from now) or Temperature, over 72 hrs or 10 days. A tight bundle means the runs agree; a wide fan means the amount or timing is uncertain; two separate bundles mean two different outcomes are possible. The shaded band holds the middle 80% of runs and the dashed line is the middle run. On the right, Where runs finish stacks up every run’s final value, with each main model named beside it. On temperature, a dotted line marks where the runs fan out (the middle 80% more than 12° apart). The chips highlight one ensemble’s runs, hovering shows the spread and each main model at that moment, and the i button explains how to read it. The summary above the chart is worked out from the same runs.
- Odds (fourth switch): for each of the next 10 days, the share of ensemble runs that cross a line that matters: 1″ or 2″ of rain in a day, snow, gusts of 30 or 40 mph, frost (36°), freeze (32°) and heat (95°). Today counts from now. Frost and freeze go by night, like the card lows: 7 PM to 8 AM the next morning. Rain and snow also get a Next 72 hrs column, because one storm can be split across two days. Each ensemble counts equally, and hovering a cell shows each one. A row only appears when some day reaches 10%, and the rest are listed underneath. These are raw counts of model runs, not adjusted for known biases: ensembles tend to run low on gusts and warm on calm, clear nights.
- Thunder ⚡ on a block: at least a 30% rain chance, and at least 40% of the models that report storm energy (HRRR, NAM, GFS, ECMWF) show CAPE of 1,000+ together with rain.
- Wind row: the big number is the sustained wind (blended from the models), and the small g number is the models’ “up to” gust. Model gusts often run high on cool, cloudy, stable days.
- Normal high / low: the dashed lines are the 30-year normal high and low for each date (see Normals below). The hover and the 10-day day popup show how far each day is from normal.
- Hover the temperature line for any moment: the temperature, the range most ensemble runs give, and the rain and wind for that 3-hour block. In 10 days the hover moves in 3-hour blocks, since the models that far out don’t give hour-by-hour detail. Click any block (a 3-hour block in 72 hrs, a day in 10 days) for its full details.
What’s Changed · Since Yesterday
Compares each model’s newest run with its own run from 24 hours earlier, for each day’s high, overnight low (7 PM to 8 AM, the same night as the cards), rain and peak gusts. Each dot is one model: right of center means higher than before, left means lower.
- Each cell starts with the number on the day card now. When the models moved together, the typical (median) change follows, like “▼3 calmer”, with how many models moved that way (“2 of 3 models moved down”). The change is filled when it’s at least 3° (highs or lows), 0.25″ or 5 mph.
- No change: the models moved less than half that amount (dots inside the shaded band).
- Same, models disagree (like “GFS warmer, NAM Nest cooler”): models moved a meaningful amount in opposite directions, so the forecast stayed the same.
- Same, only one model changed (like “Only GFS changed: 0.29″ drier”): one model moved a lot by itself, so it isn’t a trend and the forecast stayed the same.
- Main runs only: each model’s newest 00Z, 06Z, 12Z or 18Z run is compared, so HRRR’s hourly runs in between don’t move this section. “Last change” is when the newest of those runs arrived, and which one it was.
- A model counts only if both runs reach that day. That’s why HRRR and NAM can be missing for days 2–3.
Click a cell for each model’s before and after values, and a link to Model Evolution.
Model Evolution
Pick a day and a measure. Each row is a model, and each column is one of its runs over the last 48 hours, oldest on the left. The big tile is each model’s newest run, and the solid tile is the forecast. Brighter numbers are higher. A dash means no run for that day; hover it for why.
- Model blend: the weighted blend at each run time. It uses each model’s newest run available then, if no more than 12 hours old, with the same weights as the cards.
- Main-run blend: the models in the grid blended with the day cards’ weights, run by run. Under HRRR, its newest hourly run (hover for the last few).
- Forecast: the number on the day card, in the newest column, and how the main-run blend becomes it: HRRR’s newer hourly runs, the ensembles and, for gusts, the windiest 3 hours (models peak at different hours). The steps add up to the forecast as shown.
- Change: each row’s newest run compared with its oldest run shown; hover it for the range across all of its runs. The one-day comparison is in What’s Changed (24 h).
- Dew point is each model’s daytime average (7 AM–8 PM), the same measure as the day card. The ensembles don’t carry dew point, so that view has no ensemble line.
- Ensembles are also in the cards’ blend, but Open-Meteo keeps no past runs for them, so they appear as one line under the grid. That’s why a card can differ a little from the Model blend row.
- The summary notes big moves, models drifting steadily in one direction, the jumpiest model, and when models that only just started reaching the day are behind a change in the blend.
Model Scorecard
How each model has actually done at your weather station over the last 7 days. Each finished day, the station’s high, low and rain are compared with what each model forecast 24, 48 and 72 hours earlier (from Open-Meteo’s archive of past runs). Each hour is graded on the forecast made that many hours before it, so a 3 PM high is graded on what the model said around 3 PM the day before.
- Station: your Tempest when it’s connected in Settings and within 15 miles; otherwise the nearest official National Weather Service station (US only).
- Ranking: highs and lows are ranked by average miss, either direction. Leaning appears only when a model missed the same way on most days by 1° or more on average. Rain is ranked by how many days it called rain or dry right, then by how close the amounts were on days when rain fell or was forecast.
- The chips: each day’s miss for each model, so you can see the days behind every average. 48 h and 72 h show the same model’s average when its forecast was made further ahead.
- Rain counts from 0.05″, for the forecasts and the station alike. For a Tempest, the rain used is Tempest’s Rain Check total, which arrives a few hours after midnight; until then that day’s rain shows “…”. If no Rain Check total arrives by noon the next day, the station’s own reading is used.
- HRRR only forecasts about a day ahead and NAM Nest about two, so they drop out of the longer views. Gusts aren’t graded, since a station’s placement affects them so much. Results are kept in this browser for 7 days.
Updates & data
- While the page is open, it checks for newer runs every 2 minutes when one is due and every 10 minutes otherwise, and reloads only when one is out. It also checks when you return to the tab, wake the computer, or come back online. ↻ forces a reload.
- A new place takes about 10–20 seconds the first time: the forecast shows first, and the 48 hours of past runs follow. Past runs are saved in this browser, so returning visits only download new runs.
- Times on the forecast are the location’s local time; run times are in Z (UTC).
- Data: Open-Meteo (CC BY 4.0). Model sources are NOAA (HRRR, NAM Nest, GFS, GEFS) and ECMWF (IFS, AIFS and ensembles).