{
 "asof": "2026-10-17",
 "people": [
  {
   "layer": "a_genstaff",
   "figure": 1557350,
   "what": "Russian personnel losses, cumulative since 24 Feb 2022 (killed, wounded, missing, captured; 'approx.')",
   "date": "2026-10-14",
   "source": "General Staff of the AFU via Ministry of Defence of Ukraine",
   "url": "https://mod.gov.ua/en/news/total-russian-combat-losses-in-ukraine-as-of-october-14-2026",
   "tier": "B",
   "notes": "Latest figure actually fetched. Ukraine is a party to the conflict. Bulletins for 15 and 16 Oct were not retrievable (fetch blocked); per-day for 13 Oct = +1,650."
  },
  {
   "layer": "a_genstaff",
   "figure": 1650,
   "what": "Personnel losses over the previous day (13 Oct 2026)",
   "date": "2026-10-14",
   "source": "General Staff of the AFU via MoD Ukraine",
   "url": "https://mod.gov.ua/en/news/total-russian-combat-losses-in-ukraine-as-of-october-14-2026",
   "tier": "B",
   "notes": "Prior days: +1,930 (10 Oct, cum. 1,552,840, UNN 11 Oct); +1,390 (12 Oct, cum. 1,555,700, UNN 13 Oct)."
  },
  {
   "layer": "a_genstaff",
   "figure": 1552840,
   "what": "Cumulative personnel, as of 11 Oct 2026 (+1,930 per day)",
   "date": "2026-10-11",
   "source": "General Staff via UNN",
   "url": "https://unn.ua/en/amp/the-general-staff-reported-the-number-of-russian-troops-and-pieces-of-equipment-destroyed-over-the-past-day",
   "tier": "B",
   "notes": ""
  },
  {
   "layer": "a_genstaff",
   "figure": 1555700,
   "what": "Cumulative personnel, as of 13 Oct 2026 (+1,390 per day)",
   "date": "2026-10-13",
   "source": "General Staff via UNN",
   "url": "https://unn.ua/en/news/russias-losses-in-ukraine-increased-by-1390-troops-over-the-past-day",
   "tier": "B",
   "notes": ""
  },
  {
   "layer": "a_genstaff",
   "figure": 1535870,
   "what": "Cumulative personnel as of 1 Oct 2026",
   "date": "2026-10-01",
   "source": "General Staff via Censor.net",
   "url": "https://censor.net/en/news/4026138/russian-federation-casualties-in-september-2026-46-230-soldiers",
   "tier": "B",
   "notes": "Equals 1,208,970 (1 Jan 2026) + 326,900 (sum Jan-Sep 2026) - internally consistent."
  },
  {
   "layer": "a_genstaff",
   "figure": 326900,
   "what": "Personnel losses Jan-Sep 2026 (sum of monthly figures)",
   "date": "2026-10-01",
   "source": "General Staff via United24 Media / Censor.net",
   "url": "https://united24media.com/war-in-ukraine/russias-troop-losses-hit-2026-record-with-46230-in-september-23020",
   "tier": "B",
   "notes": "Computed sum of 9 monthly figures; September 2026 = 46,230, the 2026 record."
  },
  {
   "layer": "a_genstaff",
   "figure": 106720,
   "what": "Personnel losses in 2022 (24 Feb-31 Dec); cumulative end-2022 ~106,720",
   "date": "2025-06-12",
   "source": "General Staff via LIGA.net",
   "url": "https://news.liga.net/en/politics/news/russian-army-losses-are-growing-every-year-general-staff-names-three-most-productive-days",
   "tier": "B",
   "notes": "Same annual figures repeated by MoD Ukraine 1 Jan 2026."
  },
  {
   "layer": "a_genstaff",
   "figure": 253290,
   "what": "Personnel losses in 2023; cumulative end-2023 ~360,010 (derived)",
   "date": "2025-06-12",
   "source": "General Staff via LIGA.net",
   "url": "https://news.liga.net/en/politics/news/russian-army-losses-are-growing-every-year-general-staff-names-three-most-productive-days",
   "tier": "B",
   "notes": "Year-end cumulative derived by summing annual totals."
  },
  {
   "layer": "a_genstaff",
   "figure": 430790,
   "what": "Personnel losses in 2024 (record year); cumulative end-2024 ~790,800 (derived)",
   "date": "2025-06-12",
   "source": "General Staff via LIGA.net",
   "url": "https://news.liga.net/en/politics/news/russian-army-losses-are-growing-every-year-general-staff-names-three-most-productive-days",
   "tier": "B",
   "notes": "Record day 19 Dec 2024: 2,200."
  },
  {
   "layer": "a_genstaff",
   "figure": 418170,
   "what": "Personnel losses in 2025 (MoD: 'over 418,000', ~1,145/day); cumulative 1,208,970 as of 1 Jan 2026",
   "date": "2026-01-01",
   "source": "MoD Ukraine / General Staff",
   "url": "https://mod.gov.ua/en/news/losses-of-the-russian-army-in-2025-equivalent-of-35-divisions-of-personnel-14-000-artillery-systems-40-000-units-of-automotive-equipment",
   "tier": "B",
   "notes": "Exact 418,170 from prm.ua 1 Jan 2026 (https://prm.ua/en/russian-losses-for-2025-the-general-staff-summed-up/). Highest month of 2025: January, 48,240."
  },
  {
   "layer": "b_mediazona_bbc",
   "figure": 276000,
   "what": "Russian military deaths confirmed by name (Mediazona + BBC News Russian + volunteers)",
   "date": "2026-10-09",
   "source": "Mediazona",
   "url": "https://en.zona.media/article/2026/10/09/casualties_eng-trl",
   "tier": "C",
   "notes": "Rounded 'about 276,000'. Same update: 7,833 officers. Spanish version: https://zona.media/article/2026/10/09/perdidas . A minimum, not an estimate of total deaths."
  },
  {
   "layer": "b_mediazona_bbc",
   "figure": 258989,
   "what": "Named confirmed deaths (exact), previous update",
   "date": "2026-09-21",
   "source": "Mediazona/BBC Russian via Kyiv Independent (pub. 28 Sep 2026)",
   "url": "https://kyivindependent.com/over-258-000-russian-soldiers-killed-in-ukraine-identified-by-media-investigation/",
   "tier": "C",
   "notes": "7,692 officers; ~20,500 mobilised (underestimate). Earlier: 248,844 as of 10 Sep 2026 (KI 14 Sep); 217,808 at 9 May 2026."
  },
  {
   "layer": "b_mediazona_meduza_estimate",
   "figure": 352000,
   "what": "Estimated Russian military deaths (men 18-59) from Feb 2022 to end-2025, probate/inheritance-registry method",
   "date": "2026-05-09",
   "source": "Mediazona + Meduza",
   "url": "https://en.zona.media/article/2026/05/09/losses",
   "tier": "C",
   "notes": "~261,000 'regular' + ~90,000 'late' (court-declared/delayed) deaths. No confidence interval stated in the article. Covers to 31 Dec 2025 only."
  },
  {
   "layer": "c_government",
   "figure": 500000,
   "what": "Russian troops killed (estimate), UK; total killed+wounded+missing ~1.5 million",
   "date": "2026-09-11",
   "source": "UK Chief of the Defence Staff Sir Rich Knighton (prepared statement) via Kyiv Independent",
   "url": "https://kyivindependent.com/half-a-million-russian-troops-killed-since-start-of-full-scale-invasion-of-ukraine-british-intel-reports/",
   "tier": "B",
   "notes": "Quote: 'An estimated 500,000 Russian troops have been killed so far.' UK MoD also posted '1.5 million ... killed or wounded' on X (~10 Sep 2026, per https://saharareporters.com/2026/09/10/uk-government-claims-russian-military-has-lost-15million-troops-ukraine-invasion)."
  },
  {
   "layer": "c_government",
   "figure": 415000,
   "what": "Russian casualties (killed+wounded) in 2025; cumulative ~1,213,000 since Feb 2022; 2024 ~430,000",
   "date": "2026-01-15",
   "source": "UK Ministry of Defence (Defence Intelligence) via Euromaidan Press",
   "url": "https://euromaidanpress.com/2026/01/15/british-intelligence-russia-likely-lost-415000-soldiers-killed-and-injured-in-2025/",
   "tier": "B",
   "notes": "Exact date of MoD post not stated in article."
  },
  {
   "layer": "c_government",
   "figure": 1200000,
   "what": "Russian casualties (killed, wounded, missing) Feb 2022-Dec 2025, incl. up to 325,000 killed (Jones: range 275,000-325,000)",
   "date": "2026-01-27",
   "source": "CSIS (US think tank, not government) via AP/WTOP and RFE/RL",
   "url": "https://www.rferl.org/a/russia-heavy-casualties-ukraine-slow-advance/33674170.html",
   "tier": "C",
   "notes": "Released late Jan 2026 (AP: https://wtop.com/russia-ukraine-war-news/2026/01/a-new-report-warns-that-combined-war-casualties-in-russias-war-on-ukraine-could-soon-hit-2-million/). Report title not confirmed. CSIS is an independent think tank - tier C (estimate), not B."
  },
  {
   "layer": "c_government",
   "figure": 950000,
   "what": "Russian casualties (killed+wounded) incl. up to 250,000 killed - CSIS 'Russia's Battlefield Woes in Ukraine'",
   "date": "2025-06-03",
   "source": "CSIS via Kyiv Independent",
   "url": "https://kyivindependent.com/putins-disregard-for-troops-highlighted-as-russian-losses-approach-1-million-csis-report-shows/amp/",
   "tier": "C",
   "notes": "Verified: '>950,000' and 'as many as 250,000' killed. Superseded by Jan 2026 CSIS figures."
  },
  {
   "layer": "c_government",
   "figure": 150000,
   "what": "Russian killed (of 500,000 total losses) - French estimate",
   "date": "2024-05-03",
   "source": "French Foreign Minister Stephane Sejourne (Novaya Gazeta Europe interview) via Malay Mail/AFP",
   "url": "https://www.malaymail.com/amp/news/world/2024/05/03/france-estimates-150000-russian-soldiers-killed-in-ukraine-war-says-minister/132246",
   "tier": "B",
   "notes": "Dated; historical only."
  },
  {
   "layer": "c_government",
   "figure": 100,
   "what": "Russian casualties (killed+wounded) per km2 captured; 1,000-1,500 casualties/day (Jan 2025)",
   "date": "2025-02-14",
   "source": "Estonian Defence Forces Intelligence Centre (Janek Kesselmann) via Europeiska Pravda",
   "url": "https://www.eurointegration.com.ua/eng/news/2025/02/14/7205005/",
   "tier": "B",
   "notes": "Dated; illustrative ratio."
  }
 ],
 "other": [
  {
   "topic": "prisoners",
   "figure": 50000,
   "what": "Prisoners recruited by Wagner (~50,000); ~20,000 Wagner killed at Bakhmut, half of them convicts",
   "date": "2023-05-24",
   "source": "Yevgeny Prigozhin via Novaya Gazeta Europe",
   "url": "https://novayagazeta.eu/amp/en/articles/2023/05/24/wagner-group-lost-20000-mercenaries-in-ukraine-says-founder-half-of-them-are-recruited-convicts-en-news",
   "tier": "B",
   "notes": "Russian-side statement (Wagner chief); Storm-Z MoD prisoner units not quantified here."
  },
  {
   "topic": "mobilisation",
   "figure": 300000,
   "what": "Reservists mobilised in 'partial mobilisation' (82,000 deployed, 218,000 in training at that time)",
   "date": "2022-10-28",
   "source": "Russian Defence Minister Shoigu to Putin, via Meduza",
   "url": "https://meduza.io/en/news/2022/10/28/shoigu-tells-putin-mobilization-is-complete",
   "tier": "B",
   "notes": "Russian official statement."
  },
  {
   "topic": "contract_recruitment",
   "figure": 450000,
   "what": "Contracts signed with Russian Armed Forces in 2025 (~450,000); 127,000 (+10,000 volunteer formations) in 2026 as of ~29 Apr 2026",
   "date": "2026-04-30",
   "source": "Dmitry Medvedev via TASS",
   "url": "https://tass.com/defense/2124757/amp",
   "tier": "B",
   "notes": "Russian official claim; replacement rate context."
  },
  {
   "topic": "north_korea",
   "figure": 2000,
   "what": "North Korean troops killed in Russia's war (est.); earlier NIS (30 Apr 2025): ~600 killed, ~4,700 casualties of ~15,000 deployed",
   "date": "2025-09-02",
   "source": "South Korea NIS via lawmaker Lee Seong-kweun, The Defense Post",
   "url": "https://thedefensepost.com/2025/09/02/north-korean-troops-killed",
   "tier": "B",
   "notes": "Apr 2025 figures: https://www.koreatimes.co.kr/amp/foreignaffairs/northkorea/20250430/about-600-n-korean-soldiers-killed-fighting-for-russia-against-ukraine . No 2026 NIS update found."
  },
  {
   "topic": "foreign_recruits",
   "figure": 28000,
   "what": "Foreign nationals recruited into Russian army (>28,000, from 40+ countries); incl. >=2,982 Africans from 37 countries, ~486 Africans killed (Ukrainian MFA)",
   "date": "2026-09-14",
   "source": "HUR chief Oleh Ivashchenko (The Times interview) and Ukrainian MFA via United24 Media",
   "url": "https://united24media.com/war-in-ukraine/russia-recruits-more-than-28000-foreign-nationals-for-war-in-ukraine-22527",
   "tier": "B",
   "notes": "Ukrainian government claims (party to conflict). India/Nepal/Cuba figures not researched in this pass."
  }
 ],
 "monthly": [
  {
   "month": "2025-01",
   "value": 48060,
   "source": "Ukraine General Staff daily figures via minfin.com.ua, compiled in Wikipedia 'Russian casualties of war' (end-of-month cumulative differences)",
   "url": "https://en.wikipedia.org/wiki/Russian_casualties_of_war",
   "tier": "B"
  },
  {
   "month": "2025-02",
   "value": 36950,
   "source": "Ukraine General Staff daily figures via minfin.com.ua, compiled in Wikipedia 'Russian casualties of war' (end-of-month cumulative differences)",
   "url": "https://en.wikipedia.org/wiki/Russian_casualties_of_war",
   "tier": "B"
  },
  {
   "month": "2025-03",
   "value": 40670,
   "source": "Ukraine General Staff daily figures via minfin.com.ua, compiled in Wikipedia 'Russian casualties of war' (end-of-month cumulative differences)",
   "url": "https://en.wikipedia.org/wiki/Russian_casualties_of_war",
   "tier": "B"
  },
  {
   "month": "2025-04",
   "value": 36730,
   "source": "Ukraine General Staff daily figures via minfin.com.ua, compiled in Wikipedia 'Russian casualties of war' (end-of-month cumulative differences)",
   "url": "https://en.wikipedia.org/wiki/Russian_casualties_of_war",
   "tier": "B"
  },
  {
   "month": "2025-05",
   "value": 35370,
   "source": "Ukraine General Staff daily figures via minfin.com.ua, compiled in Wikipedia 'Russian casualties of war' (end-of-month cumulative differences)",
   "url": "https://en.wikipedia.org/wiki/Russian_casualties_of_war",
   "tier": "B"
  },
  {
   "month": "2025-06",
   "value": 32680,
   "source": "Ukraine General Staff daily figures via minfin.com.ua, compiled in Wikipedia 'Russian casualties of war' (end-of-month cumulative differences)",
   "url": "https://en.wikipedia.org/wiki/Russian_casualties_of_war",
   "tier": "B"
  },
  {
   "month": "2025-07",
   "value": 33250,
   "source": "Ukraine General Staff daily figures via minfin.com.ua, compiled in Wikipedia 'Russian casualties of war' (end-of-month cumulative differences)",
   "url": "https://en.wikipedia.org/wiki/Russian_casualties_of_war",
   "tier": "B"
  },
  {
   "month": "2025-08",
   "value": 28880,
   "source": "Ukraine General Staff daily figures via minfin.com.ua, compiled in Wikipedia 'Russian casualties of war' (end-of-month cumulative differences)",
   "url": "https://en.wikipedia.org/wiki/Russian_casualties_of_war",
   "tier": "B"
  },
  {
   "month": "2025-09",
   "value": 28420,
   "source": "Ukraine General Staff daily figures via minfin.com.ua, compiled in Wikipedia 'Russian casualties of war' (end-of-month cumulative differences)",
   "url": "https://en.wikipedia.org/wiki/Russian_casualties_of_war",
   "tier": "B"
  },
  {
   "month": "2025-10",
   "value": 31270,
   "source": "Ukraine General Staff daily figures via minfin.com.ua, compiled in Wikipedia 'Russian casualties of war' (end-of-month cumulative differences)",
   "url": "https://en.wikipedia.org/wiki/Russian_casualties_of_war",
   "tier": "B"
  },
  {
   "month": "2025-11",
   "value": 31030,
   "source": "Ukraine General Staff daily figures via minfin.com.ua, compiled in Wikipedia 'Russian casualties of war' (end-of-month cumulative differences)",
   "url": "https://en.wikipedia.org/wiki/Russian_casualties_of_war",
   "tier": "B"
  },
  {
   "month": "2025-12",
   "value": 35050,
   "source": "Ukraine General Staff daily figures via minfin.com.ua, compiled in Wikipedia 'Russian casualties of war' (end-of-month cumulative differences)",
   "url": "https://en.wikipedia.org/wiki/Russian_casualties_of_war",
   "tier": "B"
  },
  {
   "month": "2026-01",
   "value": 31710,
   "source": "Ukraine General Staff official monthly totals via United24 Media (1 Oct 2026); identical in Censor.net",
   "url": "https://united24media.com/war-in-ukraine/russias-troop-losses-hit-2026-record-with-46230-in-september-23020",
   "tier": "B"
  },
  {
   "month": "2026-02",
   "value": 26090,
   "source": "Ukraine General Staff official monthly totals via United24 Media (1 Oct 2026); identical in Censor.net",
   "url": "https://united24media.com/war-in-ukraine/russias-troop-losses-hit-2026-record-with-46230-in-september-23020",
   "tier": "B"
  },
  {
   "month": "2026-03",
   "value": 31960,
   "source": "Ukraine General Staff official monthly totals via United24 Media (1 Oct 2026); identical in Censor.net",
   "url": "https://united24media.com/war-in-ukraine/russias-troop-losses-hit-2026-record-with-46230-in-september-23020",
   "tier": "B"
  },
  {
   "month": "2026-04",
   "value": 32980,
   "source": "Ukraine General Staff official monthly totals via United24 Media (1 Oct 2026); identical in Censor.net",
   "url": "https://united24media.com/war-in-ukraine/russias-troop-losses-hit-2026-record-with-46230-in-september-23020",
   "tier": "B"
  },
  {
   "month": "2026-05",
   "value": 33760,
   "source": "Ukraine General Staff official monthly totals via United24 Media (1 Oct 2026); identical in Censor.net",
   "url": "https://united24media.com/war-in-ukraine/russias-troop-losses-hit-2026-record-with-46230-in-september-23020",
   "tier": "B"
  },
  {
   "month": "2026-06",
   "value": 39290,
   "source": "Ukraine General Staff official monthly totals via United24 Media (1 Oct 2026); identical in Censor.net",
   "url": "https://united24media.com/war-in-ukraine/russias-troop-losses-hit-2026-record-with-46230-in-september-23020",
   "tier": "B"
  },
  {
   "month": "2026-07",
   "value": 42860,
   "source": "Ukraine General Staff official monthly totals via United24 Media (1 Oct 2026); identical in Censor.net",
   "url": "https://united24media.com/war-in-ukraine/russias-troop-losses-hit-2026-record-with-46230-in-september-23020",
   "tier": "B"
  },
  {
   "month": "2026-08",
   "value": 42020,
   "source": "Ukraine General Staff official monthly totals via United24 Media (1 Oct 2026); identical in Censor.net",
   "url": "https://united24media.com/war-in-ukraine/russias-troop-losses-hit-2026-record-with-46230-in-september-23020",
   "tier": "B"
  },
  {
   "month": "2026-09",
   "value": 46230,
   "source": "Ukraine General Staff official monthly totals via United24 Media (1 Oct 2026); identical in Censor.net",
   "url": "https://united24media.com/war-in-ukraine/russias-troop-losses-hit-2026-record-with-46230-in-september-23020",
   "tier": "B"
  }
 ],
 "monthly_note": "Two compilation methods: 2025 = end-of-month cumulative differences (Wikipedia/minfin); 2026 = General Staff official monthly statements (1st-of-month cut-off). Differences ~0.1-0.5% per month (e.g. Jan 2025: 48,060 vs official 48,240; Jan 2026: 31,680 Wikipedia vs 31,710 official). Label chart accordingly. Oct 2026 partial: 1-14 Oct = 21,480 (1,557,350 - 1,535,870).",
 "genstaff": {
  "date": "2026-10-19",
  "url": "https://mod.gov.ua/en/news/total-russian-combat-losses-in-ukraine-as-of-october-19-2026",
  "personnel": [
   1567160,
   2100
  ],
  "items": [
   [
    "Tanks",
    12416,
    0
   ],
   [
    "Armoured fighting vehicles",
    25565,
    4
   ],
   [
    "Artillery systems",
    51317,
    24
   ],
   [
    "MLRS",
    2224,
    0
   ],
   [
    "Air defence assets",
    1714,
    3
   ],
   [
    "Aircraft",
    449,
    0
   ],
   [
    "Helicopters",
    356,
    0
   ],
   [
    "UAVs (operational-tactical)",
    569994,
    1636
   ],
   [
    "Cruise missiles",
    5134,
    0
   ],
   [
    "Warships and boats",
    35,
    0
   ],
   [
    "Submarines",
    2,
    0
   ],
   [
    "Vehicles and fuel tanks",
    164578,
    332
   ],
   [
    "Special equipment",
    4838,
    3
   ],
   [
    "Unmanned ground vehicles",
    2974,
    6
   ]
  ],
  "auto": true
 },
 "oryx": {
  "accessed": "2026-10-19",
  "url": "https://www.oryxspioenkop.com/2022/02/attack-on-europe-documenting-equipment.html",
  "total": [
   24192,
   19155,
   1002,
   1194,
   2841
  ],
  "acv": 14193,
  "rows": [
   [
    "Tanks",
    4453,
    3358,
    165,
    392,
    538
   ],
   [
    "Armoured Fighting Vehicles",
    2430,
    1989,
    38,
    124,
    279
   ],
   [
    "Infantry Fighting Vehicles",
    6492,
    5222,
    158,
    478,
    634
   ],
   [
    "Armoured Personnel Carriers",
    754,
    595,
    18,
    44,
    97
   ],
   [
    "Mine-Resistant Ambush Protected (MRAP) Vehicles",
    64,
    48,
    4,
    1,
    11
   ],
   [
    "Infantry Mobility Vehicles",
    438,
    357,
    18,
    12,
    51
   ],
   [
    "Command Posts And Communications Stations",
    323,
    227,
    5,
    4,
    87
   ],
   [
    "Engineering Vehicles And Equipment",
    737,
    464,
    51,
    62,
    160
   ],
   [
    "Self-Propelled Anti-Tank Missile Systems",
    47,
    22,
    1,
    4,
    20
   ],
   [
    "Artillery and Missile Support Vehicles And Equipment",
    181,
    117,
    3,
    1,
    60
   ],
   [
    "Towed Artillery",
    613,
    401,
    108,
    5,
    99
   ],
   [
    "Self-Propelled Artillery",
    1060,
    891,
    54,
    7,
    108
   ],
   [
    "Rocket and Missile Artillery",
    640,
    536,
    48,
    2,
    54
   ],
   [
    "Anti-Aircraft Guns",
    71,
    51,
    1,
    0,
    19
   ],
   [
    "Self-Propelled Anti-Aircraft Guns",
    30,
    18,
    3,
    2,
    7
   ],
   [
    "Surface-To-Air Missile Systems",
    445,
    341,
    76,
    4,
    24
   ],
   [
    "Radars",
    142,
    88,
    44,
    0,
    10
   ],
   [
    "Jammers And Deception Systems",
    107,
    82,
    15,
    0,
    10
   ],
   [
    "Aircraft",
    200,
    169,
    31,
    0,
    0
   ],
   [
    "Helicopters",
    185,
    145,
    38,
    0,
    2
   ],
   [
    "Unmanned Combat Aerial Vehicles",
    25,
    21,
    1,
    0,
    3
   ],
   [
    "Naval Ships and Submarines",
    40,
    27,
    13,
    0,
    0
   ],
   [
    "Trucks and similar vehicles",
    4715,
    3984,
    111,
    52,
    568
   ]
  ],
  "auto": true
 },
 "military": [
  {
   "date": "2026-10-19",
   "name": "Radar station, Trubchevsk area",
   "location": "Trubchevsk area, Bryansk oblast, Russia",
   "occupied": false,
   "category": "Air defence",
   "outcome": "General Staff: a radar station hit (18 Oct and the night of 19 Oct).",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://armyinform.com.ua/2026/10/19/urazheni-rls-na-bryanshhyni-ta-sklady-na-okupovanyh-terytoriyah-genshtab-zsu/"
   ],
   "tier": "B",
   "notes": "General Staff statement 19 Oct 2026 (ArmyInform 15:46 Kyiv)."
  },
  {
   "date": "2026-10-19",
   "name": "Ammunition depots, Hrintal and Ternove areas",
   "location": "Hrintal and Ternove areas, Donetsk oblast (occupied), Ukraine",
   "occupied": true,
   "category": "Ammunition depots / arsenals",
   "outcome": "General Staff: Russian army ammunition depots hit (18 Oct and the night of 19 Oct).",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://armyinform.com.ua/2026/10/19/urazheni-rls-na-bryanshhyni-ta-sklady-na-okupovanyh-terytoriyah-genshtab-zsu/"
   ],
   "tier": "B",
   "notes": "General Staff statement 19 Oct 2026 (ArmyInform 15:46 Kyiv). Same statement: a material and technical supply depot near Pelahiivka, Donetsk oblast (occupied)."
  },
  {
   "date": "2026-10-18",
   "name": "Attack-drone storage, preparation and launch site, Donetsk area",
   "location": "Donetsk area, Donetsk oblast (occupied), Ukraine",
   "occupied": true,
   "category": "Aircraft / airfields",
   "outcome": "General Staff: a storage, preparation and launch site of Russian attack drones hit (17 Oct and the night of 18 Oct); said to reduce Russia's capacity to strike Ukraine and its civilian infrastructure.",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://interfax.com.ua/news/general/1222012.html"
   ],
   "tier": "B",
   "notes": "General Staff statement 18 Oct 2026 (Interfax-Ukraine 11:23 Kyiv). Filed under Aircraft / airfields (UAV launch infrastructure)."
  },
  {
   "date": "2026-10-18",
   "name": "Vehicle and armoured-vehicle repair base of the 'Yug' group of forces, Sukhodilsk area",
   "location": "Sukhodilsk area, Luhansk oblast (occupied), Ukraine",
   "occupied": true,
   "category": "Bridges / military logistics",
   "outcome": "General Staff: repair base for motor vehicles and armoured combat vehicles hit (17 Oct and the night of 18 Oct); said to complicate the repair of damaged equipment.",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://interfax.com.ua/news/general/1222012.html"
   ],
   "tier": "B",
   "notes": "General Staff statement 18 Oct 2026 (Interfax-Ukraine 11:23 Kyiv)."
  },
  {
   "date": "2026-10-17",
   "name": "Railway bridge over the Unecha River, near Sloboda-Seletska",
   "location": "Sloboda-Seletska area, Bryansk oblast, Russia",
   "occupied": false,
   "category": "Bridges / military logistics",
   "outcome": "General Staff: damage to the bridge recorded after strikes on 16 Oct and the night of 17 Oct; expected to complicate Russian rail logistics.",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://war.obozrevatel.com/ukr/section-war/news-syly-oborony-urazyly-zaliznychnyy-mist-ta-sklady-mtz-protyvnyka-henshtab-17-10-2026.html",
    "https://www.5.ua/suspilstvo/mist-cherez-unechu-sklady-ta-punkt-upravlinnia-dronamy-henshtab-povidomyv-pro-udary-zsu-384868.html"
   ],
   "tier": "B",
   "notes": "General Staff statement 17 Oct 2026 (OBOZ.UA 13:22 Kyiv)."
  },
  {
   "date": "2026-10-17",
   "name": "Material and technical supply depots, Novoandriivka, Mykilske and Mariupol areas",
   "location": "Novoandriivka, Mykilske and Mariupol areas, Donetsk oblast (occupied), Ukraine",
   "occupied": true,
   "category": "Bridges / military logistics",
   "outcome": "General Staff: strikes on supply depots recorded on 16 Oct and the night of 17 Oct (outcome not specified); a drone control point near Malynivka also hit.",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://war.obozrevatel.com/ukr/section-war/news-syly-oborony-urazyly-zaliznychnyy-mist-ta-sklady-mtz-protyvnyka-henshtab-17-10-2026.html"
   ],
   "tier": "B",
   "notes": "Same General Staff summary as the Unecha bridge."
  },
  {
   "date": "2026-10-16",
   "name": "Production and warehouse building of the drone maker Roboavia, near Lenina",
   "location": "Lenina area, Rostov oblast, Russia",
   "occupied": false,
   "category": "Military production",
   "outcome": "General Staff: building used to produce and store drones for the Russian army struck on 16 Oct (outcome not specified).",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://armyinform.com.ua/2026/10/17/genshtab-u-rf-urazheno-vyrobnyka-droniv-i-sklad-zabezpechennya-raketnoyi-brygady/"
   ],
   "tier": "B",
   "notes": "General Staff statement 17 Oct 2026 (ArmyInform 14:08 Kyiv)."
  },
  {
   "date": "2026-10-12",
   "name": "Supply depot of a Russian missile brigade unit, near Latyshi",
   "location": "Latyshi area, Bryansk oblast, Russia",
   "occupied": false,
   "category": "Ammunition depots / arsenals",
   "outcome": "General Staff: material and technical supply depot of a missile brigade unit struck on 12 Oct (outcome not specified).",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://armyinform.com.ua/2026/10/17/genshtab-u-rf-urazheno-vyrobnyka-droniv-i-sklad-zabezpechennya-raketnoyi-brygady/"
   ],
   "tier": "B",
   "notes": "Disclosed by the General Staff on 17 Oct 2026."
  },
  {
   "date": "2026-10-16",
   "name": "Two telecommunications towers with antenna equipment, Olenivka area",
   "location": "Olenivka area, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Command posts / HQs",
   "outcome": "Two telecommunications towers with antenna equipment struck on 15 Oct or the night of 16 Oct (outcome not specified).",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://en.interfax.com.ua/news/general/1221667.html"
   ],
   "tier": "B",
   "notes": "Same General Staff summary as the Bryansk radars and EW station (15 Oct / night of 16 Oct). Filed under Command posts / HQs for lack of a closer category."
  },
  {
   "date": "2026-10-16",
   "name": "Nebo-U (55Zh6U) long-range radar, Magri area",
   "location": "Magri area, Krasnodar Krai, Russia",
   "occupied": false,
   "category": "Air defence",
   "outcome": "General Staff: 55Zh6U Nebo-U long-range radar hit on the night of 16 Oct; fire in the area of the site. General Staff estimate of its value: about USD 100 million.",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://armyinform.com.ua/2026/10/16/urazheno-rls-%C2%ABnebo-u%C2%BB-vartistyu-blyzko-100-mln-%E2%80%94-genshtab-zsu/",
    "https://war.obozrevatel.com/ukr/section-war/news-urazheno-dvi-rls-stantsiyu-reb-ta-telekomunikatsiyni-vezhi-voroha-podrobytsi-henshtabu-zsu-16-10-2026.html"
   ],
   "tier": "B",
   "notes": "General Staff statement 16 Oct 2026 (ArmyInform 12:46 Kyiv). Value is the General Staff's own estimate."
  },
  {
   "date": "2026-10-16",
   "name": "Two radar stations and an electronic warfare station, Bryansk oblast",
   "location": "Trubchevsk and Novozybkov areas and one other site, Bryansk oblast, Russia",
   "occupied": false,
   "category": "Air defence",
   "outcome": "Struck (outcome not specified).",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://war.obozrevatel.com/ukr/section-war/news-urazheno-dvi-rls-stantsiyu-reb-ta-telekomunikatsiyni-vezhi-voroha-podrobytsi-henshtabu-zsu-16-10-2026.html"
   ],
   "tier": "B",
   "notes": "General Staff summary for 15 Oct and night of 16 Oct 2026 (OBOZ.UA 16:11 Kyiv): radars in the Trubchevsk area and one other area of the oblast, EW station near Novozybkov. Same summary: two telecom towers near Olenivka (occupied Crimea) - not filed separately."
  },
  {
   "date": "2026-10-15",
   "name": "Borisoglebsk military airfield - six Su-34M bombers",
   "location": "Borisoglebsk, Voronezh oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "Ukrainian Navy: six Su-34M bombers destroyed by Neptune missiles, with fire, secondary explosions and damage to flight-support equipment (night of 14-15 Oct). Zelensky: four Su-34 destroyed and two more hit.",
   "claimed_by": "Ukrainian Navy; President Zelensky (X)",
   "confirmation": "Satellite imagery published by Ukrainian monitoring channels (AviVector) reportedly shows four Su-34s burned out and two damaged (ISW cites imagery showing damage to four). Moscow Times: toll 'could not be independently verified'. Russia has not acknowledged damage (Voronezh governor Gusev: 33 drones and 'several jet-powered aerial targets' intercepted; debris damaged outbuildings and a car in Voronezh).",
   "urls": [
    "https://www.themoscowtimes.com/2026/10/15/ukraine-says-missile-strike-destroyed-6-russian-warplanes-at-voronezh-airfield-a93991",
    "https://migflug.com/afterburner/borisoglebsk-neptune-strike-six-su-34m-bombers-2026/",
    "https://militarnyi.com/en/news/ukrainian-navy-hit-six-su-34m-bombers-at-borisoglebsk-air-base-with-neptune-missiles/",
    "https://www.pravda.com.ua/eng/news/2026/10/15/8058149/",
    "https://www.dailykos.com/stories/2026/10/15/800112765/community/ukraine-invasion-day-1695-ukr-strikes-resume/"
   ],
   "tier": "B",
   "notes": "Strike night 14-15 Oct; date = 15 Oct (Navy statement). Commercial/independent satellite verification (e.g., Planet/Maxar via Reuters/AP) not yet seen - keep B; upgrade to C once verified."
  },
  {
   "date": "2026-10-15",
   "name": "Attack-drone storage and launch site, Oryol oblast",
   "location": "Oryol oblast, Russia (exact site not named)",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "Struck (outcome not specified).",
   "claimed_by": "President Zelensky",
   "confirmation": "None independent yet",
   "urls": [
    "https://www.themoscowtimes.com/2026/10/15/ukraine-says-missile-strike-destroyed-6-russian-warplanes-at-voronezh-airfield-a93991"
   ],
   "tier": "B",
   "notes": "Filed under Aircraft / airfields (UAV launch infrastructure). Same Zelensky statement also claimed an unspecified 'target in the Black Sea' - not filed (no detail). A similar Oryol launch site (Tsymbulova) was hit ~1-3 Oct - check it is not duplicated."
  },
  {
   "date": "2026-10-10",
   "name": "Russian command posts, Dokuchaievsk area",
   "location": "Dokuchaievsk, Donetsk oblast (occupied), Ukraine",
   "occupied": true,
   "category": "Command posts / HQs",
   "outcome": "Struck (outcome not specified).",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://censor.net/en/news/4027729/the-general-staff-reported-that-russian-military-facilities-had-been-struck"
   ],
   "tier": "B",
   "notes": "General Staff summary for 9 Oct and night of 10 Oct 2026."
  },
  {
   "date": "2026-10-10",
   "name": "Russian command posts, Peremozhne area",
   "location": "Peremozhne area, Zaporizhzhia oblast (occupied), Ukraine",
   "occupied": true,
   "category": "Command posts / HQs",
   "outcome": "Struck (outcome not specified).",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://censor.net/en/news/4027729/the-general-staff-reported-that-russian-military-facilities-had-been-struck"
   ],
   "tier": "B",
   "notes": "General Staff summary for 9 Oct and night of 10 Oct 2026."
  },
  {
   "date": "2026-10-10",
   "name": "Electronic warfare station, Trukhanove area",
   "location": "Trukhanove area, Bryansk oblast, Russia",
   "occupied": false,
   "category": "Air defence",
   "outcome": "Struck (outcome not specified).",
   "claimed_by": "General Staff of the AFU",
   "confirmation": "None independent yet",
   "urls": [
    "https://censor.net/en/news/4027729/the-general-staff-reported-that-russian-military-facilities-had-been-struck"
   ],
   "tier": "B",
   "notes": "EW station filed under Air defence for lack of a closer category. Same GS summary also listed a sergeants' training centre (Khorly, Kherson obl.), a repair base (Sukhodilsk, Luhansk obl.), logistics depots (Rodynske area, Donetsk obl.; Borovenky, Luhansk obl.) - not filed as separate records (outside category list)."
  },
  {
   "date": "2026-10-09",
   "name": "Pantsir-S1 air defence system, Kudepsta area (Sochi)",
   "location": "Kudepsta, Sochi, Krasnodar krai, Russia",
   "occupied": false,
   "category": "Air defence",
   "outcome": "destroyed (per General Staff)",
   "claimed_by": "General Staff of the Armed Forces of Ukraine (Telegram, 9 Oct 2026)",
   "confirmation": "None independent; General Staff claim relayed by Censor.NET",
   "urls": [
    "https://censor.net/en/news/4027542/the-destruction-of-the-pantsir-and-other-russian-facilities-details"
   ],
   "tier": "B",
   "notes": "Strikes on 8 Oct and night of 9 Oct 2026. Same report: field fuel depot near Stroitel (Belgorod obl.), ammo/supply depots in occupied Luhansk and Donetsk oblasts."
  },
  {
   "date": "2026-10-07",
   "name": "Seshcha military airfield (566th Military Transport Aviation Regiment; An-124/Il-76 base), plus EW station near Hryniove and radar near Yelionka",
   "location": "Seshcha, Bryansk oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "damage being assessed (per General Staff); fire in aircraft parking area recorded",
   "claimed_by": "General Staff of the Armed Forces of Ukraine",
   "confirmation": "NASA FIRMS thermal anomaly in aircraft parking area (per Militarnyi); no post-strike imagery of aircraft",
   "urls": [
    "https://united24media.com/war-in-ukraine/ukraine-strikes-russias-seshcha-airfield-drone-launch-site-and-command-posts-23207",
    "https://militarnyi.com/en/news/defense-forces-strike-seshcha-airfield-housing-russian-an-124-and-il-76-aircraft/",
    "https://charter97.org/en/news/2026/10/7/701055/"
   ],
   "tier": "B",
   "notes": "Strikes on 6 Oct and overnight 7 Oct 2026. No aircraft losses stated; do not claim aircraft destroyed. No Russian official comment found."
  },
  {
   "date": "2026-09-29",
   "name": "39N6 Kasta radar station",
   "location": "Manhush, Donetsk oblast (occupied)",
   "occupied": true,
   "category": "Air defence",
   "outcome": "destroyed (per General Staff)",
   "claimed_by": "General Staff of the Armed Forces of Ukraine",
   "confirmation": "None independent",
   "urls": [
    "https://censor.net/en/news/4025741/defense-forces-struck-the-kasta-radar-station-uav-launch-sites-and-the-occupiers-warehouses"
   ],
   "tier": "B",
   "notes": "Strikes on 28 Sep and night of 29 Sep 2026; same report lists UAV command posts and ammunition depots in occupied Luhansk/Donetsk."
  },
  {
   "date": "2026-09-26",
   "name": "Azov Optical-Mechanical Plant JSC (defence-industry products)",
   "location": "Azov, Rostov oblast, Russia",
   "occupied": false,
   "category": "Military production",
   "outcome": "fire detected near plant; extent unknown",
   "claimed_by": "Not claimed by Ukraine; reported by residents via Exilenova+",
   "confirmation": "NASA FIRMS fire near the plant; Rostov governor Yuri Slyusar confirmed an attack on Azov and mentioned damage to 'industrial facilities' (plant not named)",
   "urls": [
    "https://charter97.org/en/news/2026/9/26/699758/"
   ],
   "tier": "B",
   "notes": "Night of 25-26 Sep 2026. Plant identification rests on Exilenova+; governor did not name it."
  },
  {
   "date": "2026-09-17",
   "name": "Rostov-Central military airfield (An-12, An-26 transports, 2x Mi-8)",
   "location": "Rostov-on-Don, Rostov oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "destroyed (per OSINT)",
   "claimed_by": "Not officially detailed; attributed to Ukrainian strike",
   "confirmation": "OSINT project CyberBoroshno; unspecified satellite imagery and scene photos showing significant damage",
   "urls": [
    "https://charter97.org/en/news/2026/9/18/698958/"
   ],
   "tier": "B",
   "notes": "Night of 17 Sep 2026. Aircraft count rests on OSINT analysis only; imagery provider not named. Treat as preliminary."
  },
  {
   "date": "2026-09-14",
   "name": "S-400 92N6 multifunction radar, Sochi (plus UAV launch/storage sites and radars in Kursk, Bryansk regions)",
   "location": "Sochi, Krasnodar Krai, Russia",
   "occupied": false,
   "category": "Air defence",
   "outcome": "damaged (claimed hit)",
   "claimed_by": "General Staff of the Armed Forces of Ukraine",
   "confirmation": "None independent at time of reporting",
   "urls": [
    "https://censor.net/en/news/4023310/an-s-400-radar-station-was-hit-in-sochi-details-of-the-ukrainian-armed-forces-strikes"
   ],
   "tier": "B",
   "notes": "Night of 13-14 Sep 2026. Same report lists strikes on UAV command post in Novohrodivka (occupied Donetsk oblast) and radars in Bryansk oblast."
  },
  {
   "date": "2026-08-26",
   "name": "Headquarters of the Central Military District and 41st Combined Arms Army, Donetsk",
   "location": "Donetsk, Donetsk oblast (occupied), Ukraine",
   "occupied": true,
   "category": "Command posts / HQs",
   "outcome": "destroyed/hit; 20 Russian officers killed (named)",
   "claimed_by": "No formal Ukrainian claim reported; occupation head Pushilin said Storm Shadow missiles used",
   "confirmation": "Mediazona (with BBC Russian Service) identified all 20 officers by name and rank - largest known officer loss in a single strike",
   "urls": [
    "https://en.zona.media/article/2026/10/09/officers",
    "https://meduza.io/en/news/2026/10/09/a-ukrainian-missile-strike-killed-20-russian-officers-in-occupied-donetsk-it-was-the-largest-known-loss-of-russian-officers-in-a-single-attack-since-the-invasion-mediazona-reports",
    "https://kyivindependent.com/record-20-russian-officers-killed-in-ukrainian-strikes-on-headquarters-in-donetsk-monitors-say/"
   ],
   "tier": "C",
   "notes": "Mediazona report published 9 Oct 2026. Russian side reported 8 civilians injured."
  },
  {
   "date": "2026-08-20",
   "name": "Akhtubinsk airfield - Su-34 bomber",
   "location": "Akhtubinsk, Astrakhan oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "damaged (significantly, per OSINT)",
   "claimed_by": "Part of Ukrainian long-range attack; no specific official claim cited",
   "confirmation": "Exilenova+ satellite image showing fire site near aircraft; thermal signature detected",
   "urls": [
    "https://pravda.com.ua/eng/news/2026/08/20/8049560"
   ],
   "tier": "B",
   "notes": "Night of 19-20 Aug 2026. OSINT-only indication; no commercial imagery provider named."
  },
  {
   "date": "2026-08-12",
   "name": "Novorossiysk naval base: frigates Admiral Makarov and Admiral Essen, a Project 21631 Buyan-M, patrol ship Vasily Bykov",
   "location": "Novorossiysk, Krasnodar Krai, Russia",
   "occupied": false,
   "category": "Warships and submarines",
   "outcome": "damaged (varying degrees, preliminary)",
   "claimed_by": "General Staff of the Armed Forces of Ukraine (joint Defence Forces operation)",
   "confirmation": "None independent at time of reporting",
   "urls": [
    "https://mezha.net/eng/?p=3387506"
   ],
   "tier": "B",
   "notes": "Night of 12 Aug 2026. Second Novorossiysk strike of 2026 affecting both Project 11356 frigates."
  },
  {
   "date": "2026-07-26",
   "name": "S-400 launcher and 96L6 radar",
   "location": "Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Air defence",
   "outcome": "damaged (set on fire)",
   "claimed_by": "HUR (Defence Intelligence) Unmanned Systems Department",
   "confirmation": "HUR video only",
   "urls": [
    "https://euromaidanpress.com/2026/07/27/russia-spent-a-fortune-on-this-air-defense-system-watch-a-drone-undo-it-in-seconds/"
   ],
   "tier": "B",
   "notes": "Overnight 25-26 Jul 2026; reported 27 Jul. Exact site not given."
  },
  {
   "date": "2026-06-04",
   "name": "Project 10410 Svetlyak border patrol ship",
   "location": "Sea of Azov (occupied waters)",
   "occupied": true,
   "category": "Warships and submarines",
   "outcome": "damaged (extent being assessed)",
   "claimed_by": "General Staff of the Armed Forces of Ukraine",
   "confirmation": "None independent",
   "urls": [
    "https://ukrinform.net/rubric-ato/4130501-ukraine-confirms-strike-on-russian-patrol-ship-in-crimea-gunpowder-plant-in-ryazan-region.html",
    "https://www.marineinsight.com/ukraine-strikes-svetlyak-russian-patrol-ship-in-sea-of-azov-st-petersburg-oil-terminal/"
   ],
   "tier": "B",
   "notes": "3 Jun and overnight into 4 Jun 2026. FSB Border Service vessel. Reports differ on Crimea vs Sea of Azov."
  },
  {
   "date": "2026-06-04",
   "name": "Elastik gunpowder plant (branch of Geftest-M)",
   "location": "Ryazan oblast, Russia",
   "occupied": false,
   "category": "Military production",
   "outcome": "damaged (fire >400 sq m)",
   "claimed_by": "General Staff of the Armed Forces of Ukraine",
   "confirmation": "None independent",
   "urls": [
    "https://ukrinform.net/rubric-ato/4130501-ukraine-confirms-strike-on-russian-patrol-ship-in-crimea-gunpowder-plant-in-ryazan-region.html"
   ],
   "tier": "B",
   "notes": "Propellant/gunpowder producer identified by Ukrainian General Staff as defence-industry site."
  },
  {
   "date": "2026-06-03",
   "name": "Corvette Boikiy (Project 20380), Baltic Fleet",
   "location": "Kronstadt, St Petersburg, Russia",
   "occupied": false,
   "category": "Warships and submarines",
   "outcome": "damaged (fire on board, preliminary)",
   "claimed_by": "General Staff; Unmanned Systems Forces (cmdr. Robert 'Madyar' Brovdi) video",
   "confirmation": "Satellite imagery reportedly showing a smoking warship; no Russian MoD statement",
   "urls": [
    "https://news.liga.net/en/war/news/general-staff-ukraine-struck-a-corvette-at-a-russian-baltic-fleet-base",
    "https://www.bairdmaritime.com/amp/story/security/incidents/acts-of-war/ukrainian-military-claims-successful-drone-strike-on-russian-warship-near-saint-petersburg"
   ],
   "tier": "B",
   "notes": "First claimed strike on a Baltic Fleet warship; ship reportedly in shipyard maintenance."
  },
  {
   "date": "2026-05-07",
   "name": "Project 22800 Karakurt-class corvette (Caspian Flotilla)",
   "location": "Kaspiysk, Dagestan, Russia",
   "occupied": false,
   "category": "Warships and submarines",
   "outcome": "hit; damage being assessed",
   "claimed_by": "General Staff of the Armed Forces of Ukraine",
   "confirmation": "None independent",
   "urls": [
    "https://en.lb.ua/news/2026/05/07/37970_general_staff_armed_forces.html"
   ],
   "tier": "B",
   "notes": "Night of 7 May 2026. Ship name not disclosed. Karakurt corvettes carry Kalibr missiles."
  },
  {
   "date": "2026-03-15",
   "name": "Radars 59N6-E Protivnik and 73E6 Parol (Libknekhtivka) and S-400 launcher (Dalnie); Valdai radar (Prymorskyi, 10 Mar)",
   "location": "Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Air defence",
   "outcome": "damaged",
   "claimed_by": "General Staff of the Armed Forces of Ukraine",
   "confirmation": "None independent",
   "urls": [
    "https://www.pravda.com.ua/eng/news/2026/03/15/8025596"
   ],
   "tier": "B",
   "notes": "Night of 14-15 Mar 2026; Valdai radar hit 10 Mar with 'significant damage' per General Staff."
  },
  {
   "date": "2026-03-10",
   "name": "Kremniy El microelectronics plant",
   "location": "Bryansk, Bryansk oblast, Russia",
   "occupied": false,
   "category": "Military production",
   "outcome": "damaged ('significant damage to production facilities' per UA)",
   "claimed_by": "General Staff of the Armed Forces of Ukraine (Storm Shadow)",
   "confirmation": "Bryansk governor confirmed an attack with 6 killed, 37 injured, but did not mention the plant; OSINT (CyberBoroshno) counted 7 missile impacts; no satellite imagery",
   "urls": [
    "https://english.nv.ua/nation/storm-shadow-missiles-hit-microelectronics-plant-in-bryansk-osint-50590835.html",
    "https://www.kyivpost.com/post/71664"
   ],
   "tier": "B",
   "notes": "Plant makes electronic components for missile systems (incl. Iskander per Ukrainian/Western sources). Casualty figures from Russian governor - handle carefully in public materials."
  },
  {
   "date": "2026-03-02",
   "name": "Novorossiysk naval base: frigates Admiral Essen and Admiral Makarov, minesweeper Valentin Pikul, Albatros-class Yeysk and Kasimov, others",
   "location": "Novorossiysk, Krasnodar Krai, Russia",
   "occupied": false,
   "category": "Warships and submarines",
   "outcome": "damaged (probable)",
   "claimed_by": "General Staff; SBU and Defence Forces",
   "confirmation": "Satellite analysis by CyberBoroshno and Exilenova+ reports 'probable damage'; Russian authorities reported 3 sailors killed, 14-16 wounded",
   "urls": [
    "https://www.navalnews.com/?p=83892",
    "https://www.kyivpost.com/post/71218"
   ],
   "tier": "C",
   "notes": "Night of 1-2 Mar 2026. Russian casualty admission confirms the attack; ship-level damage only 'probable' per OSINT."
  },
  {
   "date": "2026-02-21",
   "name": "Votkinsk Machine-Building Plant (Iskander, Bulava, Yars, Oreshnik production)",
   "location": "Votkinsk, Udmurtia, Russia",
   "occupied": false,
   "category": "Military production",
   "outcome": "damaged (claimed roof breach of workshop No.19)",
   "claimed_by": "Attributed to Ukraine (FP-5 Flamingo cruise missiles) per OSINT; later Ukrainian confirmation reported",
   "confirmation": "CyberBoroshno estimated 30x24 m hole in workshop roof; no satellite imagery; effect unclear",
   "urls": [
    "https://maritime-executive.com/article/long-range-ukrainian-strike-hits-icbm-plant-800-miles-inside-russia",
    "https://www.yahoo.com/news/articles/drone-hits-russian-ballistic-missile-220551821.html"
   ],
   "tier": "B",
   "notes": "Night of 20-21 Feb 2026 (sources differ on exact night). Dedicated ballistic-missile production site."
  },
  {
   "date": "2026-02-15",
   "name": "Project 22460 patrol ship, tug, Project 16640 vessel, BK-16 landing boat, Ka-27 helicopter",
   "location": "Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Warships and submarines",
   "outcome": "damaged (claimed)",
   "claimed_by": "HUR special unit 'Prymary' (Ghosts)",
   "confirmation": "None independent",
   "urls": [
    "https://www.navalnews.com/?p=83892"
   ],
   "tier": "B",
   "notes": "Date approximate - February 2026; source gives month only. Verify exact date before publication."
  },
  {
   "date": "2026-01-06",
   "name": "100th GRAU Arsenal (military unit 55486)",
   "location": "near Neya, Kostroma oblast, Russia",
   "occupied": false,
   "category": "Ammunition depots / arsenals",
   "outcome": "damaged - at least 3 storage buildings destroyed",
   "claimed_by": "SBU drones",
   "confirmation": "Planet 0.5 m satellite image of 26 Jan 2026 analysed by Radio Liberty (Mark Krutov); governor acknowledged damage to 'several facilities'",
   "urls": [
    "https://militarnyi.com/en/news/satellite-images-show-the-aftermath-of-the-ukrainian-strike-on-an-arsenal-in-the-kostroma-region/",
    "https://news.liga.net/en/politics/news/ukrainian-strike-completely-destroys-at-least-three-buildings-at-russian-arsenal-in-kostroma-region-photos"
   ],
   "tier": "C",
   "notes": ""
  },
  {
   "date": "2025-12-18",
   "name": "Belbek airbase: MiG-31 interceptor, Pantsir system, three radars (Su-27s hit 19-20 Dec)",
   "location": "Belbek, Sevastopol, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Aircraft / airfields",
   "outcome": "hit; at least one Su-27 destroyed per SBU",
   "claimed_by": "SBU",
   "confirmation": "SBU drone video only",
   "urls": [
    "https://euromaidanpress.com/2025/12/21/belbek-strikes/"
   ],
   "tier": "B",
   "notes": "Follow-up strike on two Su-27 and control tower on night of 19-20 Dec 2025."
  },
  {
   "date": "2025-12-15",
   "name": "Kilo-class (Project 636.3) submarine",
   "location": "Novorossiysk, Krasnodar Krai, Russia",
   "occupied": false,
   "category": "Warships and submarines",
   "outcome": "damaged (claimed 'critically'); Russia denies damage",
   "claimed_by": "SBU ('Sub Sea Baby' underwater drone) with Navy",
   "confirmation": "Russian Black Sea Fleet denied damage; no independent imagery confirmed",
   "urls": [
    "https://gcaptain.com/ukraine-says-underwater-drones-hit-submarine-but-moscow-denies-damage/",
    "https://euro-sd.com/2025/12/major-news/48262/ukrainian-sub-sea-baby-attack/"
   ],
   "tier": "B",
   "notes": "Claimed first-ever underwater-drone strike on a submarine. Contested."
  },
  {
   "date": "2025-11-25",
   "name": "Beriev aircraft plant / Taganrog-Yuzhny: A-60 laser testbed and A-100LL AEW prototype (Il-76 airframes)",
   "location": "Taganrog, Rostov oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "destroyed (2 Il-76-type aircraft)",
   "claimed_by": "General Staff; Unmanned Systems Forces (cruise missiles + drones)",
   "confirmation": "Satellite imagery showing destruction of two Il-76-type aircraft; type ID via historical imagery",
   "urls": [
    "https://theaviationist.com/2025/11/25/ukrainian-strike-beriev-plant-destroys-testbeds/",
    "https://armyinform.com.ua/en/2025/11/29/afipsky-oil-refinery-aircraft-repair-plant-and-other-enemy-facilities-struck-general-staff-of-the-afu/"
   ],
   "tier": "C",
   "notes": "Night of 24-25 Nov 2025. Beriev plant services A-50 AEW aircraft. Aircraft type identification is 'reported'."
  },
  {
   "date": "2025-10-06",
   "name": "Y.M. Sverdlov Plant (explosives/munitions)",
   "location": "Dzerzhinsk, Nizhny Novgorod oblast, Russia",
   "occupied": false,
   "category": "Military production",
   "outcome": "hit; explosions and large fire",
   "claimed_by": "General Staff of the Armed Forces of Ukraine",
   "confirmation": "None independent",
   "urls": [
    "https://www.pravda.com.ua/eng/news/2025/10/06/8001463"
   ],
   "tier": "B",
   "notes": "Night of 5-6 Oct 2025. One of Russia's largest explosives producers; struck repeatedly in 2025-2026."
  },
  {
   "date": "2025-09-22",
   "name": "Kacha airbase: An-26 (RF-46878) and Be-12 amphibious aircraft",
   "location": "Kacha, Sevastopol, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Aircraft / airfields",
   "outcome": "An-26 destroyed; Be-12 damaged",
   "claimed_by": "HUR (Defence Intelligence)",
   "confirmation": "Satellite images of 25 Sep 2025 analysed by AviVector: one An-26 completely destroyed, one Be-12 damaged; others removed or undamaged",
   "urls": [
    "https://euromaidanpress.com/2025/09/28/satellite-images-confirm-ukrainian-drones-destroyed-russian-be%E2%80%9112-and-an%E2%80%9126-aircraft-in-occupied-crimea/",
    "https://kyivindependent.com/for-first-time-ukraine-hits-2-russian-amphibious-aircraft-in-occupied-crimea-intelligence-claims/"
   ],
   "tier": "C",
   "notes": "Strikes on 22 and 25 Sep 2025. HUR claimed more than imagery confirms - use the conservative figure."
  },
  {
   "date": "2025-08-28",
   "name": "Project 21631 Buyan-M small missile ship (Kalibr carrier)",
   "location": "Temryuk Bay, Sea of Azov, Krasnodar Krai, Russia",
   "occupied": false,
   "category": "Warships and submarines",
   "outcome": "damaged",
   "claimed_by": "HUR (attributed; FPV/long-range drones)",
   "confirmation": "Defense Express report; no independent confirmation",
   "urls": [
    "https://english.nv.ua/nation/historic-strike-hur-s-fpv-drones-damaged-russian-corvette-left-it-defenseless-50540839.html",
    "https://ua.interfax.com.ua/news/general/1100000-amp.html"
   ],
   "tier": "B",
   "notes": ""
  },
  {
   "date": "2025-08-04",
   "name": "Saky airfield - five combat aircraft (incl. Su-30SM)",
   "location": "Saky, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Aircraft / airfields",
   "outcome": "5 hit, 1 destroyed (claimed)",
   "claimed_by": "SBU",
   "confirmation": "None independent cited",
   "urls": [
    "https://www.pravda.com.ua/eng/news/2025/08/04/7524702/",
    "https://news.online.ua/en/ssu-drones-hit-5-russian-combat-aircraft-at-saki-airfield-895827/"
   ],
   "tier": "B",
   "notes": "Reported 4 Aug 2025 (overnight strike)."
  },
  {
   "date": "2025-08-02",
   "name": "Primorsko-Akhtarsk airbase (Shahed/Gerbera launch site; 960th Assault Aviation Regiment)",
   "location": "Primorsko-Akhtarsk, Krasnodar Krai, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "damaged (fire marks)",
   "claimed_by": "SBU",
   "confirmation": "Satellite imagery published by Radio Liberty showing fire damage",
   "urls": [
    "https://news.liga.net/en/politics/news/radio-liberty-shows-the-consequences-of-the-sbu-drone-strike-on-the-shahed-launch-base---photos",
    "https://ukrinform.net/rubric-ato/4021456-sbu-drones-strike-shahed-launch-airfield-in-primorskoakhtarsk-russian-oil-facilities.html"
   ],
   "tier": "C",
   "notes": "Night of 2 Aug 2025. Damage scale not quantified."
  },
  {
   "date": "2025-07-05",
   "name": "Borisoglebsk airbase - guided-bomb warehouse and aircraft",
   "location": "Borisoglebsk, Voronezh oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "glide-bomb warehouse destroyed; at least one aircraft damaged (claimed)",
   "claimed_by": "General Staff of the Armed Forces of Ukraine",
   "confirmation": "NASA fire detection at the airfield only",
   "urls": [
    "https://www.kyivpost.com/amp/post/55745"
   ],
   "tier": "B",
   "notes": "Base for Su-34, Su-35S, Su-30SM. Date = Saturday 5 Jul 2025 per Kyiv Post."
  },
  {
   "date": "2025-07-01",
   "name": "Kupol Electromechanical Plant (Tor/Osa SAMs, Garpiya attack drones)",
   "location": "Izhevsk, Udmurtia, Russia",
   "occupied": false,
   "category": "Military production",
   "outcome": "damaged; 3 killed, dozens injured per Russian officials",
   "claimed_by": "General Staff of the Armed Forces of Ukraine",
   "confirmation": "Russian regional authorities confirmed the strike on a defence enterprise and casualties; independent media (Meduza, Novaya Gazeta Europe)",
   "urls": [
    "https://www.pravda.com.ua/eng/news/2025/07/01/7519730/",
    "https://meduza.io/en/feature/2025/07/01/ukrainian-drones-strike-russian-defense-plant-in-izhevsk-killing-three-and-injuring-dozens"
   ],
   "tier": "C",
   "notes": "~1,300-1,400 km from Ukraine. Casualty figures from Russian side."
  },
  {
   "date": "2025-06-03",
   "name": "Kerch (Crimean) Bridge - underwater charge on piers",
   "location": "Kerch Strait, between Crimea (occupied) and Krasnodar Krai",
   "occupied": true,
   "category": "Bridges / military logistics",
   "outcome": "damaged (pier supports, claimed)",
   "claimed_by": "SBU (~1,100 kg TNT-equivalent underwater)",
   "confirmation": "Bridge traffic suspended for hours; Russia did not confirm structural damage",
   "urls": [
    "https://euromaidanpress.com/2025/06/03/explosion-reported-at-russias-kerch-bridge-updates/",
    "https://en.lb.ua/news/2025/06/03/36068_third_strike_sbu_reports_damage.html"
   ],
   "tier": "B",
   "notes": "Third attack on the bridge."
  },
  {
   "date": "2025-06-01",
   "name": "Operation Spiderweb - Belaya airbase (Tu-95MS, Tu-22M3)",
   "location": "Belaya, Irkutsk oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "several Tu-95 and Tu-22M3 destroyed or damaged",
   "claimed_by": "SBU (FPV drones launched from trucks)",
   "confirmation": "Capella SAR image analysed for Reuters: 2 Tu-22 remnants destroyed, 4 Tu-95 destroyed or severely damaged; Planet imagery (Radio Liberty 'Schemes'): 7 aircraft damaged",
   "urls": [
    "https://www.yahoo.com/news/analysis-satellite-imagery-shows-ukraine-131332196.html",
    "https://empr.media/news/war/operation-spider-web-new-satellite-images-show-7-aircraft-damaged-at-the-belaya-airfield/",
    "https://euromaidanpress.com/2025/06/02/satellite-images-reveal-wreckage-of-russian-strategic-bombers-after-ukraines-spiderweb-drone-operation-deep-in-russia/"
   ],
   "tier": "C",
   "notes": "SBU claimed 41 aircraft hit across all bases; US officials (Reuters, 4 Jun) estimated up to 20 hit, ~10 destroyed. Use both figures with attribution."
  },
  {
   "date": "2025-06-01",
   "name": "Operation Spiderweb - Olenya airbase (Tu-95MS, An-12)",
   "location": "Olenya, Murmansk oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "at least 4 Tu-95MS and 1 An-12 destroyed",
   "claimed_by": "SBU",
   "confirmation": "Satellite images (Arctic Today) show at least 4 Tu-95MS and 1 An-12 destroyed; Reuters verified drone video of burning Tu-95s",
   "urls": [
    "https://www.arctictoday.com/satellite-images-from-olenya-show-4-strategic-bombers-destroyed",
    "https://www.yahoo.com/news/analysis-satellite-imagery-shows-ukraine-131332196.html",
    "https://kyivindependent.com/reuters-ukraine-struck-fewer-russian-bombers-during-operation-spiderweb-than-estimated-us-officials-claim/"
   ],
   "tier": "C",
   "notes": "Russian MoD acknowledged aircraft fires in Murmansk and Irkutsk regions."
  },
  {
   "date": "2025-06-01",
   "name": "Operation Spiderweb - Dyagilevo and Ivanovo airbases",
   "location": "Ryazan and Ivanovo oblasts, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "attacked; no aircraft losses independently confirmed",
   "claimed_by": "SBU",
   "confirmation": "Russian MoD listed Ivanovo among attacked regions; Reuters found no confirmed aircraft damage",
   "urls": [
    "https://www.yahoo.com/news/analysis-satellite-imagery-shows-ukraine-131332196.html",
    "https://en.wikipedia.org/wiki/Operation_Spiderweb"
   ],
   "tier": "B",
   "notes": "Keep separate from confirmed losses at Belaya/Olenya."
  },
  {
   "date": "2025-04-22",
   "name": "51st GRAU Arsenal",
   "location": "near Barsovo (Kirzhach district), Vladimir oblast, Russia",
   "occupied": false,
   "category": "Ammunition depots / arsenals",
   "outcome": "extensive damage; explosions and fire",
   "claimed_by": "No official Ukrainian claim; Russian MoD blamed 'safety violations'",
   "confirmation": "SAR imagery (Brady Africk), NASA FIRMS; UK MoD published satellite images",
   "urls": [
    "https://euromaidanpress.com/2025/04/24/satellite-images-reveal-extensive-damage-to-russias-51st-grau-arsenal-in-vladimir-oblast/",
    "https://ukranews.com/en/amp/news/1081906-uk-defense-ministry-publishes-satellite-images-of-51st-arsenal-of-russian-defense-ministry-which"
   ],
   "tier": "C",
   "notes": "Damage independently confirmed; cause/attribution NOT established. Present as 'destroyed, cause disputed'."
  },
  {
   "date": "2024-11-20",
   "name": "Command post at Marino estate (Kursk group HQ)",
   "location": "Marino, Kursk oblast, Russia",
   "occupied": false,
   "category": "Command posts / HQs",
   "outcome": "hit; officers killed incl. reportedly a North Korean general wounded",
   "claimed_by": "General Staff of the Armed Forces of Ukraine (Storm Shadow)",
   "confirmation": "Financial Times reporting on casualties (cited by LIGA); no official Russian admission",
   "urls": [
    "https://ukranews.com/en/news/1048742-storm-shadow-missile-strike-on-russian-base-in-marino-general-and-north-korean-soldiers-killed",
    "https://news.liga.net/en/politics/news/storm-shadow-strike-in-kursk-wounds-north-korean-general-kills-officers-ft"
   ],
   "tier": "B",
   "notes": "First publicly reported Storm Shadow use on Russian territory. Casualty details unverified."
  },
  {
   "date": "2024-10-09",
   "name": "Shahed storage base near Oktyabrsky (Yeysk)",
   "location": "near Yeysk, Krasnodar Krai, Russia",
   "occupied": false,
   "category": "Ammunition depots / arsenals",
   "outcome": "damaged warehouses (claimed ~400 drones stored)",
   "claimed_by": "Ukrainian Navy with SBU (per General Staff)",
   "confirmation": "Planet Labs image of 11 Oct 2024 (Radio Liberty 'Schemes') shows damaged warehouses and fire traces",
   "urls": [
    "https://news.liga.net/en/politics/news/first-satellite-image-of-damaged-shahed-drone-depots-near-yeysk-released"
   ],
   "tier": "C",
   "notes": "Date = General Staff report date; strike overnight before."
  },
  {
   "date": "2024-09-29",
   "name": "Kotluban missile and artillery arsenal",
   "location": "Kotluban, Volgograd oblast, Russia",
   "occupied": false,
   "category": "Ammunition depots / arsenals",
   "outcome": "attacked; satellite image indicates arsenal largely intact",
   "claimed_by": "General Staff of the Armed Forces of Ukraine",
   "confirmation": "Satellite image shows site intact (Ukrainska Pravda)",
   "urls": [
    "https://babel.ua/en/news/111279-the-general-staff-of-the-armed-forces-confirmed-the-attack-on-the-russian-military-arsenal-kotluban",
    "https://www.pravda.com.ua/eng/news/2024/09/29/7477368"
   ],
   "tier": "B",
   "notes": "Include only as 'attacked' - imagery contradicts major destruction."
  },
  {
   "date": "2024-09-21",
   "name": "719th GRAU arsenal, Tikhoretsk",
   "location": "Tikhoretsk, Krasnodar Krai, Russia",
   "occupied": false,
   "category": "Ammunition depots / arsenals",
   "outcome": "destroyed/badly damaged - scores of storage facilities",
   "claimed_by": "General Staff; SBU, HUR, SSO",
   "confirmation": "Maxar before/after imagery (TWZ, 22 Sep 2024); scorch marks over much of ~2.6 km2 site",
   "urls": [
    "https://www.twz.com/news-features/satellite-images-show-massive-devastation-at-russian-ammo-storage-sites-struck-by-ukrainian-drones",
    "https://www.pravda.com.ua/eng/news/2024/09/21/7476177"
   ],
   "tier": "C",
   "notes": "UA claimed >2,000 t of ammunition incl. North Korean munitions."
  },
  {
   "date": "2024-09-21",
   "name": "23rd GRAU Arsenal, Oktyabrsky",
   "location": "Oktyabrsky, Tver oblast, Russia",
   "occupied": false,
   "category": "Ammunition depots / arsenals",
   "outcome": "damaged - most storage buildings extensively damaged",
   "claimed_by": "SBU (per General Staff)",
   "confirmation": "Maxar imagery (TWZ)",
   "urls": [
    "https://www.twz.com/news-features/satellite-images-show-massive-devastation-at-russian-ammo-storage-sites-struck-by-ukrainian-drones",
    "https://armyinform.com.ua/2024/09/21/syly-oborony-ukrayiny-urazyly-na-rosiyi-dva-vijskovyh-arsenaly-j-pivnichnokorejskyj-eshelon/"
   ],
   "tier": "C",
   "notes": ""
  },
  {
   "date": "2024-09-18",
   "name": "107th GRAU missile and artillery arsenal, Toropets",
   "location": "Toropets, Tver oblast, Russia",
   "occupied": false,
   "category": "Ammunition depots / arsenals",
   "outcome": "destroyed - vast majority of structures destroyed or seriously damaged",
   "claimed_by": "SBU, HUR, SSO",
   "confirmation": "Maxar imagery 22 Sep 2024 (TWZ); 2.8-magnitude seismic event; Estonian intelligence estimate ~30,000 t destroyed",
   "urls": [
    "https://www.twz.com/news-features/satellite-images-show-massive-devastation-at-russian-ammo-storage-sites-struck-by-ukrainian-drones",
    "https://www.euronews.com/my-europe/2024/09/18/what-was-stored-at-the-russian-arms-depot-in-tver-region-struck-by-ukraines-drones",
    "https://novayagazeta.eu/en/articles/2024/09/18/ukrainian-drone-strike-on-munitions-depot-in-russias-tver-region-causes-huge-fire-en-news"
   ],
   "tier": "C",
   "notes": "Stored Iskander, Tochka-U missiles, glide bombs, artillery ammunition (per Ukrainian sources)."
  },
  {
   "date": "2024-08-22",
   "name": "Marinovka airbase - Su-34 fighter-bombers, hangars, ammunition depot",
   "location": "Marinovka, Volgograd oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "at least 1 Su-34 destroyed, others damaged",
   "claimed_by": "Ukrainian forces (drone strike)",
   "confirmation": "Satellite images (M.T. Anderson) of destroyed hangars/depot; CyberBoroshno analysis of scene photos",
   "urls": [
    "https://militarnyi.com/en/news/su-34-destroyed-several-jets-damaged-in-drone-attack-on-marinovka-air-base/",
    "https://euromaidanpress.com/2024/08/22/fires-and-detonations-at-russias-marinovka-airbase-after-drone-attack-video/"
   ],
   "tier": "C",
   "notes": ""
  },
  {
   "date": "2024-08-14",
   "name": "Savasleyka airbase (MiG-31K Kinzhal carriers)",
   "location": "Savasleyka, Nizhny Novgorod oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "hit; fire recorded; aircraft losses unconfirmed",
   "claimed_by": "Ukrainian forces (drones)",
   "confirmation": "Satellite fire detection",
   "urls": [
    "https://www.pravda.com.ua/eng/news/2024/08/14/7470348",
    "https://novayagazeta.eu/en/articles/2024/08/14/ukrainian-drone-strike-targets-russian-mig-regiment-armed-with-hypersonic-missiles-en-news"
   ],
   "tier": "B",
   "notes": "Fire confirmed; specific aircraft losses not independently verified."
  },
  {
   "date": "2024-08-09",
   "name": "Lipetsk airbase - glide-bomb (KAB) depot",
   "location": "Lipetsk, Lipetsk oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "ammunition depot destroyed",
   "claimed_by": "General Staff of the Armed Forces of Ukraine",
   "confirmation": "Satellite images showing destroyed depot",
   "urls": [
    "https://www.pravda.com.ua/eng/news/2024/08/09/7469724/",
    "https://ukranews.com/en/news/1025765-satellite-image-of-destroyed-ammunition-depot-at-lipetsk-airfield-attacked-at-night-of-august-8-9"
   ],
   "tier": "C",
   "notes": "Night of 8-9 Aug 2024."
  },
  {
   "date": "2024-08-02",
   "name": "Submarine Rostov-on-Don (Project 636.3 Kilo, Kalibr carrier)",
   "location": "Sevastopol, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Warships and submarines",
   "outcome": "sunk (claimed)",
   "claimed_by": "General Staff of the Armed Forces of Ukraine",
   "confirmation": "UK Defence Intelligence assessed sinking raises risks to fleet; previously damaged 13 Sep 2023",
   "urls": [
    "https://news.usni.org/2024/08/04/russian-attack-submarine-sunk-in-missile-strike-on-black-sea-port-claims-ukraine",
    "https://rubryka.com/en/2024/08/07/u-brytanskij-rozvidtsi-vvazhayut-shho-potoplennya-submaryny-rostov-na-donu-zbilshuye-ryzyky-dlya-flotu-rf-u-krymu"
   ],
   "tier": "C",
   "notes": "First submarine claimed sunk in the war."
  },
  {
   "date": "2024-06-08",
   "name": "Akhtubinsk airfield - Su-57 fighter",
   "location": "Akhtubinsk, Astrakhan oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "damaged",
   "claimed_by": "HUR (Defence Intelligence)",
   "confirmation": "Before/after satellite images published by HUR itself; no independent verification",
   "urls": [
    "https://www.pravda.com.ua/eng/news/2024/06/09/7459907/",
    "https://www.themoscowtimes.com/2024/06/10/ukraine-says-hit-su-57-fighter-jet-inside-russia"
   ],
   "tier": "B",
   "notes": "First claimed damage to a Su-57."
  },
  {
   "date": "2024-05-23",
   "name": "Voronezh-DM early-warning radar station, Armavir",
   "location": "Armavir, Krasnodar Krai, Russia",
   "occupied": false,
   "category": "Air defence",
   "outcome": "damaged - both radar buildings",
   "claimed_by": "No official claim (attributed to HUR drones by sources)",
   "confirmation": "Satellite images (RFE/RL) show serious damage to both Voronezh-DM radar buildings",
   "urls": [
    "https://www.rferl.org/a/russia-ukraine-war-radar-drones-satellite/32963318.html",
    "https://ukrinform.net/rubric-ato/3867783-satellite-images-show-scale-of-destruction-following-strike-on-russias-early-warning-radar.html"
   ],
   "tier": "C",
   "notes": "Strategic early-warning system; neither side commented officially."
  },
  {
   "date": "2024-05-19",
   "name": "Small missile ship Tsiklon (Project 22800 Karakurt)",
   "location": "Sevastopol, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Warships and submarines",
   "outcome": "sunk/destroyed",
   "claimed_by": "Ukrainian Navy / General Staff",
   "confirmation": "UK Defence Intelligence assessed successful strike removing Kalibr threat",
   "urls": [
    "https://euromaidanpress.com/2024/05/23/uk-intel-successful-ukrainian-strike-removes-russian-kalibr-missile-threat-in-black-sea/",
    "https://ukranews.com/en/news/1008327-british-intelligence-analyzes-impact-of-defense-forces-defeating-russian-tsiklon-missile-carrier"
   ],
   "tier": "C",
   "notes": "Last Kalibr-capable surface ship of Black Sea Fleet in Crimea at the time."
  },
  {
   "date": "2024-05-16",
   "name": "Belbek airbase - MiG-31, Su-27, MiG-29 aircraft",
   "location": "Belbek, Sevastopol, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Aircraft / airfields",
   "outcome": "destroyed (satellite shows at least 3 aircraft destroyed)",
   "claimed_by": "Ukrainian Armed Forces (ATACMS)",
   "confirmation": "Satellite images published 17 May 2024",
   "urls": [
    "https://www.pravda.com.ua/eng/news/2024/05/17/7456162",
    "https://www.twz.com/news-features/russias-belbek-airbase-in-crimea-hammered-by-ukrainian-long-range-strike"
   ],
   "tier": "C",
   "notes": "Strike night of 15-16 May 2024 (approx.)."
  },
  {
   "date": "2024-04-19",
   "name": "Tu-22M3 long-range bomber",
   "location": "Stavropol Krai, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "destroyed (crashed)",
   "claimed_by": "HUR / Air Force (S-200 missile, per Budanov)",
   "confirmation": "Russian MoD acknowledged the crash (attributing it to technical fault)",
   "urls": [
    "https://www.twz.com/air/russian-tu-22m3-backfire-shot-down-with-s-200-missile-ukraines-spy-chief",
    "https://pravda.com.ua/eng/news/2024/04/19/7451946"
   ],
   "tier": "C",
   "notes": "Loss confirmed; cause disputed."
  },
  {
   "date": "2024-04-17",
   "name": "Dzhankoi airfield - S-400 launchers and radars, helicopters",
   "location": "Dzhankoi, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Air defence",
   "outcome": "destroyed (S-400 elements)",
   "claimed_by": "Ukrainian Armed Forces (ATACMS)",
   "confirmation": "Satellite images of aftermath",
   "urls": [
    "https://euromaidanpress.com/2024/04/19/ukraine-destroys-russias-dzhankoi-helicopter-base-air-defenses-enabling-further-deep-strikes-on-occupied-crimea/",
    "https://ukranews.com/en/news/1003216-satellite-images-appear-of-dzhankoi-airfield-after-attack-with-atacms-missiles"
   ],
   "tier": "C",
   "notes": ""
  },
  {
   "date": "2024-04-05",
   "name": "Morozovsk airbase (Su-34)",
   "location": "Morozovsk, Rostov oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "6 aircraft destroyed, 8 damaged (claimed by media/SBU sources)",
   "claimed_by": "SBU / Defence Forces (sources)",
   "confirmation": "Russian MoD claimed drones shot down; independent loss figures not established",
   "urls": [
    "https://euromaidanpress.com/2024/04/05/ukraines-drone-strike-destroys-6-aircraft-damages-8-at-russias-morozovsk-airbase-media/",
    "https://www.twz.com/air/ukraine-strikes-blow-to-russian-su-34-fullback-base"
   ],
   "tier": "B",
   "notes": "Aircraft numbers from Ukrainian sources only."
  },
  {
   "date": "2024-03-24",
   "name": "Large landing ships Yamal and Azov, BSF communications centre",
   "location": "Sevastopol, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Warships and submarines",
   "outcome": "damaged",
   "claimed_by": "Ukrainian Armed Forces (Strategic Communications) / Navy",
   "confirmation": "Naval News reporting; no Russian admission",
   "urls": [
    "https://www.navalnews.com/naval-news/2024/03/ukraine-strikes-four-russian-ships-with-missile-attacks-in-sevastopol/",
    "https://pravda.com.ua/eng/news/2024/03/24/7447873"
   ],
   "tier": "B",
   "notes": ""
  },
  {
   "date": "2024-03-05",
   "name": "Patrol ship Sergey Kotov (Project 22160)",
   "location": "Kerch Strait near Feodosia, Crimea (occupied waters)",
   "occupied": true,
   "category": "Warships and submarines",
   "outcome": "sunk",
   "claimed_by": "HUR (Magura V5 sea drones)",
   "confirmation": "UK Defence Secretary and UK Defence Intelligence acknowledged destruction",
   "urls": [
    "https://www.pravda.com.ua/eng/news/2024/03/05/7445102/",
    "https://www.pravda.com.ua/eng/news/2024/03/06/7445221/",
    "https://babel.ua/en/news/104590-gur-showed-a-video-of-the-attack-of-magura-v5-drones-on-sergei-kotov"
   ],
   "tier": "C",
   "notes": ""
  },
  {
   "date": "2024-02-23",
   "name": "Beriev A-50U airborne early-warning aircraft (RF-50610)",
   "location": "Krasnodar Krai (near Kanevskaya), Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "destroyed (shot down)",
   "claimed_by": "Ukrainian Air Force and HUR",
   "confirmation": "Aviation Safety Network record; Russia later indirectly acknowledged loss",
   "urls": [
    "https://www.aviation-safety.net/wikibase/351939",
    "https://babel.ua/en/news/108186-the-russian-federation-admitted-that-ukraine-shot-down-its-a-50-long-range-radar-detection-aircraft",
    "https://euromaidanpress.com/2024/02/23/ukraine-downs-another-russian-a-50-radar-plane/"
   ],
   "tier": "C",
   "notes": "Second A-50 in ~6 weeks."
  },
  {
   "date": "2024-02-14",
   "name": "Large landing ship Tsezar Kunikov (Project 775)",
   "location": "off Alupka, Crimea (occupied waters)",
   "occupied": true,
   "category": "Warships and submarines",
   "outcome": "sunk",
   "claimed_by": "HUR (Magura V5 sea drones); confirmed by General Staff",
   "confirmation": "Janes reporting; video of sinking",
   "urls": [
    "https://www.janes.com/defence-news/news-detail/ukraine-sinks-another-russian-landing-ship",
    "https://pravda.com.ua/eng/news/2024/02/14/7441777",
    "https://en.wikipedia.org/wiki/Russian_ship_Tsezar_Kunikov"
   ],
   "tier": "C",
   "notes": ""
  },
  {
   "date": "2024-02-01",
   "name": "Missile corvette Ivanovets (Project 1241 Tarantul)",
   "location": "Donuzlav Lake area, Crimea (occupied waters)",
   "occupied": true,
   "category": "Warships and submarines",
   "outcome": "sunk",
   "claimed_by": "HUR (six Magura V5 sea drones)",
   "confirmation": "TWZ analysis of strike footage; no Russian admission",
   "urls": [
    "https://www.twz.com/news-features/ukraine-sinks-russian-navy-missile-corvette-in-drone-boat-attack.md",
    "https://www.ukrinform.net/rubric-ato/3822646-ivanovets-sunk-by-six-ukrainian-magura-naval-drones-top-spy-says.html"
   ],
   "tier": "C",
   "notes": "Night of 31 Jan-1 Feb 2024."
  },
  {
   "date": "2024-01-14",
   "name": "Beriev A-50 AEW aircraft (and Il-22M command aircraft damaged)",
   "location": "Sea of Azov, Russia/occupied waters",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "A-50 destroyed; Il-22 damaged",
   "claimed_by": "Commander-in-Chief Zaluzhnyi / Ukrainian Air Force",
   "confirmation": "UK Defence Intelligence subsequently reported Russia deploying replacement A-50 further from coast; Russian independent media",
   "urls": [
    "https://en.wikipedia.org/wiki/2024_Russia_Beriev_A-50_and_Ilyushin_Il-22_shootdowns",
    "https://rubryka.com/en/2024/01/19/rosiya-vzhe-zadiyala-inshyj-litak-a-50-ale-podali-vid-ukrayiny-brytanska-rozvidka/",
    "https://pravda.com.ua/eng/news/2024/01/15/7437241"
   ],
   "tier": "C",
   "notes": "Possibility of friendly fire noted by some analysts; loss itself widely accepted."
  },
  {
   "date": "2023-12-26",
   "name": "Large landing ship Novocherkassk (Project 775)",
   "location": "Feodosia, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Warships and submarines",
   "outcome": "destroyed",
   "claimed_by": "Ukrainian Air Force (cruise missiles)",
   "confirmation": "Russian Defence Minister Shoigu reported the ship damaged/destroyed to Putin; Kremlin confirmed hit",
   "urls": [
    "https://www.aljazeera.com/news/2023/12/26/ukraine-claims-to-have-destroyed-russian-ship-in-crimea-attack",
    "https://pravda.com.ua/eng/news/2023/12/26/7434621"
   ],
   "tier": "C",
   "notes": ""
  },
  {
   "date": "2023-11-04",
   "name": "Missile corvette Askold (Project 22800 Karakurt)",
   "location": "Zaliv shipyard, Kerch, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Warships and submarines",
   "outcome": "damaged (badly)",
   "claimed_by": "Ukrainian Air Force (cruise missiles)",
   "confirmation": "Russian MoD admitted ship hit; satellite images; UK Defence Intelligence assessment",
   "urls": [
    "https://mil.in.ua/en/news/the-ministry-of-defense-of-the-russian-federation-admits-the-ukrainian-missile-hit-the-warship-in-kerch",
    "https://www.pravda.com.ua/eng/news/2023/11/07/7427567/",
    "https://twz.com/russian-warship-seen-badly-damaged-by-ukrainian-cruise-missile"
   ],
   "tier": "C",
   "notes": "Brand-new Kalibr carrier on trials."
  },
  {
   "date": "2023-10-17",
   "name": "Berdyansk and Luhansk airfields - helicopters (first ATACMS use)",
   "location": "Berdyansk (Zaporizhzhia oblast) and Luhansk, occupied Ukraine",
   "occupied": true,
   "category": "Aircraft / airfields",
   "outcome": "9 helicopters destroyed, 15 damaged (Oryx)",
   "claimed_by": "SSO / Ukrainian Armed Forces (ATACMS)",
   "confirmation": "Oryx visual confirmation",
   "urls": [
    "https://meduza.io/amp/en/news/2023/10/23/oryx-says-nine-russian-helicopters-destroyed-15-damaged-in-ukraine-s-october-17-attack",
    "https://euromaidanpress.com/2023/10/18/frontline-report-ukraine-showcases-power-of-atacms-missiles-against-russian-airbases"
   ],
   "tier": "C",
   "notes": "Ukrainian claim was 9 helicopters destroyed - matches Oryx."
  },
  {
   "date": "2023-09-22",
   "name": "Black Sea Fleet Headquarters",
   "location": "Sevastopol, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Command posts / HQs",
   "outcome": "damaged (direct hit)",
   "claimed_by": "Ukrainian Armed Forces / SSO (Storm Shadow per media)",
   "confirmation": "Russian MoD acknowledged missile attack on HQ; TWZ imagery analysis",
   "urls": [
    "https://www.twz.com/black-sea-fleet-headquarters-takes-direct-hit-from-cruise-missile.md",
    "https://meduza.io/en/feature/2023/09/23/what-we-know-so-far-about-ukraine-s-attack-on-russia-s-black-sea-fleet-headquarters"
   ],
   "tier": "C",
   "notes": "UA claimed strike during commanders' meeting; officer casualty claims unverified."
  },
  {
   "date": "2023-09-13",
   "name": "Large landing ship Minsk and submarine Rostov-on-Don (Sevmorzavod drydock)",
   "location": "Sevastopol, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Warships and submarines",
   "outcome": "Minsk destroyed; Rostov-on-Don damaged",
   "claimed_by": "Ukrainian Air Force (Storm Shadow/SCALP)",
   "confirmation": "Russian MoD admitted two ships damaged; Oryx assessed Minsk destroyed; satellite images",
   "urls": [
    "https://euromaidanpress.com/2023/09/13/oryx-russian-warship-minsk-destroyed-not-merely-damaged/",
    "https://www.pravda.com.ua/eng/news/2023/09/13/7419676"
   ],
   "tier": "C",
   "notes": ""
  },
  {
   "date": "2023-08-23",
   "name": "S-400 system position near Olenivka (Tarkhankut cape)",
   "location": "Tarkhankut, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Air defence",
   "outcome": "destroyed (claimed)",
   "claimed_by": "HUR (Defence Intelligence)",
   "confirmation": "None; a journalist geolocated site as former S-300 position - system type disputed",
   "urls": [
    "https://novayagazeta.eu/en/articles/2023/08/23/ukraine-reports-destruction-of-russian-missile-system-and-crew-in-crimea-en-news",
    "https://en.lb.ua/news/2023/08/23/21952_ukrainian_intel_says_russian_s400.html"
   ],
   "tier": "B",
   "notes": "Use with caveat on system type."
  },
  {
   "date": "2023-08-19",
   "name": "Soltsy-2 airbase - Tu-22M3 bomber",
   "location": "Soltsy, Novgorod oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "destroyed",
   "claimed_by": "HUR sources",
   "confirmation": "Russian MoD admitted aircraft damaged; later imagery showed destroyed Tu-22M3 (TWZ)",
   "urls": [
    "https://www.twz.com/destroyed-tu-22m-seen-at-now-empty-russian-airbase",
    "https://babel.ua/en/news/97654-intelligence-source-the-tu-22m3-was-destroyed-as-a-result-of-the-drone-attack-on-the-russian-soltsy-airfield"
   ],
   "tier": "C",
   "notes": ""
  },
  {
   "date": "2023-08-04",
   "name": "Large landing ship Olenegorsky Gornyak",
   "location": "Novorossiysk, Krasnodar Krai, Russia",
   "occupied": false,
   "category": "Warships and submarines",
   "outcome": "damaged (listing, towed)",
   "claimed_by": "SBU and Ukrainian Navy (sea drone)",
   "confirmation": "Footage of listing ship being towed; international media (Al Jazeera, gCaptain)",
   "urls": [
    "https://www.aljazeera.com/news/2023/8/4/ukraine-drones-hit-russias-key-port-damage-naval-ship-ukrainian-official",
    "https://gcaptain.com/ukrainian-drone-disables-russian-warship-near-russias-novorossiysk-port"
   ],
   "tier": "C",
   "notes": "First sea-drone strike on a warship inside a Russian naval base."
  },
  {
   "date": "2023-07-17",
   "name": "Kerch (Crimean) Bridge - road span",
   "location": "Kerch Strait, between Crimea (occupied) and Krasnodar Krai",
   "occupied": true,
   "category": "Bridges / military logistics",
   "outcome": "damaged (road span collapsed/displaced)",
   "claimed_by": "SBU and Ukrainian Navy (sea drones)",
   "confirmation": "Russian authorities acknowledged attack and damage",
   "urls": [
    "https://en.wikipedia.org/wiki/2023_Crimean_Bridge_explosion",
    "https://www.bostonglobe.com/2023/07/17/world/traffic-key-bridge-connecting-crimea-russias-mainland-halted-amid-reports-explosions"
   ],
   "tier": "C",
   "notes": "Two civilians killed per Russian authorities; bridge serves military logistics to occupied south."
  },
  {
   "date": "2022-12-05",
   "name": "Engels-2 airbase - Tu-95 strategic bombers",
   "location": "Engels, Saratov oblast, Russia",
   "occupied": false,
   "category": "Aircraft / airfields",
   "outcome": "damaged (2 Tu-95 reported damaged)",
   "claimed_by": "Ukraine (not formally claimed at the time)",
   "confirmation": "Russian MoD acknowledged 'aircraft slightly damaged' and servicemen killed in Engels and Dyagilevo attacks",
   "urls": [
    "https://theaviationist.com/2022/12/05/explosion-hits-engels-2-airbase-russia-reportedly-damaging-at-least-two-tu-95-bombers",
    "https://fakty.com.ua/en/svit/20221205-na-rosijskomu-aerodromi-v-engelsi-vybuhy-poshkodzheno-dva-tu-95-zmi"
   ],
   "tier": "C",
   "notes": "First deep strike on strategic aviation."
  },
  {
   "date": "2022-10-08",
   "name": "Kerch (Crimean) Bridge - truck bomb",
   "location": "Kerch Strait, between Crimea (occupied) and Krasnodar Krai",
   "occupied": true,
   "category": "Bridges / military logistics",
   "outcome": "damaged (road spans collapsed, rail fuel train fire)",
   "claimed_by": "SBU (acknowledged later)",
   "confirmation": "Russian authorities acknowledged explosion and damage",
   "urls": [
    "https://cbsnews.com/minnesota/news/crimea-bridge-russia-war-in-ukraine-damaged-key-supply-route-putin-birthday",
    "https://www.kyivpost.com/analysis/20772"
   ],
   "tier": "C",
   "notes": "Civilian casualties reported by Russian side - avoid graphic detail."
  },
  {
   "date": "2022-08-09",
   "name": "Saky (Novofedorivka) airbase - Su-24, Su-30 aircraft",
   "location": "Saky, Crimea (occupied), Ukraine",
   "occupied": true,
   "category": "Aircraft / airfields",
   "outcome": "destroyed (at least 7-9 aircraft)",
   "claimed_by": "Ukrainian Armed Forces (acknowledged later)",
   "confirmation": "Planet Labs satellite imagery (DFRLab analysis)",
   "urls": [
    "https://dfrlab.org/2022/08/12/russian-war-report-satellite-imagery-confirms-destruction-of-aircraft-at-crimea-airbase/",
    "https://en.wikipedia.org/wiki/2022_Saky_air_base_attack"
   ],
   "tier": "C",
   "notes": "Russian MoD attributed explosions to munitions detonation."
  },
  {
   "date": "2022-04-14",
   "name": "Guided-missile cruiser Moskva (Black Sea Fleet flagship)",
   "location": "Black Sea, ~100 km south of Odesa",
   "occupied": false,
   "category": "Warships and submarines",
   "outcome": "sunk",
   "claimed_by": "Ukrainian Navy (two R-360 Neptune missiles)",
   "confirmation": "Pentagon confirmed Neptune hits; Russian MoD admitted ship sank (citing fire)",
   "urls": [
    "https://www.janes.com/defence-news/news-detail/ukraine-conflict-russian-navys-black-sea-fleet-flagship-sinks",
    "https://infobae.com/en/2022/04/15/ukraines-big-coup-pentagon-believes-russian-cruiser-moskva-sank-after-being-hit-by-two-missiles"
   ],
   "tier": "C",
   "notes": "Struck 13 Apr 2022, sank 14 Apr. Largest warship lost in combat since 1982."
  },
  {
   "date": "2022-03-24",
   "name": "Large landing ship Saratov",
   "location": "Berdyansk port, Zaporizhzhia oblast (occupied), Ukraine",
   "occupied": true,
   "category": "Warships and submarines",
   "outcome": "destroyed (sank in port)",
   "claimed_by": "Ukrainian Navy / Armed Forces (Tochka-U)",
   "confirmation": "Russian Navy acknowledged loss a year later (2023)",
   "urls": [
    "https://maritime-executive.com/article/one-year-later-russian-navy-confirms-loss-of-the-amphib-saratov",
    "https://en.wikipedia.org/wiki/Russian_landing_ship_Saratov"
   ],
   "tier": "C",
   "notes": "Two other landing ships damaged in the same strike."
  },
  {
   "date": "2022-03-15",
   "name": "Chornobaivka airfield - helicopters and equipment",
   "location": "Chornobaivka, Kherson oblast (then occupied), Ukraine",
   "occupied": true,
   "category": "Aircraft / airfields",
   "outcome": "multiple helicopters destroyed",
   "claimed_by": "Ukrainian Armed Forces (repeated strikes, March 2022)",
   "confirmation": "Maxar satellite images showing destroyed helicopters",
   "urls": [
    "https://www.ukrinform.net/rubric-ato/3431043-satellite-images-show-destroyed-russian-helicopters-near-kherson.html",
    "https://militarnyi.com/?p=149418"
   ],
   "tier": "C",
   "notes": "Date is of the Maxar imagery; series of strikes from late Feb to Mar 2022 (and later). Ukrainian claim of 30 helicopters not independently confirmed."
  }
 ],
 "damaged": {
  "summary": [
   {
    "metric": "Share of Russian refining capacity offline at peak of Aug-Oct 2025 strike wave (attacks + planned maintenance)",
    "value": "~20% (of ~6.6m bpd capacity)",
    "date": "2025-11-14",
    "source": "Reuters calculations based on industry sources",
    "url": "https://bdnews24.com/world/10a1e54326e6"
   },
   {
    "metric": "Drone-related idle primary refining capacity, August 2025",
    "value": "3.1m t (~17% of capacity, ~1.2m bpd); total idle 6.4m t record",
    "date": "2025-08-28",
    "source": "Reuters calculations (via Hydrocarbon Processing)",
    "url": "https://www.hydrocarbonprocessing.com/news/2025/08/russias-idle-oil-refining-capacity-record-high-after-ukrainian-drone-attacks/"
   },
   {
    "metric": "Refining capacity taken out of service by drone strikes Jan-May 2026",
    "value": "~700,000 bpd; 16 refineries struck; >=35 primary units; damaged capacity peaked near 1m bpd in March and exceeded it in April 2026",
    "date": "2026-05-15",
    "source": "Reuters calculations (via Ukranews)",
    "url": "https://ukranews.com/en/amp/news/1152165-at-least-35-oil-refineries-out-of-commission-at-russian-refineries-since-beginning-of-year-reuters"
   },
   {
    "metric": "Share of Russia's oil export capacity shut at some point in March 2026 (drone attacks on ports + Druzhba closure + tanker seizures)",
    "value": "~40%",
    "date": "2026-04-02",
    "source": "Reuters",
    "url": "https://finance.yahoo.com/news/exclusive-russias-primorsk-oil-terminal-134821196.html"
   },
   {
    "metric": "Russian primary refining capacity idled by drone attacks, end of March 2024",
    "value": "~900,000 bpd (124,580 t/day) = ~14% of total",
    "date": "2024-03-26",
    "source": "Reuters calculations (via Hydrocarbon Processing)",
    "url": "https://hydrocarbonprocessing.com/news/2024/03/russian-oil-refining-capacity-idled-by-drones-reaches-14-of-total/"
   }
  ],
  "objects": [
   {
    "date": "2026-10-18",
    "name": "Petersburg Oil Terminal (Big Port of St Petersburg)",
    "location": "St Petersburg, Russia",
    "occupied": false,
    "category": "port-terminal",
    "what": "Fire at one of the largest oil-product storage and export terminals on Russia's Baltic coast after an overnight drone attack on St Petersburg and Leningrad region. The same night, fires were reported at the Ruchyi oil depot and an Ozon warehouse, and a VK data centre and a 330 kV substation near Novosergievka (Vsevolozhsk district) were reported hit.",
    "consequence": "Fires at the oil terminal, the Ruchyi oil depot and industrial warehouses in Kolpino district; 12 apartment buildings and 2 private houses damaged; 1 person killed and 5 injured in hospital (city governor); about 20,000 people without power in Leningrad region; flights restricted at the city's main airport. Leningrad region: 10 injured, including 5 children; 7 in hospital (regional health committee).",
    "reported_cause": "St Petersburg governor Alexander Beglov, morning of 18 Oct: a massive drone attack; 'one person was killed, five were injured and are in hospital'; fires at the St Petersburg oil terminal, the Ruchyi oil depot and industrial warehouses in Kolpino district; 12 apartment buildings and 2 private houses damaged. Leningrad region governor Alexander Drozdenko: 145 drones shot down over the region; a drone attack caused an emergency power outage for about 20,000 people. Russian Ministry of Defence: 1,015 Ukrainian drones downed overnight. Ukrainian manufacturer Fire Point said an FP-1 drone hit the terminal. No Ukrainian General Staff claim found yet. Leningrad region health committee (via TASS, 18 Oct): the number of injured in the region 'rose to 10'; 7 in hospital, including 5 children and 2 women. Drozdenko: a woman and three children in Vsevolozhsk district were hospitalised with carbon-monoxide poisoning after a fire caused by falling drone debris.",
    "confirmation": "Russian officials (St Petersburg governor) admitted fires at the oil terminal and the Ruchyi depot, one death and five injured after a drone attack; eyewitness videos of the terminal burning (not independently geolocated).",
    "urls": [
     "https://www.ukrinform.net/rubric-ato/4175563-drones-strike-oil-facilities-ozon-warehouse-and-vkontakte-data-center-in-st-petersburg.html",
     "https://kyivindependent.com/flames-explosions-reported-amid-large-ukrainian-drone-attack-on-st-petersburg/",
     "https://nashaniva.com/en/407160",
     "https://www.interfax.ru/russia/1123253",
     "https://www.aljazeera.com/news/2026/10/18/ukrainian-drone-attack-on-russias-st-petersburg-kills-1-hits-energy-sites",
     "https://www.vedomosti.ru/politics/news/2026/10/18/1237963-do-10-viroslo-chislo"
    ],
    "tier": "C",
    "notes": "Tier C rests on the governor's admission of the fires. Casualties updated 18 Oct (Beglov via Interfax, 09:30 Moscow time): earlier 'no casualties'. VK data centre and Ozon warehouse per the companies and Russian media, not independently confirmed. Upgrade note if General Staff confirms. Leningrad region casualties added 18 Oct (health committee via TASS/Vedomosti; Drozdenko)."
   },
   {
    "date": "2026-10-16",
    "name": "Surgut Condensate Stabilization Plant (Gazprom Pererabotka)",
    "location": "Surgut district, Khanty-Mansi Autonomous Okrug (Yugra), Russia",
    "occupied": false,
    "category": "gas processing",
    "what": "Fire after a suspected Ukrainian drone attack on Russia's largest gas-condensate processing plant (design capacity 12 mt/yr), ~2,500 km from Ukraine; reportedly the first strike on energy infrastructure in Yugra.",
    "consequence": "Large fire; damage being assessed; no casualties reported. Flight restrictions at Surgut and Kogalym airports.",
    "reported_cause": "Governor Ruslan Kukharuk: fire at an 'industrial facility in the Surgut district', damage being assessed. Residents and Supernova+ identified the plant. Ukraine said it was resuming strikes on Russian energy infrastructure; no specific General Staff claim found yet.",
    "confirmation": "Russian official (governor) admitted fire at an industrial facility; site identification by residents/monitoring channel.",
    "urls": [
     "https://www.themoscowtimes.com/2026/10/16/ukrainian-drones-strike-energy-plant-in-russias-largest-oil-producing-region-a94008"
    ],
    "tier": "C",
    "notes": "Tier C rests on governor's admission of the fire; plant identity per residents/Supernova+. Upgrade note if General Staff confirms."
   },
   {
    "date": "2026-10-15",
    "name": "Rosneft Ryazan refinery",
    "location": "Ryazan, Ryazan region, Russia",
    "occupied": false,
    "category": "refinery",
    "what": "Fire at the refinery after an overnight drone attack (first refinery strike after Ukraine's three-day pause under the US-announced 'energy ceasefire').",
    "consequence": "Fire; material damage being assessed (governor). No casualties reported. Refinery accounts for ~5% of Russia's refining capacity and had suspended operations after attacks in May, July and September 2026. Reuters (16 Oct, two industry sources): primary unit AVT-6 shut down after the attack.",
    "reported_cause": "Governor Pavel Malkov: a major Ukrainian drone attack sparked a fire at an oil refinery, material damage being assessed. Russian MoD: 166 drones intercepted overnight. Peskov: strike 'nothing new'. Zelensky (FT): 'The block [on attacking refineries] is out.' ISW: Ukrainian forces 'likely struck' the refinery.",
    "confirmation": "Russian official admission (regional governor) of a fire at the refinery; Reuters reported the fire.",
    "urls": [
     "https://www.themoscowtimes.com/2026/10/15/ukrainian-drones-spark-fire-at-ryazan-refinery-as-zelensky-vows-to-resume-attacks-a93981",
     "https://www.dailykos.com/stories/2026/10/15/800112765/community/ukraine-invasion-day-1695-ukr-strikes-resume/",
     "https://mezha.net/eng/news/mezha-5e2c8a6b0c68e30f08c06e71_ryazan_refinery_shuts"
    ],
    "tier": "C",
    "notes": "Night of 14-15 Oct. No specific General Staff confirmation found yet."
   },
   {
    "date": "2026-10-11",
    "name": "Yandex data centre, Vladimir",
    "location": "Vladimir, Vladimir oblast, Russia",
    "occupied": false,
    "category": "other",
    "what": "Data centre (IT infrastructure) hit in a drone attack.",
    "consequence": "Yandex: 'Operations at the data centre have been completely suspended'; several Yandex services unavailable; no injuries.",
    "reported_cause": "Yandex: facility hit in a drone attack and shut down. No Ukrainian claim found for this site; Zelensky (8 Oct) said Ukraine responds 'in mirror-like fashion' to Russian strikes on Ukrainian data centres.",
    "confirmation": "Russian corporate admission (Yandex) reported by Reuters/Al Jazeera.",
    "urls": [
     "https://aljazeera.com/news/2026/10/11/russias-yandex-says-data-centre-in-vladimir-shut-down-after-drone-attack",
     "https://thenextweb.com/news/drone-attack-shuts-a-third-yandex-data-centre"
    ],
    "tier": "C",
    "notes": "Third Yandex data centre hit in four days (Sasovo 8 Oct, Kaluga 9 Oct). Not an energy site - 'other'."
   },
   {
    "date": "2026-10-10",
    "name": "NZNP oil-loading terminal (Novoshakhtinsk refinery terminal, ex-Yug Rusi), Rostov-on-Don",
    "location": "Zheleznodorozhny district, Rostov-on-Don, Rostov region, Russia",
    "occupied": false,
    "category": "port-terminal",
    "what": "Drones hit the oil-loading terminal of the Novoshakhtinsk Petroleum Products Plant (design capacity ~2.5 mt/yr); large fire. Railway bridge in the city also damaged.",
    "consequence": "Fire burned for at least four days; by 14 Oct it had engulfed 8 of 12 storage tanks (Astra), with another tank exploding late on 13 Oct. Train traffic over a damaged railway bridge halted in both directions (governor). No casualties reported.",
    "reported_cause": "Governor Yury Slyusar: confirmed UAV attack, fire in the city and damage to a railway bridge. Astra: drones struck the terminal. No official Ukrainian claim found.",
    "confirmation": "Russian governor admitted attack and fire; Astra geolocation; NASA FIRMS detected the fire (per Charter97/Astra).",
    "urls": [
     "https://united24media.com/war-in-ukraine/drones-strike-major-russian-oil-terminal-in-rostov-on-don-sparking-large-fire-23310",
     "https://militarnyi.com/en/news/ukraine-strike-oil-terminal-rostov-on-don/",
     "https://charter97.org/en/news/2026/10/14/701838/",
     "https://www.pravda.com.ua/eng/news/2026/10/10/8057315/"
    ],
    "tier": "C",
    "notes": "Same terminal previously struck 9 Jul 2026. Censor.NET item on day 3 of fire: https://censor.net/en/news/4027993/the-fire-at-the-oil-terminal-in-rostov-on-don-is-now-in-its-third-day-following-a-drone-attack (seen in search only)."
   },
   {
    "date": "2026-10-10",
    "name": "Samara linear production and dispatch station (LPDS 'Samara', Transneft), near Prosvet",
    "location": "near Prosvet, Samara region, Russia",
    "occupied": false,
    "category": "pipeline-pumping",
    "what": "Repeat strike overnight on 10 Oct on Russia's largest oil storage/blending hub (Urals blend) - third attack on the station in October.",
    "consequence": "Damage being clarified (General Staff). Earlier strike on 7 Oct destroyed four RVS-50000 tanks per General Staff.",
    "reported_cause": "General Staff of the AFU (Telegram): struck the Samara LPDS again; extent of damage being clarified. No Russian official statement found.",
    "confirmation": "None independent yet",
    "urls": [
     "https://unn.ua/en/news/the-defense-forces-struck-the-samara-ldfs-again-general-staff",
     "https://united24media.com/war-in-ukraine/ukraine-hits-russias-biggest-oil-storage-hub-in-europe-again-leaving-four-giant-tanks-destroyed-23315",
     "https://www.pravda.com.ua/eng/news/2026/10/10/8057355/"
    ],
    "tier": "B",
    "notes": "7 Oct strike on the same station (four RVS-50000 tanks destroyed per General Staff) is NOT in losses.json - consider a separate record (outside this window)."
   },
   {
    "date": "2026-10-09",
    "name": "Yandex data centre, Kaluga oblast",
    "location": "Kaluga oblast, Russia",
    "occupied": false,
    "category": "other",
    "what": "Data centre (IT infrastructure) hit by drones overnight.",
    "consequence": "Yandex: 'Several modules of the data center were completely disabled'; service disruptions; no injuries at site.",
    "reported_cause": "Yandex: drone attack disabled modules. Governor Shapsha: drones struck other parts of the oblast overnight, 9 injured, houses damaged; Russian authorities: 26 drones shot down over the region. Zelensky confirmed the Kaluga attack (per The Next Web).",
    "confirmation": "Russian corporate admission (Yandex).",
    "urls": [
     "https://kyivindependent.com/second-russian-yandex-data-center-damaged-by-drone-attack-in-two-days-company-says/",
     "https://aljazeera.com/news/2026/10/11/russias-yandex-says-data-centre-in-vladimir-shut-down-after-drone-attack",
     "https://thenextweb.com/news/drone-attack-shuts-a-third-yandex-data-centre"
    ],
    "tier": "C",
    "notes": "Kyiv Independent (9 Oct) said Ukraine had not confirmed; The Next Web (12 Oct) says Zelensky confirmed the Kaluga attack."
   },
   {
    "date": "2026-10-09",
    "name": "Redkino experimental plant (chemical products)",
    "location": "Redkino, Konakovo district, Tver oblast, Russia",
    "occupied": false,
    "category": "chemical",
    "what": "Fire at the plant after overnight drone strike",
    "consequence": "Fire extinguished; no employee injuries reported (governor)",
    "reported_cause": "Tver governor Vitaly Korolev said a drone strike caused 'a fire' at a plant in Redkino; plant named by Ukrainian monitoring projects and Astra",
    "confirmation": "Russian official (governor) confirmed fire at a plant in Redkino; plant name from Astra/monitoring channels",
    "urls": [
     "https://meduza.io/en/news/2026/10/09/ukrainian-drone-attacks-injure-nine-in-russia-s-kaluga-region-and-spark-fire-at-chemical-plant-in-tver-region"
    ],
    "tier": "C",
    "notes": "Overnight 9 Oct 2026. Same night: 9 injured in Kaluga (governor Shapsha). No Ukrainian claim found."
   },
   {
    "date": "2026-10-09",
    "name": "LUKOIL-Ukhtaneftepererabotka (Ukhta refinery)",
    "location": "Ukhta, Komi Republic",
    "occupied": false,
    "category": "refinery",
    "what": "Fire and thick black smoke plume at refinery shown in monitoring footage (Exilenova+); capacity ~4.2m t/yr",
    "consequence": "Not reported",
    "reported_cause": "Media (Dialog.UA via Charter97) report attack by Ukrainian defence forces; no official claim quoted",
    "confirmation": "Footage by Exilenova+ monitoring project only",
    "urls": [
     "https://charter97.org/en/news/2026/10/9/701267/"
    ],
    "tier": "B",
    "notes": "Weak sourcing; needs Russian official or Reuters confirmation before use."
   },
   {
    "date": "2026-10-08",
    "name": "Gazpromneft Omsk refinery",
    "location": "Omsk, Omsk region",
    "occupied": false,
    "category": "refinery",
    "what": "Fire and black smoke reported (Astra OSINT); capacity 22.23m t/yr (largest in Russia), ~2,500 km from border",
    "consequence": "Not reported",
    "reported_cause": "Fire Point said upgraded FP-1 drones hit facility; Governor Khotsenko acknowledged a drone reached city's northern industrial hub, did not confirm refinery damage",
    "confirmation": "Astra photo analysis; governor partial acknowledgement",
    "urls": [
     "https://united24media.com/war-in-ukraine/ukrainian-made-fp-1-drones-hit-russias-largest-oil-refinery-2500-km-from-border-23263"
    ],
    "tier": "B",
    "notes": "Claim by manufacturer (Fire Point), not state."
   },
   {
    "date": "2026-10-08",
    "name": "Gazprom Neftekhim Salavat",
    "location": "Salavat, Bashkortostan",
    "occupied": false,
    "category": "refinery",
    "what": "Suspected fire",
    "consequence": "Not reported",
    "reported_cause": "Ukrainian General Staff later confirmed strike",
    "confirmation": "None independent",
    "urls": [
     "https://united24media.com/war-in-ukraine/ukrainian-made-fp-1-drones-hit-russias-largest-oil-refinery-2500-km-from-border-23263"
    ],
    "tier": "B",
    "notes": "Thin sourcing; verify."
   },
   {
    "date": "2026-10-02",
    "name": "Lukoil Volgograd refinery (Volgogradneftepererabotka)",
    "location": "Volgograd, Volgograd region",
    "occupied": false,
    "category": "refinery",
    "what": "Large fire near refinery after massive drone attack; capacity ~14m t/yr (~5% of Russian refining)",
    "consequence": "All crude processing halted (Reuters sources, 6 Oct 2026)",
    "reported_cause": "Governor Bocharov: 'massive drone attack on industrial infrastructure' (facilities not specified); Reuters/Meduza: Ukrainian drones",
    "confirmation": "Reuters industry sources; eyewitness footage",
    "urls": [
     "https://meduza.io/en/news/2026/10/06/another-russian-refinery-goes-offline-volgograd-plant-shuts-down-completely-after-ukrainian-drone-attack-reuters-reports"
    ],
    "tier": "C",
    "notes": "Previously hit 29 May and 31 Jul 2026 (Reuters)."
   },
   {
    "date": "2026-09-26",
    "name": "Ilsky refinery (Ilsk Oil Refinery)",
    "location": "Ilsky, Seversky district, Krasnodar krai, Russia",
    "occupied": false,
    "category": "refinery",
    "what": "Large fire on refinery grounds; capacity ~6.6m t/yr",
    "consequence": "Not reported (no confirmed halt); Reuters cited by United24 as saying it was the 4th refinery to suspend operations in under a week, but the halt is not specifically confirmed for Ilsky",
    "reported_cause": "Ukraine's General Staff claimed the strike (1st Separate SBS Centre, 414th 'Madyar's Birds' brigade). Krasnodar governor Veniamin Kondratyev said drones targeted Seversky district and fires broke out at two enterprises, attributing them to falling 'debris'; facilities not named",
    "confirmation": "Exilenova+ footage geolocated by ASTRA; governor confirmed fires at two enterprises in the district",
    "urls": [
     "https://united24media.com/war-in-ukraine/ukraines-retaliatory-drone-strikes-hit-russian-oil-refinery-supplying-moscows-forces-22885",
     "https://news.liga.net/en/war/news/defense-forces-have-once-again-struck-one-of-the-largest-oil-refineries-in-southern-russia-photo",
     "https://charter97.org/en/news/2026/9/26/699758/"
    ],
    "tier": "C",
    "notes": "Night of 25-26 Sep 2026. Possible simultaneous hit on Afipsky refinery speculated by Exilenova+ only - not included."
   },
   {
    "date": "2026-09-25",
    "name": "Lukoil-Permnefteorgsintez (Perm refinery)",
    "location": "Perm, Perm krai, Russia",
    "occupied": false,
    "category": "refinery",
    "what": "Fire at the plant after overnight drone attack; Russia's 7th-largest refinery (12.6m t processed in 2024)",
    "consequence": "Refinery halted operations (Reuters, citing industry sources)",
    "reported_cause": "Perm governor Dmitry Makhonin said Ukraine attacked an 'industrial site' in the region (not named); NASA FIRMS heat anomalies at Lukoil refinery (Bloomberg)",
    "confirmation": "Reuters industry sources (via Meduza); Bloomberg citing FIRMS data",
    "urls": [
     "https://meduza.io/en/news/2026/09/25/reuters-russia-s-seventh-largest-refinery-halts-operations-after-a-ukrainian-drone-attack",
     "https://theprint.in/world/small-refinery-in-southern-russia-forced-to-halt-operations-after-overnight-drone-strikes/3053178/"
    ],
    "tier": "C",
    "notes": "Overnight 25 Sep 2026; separate from 21 Aug 2026 Perm entry already in losses.json. No Ukrainian claim reported in these sources."
   },
   {
    "date": "2026-09-25",
    "name": "Novoshakhtinsk refinery (Novoshakhtinsky Zavod Nefteproduktov)",
    "location": "Novoshakhtinsk, Rostov region",
    "occupied": false,
    "category": "refinery",
    "what": "Overnight drone attack damaged refinery; capacity 5m t/yr (~100k bpd), mainly export",
    "consequence": "Operations temporarily halted",
    "reported_cause": "Rostov governor Slyusar: drone attack damaged refinery, ~50 drones destroyed overnight",
    "confirmation": "Russian governor admission (Reuters)",
    "urls": [
     "https://www.internazionale.it/ultime-notizie-reuters/2026/09/25/russia-s-novoshakhtinsk-oil-refinery-suspends-operations-after-drone-attack-governor-says"
    ],
    "tier": "C",
    "notes": "Earlier halted after attacks in Jan 2025 and Aug 2025."
   },
   {
    "date": "2026-09-20",
    "name": "Gazpromneft Moscow Oil Refinery (Kapotnya)",
    "location": "Moscow",
    "occupied": false,
    "category": "refinery",
    "what": "Fire overnight 19-20 Sep; Mayor Sobyanin said a facility at the refinery was damaged, no casualties at the plant. Capacity ~11m t/yr",
    "consequence": "Not reported",
    "reported_cause": "Moscow Mayor Sobyanin reported massive drone attack (1,600+ UAVs downed); Zelensky confirmed strikes on an oil facility in Moscow region",
    "confirmation": "Russian official (Sobyanin) admitted damage at refinery",
    "urls": [
     "https://news.liga.net/en/amp/war/news/an-oil-refinery-is-on-fire-in-moscow-during-the-election-period-the-mayor-reported-a-drone-attack-photos-video"
    ],
    "tier": "C",
    "notes": "During Duma elections."
   },
   {
    "date": "2026-09-17",
    "name": "Slavneft-YANOS refinery",
    "location": "Yaroslavl, Yaroslavl region",
    "occupied": false,
    "category": "refinery",
    "what": "Fire at a primary refining unit (General Staff); capacity ~15m t/yr",
    "consequence": "Not reported",
    "reported_cause": "Ukrainian General Staff claimed; Zelensky: joint SBU/USF/HUR/SZRU operation; Governor Evraev acknowledged damage and fires",
    "confirmation": "Russian governor acknowledged damage",
    "urls": [
     "https://kurs.com.ua/en/novost/1479825-odin-iz-naibilshih-npz-rosiyi-poshkodzhenii-pislja-ataki-droniv",
     "https://unn.ua/en/news/in-yaroslavl-one-of-russias-largest-oil-refineries-is-on-fire-after-a-drone-attack-osint"
    ],
    "tier": "C",
    "notes": "Astra counted at least eight fires at site in 2026 before this attack."
   },
   {
    "date": "2026-09-17",
    "name": "Transformer substation, Rostov-on-Don",
    "location": "Rostov-on-Don, Rostov region",
    "occupied": false,
    "category": "power",
    "what": "Fire and damaged transformer substation",
    "consequence": "Power disrupted in four districts of Rostov-on-Don",
    "reported_cause": "Rostov governor Slyusar reported fire and damaged substation during drone attack",
    "confirmation": "Russian governor statement",
    "urls": [
     "https://kurs.com.ua/en/novost/1479825-odin-iz-naibilshih-npz-rosiyi-poshkodzhenii-pislja-ataki-droniv"
    ],
    "tier": "C",
    "notes": "Same night Ukraine claimed strike on Rostov military airfield (excluded - military list)."
   },
   {
    "date": "2026-09-15",
    "name": "Rosneft Syzran refinery",
    "location": "Syzran, Samara region",
    "occupied": false,
    "category": "refinery",
    "what": "Drone attacks in September 2026",
    "consequence": "Refinery halted (Tuesday ~15 Sep per Reuters sources)",
    "reported_cause": "Reuters: Ukrainian drone attacks this month",
    "confirmation": "Reuters (three industry sources); Rosneft no comment",
    "urls": [
     "https://en.apa.az/cis-countries/russias-syzran-and-saratov-oil-refineries-on-hold-after-drone-attacks-sources-say-524699",
     "https://english.nv.ua/russian-war/two-russian-refineries-stopped-after-ukrainian-strikes-50642075.html"
    ],
    "tier": "C",
    "notes": "Exact attack date not stated; date given = halt date. Occurred despite announced US-brokered energy-strike pause."
   },
   {
    "date": "2026-09-11",
    "name": "Rosneft Saratov refinery",
    "location": "Saratov, Saratov region",
    "occupied": false,
    "category": "refinery",
    "what": "Drone attacks in September 2026",
    "consequence": "Operations suspended (Friday ~11 Sep per Reuters sources)",
    "reported_cause": "Reuters: Ukrainian drone attacks this month",
    "confirmation": "Reuters (three industry sources)",
    "urls": [
     "https://en.apa.az/cis-countries/russias-syzran-and-saratov-oil-refineries-on-hold-after-drone-attacks-sources-say-524699"
    ],
    "tier": "C",
    "notes": "Date = suspension date; attack date not stated."
   },
   {
    "date": "2026-08-25",
    "name": "Afipsky refinery",
    "location": "Afipsky, Krasnodar Krai",
    "occupied": false,
    "category": "refinery",
    "what": "Refinery on fire after drone attack; debris at Afipsky railway station killed two, injured two. Processed 7.2m t (~144k bpd) in 2024, export-focused",
    "consequence": "Operating status not reported",
    "reported_cause": "Governor Kondratyev: refinery 'was on fire following a drone attack' (attacker not named)",
    "confirmation": "Russian governor admission (Reuters)",
    "urls": [
     "https://www.internazionale.it/ultime-notizie-reuters/2026/08/25/russia-s-afipsky-oil-refinery-on-fire-after-drone-attack-two-dead-governor-says"
    ],
    "tier": "C",
    "notes": "Civilian deaths from debris - note for balanced framing."
   },
   {
    "date": "2026-08-22",
    "name": "Rosneft Novokuibyshevsk refinery",
    "location": "Novokuibyshevsk, Samara region",
    "occupied": false,
    "category": "refinery",
    "what": "Fire at production facilities; refinery capacity ~8.8m t/yr",
    "consequence": "Damage under assessment; not independently confirmed",
    "reported_cause": "Ukrainian General Staff claimed strike; Fire Point said FP-1 drones used",
    "confirmation": "None independent at time of report",
    "urls": [
     "https://euromaidanpress.com/2026/08/22/ukraine-novokuybyshevsk-refinery-strike/"
    ],
    "tier": "B",
    "notes": "Same night Ozon logistics centre in Chapayevsk hit (Reuters citing company). Context: gasoline rationing in Moscow/St Petersburg, Aug 2026."
   },
   {
    "date": "2026-08-21",
    "name": "Lukoil Permnefteorgsintez (Perm refinery)",
    "location": "Perm, Perm Krai",
    "occupied": false,
    "category": "refinery",
    "what": "Fire and damage to technological units",
    "consequence": "Refinery (Russia's 7th-largest by volume) stopped operations (two industry sources, Reuters)",
    "reported_cause": "Ukrainian General Staff claimed strike causing fire",
    "confirmation": "Reuters industry sources",
    "urls": [
     "https://euromaidanpress.com/2026/08/22/ukraine-novokuybyshevsk-refinery-strike/",
     "https://www.internazionale.it/ultime-notizie-reuters/2026/08/25/russia-s-afipsky-oil-refinery-on-fire-after-drone-attack-two-dead-governor-says"
    ],
    "tier": "C",
    "notes": "~1,530 km from Ukrainian border."
   },
   {
    "date": "2026-08-14",
    "name": "Sheskharis oil terminal (Transneft), Novorossiysk",
    "location": "Novorossiysk, Krasnodar Krai",
    "occupied": false,
    "category": "port-terminal",
    "what": "Attempted drone attack; no physical damage reported",
    "consequence": "Crude loadings suspended and intake stopped as tanks filled; terminal handles ~700k bpd",
    "reported_cause": "Reuters sources: drone attack",
    "confirmation": "Reuters (three industry sources)",
    "urls": [
     "https://en.apa.az/cis-countries/russias-black-seas-sheskharis-terminal-halts-loadings-after-drone-attack-sources-say-520378",
     "https://pgjonline.com/news/2026/august/russias-black-seas-sheskharis-terminal-halts-loadings-after-drone-attack"
    ],
    "tier": "C",
    "notes": "Disruption without confirmed physical damage."
   },
   {
    "date": "2026-08-11",
    "name": "Orsk refinery (Orsknefteorgsintez, Forteinvest)",
    "location": "Orsk, Orenburg region",
    "occupied": false,
    "category": "refinery",
    "what": "Drone fragments struck 'key infrastructure that cannot currently be restored' (governor)",
    "consequence": "Complete shutdown; repairs up to six months (imported equipment, sanctions); region reliant on imported fuel, 80% of 287 filling stations operating",
    "reported_cause": "Orenburg governor Solntsev: drones knocked out the refinery",
    "confirmation": "Russian governor admission",
    "urls": [
     "https://meduza.io/en/news/2026/08/13/ukrainian-drone-strike-fully-shuts-down-oil-refinery-russia-s-orsk-governor-says-repairs-could-take-6-months",
     "https://hydrocarbonprocessing.com/news/2026/08/ukrainian-attack-shuts-russias-orsk-refinery-for-months-causing-fuel-problems/"
    ],
    "tier": "C",
    "notes": "Capacity not stated in source (~6m t/yr per company data - verify)."
   },
   {
    "date": "2026-07-29",
    "name": "Rosneft Ryazan refinery",
    "location": "Ryazan, Ryazan region",
    "occupied": false,
    "category": "refinery",
    "what": "Fire forced production suspension; refinery ~5% of Russian refining (13.1m t processed 2024)",
    "consequence": "Oil processing halted (Reuters industry sources)",
    "reported_cause": "Ukrainian forces confirmed strike; Governor Malkov: falling debris caused fires at unnamed industrial sites, six hospitalised",
    "confirmation": "Reuters industry sources",
    "urls": [
     "https://kurs.com.ua/en/novost/1472294-rjazanskii-npz-ostanovil-pererabotku-nefti-posle-ataki-dronov"
    ],
    "tier": "C",
    "notes": "May 2026 attack had forced complete shutdown. Same night Lukoil Perm refinery struck (fires)."
   },
   {
    "date": "2026-07-08",
    "name": "TANECO and TAIF-NK refineries",
    "location": "Nizhnekamsk, Tatarstan",
    "occupied": false,
    "category": "refinery",
    "what": "Strikes on two refineries; several people wounded in Nizhnekamsk. TANECO processed 17.0m t in 2024; TAIF-NK 6.6m t (~132k bpd)",
    "consequence": "Degree of damage not immediately clear",
    "reported_cause": "Ukrainian General Staff and Special Operations Forces claimed; Tatarstan officials confirmed strikes in region without naming targets",
    "confirmation": "Reuters report; Russian officials confirmed attack in region",
    "urls": [
     "https://www.thestar.com.my/news/world/2026/07/08/ukraine-says-its-drones-hit-three-refineries-tankers-in-night-of-major-strikes"
    ],
    "tier": "B",
    "notes": "~1,400 km from Ukrainian-held territory."
   },
   {
    "date": "2026-07-08",
    "name": "Saratov refinery (Saratovorgsintez area)",
    "location": "Saratov, Saratov region",
    "occupied": false,
    "category": "refinery",
    "what": "Strike; one killed, several wounded",
    "consequence": "Not reported",
    "reported_cause": "Ukraine claimed strike on refinery; Saratov governor described strike on 'civilian industrial sites'",
    "confirmation": "Russian governor confirmed strike on industrial sites (without naming refinery)",
    "urls": [
     "https://www.thestar.com.my/news/world/2026/07/08/ukraine-says-its-drones-hit-three-refineries-tankers-in-night-of-major-strikes"
    ],
    "tier": "B",
    "notes": "Refinery attacked repeatedly 2024-2026."
   },
   {
    "date": "2026-07-08",
    "name": "Petroleum products pumping station, Bashkortostan",
    "location": "Bashkortostan",
    "occupied": false,
    "category": "pipeline-pumping",
    "what": "Strike claimed; unverified social media footage",
    "consequence": "Not reported",
    "reported_cause": "Ukraine claimed; no Russian official mention",
    "confirmation": "None",
    "urls": [
     "https://www.thestar.com.my/news/world/2026/07/08/ukraine-says-its-drones-hit-three-refineries-tankers-in-night-of-major-strikes"
    ],
    "tier": "B",
    "notes": "Station not named in report."
   },
   {
    "date": "2026-07-08",
    "name": "Gazprom Krasnodarskaya compressor/pumping station (Blue Stream/TurkStream system)",
    "location": "Krasnodar Krai",
    "occupied": false,
    "category": "pipeline-pumping",
    "what": "Drone attack on gas pumping station",
    "consequence": "Gazprom: Blue Stream exports to Turkey not affected",
    "reported_cause": "Gazprom said drones attacked the station",
    "confirmation": "Company statement (Gazprom)",
    "urls": [
     "https://www.thestar.com.my/news/world/2026/07/08/ukraine-says-its-drones-hit-three-refineries-tankers-in-night-of-major-strikes"
    ],
    "tier": "C",
    "notes": ""
   },
   {
    "date": "2026-07-06",
    "name": "Gazpromneft Omsk refinery",
    "location": "Omsk, Omsk region",
    "occupied": false,
    "category": "refinery",
    "what": "Strike on Russia's largest refinery, ~2,700 km from Ukrainian-held territory",
    "consequence": "Not reported in source",
    "reported_cause": "Reported by Reuters as hit by Kyiv",
    "confirmation": "Mentioned in Reuters report",
    "urls": [
     "https://www.thestar.com.my/news/world/2026/07/08/ukraine-says-its-drones-hit-three-refineries-tankers-in-night-of-major-strikes"
    ],
    "tier": "B",
    "notes": "Only passing mention in Reuters report of 8 Jul 2026; verify details before use. See separate 8 Oct 2026 Omsk entry."
   },
   {
    "date": "2026-06-28",
    "name": "Slavyansk Eco refinery (Slavyansk-na-Kubani)",
    "location": "Krasnodar Krai",
    "occupied": false,
    "category": "refinery",
    "what": "Fire at refinery; one killed, one injured in nearby village. Capacity ~100k bpd",
    "consequence": "Not reported",
    "reported_cause": "Zelensky said Ukraine hit two refineries; Krasnodar governor Kondratiev reported fire at refinery",
    "confirmation": "Russian governor confirmed fire at refinery",
    "urls": [
     "https://www.thestar.com.my/news/world/2026/06/28/ukraine-hits-two-russian-oil-refineries-overnight"
    ],
    "tier": "C",
    "notes": "Same night Yaroslavl region attacked (refinery not named by source)."
   },
   {
    "date": "2026-05-26",
    "name": "Tuapse refinery and sea terminal (Rosneft)",
    "location": "Tuapse, Krasnodar Krai",
    "occupied": false,
    "category": "refinery",
    "what": "Further attack (after 16, 20, 28 Apr and 2 May waves) damaged port infrastructure, oil storage and civilian buildings; at least one dead",
    "consequence": "Refinery operations suspended indefinitely",
    "reported_cause": "Ukrainian drone attack (per reports compiled on Wikipedia; Ukrainska Pravda)",
    "confirmation": "Russian local authorities reported casualties",
    "urls": [
     "https://en.wikipedia.org/wiki/2026_Tuapse_oil_terminal_disaster",
     "https://www.pravda.com.ua/eng/news/2026/05/28/8036745/"
    ],
    "tier": "B",
    "notes": "Wikipedia used as lead only; verify via Ukrainska Pravda link."
   },
   {
    "date": "2026-05-16",
    "name": "Nevinnomyssk Azot (EuroChem) chemical plant",
    "location": "Nevinnomyssk, Stavropol Krai",
    "occupied": false,
    "category": "chemical",
    "what": "Explosions overnight; ASTRA video analysis suggests fire at industrial site. Plant produces ammonia and ammonium nitrate",
    "consequence": "Not verified",
    "reported_cause": "Governor Vladimirov said air defences repelled drone attack near Nevinnomyssk, 'no casualties or damage on the ground'",
    "confirmation": "ASTRA video analysis only; governor denied damage",
    "urls": [
     "https://euromaidanpress.com/?p=406676",
     "https://www.kyivpost.com/post/76258"
    ],
    "tier": "B",
    "notes": "At least the 6th attack on site (Jun, Jul, Aug, Dec 2025; Jan 2026; May 2026). Dual-use relevance (explosive precursors) claimed by ASTRA - flag for legal-qualification review. Kyiv Post: Astra geolocation contradicts governor; plant reportedly supplied nitric/acetic acid to Sverdlov munitions plant (Dzerzhinsk) 2022-24 - possible dual-use; consider excluding from \"non-military\" list or flag."
   },
   {
    "date": "2026-05-15",
    "name": "Ryazan refinery (Rosneft)",
    "location": "Ryazan region",
    "occupied": false,
    "category": "refinery",
    "what": "Large fire after overnight attack",
    "consequence": "Not reported",
    "reported_cause": "Ukrainian drones (per Reuters-cited report)",
    "confirmation": "Reuters",
    "urls": [
     "https://ukranews.com/en/amp/news/1152165-at-least-35-oil-refineries-out-of-commission-at-russian-refineries-since-beginning-of-year-reuters"
    ],
    "tier": "B",
    "notes": "Ryazan hit repeatedly incl. Sept 2026 (pravda.com.ua report)."
   },
   {
    "date": "2026-05-05",
    "name": "Kirishinefteorgsintez (KINEF, Surgutneftegaz)",
    "location": "Kirishi, Leningrad region",
    "occupied": false,
    "category": "refinery",
    "what": "Drone attack",
    "consequence": "Had not resumed operations as of 15 May 2026 (Reuters)",
    "reported_cause": "Drone attack (Reuters)",
    "confirmation": "Reuters industry sources",
    "urls": [
     "https://ukranews.com/en/amp/news/1152165-at-least-35-oil-refineries-out-of-commission-at-russian-refineries-since-beginning-of-year-reuters"
    ],
    "tier": "C",
    "notes": "One of Russia's largest refineries (~20m t/yr)."
   },
   {
    "date": "2026-04-18",
    "name": "Rosneft Novokuibyshevsk refinery",
    "location": "Novokuibyshevsk, Samara region",
    "occupied": false,
    "category": "refinery",
    "what": "Drone attack put both primary units AVT-11 and AVT-9 out of commission; AVT-11 most damaged, repair >1 month; capacity 8.3m t/yr",
    "consequence": "Refinery shut since 18 Apr 2026",
    "reported_cause": "Drone attack (Reuters industry sources)",
    "confirmation": "Reuters industry sources",
    "urls": [
     "https://ukranews.com/en/amp/news/1147580-two-more-major-refineries-shut-down-in-russia-due-to-drone-attacks-reuters"
    ],
    "tier": "C",
    "notes": "Date = shutdown date. Reuters: April 2026 Russian oil output fell 300-400k bpd."
   },
   {
    "date": "2026-04-16",
    "name": "Tuapse refinery and sea terminal (Rosneft) - April-May 2026 strike series",
    "location": "Tuapse, Krasnodar Krai",
    "occupied": false,
    "category": "refinery",
    "what": "16 Apr strike set fuel storage and port infrastructure ablaze for three days; repeat waves 20 Apr (one killed), 28 Apr (evacuations, 160+ firefighters), 2 May (SBU claimed seaport and refinery). Oil slick in Black Sea; 'black rain'; 13,000+ m3 fuel oil and contaminated soil removed by late April",
    "consequence": "Refinery halted after 16 Apr (Reuters, 21 Apr) as products could not be shipped; state of emergency declared; tanker traffic diverted to Novorossiysk",
    "reported_cause": "Ukrainian drone attacks (Reuters); SBU claimed 2 May strike; Russian Emergencies Minister Kurenkov said burning oil spill contained (29 Apr)",
    "confirmation": "Reuters; Russian Emergencies Ministry and Krasnodar governor statements; satellite monitoring of slick",
    "urls": [
     "https://en.wikipedia.org/wiki/2026_Tuapse_oil_terminal_disaster",
     "https://cyprus-mail.com/2026/04/28/drone-attack-causes-fire-at-russias-tuapse-refinery-buildings-nearby-evacuated",
     "https://meduza.io/en/news/2026/04/29/russia-says-burning-oil-spill-at-refinery-struck-by-ukrainian-drones-has-been-contained",
     "https://www.theguardian.com/world/2026/may/02/ukraine-war-briefing-russian-oil-hub-of-tuapse-hit-for-fourth-time-as-environmental-disaster-mounts"
    ],
    "tier": "C",
    "notes": "Environmental consequences acknowledged by Russian officials. Reuters URL (not fetched): https://www.reuters.com/business/energy/russias-tuapse-oil-refinery-halted-operations-after-april-16-drone-attack-2026-04-21/ . Tuapse refinery ~12m t/yr, export-oriented."
   },
   {
    "date": "2026-04-06",
    "name": "Sheskharis terminal and CPC marine terminal, Novorossiysk",
    "location": "Novorossiysk, Krasnodar Krai",
    "occupied": false,
    "category": "port-terminal",
    "what": "Large-scale fire at Sheskharis (Ukrainian military); Russian MoD said CPC facilities attacked - damage to pipeline, transshipment berth and fires at four oil storage tanks; 10 injured, 25 buildings damaged in city",
    "consequence": "Not quantified; Novorossiysk loaded 2.27m b/d crude in March",
    "reported_cause": "Russian Defence Ministry said Novorossiysk transshipment complex and CPC attacked by drones; Ukrainian military said it hit Sheskharis",
    "confirmation": "Russian MoD statement; NASA satellite fire detection (S&P Global Platts)",
    "urls": [
     "https://www.hellenicshippingnews.com/drones-strike-novorossiisk-in-new-attacks-on-russian-oil-hubs/",
     "https://www.spglobal.com/energy/en/news-research/latest-news/crude-oil/040626-drones-strike-novorossiisk-in-new-attacks-on-russian-oil-hubs"
    ],
    "tier": "C",
    "notes": "CPC carries mostly Kazakh crude."
   },
   {
    "date": "2026-04-02",
    "name": "Bashneft-Novoil refinery (Ufa refinery complex)",
    "location": "Ufa, Bashkortostan",
    "occupied": false,
    "category": "refinery",
    "what": "Large fire with thick smoke over city, night of 1-2 April 2026",
    "consequence": "Not reported",
    "reported_cause": "Bashkortostan head Khabirov: several drones downed approaching refineries, debris fell on industrial site",
    "confirmation": "Russian regional head admitted drone debris on site and firefighting",
    "urls": [
     "https://www.pravda.com.ua/eng/news/2026/04/02/8028323"
    ],
    "tier": "C",
    "notes": "~1,400 km from Ukraine."
   },
   {
    "date": "2026-03-23",
    "name": "Primorsk oil terminal (Transneft)",
    "location": "Primorsk, Leningrad region",
    "occupied": false,
    "category": "port-terminal",
    "what": "Fire at fuel reservoirs; burned for 2+ days. Over March attacks at least eight 50,000 m3 reservoirs damaged = at least 40% of storage (Vantor satellite imagery)",
    "consequence": "Primorsk and Ust-Luga suspended loadings (industry sources); crude loading resumed 24 Mar",
    "reported_cause": "Ukrainian General Staff claimed strike on Transneft terminal; Governor Drozdenko said fire caused by falling drone debris",
    "confirmation": "Satellite imagery (Vantor via Reuters exclusive); Russian governor confirmed damage",
    "urls": [
     "https://www.themoscowtimes.com/2026/08/06/ukraine-strikes-primorsk-port-in-northwestern-russia-damaging-fuel-reservoirs",
     "https://novayagazeta.eu/en/articles/2026/03/24/giant-fire-rages-for-second-day-at-russian-baltic-port-of-primosrk-en-news",
     "https://finance.yahoo.com/news/exclusive-russias-primorsk-oil-terminal-134821196.html"
    ],
    "tier": "C",
    "notes": "Port capacity ~1m bpd (largest Urals export hub)."
   },
   {
    "date": "2026-03-22",
    "name": "Ust-Luga oil terminal (Transneft / Ust-Luga Oil)",
    "location": "Ust-Luga, Leningrad region",
    "occupied": false,
    "category": "port-terminal",
    "what": "Attacked 22, 25, 27, 29, 31 March per local authorities; eight 30,000 m3 product reservoirs damaged by fire (~quarter of storage); some berth facilities hit",
    "consequence": "Loadings suspended during attacks",
    "reported_cause": "Local authorities reported drone attacks",
    "confirmation": "Reuters with Vantor satellite imagery",
    "urls": [
     "https://finance.yahoo.com/news/exclusive-russias-primorsk-oil-terminal-134821196.html"
    ],
    "tier": "C",
    "notes": "Ust-Luga handles ~700k bpd oil exports."
   },
   {
    "date": "2026-03-02",
    "name": "Sheskharis oil terminal, Novorossiysk",
    "location": "Novorossiysk, Krasnodar Krai",
    "occupied": false,
    "category": "port-terminal",
    "what": "Fire at terminal reported overnight 1-2 March",
    "consequence": "Not specified; Bloomberg reported loading resumed by 7-8 March weekend",
    "reported_cause": "Local sources/Militarnyi: Ukrainian drones; Mayor Kravchenko confirmed an attack on the city",
    "confirmation": "Astra eyewitness footage analysis; mayor confirmed attack (not damage)",
    "urls": [
     "https://euromaidanpress.com/2026/03/02/port-hit-terminal-burning-new-novorossiysk-strike-adds-pressure-on-russias-black-sea-oil-logistics/",
     "https://www.bloomberg.com/news/articles/2026-03-09/russia-s-key-black-sea-port-resumed-oil-loading-over-weekend"
    ],
    "tier": "B",
    "notes": "Bloomberg link not fetched (paywall)."
   },
   {
    "date": "2026-02-15",
    "name": "Belgorod thermal power plant and Frunzenskaya substation",
    "location": "Belgorod, Belgorod region",
    "occupied": false,
    "category": "power",
    "what": "Energy infrastructure 'significantly damaged' (governor)",
    "consequence": "No large-scale blackout per early reports",
    "reported_cause": "Governor Gladkov: 'large-scale attack by Ukrainian forces'; Telegram (Pepel Belgorod) reported missile strike on TPP",
    "confirmation": "Russian governor statement",
    "urls": [
     "https://www.pravda.com.ua/eng/news/2026/02/15/8021193"
    ],
    "tier": "C",
    "notes": "Parts of Bryansk region also without heat/power after earlier attacks."
   },
   {
    "date": "2026-01-22",
    "name": "Taman sea terminal (Tamanneftegaz)",
    "location": "Taman peninsula, Krasnodar Krai",
    "occupied": false,
    "category": "port-terminal",
    "what": "Four oil storage tanks on fire (Russian authorities); berth pipelines damaged (SBU source); fire ~7,000 m2; preliminary losses ~$50m",
    "consequence": "3 dead, 8 injured (Interfax); fires out by 22 Jan",
    "reported_cause": "Governor Kondratyev confirmed massive drone attack 21 Jan; Ukrainian General Staff said terminal hit 22 Jan, citing fuel supply to Russian forces; SBU source: Alpha unit",
    "confirmation": "Russian governor and Interfax",
    "urls": [
     "https://www.marineinsight.com/video-ukrainian-drone-strikes-damage-major-russian-oil-gas-terminal-killing-3/",
     "https://hromadske.ua/en/war/258265-u-krasnodarskomu-krayi-horily-naftovi-terminaly-v-portu-iakyy-uze-ne-raz-buv-pid-udarom"
    ],
    "tier": "C",
    "notes": "Also attacked 21-22 Dec 2025 (two piers, pipeline, two vessels reportedly damaged). Ukraine cites military fuel supply - flag for qualification."
   },
   {
    "date": "2026-01-21",
    "name": "Afipsky refinery",
    "location": "Afipsky, Krasnodar Krai",
    "occupied": false,
    "category": "refinery",
    "what": "Fire ignited by drone fragments",
    "consequence": "Local emergencies centre: 'nobody was hurt, there was no damage, and the fire is now out'",
    "reported_cause": "Russian officials: Ukrainian drone attack",
    "confirmation": "Russian emergencies centre confirmed fire",
    "urls": [
     "https://www.internazionale.it/ultime-notizie-reuters/2026/01/21/russia-says-fire-put-out-at-afipsky-oil-refinery-after-ukrainian-drone-attack",
     "https://www.bloomberg.com/news/articles/2026-01-21/russia-says-ukraine-attacked-afipsky-oil-refinery-overnight"
    ],
    "tier": "C",
    "notes": "Minor; officials deny damage."
   },
   {
    "date": "2026-01-12",
    "name": "Oryol thermal power plant",
    "location": "Oryol, Oryol region",
    "occupied": false,
    "category": "power",
    "what": "TPP on fire after drone attack (Exilenova+)",
    "consequence": "Not reported",
    "reported_cause": "Governor Klychkov reported explosions and air defence activity; damage reported by Exilenova+",
    "confirmation": "None independent",
    "urls": [
     "https://english.nv.ua/russian-war/ukraine-attacks-power-plant-in-russia-s-oryol-50575190.html"
    ],
    "tier": "B",
    "notes": "Context: Belgorod region ~600,000 without power for 3rd day per Gladkov (Jan 2026). Earlier Oryol blackout 19 Dec 2025."
   },
   {
    "date": "2025-12-14",
    "name": "Luch thermal power plant, Belgorod",
    "location": "Belgorod, Belgorod region",
    "occupied": false,
    "category": "power",
    "what": "Missile strike; 'significant damage' to civilian infrastructure",
    "consequence": "Parts of Belgorod lost heat and electricity",
    "reported_cause": "Governor Gladkov confirmed strike; Astrapress first reported missile strike",
    "confirmation": "Russian governor statement",
    "urls": [
     "https://novayagazeta.eu/en/articles/2025/12/15/ukraine-keeps-up-pressure-on-russian-energy-facilities-with-strike-on-belgorod-thermal-power-plant-en-news"
    ],
    "tier": "C",
    "notes": "Overnight Sunday before 15 Dec 2025."
   },
   {
    "date": "2025-11-29",
    "name": "CPC Marine Terminal SPM-2 (Yuzhnaya Ozereevka)",
    "location": "Novorossiysk area, Krasnodar Krai (offshore)",
    "occupied": false,
    "category": "port-terminal",
    "what": "Naval drone attack significantly damaged Single-Point Mooring 2; CPC said it can no longer be operated",
    "consequence": "Loading fully stopped; tankers withdrawn. CPC handles >1% of global oil supply, ~80% of Kazakh exports",
    "reported_cause": "CPC: attack 'targeted the interests of all member countries'; Ukraine MFA said actions not aimed at Kazakhstan; Kazakhstan MFA protested 'third attack this year on an exclusively civilian installation'",
    "confirmation": "Company statement (CPC); Kazakhstan MFA",
    "urls": [
     "https://www.marineinsight.com/kazakhstan-urges-ukraine-to-halt-drone-attacks-after-cpc-terminal-hit-in-black-sea/",
     "https://en.orda.kz/whats-happening-to-kazakhstans-oil-exports-after-the-novorossiysk-drone-strike-9596/"
    ],
    "tier": "C",
    "notes": "Third-country (Kazakhstan) protest - diplomatically sensitive."
   },
   {
    "date": "2025-11-14",
    "name": "Sheskharis oil terminal (Transneft), Novorossiysk",
    "location": "Novorossiysk, Krasnodar Krai",
    "occupied": false,
    "category": "port-terminal",
    "what": "Fire at oil depot of Sheskharis (extinguished); oil berths 1 and 1A hit; tanker Arlan hit, 3 crew injured; apartment buildings damaged",
    "consequence": "Novorossiysk oil exports (~2.2m bpd, ~2% of global supply) suspended; Transneft halted supplies to port; loadings resumed after ~2 days; oil prices +2%",
    "reported_cause": "Ukrainian General Staff said it used Neptune cruise missiles and strike drones; Krasnodar governor Kondratyev said Novorossiysk 'suffered the most'",
    "confirmation": "Reuters industry sources; Russian officials; Ambrey",
    "urls": [
     "https://gcaptain.com/ukraine-hits-novorossiysk-knocking-out-2-of-global-oil-supply/",
     "https://www.bairdmaritime.com/shipping/ports/oil-loadings-resume-at-key-russian-port-two-days-after-drone-attack"
    ],
    "tier": "C",
    "notes": "CPC paused loadings at Yuzhnaya Ozereevka for a few hours during alert."
   },
   {
    "date": "2025-11-02",
    "name": "Tuapse sea terminal and refinery (Rosneft)",
    "location": "Tuapse, Krasnodar Krai",
    "occupied": false,
    "category": "port-terminal",
    "what": "Port infrastructure and oil terminal hit; tanker hit; vessels moved from berths",
    "consequence": "Refinery (240k bpd) stopped the day after; fuel exports through Tuapse suspended (Reuters, industry sources + LSEG)",
    "reported_cause": "Source to Ukrainska Pravda: SBU Alpha with defence forces; Russian authorities reported tanker fire after drone attack",
    "confirmation": "Reuters industry sources and LSEG ship-tracking",
    "urls": [
     "https://www.pravda.com.ua/eng/news/2025/11/05/8005962",
     "https://www.pravda.com.ua/eng/news/2025/11/02/8005435"
    ],
    "tier": "C",
    "notes": ""
   },
   {
    "date": "2025-10-22",
    "name": "Rosneft Ryazan refinery - AVT-4 (CDU-4)",
    "location": "Ryazan, Ryazan region",
    "occupied": false,
    "category": "refinery",
    "what": "AVT-4 caught fire (4m t/yr, ~80k bpd, ~quarter of plant capacity); adjacent reformer, VGO hydrotreater and cat cracker also shut",
    "consequence": "Plant running at reduced volume",
    "reported_cause": "Ukrainian General Staff confirmed strike (23 Oct); Reuters: drone-induced fire",
    "confirmation": "Reuters (two industry sources)",
    "urls": [
     "https://euromaidanpress.com/2025/10/24/russias-fourth-largest-refinery-in-ryazan-halts-core-crude-unit-after-drone-induced-fire-during-latest-attack-reuters-reports/"
    ],
    "tier": "C",
    "notes": "At least 6th strike on site in 2025."
   },
   {
    "date": "2025-10-19",
    "name": "Orenburg gas processing plant (Gazprom Dobycha Orenburg)",
    "location": "Orenburg region",
    "occupied": false,
    "category": "gas processing",
    "what": "Drone strike on gas plant (capacity 37.5 bcm/yr); first reported strike on the plant",
    "consequence": "Intake of Kazakh gas (Karachaganak) suspended; Karachaganak output cut 25-30% (Reuters sources)",
    "reported_cause": "Ukrainian officials confirmed; Zelensky cited increased range of 'long-range sanctions'; Kazakh Energy Ministry reported intake suspended after attack",
    "confirmation": "Kazakhstan Energy Ministry (third-state government) statement; Reuters sources",
    "urls": [
     "https://www.globalsecurity.org/wmd/library/news/ukraine/2025/10/ukraine-251020-rferl02.htm",
     "https://en.fergana.agency/news/141746/"
    ],
    "tier": "C",
    "notes": "Third-country (Kazakhstan) economic impact - sensitive for UN audience."
   },
   {
    "date": "2025-10-13",
    "name": "Feodosia oil terminal (Crimea)",
    "location": "Feodosia, occupied Crimea",
    "occupied": true,
    "category": "oil depot",
    "what": "Drone strike set large sections of facility ablaze; smoke visible 25 km away; second day of fire on 14 Oct",
    "consequence": "~830 people evacuated by occupation authorities (Krymskyi Veter)",
    "reported_cause": "Media attribute to SBU and Special Operations Forces (no official claim cited in article)",
    "confirmation": "Satellite images of tanks on fire reported (Ukrinform/USM)",
    "urls": [
     "https://www.pravda.com.ua/eng/news/2025/10/14/8002710",
     "https://novayagazeta.eu/articles/2025/10/13/massive-fire-as-ukraine-strikes-largest-oil-terminal-in-annexed-crimea-en-news",
     "https://ukrinform.net/rubric-ato/4110563-satellite-images-show-fuel-storage-tanks-at-oil-terminal-on-fire-in-feodosia-following-ukrainian-strikes.html"
    ],
    "tier": "C",
    "notes": "Occupied territory - under international law, Ukrainian territory; frame accordingly. Earlier fires: 5-6 Oct 2025 (4+ days), Oct 2024 (~1 week). Facility likely supplies occupying forces - flag for qualification review."
   },
   {
    "date": "2025-10-04",
    "name": "Kirishinefteorgsintez (KINEF) - CDU-6",
    "location": "Kirishi, Leningrad region",
    "occupied": false,
    "category": "refinery",
    "what": "Fire after drone attack halted CDU-6 (8m t/yr, 160k bpd, ~40% of plant capacity)",
    "consequence": "Repair ~1 month; plant to run at ~70% capacity",
    "reported_cause": "Drone attack (Reuters sources)",
    "confirmation": "Reuters industry sources; Surgutneftegaz no comment",
    "urls": [
     "https://hydrocarbonprocessing.com/news/2025/10/russias-kirishi-refinery-halts-largest-unit-after-drone-attack/",
     "https://www.pravda.com.ua/eng/news/2025/10/06/8001527"
    ],
    "tier": "C",
    "notes": "Another primary unit damaged by drones mid-September 2025."
   },
   {
    "date": "2025-09-28",
    "name": "Belgorod thermal power plant / Luch substation",
    "location": "Belgorod, Belgorod region",
    "occupied": false,
    "category": "power",
    "what": "Strike on TPP; Telegram reported missile strike on Luch substation",
    "consequence": "'Quite significant disruptions' to electricity; outages in Belgorod, Stary Oskol, Shebekino; water supply problems",
    "reported_cause": "Governor Gladkov: Ukrainian forces struck infrastructure",
    "confirmation": "Russian governor statement",
    "urls": [
     "https://www.pravda.com.ua/eng/news/2025/09/28/8000291"
    ],
    "tier": "C",
    "notes": "Further outages ~40,000 in Belgorod/Bryansk early Oct 2025 (Euromaidan Press)."
   },
   {
    "date": "2025-09-22",
    "name": "Astrakhan gas processing plant (Gazprom Pererabotka) - condensate unit",
    "location": "Astrakhan region",
    "occupied": false,
    "category": "gas processing",
    "what": "Fire engulfed condensate unit (3m t/yr) producing gasoline and diesel",
    "consequence": "Motor fuel output halted; restart could take weeks or months; exchange sales from plant halted",
    "reported_cause": "Governor Babushkin: industrial enterprise targeted by drones (not named)",
    "confirmation": "Industry sources (Reuters); governor confirmed drone attack on industrial enterprise",
    "urls": [
     "https://gasprocessingnews.com/news/2025/09/russias-astrakhan-gas-plant-halted-operations-after-drone-attack/",
     "https://www.pravda.com.ua/eng/news/2025/09/23/7532174"
    ],
    "tier": "C",
    "notes": "Plant also hit early Feb 2025 (fuel output halted; unit resumed end-Aug) and 13 May 2025 (MarketScreener/Reuters)."
   },
   {
    "date": "2025-09-18",
    "name": "Gazprom Neftekhim Salavat (refinery-petrochemical complex)",
    "location": "Salavat, Bashkortostan",
    "occupied": false,
    "category": "refinery",
    "what": "Explosions and fire; ~1,500 km from Ukrainian border",
    "consequence": "Damage being evaluated (official)",
    "reported_cause": "Bashkortostan head Khabirov: 'Two fixed-wing drones hit the plant. There are no casualties.'",
    "confirmation": "Russian regional head confirmed hit",
    "urls": [
     "https://www.pravda.com.ua/eng/news/2025/09/18/7531395"
    ],
    "tier": "C",
    "notes": "Salavat also hit in 2024 (catalytic cracker damaged)."
   },
   {
    "date": "2025-09-14",
    "name": "Kirishinefteorgsintez (KINEF)",
    "location": "Kirishi, Leningrad region",
    "occupied": false,
    "category": "refinery",
    "what": "Fire from falling debris, extinguished",
    "consequence": "Primary unit damaged per later Reuters reporting (returning to operation by early Oct)",
    "reported_cause": "Ukraine's drone command claimed successful strike; Governor Drozdenko: three drones destroyed, debris fire extinguished, no injuries",
    "confirmation": "Russian governor confirmed fire; Reuters later reported unit damage",
    "urls": [
     "https://www.tribuneindia.com/news/world/ukrainian-drones-hit-russias-kirishi-oil-refinery-fire-sparked-by-debris",
     "https://www.pravda.com.ua/eng/news/2025/09/14/7530773",
     "https://hydrocarbonprocessing.com/news/2025/10/russias-kirishi-refinery-halts-largest-unit-after-drone-attack/"
    ],
    "tier": "C",
    "notes": ""
   },
   {
    "date": "2025-09-13",
    "name": "Bashneft-Novoil refinery (Ufa)",
    "location": "Ufa, Bashkortostan",
    "occupied": false,
    "category": "refinery",
    "what": "Fire; Khabirov: production site slightly damaged. DIU-linked sources claimed vacuum distillation tower damaged (unconfirmed)",
    "consequence": "Not reported",
    "reported_cause": "Anonymous Ukrainian DIU sources (Ukrainska Pravda); Khabirov: downed drone fell on plant territory",
    "confirmation": "Russian regional head admitted damage",
    "urls": [
     "https://www.pravda.com.ua/eng/news/2025/09/13/7530727"
    ],
    "tier": "C",
    "notes": ""
   },
   {
    "date": "2025-09-12",
    "name": "Primorsk oil port (Transneft)",
    "location": "Primorsk, Leningrad region",
    "occupied": false,
    "category": "port-terminal",
    "what": "Fire on a ship in port; tankers Kusto and Cai Yun damaged; pumping station attacked (damage unknown)",
    "consequence": "Port reportedly suspended operations (Reuters)",
    "reported_cause": "Governor Drozdenko: ship on fire due to drone attack; SBU credited",
    "confirmation": "Russian governor statement; Reuters industry sources",
    "urls": [
     "https://www.pravda.com.ua/eng/news/2025/09/13/7530694",
     "https://www.pravda.com.ua/eng/news/2025/09/12/7530501"
    ],
    "tier": "C",
    "notes": "First attack on Primorsk."
   },
   {
    "date": "2025-08-24",
    "name": "Novatek Ust-Luga gas condensate complex and oil export terminal",
    "location": "Ust-Luga, Leningrad region",
    "occupied": false,
    "category": "port-terminal",
    "what": "Fire at Novatek terminal (gas processing equipment believed struck); Reuters: drone attacks damaged pipeline infrastructure",
    "consequence": "Plant offline, repairs possibly months; Ust-Luga oil terminal expected ~350k bpd in Sept 2025, about half usual (Reuters)",
    "reported_cause": "Governor Drozdenko: ~10 drones attacked Ust-Luga port, fire localized, fuel tanks not damaged; Russian MoD: 13 drones destroyed over Ust-Luga; Ukrinform: SBU and SSO struck gas processing facility",
    "confirmation": "Russian governor and MoD admitted attack and fire; Reuters industry sources",
    "urls": [
     "https://maritime-executive.com/article/ukrainian-drones-damage-russia-s-ust-luga-oil-and-gas-terminal",
     "https://www.ukrinform.net/rubric-ato/4029015-ssu-sofs-strike-gas-processing-facility-in-russias-ustluga.html",
     "https://www.yahoo.com/news/articles/factbox-russian-energy-facilities-targeted-093424040.html"
    ],
    "tier": "C",
    "notes": "Attacks reported 23-24 Aug 2025. Second successful attack on facility (first Jan 2024)."
   },
   {
    "date": "2025-08-24",
    "name": "Kursk nuclear power plant (Kurchatov) - auxiliary equipment",
    "location": "Kurchatov, Kursk region",
    "occupied": false,
    "category": "power",
    "what": "Russian MoD said a nuclear power plant was slightly damaged during overnight drone attack",
    "consequence": "Not specified in source",
    "reported_cause": "Russian Defence Ministry: drone attack",
    "confirmation": "Russian MoD statement only",
    "urls": [
     "https://maritime-executive.com/article/ukrainian-drones-damage-russia-s-ust-luga-oil-and-gas-terminal"
    ],
    "tier": "B",
    "notes": "Highly sensitive (nuclear safety; IAEA). Source does not name plant - Kursk NPP per wider reporting; verify via IAEA statement before any use. Russian-only claim."
   },
   {
    "date": "2025-08-18",
    "name": "Nikolskoye oil pumping station (Druzhba pipeline)",
    "location": "Tambov region",
    "occupied": false,
    "category": "pipeline-pumping",
    "what": "Drone strike on pumping station; transformer station reportedly hit",
    "consequence": "Crude flows via Druzhba to Hungary and Slovakia halted (Transpetrol, MOL confirmed stoppage)",
    "reported_cause": "Ukraine's Unmanned Systems Forces commander Brovdi confirmed 14th Regiment drones attacked station; Hungarian FM Szijjarto blamed Ukrainian attack",
    "confirmation": "Operators Transpetrol and MOL confirmed halt; Russian Deputy Energy Minister Sorokin (via Szijjarto) said repairs under way",
    "urls": [
     "https://www.yahoo.com/news/articles/pipeline-attack-stops-russian-oil-224500558.html",
     "https://www.tasr.sk/tasr-clanok/TASR:2025081800000354"
    ],
    "tier": "C",
    "notes": "Hungary received ~95k bpd via Druzhba in 2024. Unecha station hit again ~21-22 Aug 2025 (Euromaidan Press)."
   },
   {
    "date": "2025-08-15",
    "name": "Rosneft Syzran refinery",
    "location": "Syzran, Samara region",
    "occupied": false,
    "category": "refinery",
    "what": "Fire after strike; capacity 8.5m t/yr",
    "consequence": "Production and crude intake suspended (two industry sources)",
    "reported_cause": "Ukraine said it struck the refinery on 15 Aug",
    "confirmation": "Reuters industry sources",
    "urls": [
     "https://www.yahoo.com/news/articles/factbox-russian-energy-facilities-targeted-093424040.html"
    ],
    "tier": "C",
    "notes": ""
   },
   {
    "date": "2025-08-14",
    "name": "Lukoil Volgograd refinery",
    "location": "Volgograd region",
    "occupied": false,
    "category": "refinery",
    "what": "Huge fires",
    "consequence": "Refinery shut down (two sources)",
    "reported_cause": "Drone strike (Reuters factbox)",
    "confirmation": "Reuters industry sources",
    "urls": [
     "https://www.yahoo.com/news/articles/factbox-russian-energy-facilities-targeted-093424040.html"
    ],
    "tier": "C",
    "notes": "Also halted a little over a week in Feb 2025 after drone strike."
   },
   {
    "date": "2025-08-13",
    "name": "Unecha oil pumping station (Druzhba pipeline, Transneft)",
    "location": "Bryansk region",
    "occupied": false,
    "category": "pipeline-pumping",
    "what": "Damage and large-scale fire",
    "consequence": "Supplies to Hungary and Slovakia interrupted",
    "reported_cause": "Drone attack (Reuters factbox)",
    "confirmation": "Reuters; Hungarian/Slovak governments reported interruption",
    "urls": [
     "https://www.yahoo.com/news/articles/factbox-russian-energy-facilities-targeted-093424040.html"
    ],
    "tier": "C",
    "notes": "Druzhba also hit at Nikolskoye station (Tambov) ~18 Aug 2025 - see separate entry if confirmed."
   },
   {
    "date": "2025-08-10",
    "name": "Saratov refinery (Rosneft)",
    "location": "Saratov region",
    "occupied": false,
    "category": "refinery",
    "what": "Explosion and fire",
    "consequence": "Extent unclear",
    "reported_cause": "Overnight drone attack (Reuters factbox)",
    "confirmation": "Reuters",
    "urls": [
     "https://www.yahoo.com/news/articles/factbox-russian-energy-facilities-targeted-093424040.html"
    ],
    "tier": "B",
    "notes": "Had suspended fuel production after Feb 2025 drone strike."
   },
   {
    "date": "2025-08-07",
    "name": "Afipsky refinery",
    "location": "Krasnodar Krai",
    "occupied": false,
    "category": "refinery",
    "what": "Fire from fallen drone debris",
    "consequence": "Extent unclear",
    "reported_cause": "Russian local authorities: drone debris",
    "confirmation": "Russian local authorities",
    "urls": [
     "https://www.yahoo.com/news/articles/factbox-russian-energy-facilities-targeted-093424040.html"
    ],
    "tier": "C",
    "notes": "Afipsky hit repeatedly (2024-2026)."
   },
   {
    "date": "2025-08-03",
    "name": "Sochi oil depot (Adler)",
    "location": "Sochi, Krasnodar Krai",
    "occupied": false,
    "category": "oil depot",
    "what": "Two oil tanks caught fire",
    "consequence": "Fires extinguished per local authorities",
    "reported_cause": "Drone attack; local authorities reported fire",
    "confirmation": "Russian local authorities",
    "urls": [
     "https://www.yahoo.com/news/articles/factbox-russian-energy-facilities-targeted-093424040.html"
    ],
    "tier": "C",
    "notes": ""
   },
   {
    "date": "2025-08-02",
    "name": "Rosneft Ryazan refinery",
    "location": "Ryazan region",
    "occupied": false,
    "category": "refinery",
    "what": "Drone attack",
    "consequence": "About half of refining capacity halted (three industry sources)",
    "reported_cause": "Drone attack (Reuters)",
    "confirmation": "Reuters industry sources",
    "urls": [
     "https://www.yahoo.com/news/articles/factbox-russian-energy-facilities-targeted-093424040.html"
    ],
    "tier": "C",
    "notes": "Also halted after strikes late Jan and Feb 2025."
   },
   {
    "date": "2025-08-02",
    "name": "Rosneft Novokuibyshevsk refinery",
    "location": "Samara region",
    "occupied": false,
    "category": "refinery",
    "what": "Drone attack late July 2025",
    "consequence": "Primary processing halted since 2 Aug (two industry sources)",
    "reported_cause": "Drone attack (Reuters factbox)",
    "confirmation": "Reuters industry sources",
    "urls": [
     "https://www.yahoo.com/news/articles/factbox-russian-energy-facilities-targeted-093424040.html"
    ],
    "tier": "C",
    "notes": "Date = halt date."
   },
   {
    "date": "2025-03-19",
    "name": "Kavkazskaya oil pumping station (Caspian Pipeline Consortium)",
    "location": "Kropotkin area, Krasnodar Krai",
    "occupied": false,
    "category": "pipeline-pumping",
    "what": "Drone strike caused large fire; pipeline between product tanks damaged, reservoir explosion; reservoir collapsed 23-24 Mar; fire area up to 2,000 m2",
    "consequence": "Station out of operation",
    "reported_cause": "CPC press service blamed Ukrainian actions; media: Ukrainian drones",
    "confirmation": "Company statement (CPC): pumping impossible for foreseeable future",
    "urls": [
     "https://euromaidanpress.com/2025/03/25/oil-pumping-through-russias-drone-struck-kavkazskaya-station-impossible-in-foreseeable-future-operator-says/"
    ],
    "tier": "C",
    "notes": "Occurred during March 2025 energy-strike moratorium dispute. Station handled >=130k t/month; 1.5m t in 2024."
   },
   {
    "date": "2025-02-17",
    "name": "CPC Kropotkinskaya oil pumping station",
    "location": "Krasnodar Krai",
    "occupied": false,
    "category": "pipeline-pumping",
    "what": "At least seven drones hit the largest pumping station on the CPC system",
    "consequence": "CPC: station out of service; system operating at reduced flow rates",
    "reported_cause": "CPC confirmed drone hits; Ukrainian security official said SBU responsible (also for Ilsky refinery strike same night)",
    "confirmation": "Company statement (CPC)",
    "urls": [
     "https://www.marineinsight.com/ukraine-drone-attack-strikes-major-oil-pipeline-in-russia-disrupting-global-supply/",
     "https://www.spglobal.com/energy/en/news-research/latest-news/crude-oil/022625-kazakhstans-cpc-blend-crude-supplies-unimpeded-by-pipeline-attack-minister"
    ],
    "tier": "C",
    "notes": "Night of 16-17 Feb 2025. Kazakhstan relies on CPC for ~80% of oil exports."
   },
   {
    "date": "2025-02-04",
    "name": "Astrakhan gas processing plant (Gazprom)",
    "location": "Astrakhan region",
    "occupied": false,
    "category": "gas processing",
    "what": "Drone strike",
    "consequence": "Plant operations / fuel output halted; damaged unit resumed end-Aug 2025",
    "reported_cause": "Ukrainian drone attack (Euromaidan Press); industry sources",
    "confirmation": "Industry sources (later reporting via Gas Processing News)",
    "urls": [
     "https://euromaidanpress.com/2025/02/04/russias-astrakhan-gas-processing-plant-halts-operations-after-ukrainian-drone-attack/?swcfpc=1",
     "https://gasprocessingnews.com/news/2025/09/russias-astrakhan-gas-plant-halted-operations-after-drone-attack/"
    ],
    "tier": "C",
    "notes": ""
   },
   {
    "date": "2024-04-02",
    "name": "TANECO refinery - CDU-7",
    "location": "Nizhnekamsk, Tatarstan",
    "occupied": false,
    "category": "refinery",
    "what": "Drone hit primary unit CDU-7 (~155k bpd; plant >17m t/yr); fire extinguished in 20 minutes",
    "consequence": "RIA: production not disrupted",
    "reported_cause": "Drone attack (Reuters factbox; ~1,300 km from front)",
    "confirmation": "Russian state media (RIA) confirmed hit",
    "urls": [
     "https://www.swissinfo.ch/eng/factbox-russian-refineries-targeted-by-ukraine's-drones/74877762"
    ],
    "tier": "C",
    "notes": ""
   },
   {
    "date": "2024-03-23",
    "name": "Rosneft Kuibyshev refinery",
    "location": "Samara, Samara region",
    "occupied": false,
    "category": "refinery",
    "what": "Fire engulfed primary refining unit (CDU-5, 47% of plant)",
    "consequence": "Plant halted all production (industry sources)",
    "reported_cause": "Drone attack (Reuters factbox)",
    "confirmation": "Reuters industry sources",
    "urls": [
     "https://www.swissinfo.ch/eng/factbox-russian-refineries-targeted-by-ukraine's-drones/74877762",
     "https://hydrocarbonprocessing.com/news/2024/03/russian-oil-refining-capacity-idled-by-drones-reaches-14-of-total/"
    ],
    "tier": "C",
    "notes": ""
   },
   {
    "date": "2024-03-16",
    "name": "Rosneft Syzran refinery",
    "location": "Syzran, Samara region",
    "occupied": false,
    "category": "refinery",
    "what": "Burned for hours; one of two CDUs damaged (CDU-6, 70% of plant)",
    "consequence": "Unit offline until ~end April 2024 (preliminary)",
    "reported_cause": "Drone attack (Reuters factbox)",
    "confirmation": "Reuters industry sources",
    "urls": [
     "https://www.swissinfo.ch/eng/factbox-russian-refineries-targeted-by-ukraine's-drones/74877762",
     "https://hydrocarbonprocessing.com/news/2024/03/russian-oil-refining-capacity-idled-by-drones-reaches-14-of-total/"
    ],
    "tier": "C",
    "notes": ""
   },
   {
    "date": "2024-03-13",
    "name": "Rosneft Ryazan refinery",
    "location": "Ryazan, Ryazan region",
    "occupied": false,
    "category": "refinery",
    "what": "Plant set ablaze; two primary units (AVT-4, AVT-6) shut; AVT-6 halted",
    "consequence": "Crude intake at ~60% of normal (169k bpd)",
    "reported_cause": "Drone attack (Reuters factbox)",
    "confirmation": "Reuters industry sources; S&P Global",
    "urls": [
     "https://www.swissinfo.ch/eng/factbox-russian-refineries-targeted-by-ukraine's-drones/74877762",
     "https://spglobal.com/commodity-insights/en/news-research/latest-news/crude-oil/031324-rosnefts-ryazan-oil-refinery-hit-by-drone-attack"
    ],
    "tier": "C",
    "notes": "Capacity ~350k bpd."
   },
   {
    "date": "2024-03-12",
    "name": "Lukoil NORSI refinery (Nizhegorodnefteorgsintez) - AVT-6",
    "location": "Kstovo, Nizhny Novgorod region",
    "occupied": false,
    "category": "refinery",
    "what": "Fire; main CDU AVT-6 damaged (53% of plant capacity; plant ~15.8m t/yr)",
    "consequence": "At least half of output halted (industry sources)",
    "reported_cause": "Russian officials reported drone attack",
    "confirmation": "Russian officials; Reuters industry sources",
    "urls": [
     "https://www.swissinfo.ch/eng/factbox-russian-refineries-targeted-by-ukraine's-drones/74877762",
     "https://hydrocarbonprocessing.com/news/2024/03/russian-oil-refining-capacity-idled-by-drones-reaches-14-of-total/"
    ],
    "tier": "C",
    "notes": ""
   },
   {
    "date": "2024-02-03",
    "name": "Lukoil Volgograd refinery - CDU-5",
    "location": "Volgograd, Volgograd region",
    "occupied": false,
    "category": "refinery",
    "what": "CDU-5 (18% of plant) stopped after drone attack",
    "consequence": "Unit offline 3-22 Feb 2024",
    "reported_cause": "Drone attack (Reuters table)",
    "confirmation": "Reuters calculations",
    "urls": [
     "https://hydrocarbonprocessing.com/news/2024/03/russian-oil-refining-capacity-idled-by-drones-reaches-14-of-total/"
    ],
    "tier": "C",
    "notes": ""
   },
   {
    "date": "2024-01-25",
    "name": "Rosneft Tuapse refinery",
    "location": "Tuapse, Krasnodar Krai",
    "occupied": false,
    "category": "refinery",
    "what": "Fire damaged one installation (night 24-25 Jan 2024)",
    "consequence": "Extent not disclosed by Rosneft",
    "reported_cause": "Ukrinform: SBU drones; Russian authorities did not state direct cause",
    "confirmation": "Fire reported by Russian authorities",
    "urls": [
     "https://www.osw.waw.pl/en/publikacje/analyses/2024-01-26/ukrainian-attacks-russian-fuel-sector"
    ],
    "tier": "C",
    "notes": ""
   },
   {
    "date": "2024-01-21",
    "name": "Novatek Ust-Luga gas condensate fractionation complex and terminal",
    "location": "Ust-Luga, Leningrad region",
    "occupied": false,
    "category": "port-terminal",
    "what": "Fire; two storage tanks and a pumping station damaged (Russian agencies)",
    "consequence": "Novatek suspended processing; ~2 months to resume, ~$2m/day losses (industry sources per OSW)",
    "reported_cause": "Novatek: 'external influence'; Interfax-Ukraine sources: Ukrainian security services operation; Reuters could not confirm drone cause",
    "confirmation": "Company statement (Novatek) confirmed fire and halt",
    "urls": [
     "https://gcaptain.com/russia-suspends-operations-at-fuel-export-terminal-after-drone-attack/",
     "https://www.osw.waw.pl/en/publikacje/analyses/2024-01-26/ukrainian-attacks-russian-fuel-sector"
    ],
    "tier": "C",
    "notes": "Start of systematic refinery/terminal campaign."
   },
   {
    "date": "2023-10-29",
    "name": "Afipsky refinery",
    "location": "Krasnodar Krai",
    "occupied": false,
    "category": "refinery",
    "what": "Unit SPGK (51% of plant) stopped",
    "consequence": "Offline 29-31 Oct 2023",
    "reported_cause": "Drone attack (Reuters table)",
    "confirmation": "Reuters calculations",
    "urls": [
     "https://hydrocarbonprocessing.com/news/2024/03/russian-oil-refining-capacity-idled-by-drones-reaches-14-of-total/"
    ],
    "tier": "C",
    "notes": "Early-phase attack."
   },
   {
    "date": "2023-05-04",
    "name": "Ilsky refinery - CDU-5",
    "location": "Krasnodar Krai",
    "occupied": false,
    "category": "refinery",
    "what": "CDU-5 (28% of plant) stopped",
    "consequence": "Offline 4-12 May 2023",
    "reported_cause": "Drone attack (Reuters table)",
    "confirmation": "Reuters calculations",
    "urls": [
     "https://hydrocarbonprocessing.com/news/2024/03/russian-oil-refining-capacity-idled-by-drones-reaches-14-of-total/"
    ],
    "tier": "C",
    "notes": "Early-phase attack."
   },
   {
    "date": "2022-06-22",
    "name": "Novoshakhtinsk refinery - CDU/VDU-1",
    "location": "Novoshakhtinsk, Rostov region",
    "occupied": false,
    "category": "refinery",
    "what": "CDU/VDU-1 (50% of plant) stopped after drone attack",
    "consequence": "Offline 22 Jun - 28 Jul 2022",
    "reported_cause": "Drone attack (Reuters table)",
    "confirmation": "Reuters calculations",
    "urls": [
     "https://hydrocarbonprocessing.com/news/2024/03/russian-oil-refining-capacity-idled-by-drones-reaches-14-of-total/"
    ],
    "tier": "C",
    "notes": "First recorded refinery stoppage from drone attack in Reuters dataset."
   },
   {
    "date": "2026-10-08",
    "name": "Yandex data centre, Sasovo",
    "location": "Sasovo, Ryazan oblast, Russia",
    "occupied": false,
    "category": "other",
    "what": "Data centre (IT infrastructure) hit in a drone attack; large fire.",
    "consequence": "Yandex: operations completely halted; Reuters: Yandex said it was unclear whether the centre could be restored. Airbus imagery of 12 Oct: about a third of the roof of the western part burned out, holes in the roof, debris.",
    "reported_cause": "Yandex: drone attack. Zelensky (8 Oct): Ukraine responds 'in mirror-like fashion' to Russian strikes on Ukrainian data centres.",
    "confirmation": "Russian corporate admission (Yandex); satellite imagery (Airbus, 12 Oct 2026).",
    "urls": [
     "https://www.cnbc.com/2026/10/08/russia-yandex-ukraine-drone-strike-data-center.html",
     "https://www.themoscowtimes.com/2026/10/12/ukraines-strikes-on-yandex-data-centers-explained-a93953",
     "https://my.ua/news/cluster/2026-10-15-sputnikovye-snimki-raskryli-razrushitelnye-posledstviia-ataki-dronov-na-data-tsentr-iandeksa"
    ],
    "tier": "C",
    "notes": "First of three Yandex data centres hit 8-11 Oct (then Kaluga 9 Oct, Vladimir 11 Oct)."
   },
   {
    "date": "2026-10-14",
    "name": "Sberbank data centre, Balakovo",
    "location": "Balakovo, Saratov oblast, Russia",
    "occupied": false,
    "category": "other",
    "what": "Sberbank's large data centre under construction (first phase launched; ~55,000 sq m, 122.2bn roubles, planned site of Russia's largest supercomputer) attacked by drones overnight; NASA FIRMS fires in the industrial zone.",
    "consequence": "Sberbank: systems and services operating normally, no staff injured; extent of damage not established. Governor Busargin: one woman killed and houses damaged in the city.",
    "reported_cause": "Sberbank (First Deputy CEO Vedyakhin; press service via RBC): 'we confirm the attack'. Claimed by Ukrainian manufacturer Fire Point; presidential adviser Lytvyn: a data centre was struck.",
    "confirmation": "Russian corporate admission (Sberbank); NASA FIRMS thermal anomalies.",
    "urls": [
     "https://www.themoscowtimes.com/2026/10/14/ukrainian-drones-hit-sberbank-data-center-after-yandex-attacks-a93967",
     "https://www.svoboda.org/a/drony-atakovali-data-tsentr-sberbanka-i-metallurgicheskiy-zavod-v-balakovo/33876324.html",
     "https://united24media.com/war-in-ukraine/ukraine-hits-russias-1-billion-sberbank-mega-data-center-in-new-drone-strike-23416"
    ],
    "tier": "C",
    "notes": "Claim of a strike on the MZ Balakovo metallurgical plant the same night comes only from monitoring channels - not entered."
   },
   {
    "date": "2026-10-18",
    "name": "VK data centre, Leningrad oblast",
    "location": "Leningrad oblast, Russia",
    "occupied": false,
    "category": "other",
    "what": "Data centre of VK (VKontakte) attacked by drones during the overnight attack on St Petersburg and Leningrad oblast.",
    "consequence": "VK: services available to users as normal; extent of damage not stated. Governor Drozdenko: debris fell on residential buildings and power lines.",
    "reported_cause": "VK confirmed the attack in its own statement (Interfax, Izvestia).",
    "confirmation": "Russian corporate admission (VK).",
    "urls": [
     "https://www.interfax.ru/russia/1123232",
     "https://iz.ru/2186139/2026-10-18/tcod-vk-v-leningradskoi-oblasti-podvergsia-atake-bespilotnikov",
     "https://united24media.com/war-in-ukraine/drone-strike-hits-russias-vkontakte-data-center-knocking-services-offline-as-st-petersburg-faces-blackouts-23551"
    ],
    "tier": "C",
    "notes": "Same night as the Petersburg Oil Terminal entry; now a separate entry."
   }
  ]
 },
 "economy": {
  "facts": [
   {
    "topic": "budget",
    "metric": "Federal budget deficit, Jan-Sep 2026",
    "value": 5.2,
    "unit": "RUB trillion (2.2% GDP)",
    "period": "Jan-Sep 2026",
    "date": "2026-10-12",
    "source": "Minfin RF preliminary estimate, via Trading Economics",
    "url": "https://tradingeconomics.com/russia/government-budget-value/news/591099",
    "tier": "own",
    "notes": "Jan-Sep 2025: RUB 3.5 trn. Expenditures RUB 34.825 trn (+14.5% y/y); revenues RUB 29.639 trn (+10%). Deficit narrowed from Jan-Aug (5.8 trn) due to September surplus."
   },
   {
    "topic": "budget",
    "metric": "Federal budget deficit, Jan-Aug 2026",
    "value": 5.8,
    "unit": "RUB trillion (2.5% GDP)",
    "period": "Jan-Aug 2026",
    "date": "2026-09-09",
    "source": "Minfin RF preliminary estimate, via Meduza",
    "url": "https://meduza.io/en/news/2026/09/09/russia-s-budget-deficit-reached-2-5-of-gdp-since-the-start-of-the-year-kremlin-says-that-s-no-cause-for-concern",
    "tier": "own",
    "notes": "About 1.5x same period 2025. Original full-year plan then 3.8 trn (1.6% GDP). Minfin cancelled 3 OFZ auctions in Jun-Jul as yields >16%."
   },
   {
    "topic": "budget",
    "metric": "Oil and gas revenues, Jan-Sep 2026",
    "value": 5.471,
    "unit": "RUB trillion",
    "period": "Jan-Sep 2026",
    "date": "2026-10-09",
    "source": "Minfin RF, via Xinhua/The Star and Trading Economics",
    "url": "https://www.thestar.com.my/news/world/2026/10/10/russia039s-oil-gas-revenues-fall-172-pct-in-jan-sept",
    "tier": "own",
    "notes": "-17.2% y/y. Non-oil-and-gas revenues RUB 24.168 trn (+18.8%). Minfin cites lower USD/RUB and higher fuel damper payments."
   },
   {
    "topic": "budget",
    "metric": "Revised 2026 federal budget deficit (plan)",
    "value": 7.3,
    "unit": "RUB trillion (3.2% GDP)",
    "period": "2026",
    "date": "2026-10-12",
    "source": "Minfin RF / revised budget, via Trading Economics; Reuters via Daily Maverick",
    "url": "https://tradingeconomics.com/russia/government-budget-value/news/591099",
    "tier": "own",
    "notes": "Raised from 3.8 trn (1.6% GDP) in original 2026 law. Revised 2026 spending RUB 48.6 trn (20.9% GDP); oil & gas revenue plan cut to 7.6 trn from 8.9 trn; net borrowing 5 trn; NWF drawdown 459 bn."
   },
   {
    "topic": "budget",
    "metric": "2027 draft budget: national defence spending",
    "value": 17.1,
    "unit": "RUB trillion",
    "period": "2027 (plan)",
    "date": "2026-09-28",
    "source": "Draft budget documents, reported by Reuters (via Daily Maverick)",
    "url": "https://www.dailymaverick.co.za/article/2026-09-28-russia-raises-2027-military-spending-by-27-budget-documents-show",
    "tier": "own",
    "notes": "~27% above 13.5 trn previously planned for 2027; highest since 2022. Reuters: 2026 planned 12.1 trn (actual classified). ~50 trn over 3 years. Reuters calc USD 202.6 bn."
   },
   {
    "topic": "budget",
    "metric": "2027-2029 draft budget deficits",
    "value": "5.5 / 5.1 / 5.3",
    "unit": "RUB trillion (~2% GDP each)",
    "period": "2027/2028/2029",
    "date": "2026-09-30",
    "source": "Draft budget submitted by government, via Meduza",
    "url": "https://meduza.io/en/news/2026/09/30/russia-plans-to-run-budget-deficits-for-the-next-three-years-with-a-combined-shortfall-of-nearly-16-trillion-rubles",
    "tier": "own",
    "notes": "Combined ~15.9 trn. 2027 borrowing 7.7 trn (+43%); state debt 19.9% GDP 2026 -> 21.7% 2027 (Reuters). New metals/mining windfall tax ~200 bn/yr from 2027."
   },
   {
    "topic": "budget",
    "metric": "VAT standard rate raised from 20% to 22%",
    "value": 22,
    "unit": "%",
    "period": "from 1 Jan 2026",
    "date": "2025-11-28",
    "source": "Federal Law No. 425-FZ signed 28 Nov 2025 (via Sovos)",
    "url": "https://sovos.com/regulatory-updates/vat/russia-vat-rate-raised-to-22/",
    "tier": "own",
    "notes": "Verified: effective 1 January 2026."
   },
   {
    "topic": "budget",
    "metric": "Oil and gas revenues, September 2026",
    "value": 5.43,
    "unit": "USD billion",
    "period": "Sep 2026",
    "date": "2026-10-05",
    "source": "Minfin RF data cited by The Bell, via United24 Media",
    "url": "https://united24media.com/war-in-ukraine/russias-oil-revenue-machine-is-losing-steam-september-income-drops-22-23128",
    "tier": "own",
    "notes": "-22% y/y; ~+7% vs August. RUB figure not seen in sources fetched. Drop despite high oil prices (Hormuz crisis) - Minfin cites stronger rouble and fuel damper payments."
   },
   {
    "topic": "nwf",
    "metric": "National Wealth Fund liquid assets",
    "value": 3.8,
    "unit": "RUB trillion (USD 44.45 bn; 1.6% GDP)",
    "period": "as of 1 Oct 2026",
    "date": "2026-10-07",
    "source": "Minfin RF, via TASS",
    "url": "https://tass.com/economy/2198899",
    "tier": "own",
    "notes": "Total NWF assets RUB 12.98 trn (5.5% GDP). 2026 revised budget plans NWF drawdown of RUB 459 bn."
   },
   {
    "topic": "nwf",
    "metric": "National Wealth Fund liquid assets (pre-invasion baseline)",
    "value": 9.73,
    "unit": "RUB trillion (USD 116.5 bn; 7.3% GDP)",
    "period": "as of 1 Feb 2022",
    "date": "2022-02",
    "source": "Minfin RF statistics as tabulated on Wikipedia (secondary compilation - verify on minfin.gov.ru before publishing)",
    "url": "https://en.wikipedia.org/wiki/Russian_National_Wealth_Fund",
    "tier": "own",
    "notes": "Implies liquid NWF down ~62% in USD and from 7.3% to 1.6% of GDP between Feb 2022 and Oct 2026."
   },
   {
    "topic": "frozen_assets",
    "metric": "Immobilised Russian central bank reserves (G7/EU)",
    "value": 300,
    "unit": "USD billion (approx.)",
    "period": "since Feb 2022",
    "date": "2025-12",
    "source": "GlobalSecurity.org compilation of EU/press data",
    "url": "https://www.globalsecurity.org/military/world/europe/eu-forrel-ru-funds.htm",
    "tier": "C",
    "notes": "EU share ~EUR 210 bn; Euroclear holds ~EUR 185-190 bn; ~EUR 25 bn in private banks in FR, DE, SE, CY, BE."
   },
   {
    "topic": "frozen_assets",
    "metric": "EU decision to immobilise Russian CB assets indefinitely (Art. 122 TFEU)",
    "value": "adopted",
    "unit": "",
    "period": "12 Dec 2025",
    "date": "2025-12-12",
    "source": "EU Council written procedure (25 for, 2 against), via GlobalSecurity / Euromaidan Press",
    "url": "https://euromaidanpress.com/2025/12/12/eu-freezes-russian-assets-indefinitely/",
    "tier": "B",
    "notes": "Assets stay frozen until Russia ends the war and compensates Ukraine; replaces 6-monthly unanimous renewal."
   },
   {
    "topic": "frozen_assets",
    "metric": "EU EUR 90 bn loan to Ukraine for 2026-2027 (instead of reparations loan)",
    "value": 90,
    "unit": "EUR billion",
    "period": "2026-2027",
    "date": "2026-01-14",
    "source": "European Council 18-19 Dec 2025; Commission package 14 Jan 2026, via Ukrainska Pravda",
    "url": "https://www.pravda.com.ua/eng/news/2026/01/14/8016112",
    "tier": "B",
    "notes": "Financed by EU market borrowing backed by EU budget headroom (enhanced cooperation; HU, SK, CZ not participating). Ukraine repays only once Russia pays reparations. Von der Leyen: reparations loan using immobilised assets 'remains on the table'. Status of reparations loan as of Oct 2026 not confirmed in sources seen."
   },
   {
    "topic": "frozen_assets",
    "metric": "G7 ERA loans backed by windfall profits on immobilised assets",
    "value": 50,
    "unit": "USD billion",
    "period": "2024-2025 onward",
    "date": "2025-12",
    "source": "G7 ERA, via GlobalSecurity",
    "url": "https://www.globalsecurity.org/military/world/europe/eu-forrel-ru-funds.htm",
    "tier": "B",
    "notes": "Windfall earnings ~EUR 6.9 bn in 2024, expected ~EUR 5 bn or less in 2025."
   },
   {
    "topic": "macro",
    "metric": "CBR key rate",
    "value": 14,
    "unit": "% p.a.",
    "period": "held 11 Sep 2026",
    "date": "2026-09-11",
    "source": "Bank of Russia, via TASS",
    "url": "https://tass.com/economy/2186277",
    "tier": "own",
    "notes": "First hold since June 2025 easing cycle began (peak 21% Oct 2024-Jun 2025). CBR: underlying inflation accelerated to 5-6% annualised. Next meeting 23 Oct 2026 (per CBR calendar - verify)."
   },
   {
    "topic": "macro",
    "metric": "CPI inflation, y/y",
    "value": 6.35,
    "unit": "%",
    "period": "Sep 2026",
    "date": "2026-10-12",
    "source": "Rosstat, via Trading Economics",
    "url": "https://tradingeconomics.com/russia/inflation-cpi/news/590992",
    "tier": "own",
    "notes": "Aug 6.33%; m/m +0.35% in Sep; core 5.47%."
   },
   {
    "topic": "macro",
    "metric": "IMF WEO Oct 2026: Russia real GDP growth forecast",
    "value": "0.9 / 0.9",
    "unit": "% (2026 / 2027)",
    "period": "2026 / 2027",
    "date": "2026-10-13",
    "source": "IMF World Economic Outlook Oct 2026, via Meduza",
    "url": "https://meduza.io/en/news/2026/10/13/imf-lowers-forecast-for-russia-s-economic-growth",
    "tier": "A",
    "notes": "Down from 1.1%/1.1% in July. World Bank: 0.8% (2026), 0.7% (2027, 2028)."
   },
   {
    "topic": "macro",
    "metric": "Minek RF GDP growth forecast",
    "value": "0.6 / 1.4",
    "unit": "% (2026 / 2027)",
    "period": "2026 / 2027",
    "date": "2026-10-13",
    "source": "Ministry of Economic Development RF (Sep 2026 scenario), via Meduza",
    "url": "https://meduza.io/en/news/2026/10/13/imf-lowers-forecast-for-russia-s-economic-growth",
    "tier": "own",
    "notes": "2026 raised from 0.4%. CBR forecast: 0-1% (2026), 1.5-2.5% (2027)."
   },
   {
    "topic": "sanctions",
    "metric": "Russian fossil fuel export revenues (CREA)",
    "value": 625,
    "unit": "EUR million per day",
    "period": "Sep 2026",
    "date": "2026-10-16",
    "source": "CREA monthly analysis",
    "url": "https://energyandcleanair.org/september-2026-monthly-analysis-of-russian-fossil-fuel-exports-and-sanctions/",
    "tier": "C",
    "notes": "Flat m/m despite -6% volumes. Crude EUR 339 mn/day (-8% m/m; volumes -11%); products EUR 83 mn/day (2nd-lowest since invasion); LNG EUR 75 mn/day; pipeline gas 71; coal 58. CREA: Hormuz crisis added USD 35.9 bn to seaborne revenues over 6 months."
   },
   {
    "topic": "sanctions",
    "metric": "Urals discount to Brent",
    "value": 23,
    "unit": "USD/bbl (21%)",
    "period": "Sep 2026",
    "date": "2026-10-16",
    "source": "CREA monthly analysis",
    "url": "https://energyandcleanair.org/september-2026-monthly-analysis-of-russian-fossil-fuel-exports-and-sanctions/",
    "tier": "C",
    "notes": "Urals avg USD 90.7/bbl (+32% m/m). Discount unchanged from August. Minek 2026 assumption: Urals 59 vs Brent 81 (May 2026)."
   },
   {
    "topic": "sanctions",
    "metric": "EU/G7 price cap on Russian crude",
    "value": 44.1,
    "unit": "USD/bbl",
    "period": "since 1 Feb 2026",
    "date": "2026-10-16",
    "source": "CREA (citing EU dynamic cap; frozen under EU 21st package)",
    "url": "https://energyandcleanair.org/september-2026-monthly-analysis-of-russian-fossil-fuel-exports-and-sanctions/",
    "tier": "C",
    "notes": "Dynamic cap: USD 47.60 from 3 Sep 2025 (18th package), then 44.10 from 1 Feb 2026. Product caps USD 100 / 45 unchanged since Feb 2023. Verify against EU Official Journal."
   },
   {
    "topic": "sanctions",
    "metric": "Share of Russian seaborne oil carried by sanctioned shadow tankers",
    "value": 57,
    "unit": "%",
    "period": "Sep 2026",
    "date": "2026-10-16",
    "source": "CREA monthly analysis",
    "url": "https://energyandcleanair.org/september-2026-monthly-analysis-of-russian-fossil-fuel-exports-and-sanctions/",
    "tier": "C",
    "notes": "Crude: 67% sanctioned shadow. Ust-Luga crude loadings -26% m/m after Ukrainian drone strikes; Tuapse no full product cargo since June."
   },
   {
    "topic": "budget",
    "metric": "Federal budget deficit, full year 2025",
    "value": 5.6,
    "unit": "RUB trillion (2.6% GDP)",
    "period": "2025",
    "date": "2026-01-20",
    "source": "Minfin RF, via Informat.ro; % GDP confirmed by Siluanov via Interfax (15 Jan 2026)",
    "url": "https://informat.ro/en/international/russia-ends-2025-with-a-record-budget-deficit-of-56-trillion-rubles-101913",
    "tier": "own",
    "notes": "Revenues RUB 37.28 trn; expenditures RUB 42.93 trn (+6.8%). Second Interfax ref: https://interfax.com/newsroom/top-stories/115662/"
   },
   {
    "topic": "budget",
    "metric": "Oil and gas budget revenues, full year 2025",
    "value": 8.48,
    "unit": "RUB trillion",
    "period": "2025",
    "date": "2026-01-15",
    "source": "Minfin RF data, Reuters (via Oil&Gas360)",
    "url": "https://www.oilandgas360.com/russias-oil-and-gas-budget-revenue-falls-24-to-lowest-since-2020/",
    "tier": "own",
    "notes": "-24% vs 2024 (11.13 trn); lowest since 2020. Dec 2025: RUB 447.8 bn."
   },
   {
    "topic": "budget",
    "metric": "2027 draft budget: defence and security share of federal spending",
    "value": "35 / 44",
    "unit": "% of expenditures (defence / defence+security)",
    "period": "2027 (plan)",
    "date": "2026-10-02",
    "source": "Bloomberg calculations on draft budget, via kurs.com.ua",
    "url": "https://kurs.com.ua/en/novost/1482353-viiskovi-vitrati-rosiyi-zalishatsja-rekordnimi-she-shonaimenshe-tri-roki-bloomberg",
    "tier": "C",
    "notes": "Defence+security ~RUB 21.4 trn in 2027. Defence 16.6 trn (2028), 16.3 trn (2029). 2027 deficit ~2.2% GDP per Bloomberg (Meduza: ~2%). Defence as % of GDP not found in sources; rough derived estimate for 2026: 12.1 trn / ~232 trn GDP (implied by 48.6 trn = 20.9% GDP) = ~5.2% - own calculation, do not publish without verification. For context, 2026 budget law (Sep 2025 draft): defence 12.6 trn, security 4-4.5 trn, together ~41% of spending (Faridaily via LIGA)."
   },
   {
    "topic": "frozen_assets",
    "metric": "Sanctioned Russian assets on Euroclear Bank balance sheet",
    "value": 202,
    "unit": "EUR billion",
    "period": "as of 30 Jun 2026",
    "date": "2026-07-17",
    "source": "Euroclear H1 2026 results",
    "url": "https://www.euroclear.com/newsandinsights/en/press/2026/mr-20-euroclear-h1-2026-results.html",
    "tier": "C",
    "notes": "Primary company disclosure (private CSD, Belgium). Interest earned on sanctioned assets H1 2026: EUR 2.3 bn (-13% y/y). Windfall contribution to EU: ~EUR 6.6 bn paid to date; next ~EUR 1.4 bn due July 2026."
   },
   {
    "topic": "macro",
    "metric": "CBR key rate peak",
    "value": 21,
    "unit": "% p.a.",
    "period": "Oct 2024 - Jun 2025",
    "date": "2025-06-06",
    "source": "Bank of Russia decisions, via Meduza",
    "url": "https://meduza.io/en/news/2025/06/06/russia-s-central-bank-cuts-record-high-key-rate-to-20-percent",
    "tier": "own",
    "notes": "Highest in modern Russian history; cut to 20% on 6 Jun 2025, then gradual cuts to 14% (held 11 Sep 2026)."
   },
   {
    "topic": "macro",
    "metric": "Real GDP growth, 2025 (Rosstat second estimate)",
    "value": 1.0,
    "unit": "%",
    "period": "2025",
    "date": "2026-04-10",
    "source": "Rosstat, via Interfax",
    "url": "https://interfax.com/newsroom/top-stories/117073/",
    "tier": "own",
    "notes": "Nominal GDP RUB 214.261 trn; deflator 104.9%. (2024 growth was 4.3% per Rosstat - not verified here.)"
   },
   {
    "topic": "sanctions",
    "metric": "Russian oil export revenues (KSE Russian Oil Tracker)",
    "value": 13.8,
    "unit": "USD billion",
    "period": "Jul 2026",
    "date": "2026-08",
    "source": "KSE Institute, Russian Oil Tracker August 2026",
    "url": "https://sanctions.kse.ua/wp-content/uploads/2026/09/ROT_August-2026.pdf",
    "tier": "C",
    "notes": "-USD 2.0 bn m/m; June 15.8 bn. Urals FOB ~USD 57/bbl in July (KSE; note CREA reports USD 90.7 in Sep after Hormuz-driven price rise). Product exports record low 1.0 mb/d. KSE base case 2026 oil export revenue USD 182 bn (2025: USD 158 bn)."
   },
   {
    "topic": "sanctions",
    "metric": "Cumulative oil export revenue losses since Mar 2022 (KSE estimate)",
    "value": 205,
    "unit": "USD billion",
    "period": "Mar 2022 - Jul 2026",
    "date": "2026-08",
    "source": "KSE Institute, Russian Oil Tracker August 2026",
    "url": "https://sanctions.kse.ua/wp-content/uploads/2026/09/ROT_August-2026.pdf",
    "tier": "C",
    "notes": "Difference-in-difference estimate of losses attributable to the full-scale invasion and sanctions response (KSE wording: due to invasion). Monthly loss ~USD 5.1 bn in Jul 2026. July 2026 ROT gave 199.6 bn through June."
   },
   {
    "topic": "refining",
    "metric": "Russian refining capacity offline or attacked (Kpler)",
    "value": 58,
    "unit": "% of capacity (downtime + attacked); 1.5-2.0 mb/d effectively offline",
    "period": "mid-Jul 2026",
    "date": "2026-07-14",
    "source": "Kpler, via Reuters/Al Arabiya",
    "url": "https://english.alarabiya.net/News/world/2026/07/14/russian-oil-refinery-runs-at-21year-lows-after-drone-attacks-kpler-says",
    "tier": "C",
    "notes": "Crude runs ~3.80 mb/d in July, lowest in over two decades; Kpler expected ~4.3 mb/d in August. Attributed to Ukrainian drone strikes. Other estimates: Novaya Gazeta Europe ~32% (21 May 2026); Ukrainian General Staff up to 42.7% (early Jul 2026, party source); Reuters calc 20% at peak Aug-Oct 2025. FT via Kommersant (30 Jul 2026): of 26 refineries struck, 18 not fully restored (7 idle)."
   },
   {
    "topic": "refining",
    "metric": "Gasoline and diesel export ban extended",
    "value": "to 31 Jan 2027",
    "unit": "",
    "period": "1 Aug 2026 - 31 Jan 2027",
    "date": "2026-07-30",
    "source": "Government of RF decree, via The Moscow Times",
    "url": "https://www.themoscowtimes.com/2026/08/06/russia-extends-gasoline-and-diesel-export-ban-through-january-2027",
    "tier": "own",
    "notes": "Exceptions for diesel by refineries (from Sep), ship fuel, gasoil, intergovernmental deals. Separate jet fuel export ban to November. Stated aim: stabilise domestic market after drone attacks on refineries. Novak said gasoline ban would run to end-2026."
   },
   {
    "topic": "refining",
    "metric": "Retail gasoline price increase since end-2025",
    "value": 21.4,
    "unit": "%",
    "period": "end-Dec 2025 - 12 Oct 2026",
    "date": "2026-10-14",
    "source": "Rosstat, via The Moscow Times (Russian edition)",
    "url": "https://ru.themoscowtimes.com/2026/10/14/roznichnye-tseny-na-benzin-v-rf-ne-izmenilis-za-6-12-okt-rosstat-a208648",
    "tier": "own",
    "notes": "vs CPI 6.35% y/y. Diesel +13.5%. Averages 12 Oct: AI-92 74.71, AI-95 80.92, diesel 86.67 RUB/l. 2025 gasoline +10.78% vs 5.59% CPI."
   },
   {
    "topic": "refining",
    "metric": "Small-scale wholesale gasoline price",
    "value": "95-105",
    "unit": "RUB per litre",
    "period": "22 Jun 2026",
    "date": "2026-06-23",
    "source": "The Public (citing Reuters traders, SPIMEX, Rosstat)",
    "url": "https://thepublic.info/en/news/wholesale-petrol-prices-in-russia-have-exceeded-100-roubles-per-litre-amid-a-fuel-shortage",
    "tier": "C",
    "notes": "~1.5x retail. SPIMEX: Ai-92 70.6k, Ai-95 75.6k RUB/t; depot prices in European Russia 130-140k RUB/t. Causes cited: refinery attacks (~25% cut in petrol output), price regulation; imports from Belarus and Asia."
   },
   {
    "topic": "labour",
    "metric": "Unemployment rate",
    "value": 2.2,
    "unit": "%",
    "period": "Aug 2026",
    "date": "2026-09-30",
    "source": "Rosstat, via Trading Economics",
    "url": "https://tradingeconomics.com/russia/unemployment-rate/news/588344",
    "tier": "own",
    "notes": "~1.6 mn unemployed; near record lows (record ~2.1%)."
   },
   {
    "topic": "labour",
    "metric": "Projected labour shortage to 2030",
    "value": 3,
    "unit": "million workers (more than)",
    "period": "to 2030",
    "date": "2026-04-16",
    "source": "Russian Union of Industrialists and Entrepreneurs (RSPP), via Ukrainska Pravda; Nabiullina: labour shortage 'first time in modern history'",
    "url": "https://www.pravda.com.ua/eng/news/2026/04/16/8030430/",
    "tier": "own",
    "notes": "RSPP is a Russian business lobby (not official statistics) - flag accordingly."
   }
  ],
  "series": [
   {
    "metric": "Federal budget deficit, cumulative 2026 (RUB trillion)",
    "series": [
     {
      "period": "Jan",
      "value": 1.718
     },
     {
      "period": "Jan-Mar",
      "value": 4.6
     },
     {
      "period": "Jan-Apr",
      "value": 5.88
     },
     {
      "period": "Jan-May",
      "value": 6.01
     },
     {
      "period": "Jan-Jun",
      "value": 5.73
     },
     {
      "period": "Jan-Jul",
      "value": 6.455
     },
     {
      "period": "Jan-Aug",
      "value": 5.8
     },
     {
      "period": "Jan-Sep",
      "value": 5.2
     }
    ],
    "source": "Minfin RF preliminary data via Trading Economics (Jan, Jan-Apr, Jan-May, Jan-Jun, Jan-Aug, Jan-Sep), Interfax (Jan-Jul), mezha.net (Jan-Mar, lower confidence)",
    "url": "https://tradingeconomics.com/russia/government-budget-value/news/582355"
   },
   {
    "metric": "Federal budget deficit, cumulative 2025 same period (RUB trillion)",
    "series": [
     {
      "period": "Jan-Apr",
      "value": 3.23
     },
     {
      "period": "Jan-May",
      "value": 3.03
     },
     {
      "period": "Jan-Jun",
      "value": 3.39
     },
     {
      "period": "Jan-Aug",
      "value": 3.9
     },
     {
      "period": "Jan-Sep",
      "value": 3.5
     },
     {
      "period": "Full year",
      "value": 5.6
     }
    ],
    "source": "Minfin RF via Trading Economics / Meduza / Informat.ro",
    "url": "https://tradingeconomics.com/russia/government-budget-value/news/582355"
   },
   {
    "metric": "NWF liquid assets (USD bn)",
    "series": [
     {
      "period": "2022-02-01",
      "value": 116.5
     },
     {
      "period": "2022-10-01",
      "value": 131.06
     },
     {
      "period": "2023-03-01",
      "value": 81.14
     },
     {
      "period": "2024-01-01",
      "value": 56.6
     },
     {
      "period": "2025-01-01",
      "value": 37.47
     },
     {
      "period": "2025-06-01",
      "value": 36.16
     },
     {
      "period": "2025-12-01",
      "value": 54.21
     },
     {
      "period": "2026-06-01",
      "value": 48.05
     },
     {
      "period": "2026-10-01",
      "value": 44.45
     }
    ],
    "source": "Minfin RF statistics as compiled on Wikipedia (latest confirmed by TASS 7 Oct 2026); verify on minfin.gov.ru",
    "url": "https://en.wikipedia.org/wiki/Russian_National_Wealth_Fund"
   },
   {
    "metric": "NWF liquid assets (% GDP)",
    "series": [
     {
      "period": "2022-02-01",
      "value": 7.3
     },
     {
      "period": "2023-03-01",
      "value": 4.3
     },
     {
      "period": "2024-01-01",
      "value": 3.3
     },
     {
      "period": "2025-01-01",
      "value": 2.0
     },
     {
      "period": "2025-06-01",
      "value": 1.3
     },
     {
      "period": "2026-10-01",
      "value": 1.6
     }
    ],
    "source": "Minfin RF via Wikipedia compilation",
    "url": "https://en.wikipedia.org/wiki/Russian_National_Wealth_Fund"
   },
   {
    "metric": "Oil and gas budget revenues, annual (RUB trillion)",
    "series": [
     {
      "period": "2024",
      "value": 11.13
     },
     {
      "period": "2025",
      "value": 8.48
     },
     {
      "period": "2026 plan (revised)",
      "value": 7.6
     },
     {
      "period": "2026 Jan-Sep actual",
      "value": 5.471
     }
    ],
    "source": "Minfin RF via Reuters; revised plan via Reuters/Daily Maverick",
    "url": "https://www.oilandgas360.com/russias-oil-and-gas-budget-revenue-falls-24-to-lowest-since-2020/"
   },
   {
    "metric": "National defence spending, budget plan (RUB trillion)",
    "series": [
     {
      "period": "2026 (Reuters: planned)",
      "value": 12.1
     },
     {
      "period": "2027 draft",
      "value": 17.1
     },
     {
      "period": "2028 draft",
      "value": 16.6
     },
     {
      "period": "2029 draft",
      "value": 16.3
     }
    ],
    "source": "Draft 2027-2029 budget via Reuters and Bloomberg",
    "url": "https://kurs.com.ua/en/novost/1482353-viiskovi-vitrati-rosiyi-zalishatsja-rekordnimi-she-shonaimenshe-tri-roki-bloomberg"
   }
  ]
 }
}