18210 matched pairs from 1065 observations · rebuilt by the run of Sun 27 Sep 14:40 (Europe/Riga)
Read n first
Each row compares the forecast crosswind on 15/33 with what a station reported, by lead day. A row only shows up once an observation has caught up with the forecast that predicted it. D+0 fills within hours; every further lead day takes another day. A row built on a handful of pairs says next to nothing, so look at n before the rest.
p90 is the column to hold against your crosswind limit. It is roughly the margin worth keeping below the limit at that lead.
Crosswind error, open-air hours
EVAD · on-field station, unofficial
| Source | Sector | Lead | n | mean | p90 | max | >2 kt | >3 kt | dir | speed | gust ok |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ECMWF | clean | D+0 | 0 | - | - | - | - | - | - | 3.1 (3) | 100% (3) |
| clean | D+2 | 0 | - | - | - | - | - | - | 1.1 (1) | 100% (1) | |
| other | D+0 | 234 | 2.7 | 5.4 | 7.3 | 73% | 33% | 35° | 2.1 | 90% | |
| other | D+1 | 365 | 2.4 | 4.6 | 7.6 | 52% | 34% | 28° | 1.8 (376) | 84% (376) | |
| other | D+2 | 358 | 2.4 | 4.4 | 5.8 | 54% | 34% | 27° | 2.2 (363) | 66% (363) | |
| other | D+3 | 253 | 1.9 | 3.6 | 4.6 | 47% | 25% | 17° | 2.9 (258) | 36% (258) | |
| other | D+4 | 174 | 2.9 | 4.5 | 5.8 | 75% | 49% | 23° | 3.1 | 39% | |
| GFS | clean | D+0 | 0 | - | - | - | - | - | - | 3.5 (3) | 100% (3) |
| clean | D+1 | 0 | - | - | - | - | - | - | 3.8 (11) | 100% (11) | |
| clean | D+2 | 0 | - | - | - | - | - | - | 4.5 (5) | 100% (5) | |
| other | D+0 | 187 | 2.9 | 5.9 | 8.7 | 58% | 39% | 39° | 2.6 | 84% | |
| other | D+1 | 406 | 2.6 | 4.8 | 10.2 | 52% | 35% | 35° | 2.8 | 78% | |
| other | D+2 | 307 | 3.0 | 5.3 | 12.6 | 62% | 48% | 34° | 3.8 (313) | 64% (313) | |
| other | D+3 | 345 | 2.0 | 5.7 | 9.1 | 36% | 20% | 30° | 3.1 (350) | 75% (350) | |
| other | D+4 | 105 | 2.2 | 5.2 | 7.0 | 45% | 24% | 56° | 2.9 | 86% | |
| ICON-EU | clean | D+0 | 0 | - | - | - | - | - | - | 2.5 (3) | 100% (3) |
| clean | D+1 | 0 | - | - | - | - | - | - | 2.6 (9) | 100% (9) | |
| clean | D+3 | 0 | - | - | - | - | - | - | 9.4 (4) | 0% (4) | |
| other | D+0 | 184 | 2.6 | 6.0 | 8.1 | 53% | 31% | 31° | 1.9 | 86% | |
| other | D+1 | 321 | 2.6 | 4.6 | 8.7 | 60% | 35% | 36° | 2.2 (324) | 70% (324) | |
| other | D+2 | 211 | 2.8 | 4.8 | 6.6 | 66% | 48% | 40° | 2.2 (222) | 51% (222) | |
| other | D+3 | 193 | 2.8 | 6.9 | 8.6 | 58% | 37% | 38° | 2.0 | 58% | |
| other | D+4 | 144 | 1.9 | 3.5 | 5.3 | 47% | 20% | 26° | 2.1 | 60% |
EVRA · official METAR
| Source | Sector | Lead | n | mean | p90 | max | >2 kt | >3 kt | dir | speed | gust ok |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ECMWF | clean | D+0 | 28 | 2.1 | 3.6 | 3.6 | 36% | 21% | 14° | 2.4 (84) | 95% (84) |
| clean | D+1 | 18 | 1.4 | 2.2 | 3.4 | 33% | 6% | 26° | 1.6 (103) | 92% (103) | |
| clean | D+2 | 0 | - | - | - | - | - | - | 1.1 (38) | 100% (38) | |
| other | D+0 | 502 | 1.4 | 2.5 | 3.6 | 27% | 4% | 16° | 1.5 (511) | 82% (511) | |
| other | D+1 | 903 | 1.8 | 3.5 | 6.0 | 42% | 17% | 16° | 1.8 (959) | 65% (959) | |
| other | D+2 | 750 | 1.5 | 3.2 | 5.1 | 33% | 12% | 25° | 2.0 (788) | 63% (788) | |
| other | D+3 | 540 | 2.1 | 4.9 | 7.6 | 40% | 23% | 16° | 2.4 (562) | 54% (562) | |
| other | D+4 | 276 | 1.2 | 2.5 | 5.8 | 17% | 7% | 22° | 2.1 (298) | 65% (298) | |
| GFS | clean | D+0 | 28 | 0.4 | 0.8 | 1.5 | 0% | 0% | 38° | 2.4 (56) | 100% (56) |
| clean | D+1 | 15 | 0.9 | 1.9 | 1.9 | 0% | 0% | 40° | 3.0 (63) | 100% (63) | |
| clean | D+2 | 0 | - | - | - | - | - | - | 3.6 (19) | 100% (19) | |
| other | D+0 | 470 | 2.6 | 5.4 | 7.3 | 53% | 38% | 20° | 3.1 (507) | 68% (507) | |
| other | D+1 | 850 | 3.2 | 7.0 | 11.8 | 55% | 46% | 25° | 4.0 (937) | 53% (937) | |
| other | D+2 | 723 | 3.1 | 6.8 | 11.7 | 61% | 46% | 34° | 4.3 (769) | 52% (769) | |
| other | D+3 | 516 | 2.9 | 5.8 | 8.7 | 64% | 45% | 37° | 3.4 (538) | 70% (538) | |
| other | D+4 | 252 | 2.8 | 5.4 | 8.7 | 60% | 45% | 47° | 3.6 (274) | 76% (274) | |
| ICON-EU | clean | D+0 | 25 | 1.9 | 3.6 | 3.6 | 40% | 36% | 19° | 1.8 (74) | 100% (74) |
| clean | D+1 | 12 | 2.3 | 3.3 | 3.3 | 67% | 33% | 33° | 1.9 (108) | 100% (108) | |
| clean | D+2 | 0 | - | - | - | - | - | - | 2.7 (24) | 100% (24) | |
| other | D+0 | 442 | 1.5 | 2.9 | 4.8 | 32% | 8% | 16° | 1.9 (450) | 57% (450) | |
| other | D+1 | 731 | 1.7 | 3.5 | 7.1 | 37% | 18% | 26° | 2.1 (748) | 63% (748) | |
| other | D+2 | 612 | 2.1 | 4.1 | 7.8 | 45% | 25% | 38° | 1.8 (640) | 55% (640) | |
| other | D+3 | 432 | 2.0 | 3.9 | 5.8 | 50% | 23% | 36° | 1.9 (452) | 55% (452) | |
| other | D+4 | 204 | 2.3 | 4.5 | 6.2 | 44% | 31% | 38° | 2.6 (222) | 53% (222) | |
| TAF | clean | D+0 | 10 | 2.4 | 3.3 | 6.8 | 60% | 30% | 40° | 2.8 (14) | - |
| clean | D+1 | 2 | 1.8 | 2.7 | 2.7 | 50% | 0% | 20° | 3.5 | - | |
| other | D+0 | 270 | 1.4 | 3.0 | 5.9 | 26% | 10% | 17° | 2.2 (329) | - | |
| other | D+1 | 337 | 2.1 | 4.2 | 6.8 | 44% | 24% | 42° | 2.7 (399) | - | |
| unknown | D+0 | 0 | - | - | - | - | - | - | 1.1 (29) | - | |
| unknown | D+1 | 0 | - | - | - | - | - | - | 1.2 (42) | - |
- n
- pairs with a crosswind error
- mean
- mean absolute crosswind error, kt
- p90
- 90th percentile crosswind error, kt
- max
- largest crosswind error, kt
- >2 kt
- share of pairs off by more than 2 kt
- >3 kt
- share of pairs off by more than 3 kt
- dir
- mean direction error, degrees
- speed
- mean wind speed error, kt
- gust ok
- share of pairs where the forecast gust agrees with the report
- (k)
- pairs behind that figure, when not n: calm and variable reports count for speed and gust
- -
- no value, e.g. every report in the row was calm or variable
Sheltered sector, read separately
These are hours with wind from 200-270° true at EVAD, where the on-field sensor sits in a wake. From there it reads a floor, not a measurement, so a model that looks fast in this table is most likely right and the sensor low. Pooled with the rows above, these hours would make every model look fast from that side, and correcting for it would talk you into an at-limit crosswind. They stay on the page because the size of the shelter effect is worth knowing.
EVAD · on-field station, unofficial
| Source | Sector | Lead | n | mean | p90 | max | >2 kt | >3 kt | dir | speed | gust ok |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ECMWF | sheltered | D+0 | 175 | 3.0 | 5.5 | 6.8 | 71% | 42% | 28° | 2.2 (181) | 63% (181) |
| sheltered | D+1 | 447 | 3.5 | 6.4 | 8.9 | 72% | 52% | 32° | 2.6 (458) | 51% (458) | |
| sheltered | D+2 | 401 | 3.0 | 5.6 | 8.4 | 62% | 42% | 41° | 2.5 (412) | 52% (412) | |
| sheltered | D+3 | 325 | 2.5 | 4.8 | 9.5 | 59% | 38% | 28° | 2.2 (326) | 68% (326) | |
| sheltered | D+4 | 146 | 1.6 | 3.0 | 7.3 | 26% | 17% | 28° | 2.2 | 84% | |
| GFS | sheltered | D+0 | 201 | 5.7 | 8.7 | 10.6 | 93% | 88% | 39° | 4.6 (206) | 43% (206) |
| sheltered | D+1 | 361 | 6.6 | 10.7 | 16.5 | 94% | 87% | 47° | 6.1 (372) | 23% (372) | |
| sheltered | D+2 | 425 | 5.3 | 9.1 | 15.0 | 91% | 76% | 54° | 4.9 (430) | 42% (430) | |
| sheltered | D+3 | 210 | 4.3 | 7.8 | 12.2 | 80% | 59% | 39° | 4.7 | 50% | |
| sheltered | D+4 | 191 | 3.0 | 5.9 | 10.2 | 60% | 44% | 48° | 3.2 | 73% | |
| ICON-EU | sheltered | D+0 | 180 | 3.3 | 5.7 | 7.5 | 71% | 53% | 35° | 2.4 (185) | 33% (185) |
| sheltered | D+1 | 348 | 3.1 | 6.3 | 8.7 | 63% | 47% | 46° | 2.2 (355) | 46% (355) | |
| sheltered | D+2 | 408 | 3.6 | 6.1 | 9.1 | 73% | 62% | 57° | 1.9 (410) | 59% (410) | |
| sheltered | D+3 | 275 | 3.1 | 5.5 | 7.7 | 68% | 49% | 52° | 2.0 | 59% | |
| sheltered | D+4 | 96 | 2.3 | 5.0 | 6.1 | 54% | 30% | 42° | 2.7 | 25% |
How it is measured
Each report is paired with the model hour nearest to it, within 35 minutes, for leads up to D+5. Lead is counted in calendar days from the run, the same D+n as the day cards.
Only genuine forecasts are scored. The models return the whole day, so a midday run also carries hours that were already over when it was fetched. Those are hindsight, and pairing them would flatter D+0, the column this page tells you to read for margin. A pair whose forecast was issued after the hour it describes is dropped.
A calm or variable report has no direction, so there is no crosswind to get wrong. Those pairs are left out of n and the crosswind figures, and count only in the speed and gust columns, which show their own count in brackets when it differs from n.
Sector clean is wind reaching the field over open ground (20-120° true). An hour goes to the sheltered table when either the forecast or the report points into 200-270° true at the on-field station. An official station stands in open air and is never labelled sheltered. With a calm or variable report, the forecast direction alone decides the sector. Other is everything outside the named sectors, and unknown means neither side had a direction.
A METAR gust group only appears when the peak beats the mean by 10 kt or more. A missing group means the gust stayed below mean + 10 kt: unknown, not zero. A forecast gust under that bound counts as consistent, because the report cannot contradict it. With a gust reported, the forecast has to land within 5 kt. Scoring a missing group as zero would make every model look like it overforecasts gusts, and would discount the gust warnings that were right.
The ceiling is not scored. Nothing measures it over EVAD, and EVRA does not stand in for the field.
The lead-day confidence and the gust rules in the scoring were measured at EVAD and are applied to every airfield for now. The How to read page has the detail.