GBIF occurrence records  ×  ERA5 reanalysis  ·  2000–2024

Ahead of Season

Birds don't read a calendar. They read the weather. This lines up 25 springs of sightings against the temperature each of those springs actually had — then lets you re-sort the years by warmth instead of by number, and see whether the arrivals fall into line.

Place
Call it “arrived” at 15%

The day this share of the season's effort-corrected sightings has accumulated. Low = the scouts. High = the whole flock.

Order the years by

Switch to warmth and watch the ticks.

Twenty-five springs

Each row is one year, running 1 February (left) to 30 June (right). The filled shape is how often this species turned up in the day's birding, once the number of birders is divided out. The vertical tick is the arrival date. Row colour is that spring's temperature — cool to warm.

Warmth against arrival

one dot = one spring

Does the method survive its own control?

A resident bird never arrives — it is here all winter. If the method reports residents shifting with warmth too, it is measuring birdwatchers, not birds. Sorted by sensitivity in the selected place.

How this was made

The two sources

Sightings come from GBIF, the global pool of biodiversity records — mostly eBird checklists and iNaturalist photos here. Weather comes from Open-Meteo's ERA5 reanalysis, which gives a daily temperature for any coordinate back to 1940. Neither needs a key. Nothing here has been combined before in this workspace: the join is (box, day) — a sighting happened at a place on a date, and that place had a temperature on that date.

Two free public datasets. One says where and when animals were seen. The other says what the weather was there. This puts them side by side.

Dividing out the birdwatchers

Raw sighting counts are useless across years: this area logged 210 hummingbird records in 2000 and 13,261 in 2024. That is a change in observers, not in birds. So every count is divided by all bird records in the same box on the same day — the same query with the species filter swapped for class Aves. What is plotted is a detection frequency: of the birding done that day, what share found this species.

Far more people report birds now than in 2000. If we counted raw sightings, every species would look like it was exploding. Instead we ask: out of all the birds people reported that day, how many were this one?

What counts as arriving

There is no single right answer, which is why it is a slider rather than a number. The arrival date is the day the season's running total of effort-corrected sightings first crosses your chosen share, interpolated between days. A low percentile tracks the first scouts and is jumpy; a high one tracks the bulk of the population and is steadier. A year is skipped when it holds fewer than 25 records in the window.

You pick how much of the flock has to show up before we call it "arrived." Move the slider and every number on the page recomputes.

Measuring the spring

Spring warmth is the mean daily temperature over March and April at the box's centre. The panel also carries growing degree days (accumulated warmth above 10 °C from 1 January), the measure plants actually respond to, and the day that total first reaches 100 — a thermal spring date. Across these 25 years the degree-day total ranges more than threefold.

"How warm was that spring" measured three ways — average temperature, total accumulated warmth, and the date warmth arrived.

Why some migrants ignore a warm spring

The species that respond most here are the ones that winter closest. A Tree Swallow winters along the Gulf and can read the same spring the trees are reading. A Ruby-throated Hummingbird is in Central America in February, where a mild March in Maryland is invisible; it leaves on daylength, which is identical every year. So a flat line for a long-distance migrant is not the method failing — it is the constraint that makes phenological mismatch a live worry, because the insects those birds arrive to eat do track local warmth.

Birds that spend winter nearby can feel an early spring coming. Birds wintering in the tropics can't — they leave on schedule no matter what. That gap is why warming springs worry ecologists.

The control drift, and where it fires

The residents are not decoration — they are the instrument's zero. Their slope is subtracted from every migrant's before the verdict is written, and when it strays past 0.4 days/°C the place is flagged instead of reported. That flag fires in Boston, where both residents drift about +0.7 days/°C. Residents cannot arrive, so that number is not migration; it is most likely warm springs changing when and where people go birding. Washington and Atlanta come in near zero and can be read at face value.

Two of the birds here never migrate, so any "arrival shift" they show is pure measurement error. In Boston they show a big one — so Boston's numbers get a warning label instead of a conclusion.

What it cannot tell you

This is a correlation across years, not a causal claim, and the sightings are opportunistic — people bird where it is pleasant, and warm mornings pull them outdoors, which the effort correction reduces but cannot erase. Records before roughly 2010 are thin. Reanalysis is a model, not the thermometer down the road. And a shared key means a join is possible, never that it is meaningful — the resident controls are there precisely to test that.

This shows things moving together. It does not prove the warmth caused the birds to move. The control species are the honesty check.

Where 2025 went

The window stops at 2024 on purpose. GBIF held only 422 hummingbird records for this area in 2025 against 13,261 in 2024 — not an empty spring, but the lag before eBird's annual export lands in GBIF. Plotted uncritically it would have drawn a dramatic and entirely fictional early arrival. Incomplete years are excluded rather than shown thin.

The most recent year's data hasn't finished loading into the database yet, so including it would have invented a fake result. It's left out.
Sightings: GBIF — per-record licences, CC0/CC-BY/CC-BY-NC Weather: Open-Meteo ERA5, CC-BY-4.0 Click any year to open its underlying GBIF search.