What actually shipped
From raw fields to eleven families
The real source data — not the planning maps above — labelled these films with 105 different free-text disaster types, 49 main categories and 191 subcategories, much of it inconsistent and some of it mangled by a bad comma-split. Those got consolidated into the eleven families in the live chart, under a three-tier matching pass: unambiguous named hazards first (Titanic's DisasterType reads "Natural Disaster," but only the iceberg fragment tells you what actually happens), then specific hand-written signals, then generic category labels only when nothing more concrete was on record.
Judgement calls were made throughout, and the rule was consistent: a film with a stated cause is filed under that cause rather than its setting, so Mad Max: Fury Road counts as Atomic and not as a post-apocalyptic film. Where the source contradicted itself, the more specific signal won. The full matching logic — every regex, in order, with the reasoning for why it's ordered that way — is public: scripts/taxonomy.mjs on GitHub ↗.
The plot-language breakdown on the main page runs the same honesty standard: it counts words in each film's own TMDB plot summary, not a hand-assigned verdict on how the story ends. Ratings, posters, and plot summaries come from TMDB; where the dataset carries box office, it's recorded for 34 of 831 films — the rest went unrecorded at the source.