What the forecast is built on

Open data, our own weather service, and a backtest against finds we did not collect. Every source below is named, licensed and dated.

Most foraging apps are field guides: they tell you what a chanterelle looks like. We answer a different question — whether this weekend is worth the drive — and that question is answered by data, not by photographs.

So here is the whole list, with what we take from each source, under which licence, and how much of it is actually collected. Where a layer is not collected yet, the table says so rather than leaving a blank you would read as coverage.

SourceWhat we takeLicenceCoverage
ESA WorldCover 2021 v200Forest cover, conifer share, herbaceous wetland, open water

Sentinel-1 and Sentinel-2 imagery at 10 m per pixel. Forest is a gate, not a bonus: a cell with no trees does not grow woodland mushrooms however good the weather is. Conifer share matters because species disagree about it — the taiga tick lives in conifers, the European one avoids them. Wetland is kept apart from open water on purpose: a bog is land, and treating it as water would erase the boreal forests of Karelia and Western Siberia from the map, along with the cranberries and cloudberries that only grow there.

CC BY 4.082 regions · wetland collected 27 Aug 2026
AWS Terrain TilesElevation, slope, aspect; altitude correction for temperature

108 m per pixel, which is ample: we correct temperature by height across an H3 cell about 1.2 km wide, so the argument is about hundreds of metres, not single ones. We deliberately did not take the Copernicus GLO-30 COG version — it needs GDAL, several hundred megabytes of dependencies, for data we read once.

Open dataKrasnodar Krai only
HydroRIVERS (HydroSHEDS, WWF)Running water, kept separate from standing water

Blackfly larvae cling to stones in streams and riffles: they need current to breathe, and stagnant water starves them of oxygen. Mosquito larvae need the opposite — a puddle. We were tempted to use bog cover as a stand-in for both and rejected it: in June, by a taiga river, bog cover is low and the substitute would have suppressed blackfly exactly where it is worst. A bad proxy is not slightly less accurate; it answers with the wrong sign. HydroRIVERS is derived from terrain rather than mapped by hand, which matters: hand-mapped coverage follows population density, and a stream layer built from OpenStreetMap would report no blackfly in the taiga.

CC BY 4.0Not collected yet
OpenStreetMapBoundaries of protected areas

Real boundaries rather than circles drawn by hand. Until this is collected the site falls back on the hand-drawn shapes, which for 76 of 77 regions means 'no protected areas' — and that is a statement we would rather not make.

© OpenStreetMap contributors, ODbLNot collected for any region yet
Open-MeteoWeather and soil series, including moisture at 7–28 cm depth

We run our own instance rather than calling the public endpoint. Soil moisture at depth matters more than rainfall: mycelium responds to what reached it two weeks ago, not to yesterday's shower. Soil temperature, not air temperature, decides whether a tick has emerged.

CC BY 4.0664 H3 cells, whole country
GBIFIndependent mushroom records, used to test the model

Nobody collected these for us, which is the point. For each find we compute our index on that day in that place, then on other days in the same place. If the model is right about timing, the day of the find should rank above a random day. The result, and what it does and does not prove, is published in full.

CC BY 4.05,447 records · 709 had weather available
Rospotrebnadzor tick registerDistricts endemic for tick-borne encephalitis

Read district by district rather than region by region, because the difference is large: Moscow Oblast is endemic in two districts out of sixty-four. Calling the whole region endemic would frighten six million people; calling it clear would stay silent where the risk is real. This register covers Russia; the European sections need their own sources, and until they exist those sections stay unpublished rather than translated.

Official publication1,043 districts · 2025 data

What this list deliberately is not

A long tally of 'factors we account for'. Three times we have found inputs in our own model that were computed, displayed, and had no effect whatsoever — one of them silently blanked every terrain feature nationwide for months while the API kept returning 200. Each time it looked like breadth.

So the list above is short and checkable instead. Where a layer is not collected, it says so. Where a number cannot be defended, we do not print it.

How well the whole thing actually works is a separate page, and it carries the numbers that flatter us least.

How well all of this works — see How we check