Left of now is the past. The weighted line there is recomputed from today's models and today's weights — it is not what the screen said at the time. Shown then is that record, saved every five minutes, and Measured is what the stations actually reported. The gap between those two is how wrong the forecast has been today.
Every model's forecast is stored at each fetch and scored later against actual observations. The weight is largest for the model that has been closest over the last few hours, with the emphasis on today.
Positive = the model forecast more wind / more veered than measured.
Every single fetch is listed here with its time. While racing the app fetches nothing, so the list stands still — which is exactly the point.
Drop a .vkx or .csv from Vakaros here. The app derives the actual wind direction and current on the course and uses it as an observation in the model weighting.
On Android, once Hodogen is installed on the home screen, you can skip this page entirely: export the session in the Vakaros app and pick Share → Hodogen. The file is handed straight to the analysis, and it works with no coverage.
Without a backend the app only follows the models while it is open. With a backend, Cloudflare polls every fifteen minutes from five in the morning, and the phone pulls the whole day's history in one call.
The models deliver wind 10 m above the surface. The grid cell is picked over water, not over land, which is decisive for a course a couple of kilometres out.
Drogden Fyr and Nakkehoved Fyr stand in the water. Jægersborg and Sjælsmark stand inland, and a bias learned against them would drag the forecast in over land.
Measured skill and physical resolving power are two different things. A model on a 25 km grid may have been spot on all morning and still be incapable of seeing the sea breeze coming.
Light mode is easier to read in direct sun.
Otherwise the phone blanks the screen in the middle of a start. The lock is released automatically when you switch away from the app, so it does not drain the battery in your pocket.
The service worker is what makes the app open at all without coverage, and what receives a file shared from the Vakaros app. If anything below is red, that is the reason.
The build stamp is set when the app is compiled, and the same stamp goes into the Worker — they are deployed together. Two identical stamps mean the phone is running exactly what your backend serves.