How it works
A simple, transparent model — and what we did and did not check.
The model
For each city we add up daily mean temperatures above a base temperature, starting on a fixed day of the year. When the sum reaches a threshold, the flower is expected to open. Start date, base temperature and threshold are fitted for each flower and country on past observations (Germany: DWD volunteer observers; Sweden: Naturens kalender observers), 1991–2025 for Germany and 2008–2024 for Sweden.
For spring 2027 we don’t know the weather yet. So the “expected start” is the model’s date for each of the last 20 weather years (2006–2025), reported as the median, with the 10th–90th percentile as the likely range.
Labels
- validated — we have ≥ 8 years of real observations near this city, ≥ 30 city-years in the country, the leave-one-year-out error is ≤ 5 days, and the model beat simply using the average date.
- approximate — anything else: too few observations, error above 5 days, model not clearly better than climatology, or no local data at all (then parameters are transferred from Germany and the error is unknown; in our lilac test such a transfer to Sweden was off by about 4 days).
Backtest results
| Flower | Country | City-years | Model MAE (days) | Climatology MAE (days) | Within ±5 d | Parameters |
|---|---|---|---|---|---|---|
| Lilac | Germany | 350 | 2.85 | 6.16 | 87% | fitted locally |
| Lilac | Sweden | 63 | 3.48 | 4.69 | 81% | fitted locally |
| Forsythia | Germany | 347 | 4.45 | 9.6 | 69% | fitted locally |
| Forsythia | Sweden | – | n/a | n/a | n/a | transferred from DE |
| Wood anemone | Germany | 350 | 4.33 | 6.24 | 70% | fitted locally |
| Wood anemone | Sweden | 96 | 5.67 | 6.09 | 59% | fitted locally |
| Sweet cherry blossom | Germany | 151 | 3.45 | 4.94 | 78% | fitted locally |
| Sweet cherry blossom | Sweden | 36 | 2.96 | 6.27 | 81% | fitted locally |
| Horse chestnut | Germany | 350 | 2.73 | 5.79 | 88% | fitted locally |
| Horse chestnut | Sweden | – | n/a | n/a | n/a | transferred from DE |
Leave-one-year-out: each year is predicted by a model fitted without that year (parameters re-selected inside every fold). City value = median of nearby observers (Germany: ≤ 30 km and ±150 m altitude, ≥ 4 stations; Sweden: ≤ 40 km, ≥ 2 sites). Swedish samples are small (2–4 sites per city-year).
Closer to the season (lilac, Germany)
If the weather up to a date is known and the rest of spring is assumed average, the lilac error shrinks: about 5.71 days three weeks before the flowers open, 4.87 days two weeks before and 3.67 days one week before (MAE). With an actual weather forecast it should be better, but we have not tested that. This alpha does not yet update from live weather.
Limits — please read
- “Start” means the first flowers open, not the peak. We have no open data on the peak.
- City values are medians of observers; a single garden can differ by 4–8 days.
- Only Germany and Sweden have open observation series we may use commercially. Other countries are not covered.
- Flowering length is measured for some flowers (Swedish observers, German cherry) and assumed (14 days) for forsythia and horse chestnut.
- Temperatures come from a reanalysis (ERA5-Land); the live weather product may differ by 1–2 days.
- Not modelled: winter chilling, day length, urban heat, altitude beyond ±150 m, extreme years.
- This is alpha software. Dates are estimates and can be wrong.