uvlevel.net

About uvlevel.net

uvlevel.net answers one question in under a second: is the sun dangerous right now, when does it become dangerous, and how long can your skin take it? It is a safety tool, not a weather app. Every design decision below follows from that.

How the blend works

Every forecast on this site comes from two independent UV models: Open-Meteo's weather forecast, and Copernicus Atmosphere Monitoring Service (CAMS) data. They disagree fairly often (clouds and aerosols are hard to model), so where both have a value for an hour, the site takes the higher of the two.

That is a deliberate choice, not an average or a "best guess". A warning that fires a little early costs nothing: a bit more sunscreen, a few extra minutes of shade. A warning that fires late costs a burn. When there is doubt, the site is built to err toward caution.

On top of that, an altitude correction is applied above 300 m elevation: uv = max(weatherUv, camsUv) × (1 + 0.08 × metres/1000). Thinner air scatters and absorbs less UV, so the same sun angle burns faster at altitude. This matters for places like Cusco, La Paz, Quito, Denver, Bogotá, Mexico City, Addis Ababa, Johannesburg and Nairobi. The exact same function runs on the server, when a push warning is prepared, and in your browser, when the page renders, so a notification can never say something the dashboard disagrees with.

The four services

  • Open-Meteo: weather forecastNational weather models, blended. Supplies the primary UV index, cloud cover, temperature, snow depth and sunrise/sunset for every location.
  • Copernicus CAMS: atmosphere monitoringA separate modelling system covering aerosols and atmospheric composition at roughly 11–40 km resolution, used as a genuine second opinion rather than the same number twice.
  • Open-Meteo elevationSupplies the metres-above-sea-level figure used in the altitude correction above.
  • BigDataCloud: reverse geocodingTurns "my location" into a place name. Called only from your browser, only for your device's own current GPS position, never from the server, and never for a searched city.

Burn time

UV index 1 corresponds to 0.025 W/m² of erythemal irradiance, so unprotected skin reaches its minimal erythemal dose (MED) in minutes = MED / (UVI × 1.5). Sunscreen multiplies that figure by its SPF rating. The MED varies by Fitzpatrick skin type:

I · always burns, never tans200 J/m²
II · burns easily250 J/m²
III · burns sometimes350 J/m²
IV · rarely burns450 J/m²
V · brown skin600 J/m²
VI · deeply pigmented1000 J/m²

SPF ratings are measured with a 2 mg/cm² layer applied in a lab. Real-world application is usually about a third of that, so every treated burn time on this site is a ceiling, not a promise: reapply, don't rely on the number.

Timezones

Open-Meteo returns naive local timestamps plus a UTC offset in seconds. uvlevel.net treats every timestamp as a pseudo-epoch whose UTC clock fields equal the location's own wall clock: never the viewer's device timezone, and never a timezone-aware date library.

That is what makes a Berlin user checking Sydney's forecast, or Auckland, Santiago, Cape Town, Reykjavík or Nairobi, show the correct local hours. Parsing those strings in the viewer's own zone is exactly the bug this design exists to prevent.

Warnings and degraded operation

There are exactly three warnings, and no more: a morning forecast, a threshold-crossed alert, and a reapply reminder. Alert fatigue is the failure mode that kills a feature like this, so the count is fixed on purpose.

Degradation is a feature, not a bug: if the warning service is unreachable, the button on the dashboard disables itself and says so, while the forecast keeps working. If every forecast service is unreachable, the site falls back to computing UV from solar elevation alone and says plainly that the numbers are approximate. The shape of the day is still right, just not the precision.

Licence attribution

Forecasts and elevation from Open-Meteo. The second UV opinion contains modified Copernicus Atmosphere Monitoring Service (CAMS) information; neither the European Commission nor ECMWF is responsible for how it is used here. Place names from BigDataCloud, requested only when you share your device location.

Medical disclaimer

uvlevel.net gives general sun-safety guidance, not medical advice. Photosensitising medication, skin conditions, infants and a history of skin cancer all call for stricter limits than shown here. If in doubt, ask a clinician rather than a website.

Back to the dashboard →