The war in Ukraine
Drone attacks by Russia against Ukraine and by Ukraine against Russia according to the official reports: figures by region and by month, located impacts and attack corridors.
Reports from 01/10/2022 to 15/10/2026.
What the layer shows
In the Ukraine layer, each region is shaded violet by the attacks that name it in the period: the colour of the whole war layer, distinct from the red and orange of incidents.
Russian regions are muted violet with a dashed outline: their figures are those of the Russian Ministry of Defence, a claim by a party to the war.
A small violet dot is a specific place hit (a town or a facility; if the source only names the community or the district, that one, with its radius) according to the regional administrations, the Ukrainian General Staff or Russian governors. Filled: official source; ring only: claim by a party. Zoomed out, they group with their count. Daily front-line reports are in the downloadable data.
Totals
- Published reports
- 4,640
- Drones launched against Ukraine
- 120,866–121,185
- Drones shot down in Ukraine
- 94,709–94,715
- Drones the Russian report says were shot down in Russia
- 132,917
- Located impacts
- 5,812
By region
| Region | Reports that name it | Shot down in the region |
|---|---|---|
| Belgorod | 2,412 | 7,779 |
| Kursk | 1,538 | 4,603 |
| Bryansk | 1,353 | 8,042 |
| Crimea | 1,012 | 3,606 |
| Rostov | 661 | 3,367 |
| Kaluga | 589 | 1,336 |
| Oryol | 574 | 1,278 |
| Voronezh | 544 | 2,022 |
| Moscow Oblast | 506 | 1,311 |
| Tula | 494 | 802 |
| Krasnodar Krai | 487 | 2,390 |
| Smolensk | 351 | 634 |
| Dnipropetrovsk | 305 | No data |
| Ryazan | 287 | 420 |
| Kyiv (region) | 285 | No data |
| Sumy | 271 | No data |
| Kharkiv | 270 | No data |
| Odesa | 248 | No data |
| Mykolaiv | 244 | No data |
| Volgograd | 240 | 1,089 |
| Lipetsk | 238 | 406 |
| Poltava | 229 | No data |
| Cherkasy | 196 | No data |
| Tver | 177 | 174 |
| Kirovohrad | 173 | No data |
| Chernihiv | 168 | No data |
| Zaporizhzhia | 156 | 26 |
| Kherson | 145 | No data |
| Khmelnytskyi | 144 | No data |
| Saratov | 143 | 666 |
| Donetsk | 126 | No data |
| Zhytomyr | 126 | No data |
| Astrakhan | 120 | 286 |
| Tambov | 116 | 151 |
| Vinnytsia | 106 | No data |
| Samara | 101 | 234 |
| Leningrad Oblast | 100 | 220 |
| Novgorod | 96 | 171 |
| Nizhny Novgorod | 92 | 222 |
| Vladimir | 80 | 48 |
| Moscow (city) | 76 | No data |
| Republic of Tatarstan | 66 | 70 |
| Yaroslavl | 52 | 83 |
| Pskov | 51 | 14 |
| Republic of Adygea | 45 | 87 |
| Stavropol Krai | 45 | 124 |
| Ulyanovsk | 45 | 36 |
| Bashkortostan | 41 | 28 |
| Penza | 39 | 42 |
| Orenburg | 28 | 36 |
| Kyiv (city) | 24 | No data |
| Rivne | 24 | No data |
| Perm Krai | 21 | 3 |
| Republic of Kalmykia | 19 | 24 |
| Lviv | 18 | No data |
| Ivano-Frankivsk | 17 | No data |
| Vologda | 16 | 2 |
| Ternopil | 16 | No data |
| Kostroma | 12 | 13 |
| Udmurt Republic | 12 | 4 |
| Chuvash Republic | 10 | 6 |
| Ivanovo | 10 | 15 |
| Republic of North Ossetia-Alania | 9 | 30 |
| Chechen Republic | 8 | 9 |
| Republic of Dagestan | 7 | 9 |
| Kirov | 7 | 6 |
| Republic of Mordovia | 7 | 7 |
| Volyn | 6 | No data |
| Arkhangelsk | 5 | 2 |
| Mari El Republic | 4 | 4 |
| Sverdlovsk | 4 | No data |
| Tyumen | 4 | No data |
| Chernivtsi | 4 | No data |
| Chelyabinsk | 3 | No data |
| GE-AB | 2 | No data |
| Republic of Ingushetia | 2 | 2 |
| Khanty-Mansi Autonomous Okrug | 2 | No data |
| Murmansk | 2 | 3 |
| Omsk | 2 | No data |
| Yamalo-Nenets Autonomous Okrug | 2 | No data |
| Luhansk | 2 | No data |
| Kabardino-Balkaria | 1 | 1 |
| Komi Republic | 1 | 9 |
| Saint Petersburg | 1 | No data |
| Sevastopol | 1 | No data |
By month
| Month | Published reports | Drones launched against Ukraine | Drones shot down in Ukraine | Drones the Russian report says were shot down in Russia |
|---|---|---|---|---|
| 2026-10 | 39 | 2,756 | 2,343 | 7,224 |
| 2026-09 | 97 | 6,639 | 5,503 | 15,085 |
| 2026-08 | 97 | 4,999–5,099 | 4,181–4,187 | 17,835 |
| 2026-07 | 92 | 4,900 | 4,242 | 13,288 |
| 2026-06 | 101 | 5,635 | 5,075 | 12,021 |
| 2026-05 | 117 | 6,535 | 5,876 | 8,873 |
| 2026-04 | 108 | 6,093 | 5,428 | 4,835 |
| 2026-03 | 137 | 6,286 | 5,656 | 7,614 |
| 2026-02 | 130 | 5,092 | 4,444 | 4,465 |
| 2026-01 | 137 | 4,337 | 3,619 | 3,526 |
| 2025-12 | 135 | 5,247 | 4,257 | 4,440 |
| 2025-11 | 140 | 5,311 | 4,417 | 3,215 |
| 2025-10 | 152 | 5,472 | 4,383 | 3,628 |
| 2025-09 | 134 | 5,601 | 4,865 | 2,703 |
| 2025-08 | 153 | 4,134 | 3,477 | 2,729 |
| 2025-07 | 161 | 6,317 | 3,817 | 2,989 |
| 2025-06 | 137 | 5,018 | 2,921 | 2,286 |
| 2025-05 | 113 | 4,307 | 2,669 | 2,461 |
| 2025-04 | 133 | 2,607 | 1,269 | 1,551 |
| 2025-03 | 128 | 4,044 | 2,332 | 1,670 |
| 2025-02 | 136 | 3,933 | 2,256 | 1,119 |
| 2025-01 | 117 | 2,515 | 1,523 | 1,111 |
| 2024-12 | 123 | 1,883 | 998 | 783 |
| 2024-11 | 147 | 2,205 | 1,280 | 955 |
| 2024-10 | 186 | 1,756–1,854 | 1,055 | 1,205 |
| 2024-09 | 150 | 1,355 | 1,134 | 728 |
| 2024-08 | 159 | 795 | 658 | 890 |
| 2024-07 | 113 | 408 | 381 | 589 |
| 2024-06 | 139 | 281 | 265 | 621 |
| 2024-05 | 158 | 402 | 393 | 531 |
| 2024-04 | 88 | 292 | 258 | 389 |
| 2024-03 | 124 | 497 | 456 | 560 |
| 2024-02 | 75 | 375 | 294 | 160 |
| 2024-01 | 55 | 264 | 198 | 76 |
| 2023-12 | 59 | 631 | 584 | 183 |
| 2023-11 | 59 | 373 | 299 | 108 |
| 2023-10 | 69 | 255 | 231 | 193 |
| 2023-09 | 94 | 477 | 413 | 147 |
| 2023-08 | 64 | 63–83 | 147 | 118 |
| 2023-07 | 18 | 204 | 203 | 13 |
| 2023-06 | 16 | 112–132 | 162 | No data |
| 2023-05 | 16 | 238–288 | 333 | No data |
| 2023-04 | 5 | 28–45 | 40 | No data |
| 2023-03 | 6 | 67 | 56 | No data |
| 2023-02 | 4 | 0–14 | 39 | No data |
| 2023-01 | 2 | 24 | 63 | No data |
| 2022-12 | 5 | 80 | 115 | No data |
| 2022-11 | 2 | 13 | 20 | No data |
| 2022-10 | 10 | 10 | 81 | No data |
Mix of what was launched, as the reports state
Since mid-2025 the Ukrainian Air Force sometimes says how many of the drones launched were Shahed or Geran (the rest, Gerbera decoys and other types) and, since 2026, how many were jet-powered. Only months in which a report says so; the figures are minimums.
| Month | Reports with a Shahed figure | Shahed and Geran stated | Reports with a jet figure | Jet-powered stated |
|---|---|---|---|---|
| 2026-10 | 0 | — | 16 | 1,159 |
| 2026-09 | 2 | 168 of 340 (49%) | 15 | 1,000 |
| 2026-08 | 1 | 50 of 217 (23%) | 3 | 246 |
| 2026-05 | 2 | 260 of 431 (60%) | 0 | — |
| 2026-04 | 28 | 3,590 of 5,434 (66%) | 0 | — |
| 2026-03 | 30 | 3,510 of 5,730 (61%) | 0 | — |
| 2026-02 | 26 | 3,050 of 4,800 (64%) | 0 | — |
| 2026-01 | 31 | 2,845 of 4,327 (66%) | 1 | 10 |
| 2025-12 | 28 | 2,320 of 3,906 (59%) | 0 | — |
| 2025-11 | 28 | 2,670 of 4,423 (60%) | 0 | — |
| 2025-10 | 25 | 2,325 of 4,045 (57%) | 0 | — |
| 2025-09 | 21 | 1,455 of 2,503 (58%) | 0 | — |
| 2025-07 | 8 | 1,063 of 1,580 (67%) | 0 | — |
| 2025-06 | 4 | 890 of 1,632 (55%) | 0 | — |
| 2025-05 | 1 | 2 of 109 (2%) | 0 | — |
| 2024-08 | 1 | 3 of 5 (60%) | 0 | — |
| 2024-07 | 1 | 16 of 17 (94%) | 0 | — |
| 2024-04 | 1 | 4 of 9 (44%) | 0 | — |
| 2023-10 | 1 | 3 of 5 (60%) | 0 | — |
Attack corridors
Each corridor joins a launch area named in the report with a region that was reached. From Russia against Ukraine: drones launched in the attacks that left (among other areas) from that area and reached the region. From Ukraine against Russia: drones the Russian report says were shot down in the region.
| Origin | Region | Drones | Attacks |
|---|---|---|---|
| Kursk (Jalino / Kursk-Vostochny) | Kyiv (region) | 24,495 | 194 |
| Primorsko-Ajtarsk, base aérea | Kyiv (region) | 23,239 | 187 |
| Oriol (aeródromo Oryol-Yuzhny) | Kyiv (region) | 22,759 | 156 |
| Kursk (Jalino / Kursk-Vostochny) | Kharkiv | 22,554 | 185 |
| Primorsko-Ajtarsk, base aérea | Kharkiv | 21,786 | 185 |
| Millerovo | Kyiv (region) | 20,349 | 128 |
| Millerovo | Kharkiv | 19,821 | 147 |
| Kursk (Jalino / Kursk-Vostochny) | Sumy | 19,758 | 194 |
| Kursk (Jalino / Kursk-Vostochny) | Dnipropetrovsk | 19,253 | 175 |
| Primorsko-Ajtarsk, base aérea | Dnipropetrovsk | 19,178 | 203 |
| Oriol (aeródromo Oryol-Yuzhny) | Kharkiv | 19,033 | 141 |
| Kursk (Jalino / Kursk-Vostochny) | Odesa | 17,887 | 141 |
| Primorsko-Ajtarsk, base aérea | Sumy | 17,771 | 173 |
| Primorsko-Ajtarsk, base aérea | Odesa | 17,705 | 153 |
| Kursk (Jalino / Kursk-Vostochny) | Poltava | 17,289 | 154 |
| Briansk | Kharkiv | 16,525 | 116 |
| Oriol (aeródromo Oryol-Yuzhny) | Dnipropetrovsk | 16,229 | 122 |
| Oriol (aeródromo Oryol-Yuzhny) | Poltava | 16,198 | 128 |
| Oriol (aeródromo Oryol-Yuzhny) | Sumy | 16,142 | 139 |
| Primorsko-Ajtarsk, base aérea | Poltava | 16,094 | 147 |
| Briansk | Kyiv (region) | 15,938 | 111 |
| Millerovo | Dnipropetrovsk | 15,772 | 123 |
| Oriol (aeródromo Oryol-Yuzhny) | Odesa | 15,753 | 104 |
| Millerovo | Sumy | 14,732 | 121 |
| Millerovo | Odesa | 14,588 | 89 |
| Briansk | Sumy | 14,113 | 112 |
| Kursk (Jalino / Kursk-Vostochny) | Cherkasy | 13,764 | 138 |
| Kursk (Jalino / Kursk-Vostochny) | Chernihiv | 13,745 | 123 |
| Briansk | Dnipropetrovsk | 13,732 | 101 |
| Oriol (aeródromo Oryol-Yuzhny) | Chernihiv | 13,092 | 112 |
| Primorsko-Ajtarsk, base aérea | Chernihiv | 12,962 | 114 |
| Millerovo | Poltava | 12,658 | 91 |
| Primorsko-Ajtarsk, base aérea | Cherkasy | 12,551 | 132 |
| Briansk | Poltava | 12,359 | 92 |
| Oriol (aeródromo Oryol-Yuzhny) | Cherkasy | 12,069 | 105 |
| Primorsko-Ajtarsk, base aérea | Zaporizhzhia | 11,903 | 113 |
| Briansk | Odesa | 11,787 | 72 |
| Kursk (Jalino / Kursk-Vostochny) | Kirovohrad | 10,992 | 111 |
| Primorsko-Ajtarsk, base aérea | Mykolaiv | 10,711 | 152 |
| Primorsko-Ajtarsk, base aérea | Kirovohrad | 10,552 | 118 |
| Kursk (Jalino / Kursk-Vostochny) | Zaporizhzhia | 10,536 | 84 |
| Kursk (Jalino / Kursk-Vostochny) | Mykolaiv | 10,533 | 119 |
| Briansk | Chernihiv | 10,518 | 83 |
| Millerovo | Chernihiv | 10,135 | 77 |
| Briansk | Cherkasy | 9,787 | 82 |
| Millerovo | Zaporizhzhia | 9,759 | 68 |
| Oriol (aeródromo Oryol-Yuzhny) | Zhytomyr | 9,690 | 82 |
| Kursk (Jalino / Kursk-Vostochny) | Zhytomyr | 9,569 | 82 |
| Primorsko-Ajtarsk, base aérea | Zhytomyr | 9,449 | 84 |
| Oriol (aeródromo Oryol-Yuzhny) | Zaporizhzhia | 9,384 | 66 |
| Millerovo | Cherkasy | 9,195 | 73 |
| Kursk (Jalino / Kursk-Vostochny) | Donetsk | 9,092 | 82 |
| Oriol (aeródromo Oryol-Yuzhny) | Kirovohrad | 9,090 | 76 |
| Shatalovo | Kharkiv | 8,871 | 47 |
| Primorsko-Ajtarsk, base aérea | Donetsk | 8,790 | 88 |
| Cabo Chauda, Crimea ocupada (polígono) | Kharkiv | 8,639 | 70 |
| Shatalovo | Kyiv (region) | 8,552 | 38 |
| Millerovo | Donetsk | 8,405 | 75 |
| Briansk | Zaporizhzhia | 8,346 | 59 |
| Oriol (aeródromo Oryol-Yuzhny) | Mykolaiv | 8,339 | 73 |
| Ukraine | Bryansk | 8,042 | 1,353 |
| Briansk | Zhytomyr | 7,828 | 60 |
| Ukraine | Belgorod | 7,779 | 2,412 |
| Primorsko-Ajtarsk, base aérea | Khmelnytskyi | 7,656 | 93 |
| Kursk (Jalino / Kursk-Vostochny) | Khmelnytskyi | 7,620 | 68 |
| Briansk | Mykolaiv | 7,463 | 58 |
| Oriol (aeródromo Oryol-Yuzhny) | Donetsk | 7,455 | 60 |
| Millerovo | Kyiv (city) | 7,438 | 19 |
| Millerovo | Zhytomyr | 7,297 | 53 |
| Oriol (aeródromo Oryol-Yuzhny) | Khmelnytskyi | 7,292 | 62 |
| Primorsko-Ajtarsk, base aérea | Kyiv (city) | 7,260 | 18 |
| Cabo Chauda, Crimea ocupada (polígono) | Kyiv (region) | 7,228 | 56 |
| Briansk | Kirovohrad | 7,076 | 55 |
| Kursk (Jalino / Kursk-Vostochny) | Kyiv (city) | 7,001 | 17 |
| Millerovo | Kirovohrad | 6,986 | 55 |
| Oriol (aeródromo Oryol-Yuzhny) | Kyiv (city) | 6,984 | 17 |
| Hvardiiske, Crimea ocupada | Kyiv (region) | 6,885 | 26 |
| Briansk | Kyiv (city) | 6,870 | 16 |
| Cabo Chauda, Crimea ocupada (polígono) | Odesa | 6,859 | 70 |
| Shatalovo | Sumy | 6,799 | 44 |
| Millerovo | Mykolaiv | 6,656 | 55 |
| Primorsko-Ajtarsk, base aérea | Kherson | 6,610 | 95 |
| Shatalovo | Odesa | 6,498 | 34 |
| Cabo Chauda, Crimea ocupada (polígono) | Sumy | 6,437 | 61 |
| Briansk | Donetsk | 6,357 | 51 |
| Kursk (Jalino / Kursk-Vostochny) | Vinnytsia | 6,343 | 61 |
| Kursk (Jalino / Kursk-Vostochny) | Kherson | 6,338 | 76 |
| Shatalovo | Dnipropetrovsk | 6,309 | 38 |
| Briansk | Khmelnytskyi | 6,217 | 46 |
| Cabo Chauda, Crimea ocupada (polígono) | Dnipropetrovsk | 6,197 | 69 |
| Hvardiiske, Crimea ocupada | Odesa | 6,026 | 31 |
| Primorsko-Ajtarsk, base aérea | Vinnytsia | 6,003 | 67 |
| Shatalovo | Poltava | 5,929 | 34 |
| Millerovo | Khmelnytskyi | 5,358 | 41 |
| Cabo Chauda, Crimea ocupada (polígono) | Poltava | 5,204 | 45 |
| Oriol (aeródromo Oryol-Yuzhny) | Vinnytsia | 5,047 | 39 |
| Shatalovo | Chernihiv | 5,027 | 35 |
| Hvardiiske, Crimea ocupada | Kharkiv | 4,814 | 23 |
| Oriol (aeródromo Oryol-Yuzhny) | Kherson | 4,655 | 39 |
| Ukraine | Kursk | 4,603 | 1,538 |
| Millerovo | Vinnytsia | 4,329 | 26 |
| Cabo Chauda, Crimea ocupada (polígono) | Zaporizhzhia | 4,292 | 37 |
| Briansk | Vinnytsia | 4,148 | 23 |
| Shatalovo | Kirovohrad | 3,909 | 24 |
| Cabo Chauda, Crimea ocupada (polígono) | Chernihiv | 3,881 | 27 |
| Shatalovo | Kyiv (city) | 3,850 | 10 |
| Cabo Chauda, Crimea ocupada (polígono) | Cherkasy | 3,755 | 35 |
| Donetsk, aeropuerto internacional (ocupado) | Kyiv (region) | 3,754 | 19 |
| Hvardiiske, Crimea ocupada | Kyiv (city) | 3,745 | 9 |
| Shatalovo | Cherkasy | 3,710 | 25 |
| Cabo Chauda, Crimea ocupada (polígono) | Mykolaiv | 3,649 | 56 |
| Shatalovo | Zhytomyr | 3,591 | 20 |
| Millerovo | Kherson | 3,562 | 29 |
| Shatalovo | Zaporizhzhia | 3,540 | 22 |
| Shatalovo | Vinnytsia | 3,473 | 17 |
| Briansk | Kherson | 3,467 | 28 |
| Cabo Chauda, Crimea ocupada (polígono) | Donetsk | 3,374 | 32 |
| Ukraine | Rostov | 3,367 | 661 |
| Shatalovo | Donetsk | 3,242 | 27 |
| Cabo Chauda, Crimea ocupada (polígono) | Khmelnytskyi | 3,130 | 32 |
| Donetsk, aeropuerto internacional (ocupado) | Odesa | 3,093 | 16 |
| Cabo Chauda, Crimea ocupada (polígono) | Kyiv (city) | 3,087 | 6 |
| Cabo Chauda, Crimea ocupada (polígono) | Kirovohrad | 3,043 | 35 |
| Hvardiiske, Crimea ocupada | Dnipropetrovsk | 3,019 | 16 |
| Shatalovo | Mykolaiv | 3,002 | 19 |
| Shatalovo | Khmelnytskyi | 2,949 | 14 |
| Hvardiiske, Crimea ocupada | Poltava | 2,785 | 10 |
| Cabo Chauda, Crimea ocupada (polígono) | Zhytomyr | 2,779 | 24 |
| Hvardiiske, Crimea ocupada | Zaporizhzhia | 2,725 | 12 |
| Ukraine | Krasnodar Krai | 2,390 | 487 |
| Ukraine | Voronezh | 2,022 | 544 |
| Primorsko-Ajtarsk, base aérea | Rivne | 1,990 | 19 |
| Cabo Chauda, Crimea ocupada (polígono) | Kherson | 1,939 | 35 |
| Kursk (Jalino / Kursk-Vostochny) | Lviv | 1,928 | 9 |
| Oriol (aeródromo Oryol-Yuzhny) | Lviv | 1,859 | 7 |
| Kursk (Jalino / Kursk-Vostochny) | Rivne | 1,855 | 16 |
| Shatalovo | Kherson | 1,854 | 12 |
| Hvardiiske, Crimea ocupada | Sumy | 1,837 | 11 |
| Primorsko-Ajtarsk, base aérea | Lviv | 1,828 | 12 |
| Oriol (aeródromo Oryol-Yuzhny) | Rivne | 1,819 | 13 |
| Hvardiiske, Crimea ocupada | Chernihiv | 1,721 | 7 |
| Shatalovo | Lviv | 1,664 | 4 |
| Cabo Chauda, Crimea ocupada (polígono) | Vinnytsia | 1,614 | 19 |
| Kursk (Jalino / Kursk-Vostochny) | Ivano-Frankivsk | 1,495 | 10 |
| Millerovo | Lviv | 1,454 | 4 |
| Donetsk, aeropuerto internacional (ocupado) | Dnipropetrovsk | 1,423 | 6 |
| Primorsko-Ajtarsk, base aérea | Ternopil | 1,378 | 13 |
| Oriol (aeródromo Oryol-Yuzhny) | Ivano-Frankivsk | 1,361 | 9 |
| Ukraine | Kaluga | 1,336 | 589 |
| Briansk | Lviv | 1,320 | 5 |
| Primorsko-Ajtarsk, base aérea | Ivano-Frankivsk | 1,320 | 12 |
| Ukraine | Moscow Oblast | 1,311 | 506 |
| Ukraine | Oryol | 1,278 | 574 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Kyiv (region) | 1,250 | 25 |
| Oriol (aeródromo Oryol-Yuzhny) | Ternopil | 1,204 | 9 |
| Kursk (Jalino / Kursk-Vostochny) | Ternopil | 1,198 | 8 |
| Briansk | Rivne | 1,147 | 5 |
| Millerovo | Rivne | 1,090 | 5 |
| Ukraine | Volgograd | 1,089 | 240 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Cherkasy | 1,070 | 20 |
| Donetsk, aeropuerto internacional (ocupado) | Zaporizhzhia | 1,069 | 4 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Sumy | 1,018 | 21 |
| Kursk (Jalino / Kursk-Vostochny) | Volyn | 1,014 | 3 |
| Oriol (aeródromo Oryol-Yuzhny) | Volyn | 1,014 | 3 |
| Primorsko-Ajtarsk, base aérea | Volyn | 1,014 | 3 |
| Hvardiiske, Crimea ocupada | Donetsk | 1,010 | 10 |
| Briansk | Ivano-Frankivsk | 982 | 5 |
| Kursk (Jalino / Kursk-Vostochny) | Chernivtsi | 979 | 4 |
| Primorsko-Ajtarsk, base aérea | Chernivtsi | 979 | 4 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Kherson | 978 | 18 |
| Millerovo | Ivano-Frankivsk | 977 | 6 |
| Donetsk, aeropuerto internacional (ocupado) | Kyiv (city) | 975 | 3 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Kirovohrad | 916 | 18 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Mykolaiv | 905 | 21 |
| Donetsk, aeropuerto internacional (ocupado) | Poltava | 899 | 5 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Poltava | 895 | 17 |
| Hvardiiske, Crimea ocupada | Lviv | 884 | 2 |
| Briansk | Volyn | 879 | 2 |
| Millerovo | Volyn | 879 | 2 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Dnipropetrovsk | 856 | 20 |
| Shatalovo | Rivne | 808 | 3 |
| Oriol (aeródromo Oryol-Yuzhny) | Chernivtsi | 804 | 3 |
| Ukraine | Tula | 802 | 494 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Vinnytsia | 739 | 14 |
| Primorsko-Ajtarsk, base aérea | Crimea | 706 | 12 |
| Shatalovo | Ivano-Frankivsk | 692 | 2 |
| Cabo Chauda, Crimea ocupada (polígono) | Rivne | 673 | 6 |
| Briansk | Chernivtsi | 668 | 2 |
| Kursk (Jalino / Kursk-Vostochny) | Crimea | 668 | 8 |
| Hvardiiske, Crimea ocupada | Zhytomyr | 667 | 2 |
| Ukraine | Saratov | 666 | 143 |
| Millerovo | Ternopil | 659 | 3 |
| Millerovo | Chernivtsi | 655 | 2 |
| Ukraine | Smolensk | 634 | 351 |
| Hvardiiske, Crimea ocupada | Cherkasy | 629 | 3 |
| Shatalovo | Ternopil | 609 | 2 |
| Kacha, Crimea ocupada | Kyiv (city) | 595 | 1 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Odesa | 561 | 11 |
| Donetsk, aeropuerto internacional (ocupado) | Kharkiv | 560 | 4 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Kharkiv | 554 | 12 |
| Donetsk, aeropuerto internacional (ocupado) | Chernihiv | 524 | 1 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Zaporizhzhia | 503 | 14 |
| Kacha, Crimea ocupada | Lviv | 496 | 1 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Chernihiv | 486 | 9 |
| Oriol (aeródromo Oryol-Yuzhny) | Crimea | 481 | 3 |
| Cabo Chauda, Crimea ocupada (polígono) | Chernivtsi | 480 | 1 |
| Hvardiiske, Crimea ocupada | Khmelnytskyi | 480 | 1 |
| Hvardiiske, Crimea ocupada | Chernivtsi | 480 | 1 |
| Shatalovo | Chernivtsi | 480 | 1 |
| Hvardiiske, Crimea ocupada | Ternopil | 476 | 1 |
| Cabo Chauda, Crimea ocupada (polígono) | Crimea | 453 | 12 |
| Prymorsk, provincia de Zaporiyia (ocupado) | Kharkiv | 448 | 3 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Khmelnytskyi | 445 | 9 |
| Prymorsk, provincia de Zaporiyia (ocupado) | Donetsk | 428 | 3 |
| Ukraine | Ryazan | 420 | 287 |
| Donetsk, aeropuerto internacional (ocupado) | Vinnytsia | 408 | 1 |
| Donetsk, aeropuerto internacional (ocupado) | Ivano-Frankivsk | 408 | 1 |
| Donetsk, aeropuerto internacional (ocupado) | Lviv | 408 | 1 |
| Donetsk, aeropuerto internacional (ocupado) | Rivne | 408 | 1 |
| Hvardiiske, Crimea ocupada | Vinnytsia | 408 | 1 |
| Hvardiiske, Crimea ocupada | Ivano-Frankivsk | 408 | 1 |
| Hvardiiske, Crimea ocupada | Rivne | 408 | 1 |
| Ukraine | Lipetsk | 406 | 238 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Donetsk | 385 | 6 |
| Prymorsk, provincia de Zaporiyia (ocupado) | Sumy | 371 | 3 |
| Cabo Chauda, Crimea ocupada (polígono) | Ivano-Frankivsk | 340 | 5 |
| Shatalovo | Crimea | 336 | 2 |
| Donetsk, aeropuerto internacional (ocupado) | Sumy | 323 | 2 |
| Briansk | Ternopil | 321 | 2 |
| Millerovo | Crimea | 321 | 2 |
| Prymorsk, provincia de Zaporiyia (ocupado) | Kyiv (region) | 312 | 2 |
| Prymorsk, provincia de Zaporiyia (ocupado) | Dnipropetrovsk | 301 | 2 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Zhytomyr | 299 | 5 |
| Kacha, Crimea ocupada | Kyiv (region) | 293 | 1 |
| Ukraine | Astrakhan | 286 | 120 |
| Prymorsk, provincia de Zaporiyia (ocupado) | Odesa | 283 | 2 |
| Hvardiiske, Crimea ocupada | Mykolaiv | 266 | 2 |
| Ukraine | Samara | 234 | 101 |
| Balaklava, Crimea ocupada | Odesa | 230 | 8 |
| Ukraine | Nizhny Novgorod | 222 | 92 |
| Balaklava, Crimea ocupada | Kherson | 220 | 6 |
| Donetsk, aeropuerto internacional (ocupado) | Kirovohrad | 220 | 1 |
| Hvardiiske, Crimea ocupada | Kirovohrad | 220 | 1 |
| Ukraine | Leningrad Oblast | 220 | 100 |
| Berdiansk (ocupado) | Dnipropetrovsk | 216 | 2 |
| Berdiansk (ocupado) | Zhytomyr | 216 | 2 |
| Berdiansk (ocupado) | Zaporizhzhia | 216 | 2 |
| Berdiansk (ocupado) | Kyiv (region) | 216 | 2 |
| Berdiansk (ocupado) | Poltava | 216 | 2 |
| Berdiansk (ocupado) | Sumy | 216 | 2 |
| Berdiansk (ocupado) | Kharkiv | 216 | 2 |
| Berdiansk (ocupado) | Cherkasy | 216 | 2 |
| Berdiansk (ocupado) | Chernihiv | 216 | 2 |
| Balaklava, Crimea ocupada | Mykolaiv | 178 | 5 |
| Briansk | Crimea | 176 | 1 |
| Ukraine | Tver | 174 | 177 |
| Ukraine | Novgorod | 171 | 96 |
| Prymorsk, provincia de Zaporiyia (ocupado) | Cherkasy | 165 | 1 |
| Balaklava, Crimea ocupada | Kirovohrad | 159 | 4 |
| Seshcha | Kyiv (region) | 155 | 3 |
| Ukraine | Tambov | 151 | 116 |
| Prymorsk, provincia de Zaporiyia (ocupado) | Chernihiv | 147 | 1 |
| Cabo Chauda, Crimea ocupada (polígono) | Ternopil | 146 | 2 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Ivano-Frankivsk | 139 | 2 |
| Balaklava, Crimea ocupada | Khmelnytskyi | 138 | 5 |
| Balaklava, Crimea ocupada | Vinnytsia | 133 | 3 |
| Balaklava, Crimea ocupada | Dnipropetrovsk | 133 | 3 |
| Ukraine | Stavropol Krai | 124 | 45 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Rivne | 124 | 2 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Lviv | 119 | 2 |
| Berdiansk (ocupado) | Donetsk | 113 | 1 |
| Berdiansk (ocupado) | Khmelnytskyi | 113 | 1 |
| Kursk (Jalino / Kursk-Vostochny) | Luhansk | 113 | 2 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Luhansk | 113 | 2 |
| Cabo Chauda, Crimea ocupada (polígono) | Lviv | 105 | 3 |
| Berdiansk (ocupado) | Kirovohrad | 103 | 1 |
| Berdiansk (ocupado) | Mykolaiv | 103 | 1 |
| Berdiansk (ocupado) | Kherson | 103 | 1 |
| Balaklava, Crimea ocupada | Cherkasy | 87 | 2 |
| Ukraine | Republic of Adygea | 87 | 45 |
| Ukraine | Yaroslavl | 83 | 52 |
| Balaklava, Crimea ocupada | Kharkiv | 79 | 2 |
| Ukraine | Republic of Tatarstan | 70 | 66 |
| Cabo Chauda, Crimea ocupada (polígono) | Luhansk | 67 | 1 |
| Yeysk (emplazamiento de almacenamiento y preparación junto a la base aérea) | Crimea | 53 | 1 |
| Ukraine | Vladimir | 48 | 80 |
| Balaklava, Crimea ocupada | Zaporizhzhia | 46 | 1 |
| Balaklava, Crimea ocupada | Zhytomyr | 45 | 1 |
| Balaklava, Crimea ocupada | Kyiv (region) | 45 | 1 |
| Balaklava, Crimea ocupada | Crimea | 42 | 1 |
| Balaklava, Crimea ocupada | Sumy | 42 | 1 |
| Ukraine | Penza | 42 | 39 |
| Ukraine | Orenburg | 36 | 28 |
| Ukraine | Ulyanovsk | 36 | 45 |
| Seshcha | Odesa | 35 | 1 |
| Balaklava, Crimea ocupada | Donetsk | 31 | 1 |
| Dzhankói, Crimea ocupada | Dnipropetrovsk | 31 | 1 |
| Dzhankói, Crimea ocupada | Mykolaiv | 31 | 1 |
| Seshcha | Vinnytsia | 31 | 1 |
| Seshcha | Dnipropetrovsk | 31 | 1 |
| Seshcha | Zaporizhzhia | 31 | 1 |
| Seshcha | Mykolaiv | 31 | 1 |
| Seshcha | Poltava | 31 | 1 |
| Seshcha | Sumy | 31 | 1 |
| Seshcha | Kherson | 31 | 1 |
| Seshcha | Khmelnytskyi | 31 | 1 |
| Seshcha | Cherkasy | 31 | 1 |
| Seshcha | Chernihiv | 31 | 1 |
| Ukraine | Republic of North Ossetia-Alania | 30 | 9 |
| Ukraine | Bashkortostan | 28 | 41 |
| Ukraine | Republic of Kalmykia | 24 | 19 |
| Belbek, Crimea ocupada | Mykolaiv | 18 | 1 |
| Ukraine | Ivanovo | 15 | 10 |
| Ukraine | Pskov | 14 | 51 |
| Ukraine | Kostroma | 13 | 12 |
| Balaklava, Crimea ocupada | Kyiv (city) | 10 | 1 |
| Ukraine | Chechen Republic | 9 | 8 |
| Ukraine | Republic of Dagestan | 9 | 7 |
| Ukraine | Komi Republic | 9 | 1 |
| Ukraine | Republic of Mordovia | 7 | 7 |
| Engels | Odesa | 6 | 1 |
| Ukraine | Chuvash Republic | 6 | 10 |
| Ukraine | Kirov | 6 | 7 |
| Ukraine | Mari El Republic | 4 | 4 |
| Ukraine | Udmurt Republic | 4 | 12 |
| Ukraine | Murmansk | 3 | 2 |
| Ukraine | Perm Krai | 3 | 21 |
| Ukraine | Arkhangelsk | 2 | 5 |
| Ukraine | Republic of Ingushetia | 2 | 2 |
| Ukraine | Vologda | 2 | 16 |
| Ukraine | Kabardino-Balkaria | 1 | 1 |
How it is obtained
Source of the reports in each direction:
- From Russia against Ukraine: The Ukrainian Air Force (B2) · claim by a party
- From Ukraine against Russia: The Russian Ministry of Defence (D3) · claim by a party
War seen from space
In the war layer, four pieces come from satellites and from the official reports. Before and after images: for each strike with a detected thermal hotspot and for each strike on an installation, the last cloud-free Sentinel-2 image before the attack and the first one after it, cropped over the site in natural colour with the same brightness adjustment. Cloud is measured over the crop itself with ESA's scene classification: an image with 3% cloud or less over the installation is used even if the whole scene is cloudy. A pair is published only if the change can be seen: both images are brought to the same 10 m grid, and the difference of the burn index (bands B8A and B12) and the darkening in natural colour are measured, without clouds, shadows, snow or water, and above what changes in the rest of the crop (season, crops, light). The patch touching an 800 m circle around the strike counts, and the pair is published if it reaches 10 hectares; if the first clear image after the attack does not show it (smoke or thin cloud cover it), the next ones are tried for 15 days. The changed area is outlined and the image is framed on it. Everything from the satellite is switched on with «With satellite»; the corridors, with their own button.
Night lights: after each attack on energy targets (a strike on the power grid or an official regional message naming it), the brightness of the affected cities and regions in the VIIRS day-night band (NOAA-20), from the NOAA open archive. Brightness is the city's light above the surrounding background, measured in the same satellite pass (which removes moonlight reflected by the ground); only nights with 70% cloud cover or less count (Open-Meteo, at the time of the pass) with the satellite close to overhead. The reference is the median of the valid nights of the previous three weeks; there is a loss of light when two or more nights of the following week lose half or more, in cities with a reference of 0.5 nW/(cm²·sr) or more. The thresholds were set with 20 documented blackouts from 2024 to 2026, 9 controls and 411 windows without attacks (3 showed a loss).
Permanently reduced street lighting: a city whose brightness stays below 0.5 nW/(cm²·sr) above the background cannot show a blackout with this rule, so it is marked on the map with its own sign instead. It is marked when the median of its last 10 valid nights is below that minimum and, going back month by month (months with 3 valid nights or more), the monthly median stays below it too; a single month above (snow reflects the city light, as in January 2026) does not break the run, two measured months in a row do. Its card gives the date since when (or «at least since» the first night measured), the current brightness and the earliest measured, each the median of 10 valid nights, and the number of nights it is based on. It is computed from all the nights measured by NOAA-20.
Confirmed fire hotspots: of the NASA FIRMS hotspots of the last 24 hours over Ukraine and European Russia, with the same filters as the strike cross-check (refinery flares and plants with habitual heat, low confidence and areas that burn every day, such as front-line cities, are left out), only those within the radius of a reported strike within 36 hours are published. In «With satellite» they count as strikes with a hotspot as soon as they are confirmed, together with those of the historical cross-check. The rest (crop burning, industry, wildfires) are still downloaded and cross-checked, but not drawn.
Attack corridors: arcs from the launch zones named by the Ukrainian Air Force reports (with the point from the deduction engine's zone catalogue) to the regions reached, with the width given by the drones of those attacks in the selected period. For attacks on Russia, whose report gives shoot-downs by region, the arc starts at the point of the Ukrainian border closest to each region and its figure is those shoot-downs.