How Tryvoha works
Where the data comes from
Two streams. First — official air raid alert statuses for oblasts and districts from the ukrainealarm.com API: these are the same alerts that trigger the sirens. Second — public messages from open monitoring Telegram channels and the official Ukrainian Air Force channel (kpszsu): individual threats — drones, missiles, guided bombs — are extracted from them.
What is official vs. processed
The red/orange shading of oblasts and districts reflects official alerts — we do not interpret those. The threat markers are the result of automatic AI (LLM) analysis of public messages: the text is parsed into threat type, oblast, settlement, movement direction and, when stated, launch point. This is processed open-source data, not radar tracks.
How accurate the geolocation is
Settlement names are geocoded into coordinates. If a message names only a city, the marker sits on that city. If only an oblast is known, the coordinate is approximate (the oblast centre) and a cone is drawn instead of a line — an honest visualization of uncertainty: the threat concerns a direction, not a specific point.
What the trajectories mean
The dashed line is an approximate route from launch point to target. For drones and cruise missiles the curve is smoothed (real flight is rarely straight); ballistic missiles are drawn straight because they physically fly a ballistic trajectory. Between updates the marker position is extrapolated using the typical speed of the threat type — it is an estimate, not an exact position.
How long events live on the map
Each type has its own lifetime: drones stay visible up to 2 hours, cruise missiles ~25 minutes, ballistic missiles ~8 minutes (they arrive fast). Older events gradually fade and disappear automatically, so the map always shows the current picture.
How often the data updates
The page checks for new data every 2 seconds. A new Telegram message appears on the map roughly 25 seconds after publication. The time of the last update is shown in the status bar at the top.