Ukraine's bloody tool

Visualizing official casualty cross-reports since Feb 2022

Created during April 2025

Table of contents

Introduction

Visualize official casualty reports from the active stage of the Russia–Ukraine war using PyData, Selenium, BeautifulSoup4, and LLM-assisted extraction.

Notes on interpretation

What’s important to understand before reading the numbers?
  1. These are casualties, not fatalities. A “casualty” can include killed, wounded, captured, missing, etc., and can be counted multiple times across time depending on reporting practices.
  2. These are cross-reported figures (Country A reporting Country B losses, and vice-versa). They are best thought of as official propaganda signals rather than ground truth.
  3. Quantification is uncertain; a plausible “ground truth” could be far from cross-reports for any given day.
  4. You can apply your own wounded-to-killed ratios if you want to reason about fatalities, but assumptions will dominate.

Sources and data access (legacy summary)

  • Aggregated secondary tables (claimed to be based on official briefings):
    • minfin.com.ua
    • mskvremya.ru
  • Examples of primary sources:
    • Russian MoD briefing example: https://briefing-mo.ru/...
    • Ukrainian operational update example: https://www.zsu.gov.ua/...

Dataset:

Inspiration:

Media presence

No external mentions listed.

How to cite this work

For human-readable attribution, please cite this work as:

Visualization “Ukraine's bloody tool” (2025), Vitaliy Y from Witold's Data Consulting
https://witold1.github.io/blog/posts/small-project-blood-tool/post

BibTeX

@misc{witold_blog_viz-ukraines-bloody-tool,
  author = {Yevtushenko, Vitaliy},
  title = {{Ukraine's bloody tool}},
  year = {2025},
  url = {/portfolio/blog/viz-ukraines-bloody-tool/},
}
Discuss with AI
PerplexityChatGPTClaudeGemini
Share