Why Solano?
The name Solano refers to a southerly-to-south-easterly wind that blows in summer over southern Spain, bringing heat and drought to the Andalusian plateau. Like every great local wind, it shapes the sea, dictates sailing conditions and imposes itself on those who face it.
But Solano is also our philosophy: reading the wind before it rises. Rather than displaying a single forecast, Solano compares the successive runs of the major weather models — ECMWF, ARPEGE, AROME, GFS and others — to measure how stable forecasts are over time. The more the models converge, the more reliable the forecast. It is this movie of the runs, not the snapshot of the latest model, that guides the decisions of sailors, kitesurfers and everyone who loves the outdoors.
How does it work?
A weather model doesn't predict a fixed value — it runs several times a day (each execution is called a run). Every run can tell a slightly different story.
A 15-knot wind consistently forecast across every run for several days? That's reliable. A 30-knot gust that only appears in the latest run? That's a warning sign.
Solano measures this run-to-run consistency for each model and gives you a stability index: not just what is forecast, but how much confidence you can place in it.
The stability index
Computing the score
For each model and each target date, Solano compares the latest run hour by hour to all previous runs. Yesterday's run carries more weight than last week's — older runs fade gradually (half-life ≈ 2.5 days). For example, a run 4 days old only contributes about 14 % of the weight of a run from today. The mean gap over all hours is then converted into a 0–10 score per variable, then aggregated into a weighted average according to your preferences.
| Variable | Default weight | Sensitivity threshold |
|---|---|---|
| 💨 Gusts | 30 % | ±6 kn |
| 🌬️ Mean wind | 20 % | ±4 kn |
| 🌧️ Rain | 20 % | ±1 mm/h |
| 🧭 Direction | 10 % | ±45° |
| 👁️ Visibility | 10 % | ±7,000 m |
| 🌡️ Temperature | 5 % | ±3 °C |
| ☁️ Cloud | 5 % | ±20 % |
The weights are customisable in preferences (⚙️). When a model lacks a variable, the weights are automatically rebalanced.
ERA5 verification — forecast vs. reality
The 📡 Verif. tab of the Spaghetti panel shows, hour by hour, what each run had forecast for a given day against the ERA5T reanalysis (black dashed line). Example: the ARPEGE 02/05 00Z run forecast 15 knots SW at noon — ERA5T gives 12 knots S.
The data is loaded in a single request for the last 15 available days (ERA5T is published with roughly a 1-to-2-day delay). Only the atmospheric variables available in ERA5 are shown (wind, gusts, direction, temperature, rain, cloud, pressure). Marine data (waves, currents) is not archived via recent ERA5.
Recent accuracy — MAE vs. ERA5
In addition to the run-to-run stability score, Solano measures the real accuracy of each model over the last 15 days: historical forecasts issued at various lead times (J-1, J-2… J-15) are compared to the reference reanalysis ERA5T (ECMWF). The gap is expressed as an MAE (Mean Absolute Error).
A low MAE means the model was accurate at that lead time on that exact point. For example, a wind MAE of 2 knots at J-3 indicates the model was on average 2 knots off when forecasting three days ahead — which is excellent. At J-10, an MAE of 8 knots is expected for a global model.
| Variable | Good | Acceptable | Weak |
|---|---|---|---|
| Mean wind | < 3 kt | 3–6 kt | > 6 kt |
| Gusts | < 4 kt | 4–8 kt | > 8 kt |
| Direction | < 20° | 20–40° | > 40° |
| Pressure | < 1.5 hPa | 1.5–3 hPa | > 3 hPa |
Recent accuracy is shown as coloured badges on the model cards and as a J-15 → J-1 chart in the Spaghetti view.
The models analysed
🌤️ Atmospheric
| Model | Horizon | Frequency |
|---|---|---|
| ARPEGE (MF) | 5 d | 4×/day |
| AROME HD (MF) | 3 d | 8×/day |
| ECMWF IFS | 15 d | 2×/day |
| GFS (NOAA) | 16 d | 4×/day |
| ICON (DWD) | 7 d | 4×/day |
| UKMO (Met Office) | 7 d | 2×/day |
| ICON-2I (ARPAE) | 3 d | 4×/day |
| GEM (Canada) | 10 d | 2×/day |
🌊 Marine
| Model | Type |
|---|---|
| ARPEGE-Wave (MF) | Waves |
| WAM (ECMWF) | Waves |
| GFS-Wave (NCEP) | Waves |
| EWAM | Waves |
| MF Currents | Currents / SST |
The Horizon column shows the model's maximum forecast horizon.
Features
Route mode — weather along an itinerary
Route mode lets you draw a course directly on the map — by clicking to place waypoints — and get the weather interpolated hour by hour at every point of the trip, taking your travel speed and departure time into account.
The dashboard shows, for each hour of the trip, mean wind, gusts, direction, waves and currents (if the route passes over sea). The selected atmospheric and marine models apply identically to the route.
The weather between two waypoints is interpolated linearly (direction via the short angular arc). Ideal for sailing outings, coastal hikes or any trip lasting more than a few hours.
"When to leave?" — finding the best window
From route mode, the "When to leave?" button computes a conditions score for 7 departure windows spread from D−6h to D+12h (3-hour steps). Each window gets a score from 0 to 10 based on the mean and maximum conditions encountered along the trip.
| Criterion | Weight in the score | Favourable threshold |
|---|---|---|
| Mean wind | 40 % | < 15 kt |
| Gusts | 30 % | < 20 kt |
| Waves | 30 % | < 1 m |
The thresholds are calibrated for coastal sailing by default. Per-activity customisation is planned in preferences.
Data source
Weather data is provided by Open-Meteo, an open-source API that aggregates the official models of the world's weather centres (Météo-France, ECMWF, NOAA, DWD…). Wind direction uses the short angular arc for an accurate deviation calculation. Marine data (waves, currents, SST) is shown separately whenever the selected point is at sea and does not contribute to the atmospheric stability score.
Reading wind barbs
The arrows on the map follow the WMO convention: the barb points in the direction the wind is coming from, and the ticks indicate its strength.
| Strength (knots) | Meaning |
|---|---|
| 0 | Calm — circle with no shaft |
| 1–2 | Shaft only, no barb |
| 3–7 | Half barb ≈ 5 kt |
| 8–12 | Full barb ≈ 10 kt |
| 13–17 | 1 barb + 1 half ≈ 15 kt |
| 18–22 | 2 barbs ≈ 20 kt |
| 48–52 | Pennant (triangle) ≈ 50 kt |
Intermediate values are rounded to the nearest 5 (e.g. 8 and 12 kt → 10 kt displayed).