決定DECISIONS
Every choice that shapes the ranking, and why — including the ones that were reversed. Written so a collaborator, or the same person in six months, can tell which numbers are facts, which are judgment calls, and which were already argued about and settled. This page renders DECISIONS.md directly, so it cannot drift from the record.
CONTENTS
Every choice that shapes the ranking, and why. Written so a collaborator (or you in six months) can tell which numbers are facts, which are judgment calls, and which were already argued about and settled.
Last updated 2026-09-01.
1. What this is
A proprietary algorithmic ranking of every Godzilla film, published at godzillarank.com, plus the ability for visitors to build their own rankings from the same data.
The ranking is deterministic and explainable. No machine learning, no black box. Every film's position can be justified in a sentence, which is what makes it defensible as the definitive ranking rather than an arbitrary one.
2. Scope
Score everything, filter on the site. The dataset covers 43 rankable films:
| Group | Count | In the ranking? |
|---|---|---|
| Toho canonical | 33 | yes |
| American canonical | 5 | yes |
| Re-edits (1956 Burr cut, Gigantis, 1963 US cut, Cozzilla, Godzilla 1985) | 5 | yes, tagged |
| Upcoming (Minus Zero, Supernova) | 2 | no — no data |
Films carry era, canon_status and continuity tags so the site can offer "canonical 38 only", "live-action only", "Toho only" and so on. Decided: don't restrict the dataset; give users the filter.
3. The evidence model
Five classes, kept in separate files because they are different kinds of claim and must not be averaged together carelessly.
| Class | File | What it is |
|---|---|---|
| critic aggregate | scores.csv | Many critics, aggregated by one site |
| audience aggregate | scores.csv | Public ratings, tagged by region |
| journalist list | rankings.csv | One writer's ordered list, with list_size and scope |
| public poll | rankings.csv | Reader votes. list_kind separates these from critic lists |
| award | awards.csv | Oscars, Japan Academy Prize, Kinema Junpo Best Ten |
Never impute a missing value as zero. Absence is nearly always ineligibility: Screen Rant's list predates four films, Paste and Variety exclude the anime trilogy, RT publishes no Tomatometer below five reviews. A missing score is an absence of evidence, not a bad verdict.
Prefer average ratings over thresholded percentages. RT's Tomatometer is binary — the share of critics who were positive. Its average rating is not. Destoroyah's 100% Tomatometer averages 6.7/10; Minus One's 99% averages 8.5/10. The composite uses the average.
Sample sizes must be the real ones. RT displays banded audience counts ("5,000+") that are wildly wrong — Son of Godzilla displays "5,000+" against a true denominator of 676, and The Return of Godzilla's Popcornmeter rests on 28 ratings. sample_size carries likedCount + notLikedCount from RT's scorecard JSON, verified to recompute every published score to within 0.5pp.
4. The regions
Audience scores carry a region. One region, one vote.
| Region | Sources | Coverage |
|---|---|---|
intl | IMDb, Letterboxd | 38/38 |
us | Rotten Tomatoes | 38/38 |
jp | Filmarks | 38/38 |
es | FilmAffinity | 38/38 |
fr | AlloCiné spectateurs | 35/38 |
cn | Douban | 38/38 |
A source must cover ≥30 of 38 films to be a pillar input. Below that it is display-only, because films would otherwise be scored on different recipes. This excludes Metacritic (10), eiga.com (10) and AlloCiné's press score (6).
Not weighted by sample size. That would hand the ranking back to IMDb and Letterboxd's huge English-language samples and undo the whole point. Per-film confidence is handled by shrinkage instead (§5), where the variation actually is.
Not weighted by population. Douban is not a sample of 1.4 billion people; it is a self-selected platform skewing urban and cinephile. Population weighting prices in people the data never touched, and would have to apply to India, Indonesia, Brazil and Nigeria — none of which have Godzilla rating data at all. One region one vote is a claim about independent measurements, not about people.
5. The algorithm
rank.py, ~120 lines, no dependencies.
- Normalise every score to 0–1 (
value / scale_max). - Shrink toward the source's franchise mean by sample size:
(n·x + m·prior) / (n + m), wheremis that source's median n. A film rated by 200 people cannot swing as hard as one rated by 200,000. This is what handles Godzilla 1985's 194 Filmarks ratings and Destoroyah's 6 critic reviews. - Z-score within each source, so the source's own scale and generosity drop out and what remains is "where this film sits among Godzilla films, on this source".
- Average sources within a region → one score per region.
- Average regions → the audience pillar.
- Combine three pillars by the chosen weights, renormalised over whichever pillars that film actually has.
Output carries composite, all three pillars, all six region scores, n_regions, n_pillars, and contentiousness (the spread across pillars) so the site can show why a film ranks where it does.
6. The house ranking
Godzilla Rank = the audience-led preset: 70% audience, 15% critics, 15% critic-lists. Marked OFFICIAL in rank.py.
Naming matters here, because two earlier names were misleading. Both remaining critic pillars are critic-derived, so critics are counted twice. The honest axis is audience voice vs critic voice:
| Preset | Audience voice | Critic voice | Non-Western share |
|---|---|---|---|
critic-led | 33% | 67% | 16.7% |
balanced | 50% | 50% | 25.0% |
audience-led — official | 70% | 30% | 35.0% |
A 1/3–1/3–1/3 split is not neutral; it is 33/67 in favour of critics.
Why audience-led — representativeness, not output. Count the people behind each half of the composite across the canonical 38:
| Behind the composite | Count |
|---|---|
| Audience ratings | 8,753,046 |
| Critic reviews | 2,176 |
| Journalist-list writers | 8 |
| Ratio | 4,023 : 1 |
A 50/50 split hands 2,176 critics and 8 writers the same weight as 8.75 million ratings. Even at 70/30 the critics remain enormously over-represented per head — audience-led is still generous to them.
This is deliberately not the argument first made for audience-led, which was that it "says something the English-language web doesn't already say". That was an argument about wanting a particular result, and it was correctly rejected as a basis for a default. The representativeness argument holds regardless of what the ranking produces, which is the test a default has to pass.
What is given up, knowingly: the critic pillars carry real information that the audience pillars do not, particularly about the older films. Expect to defend the Heisei run ranking above where critics place it, and Godzilla, King of the Monsters! (1956) ranking below.
balanced and critic-led remain first-class slices on the site.
7. Deliberately excluded from the score
| Excluded | Why | Still available as |
|---|---|---|
| Box office, attendance | Popularity, not quality | a separate "biggest" axis if wanted |
| Screen time, height, body counts | Colour, not quality | film-page content |
| Awards | Only 5 films have any — too sparse to rank on | film-page content |
| Metacritic, eiga.com, AlloCiné presse | Under the ≥30-film coverage bar | display columns |
8. Website requirement: user-defined rankings
Locked in before any design work, so it cannot be lost.
The atomic unit is the per-film, per-source z-score — already shrunk and normalised. Every slice is a different average over the same numbers. There is one algorithm, not one per view.
build(weights, sources=None, film_subset=None, pillars=None) in rank.py is the reference implementation. data/engine.json (24KB) ships the whole substrate so the browser can do it with no server: z-scores, critic pillars, source→region map, film metadata for filtering, and a starter menu of 11 slices as data, not code.
Documented gotcha: filtering the film set does not renormalise the z-scores. A Showa-only view answers "how good is this among all Godzilla films", not "among Showa films". Renormalise client-side if you want the latter.
Slices produce genuinely different answers, which is the point:
| Slice | #1 |
|---|---|
| Godzilla Rank (audience-led) | Godzilla Minus One |
| Japan only | Shin Godzilla |
| China only | Godzilla (1954), with Godzilla (1998) at #3 |
| United States only | Minus One, then three MonsterVerse films |
| Critics only | Godzilla Minus One |
| Showa only | Godzilla (1954) |
9. How caveats are tracked
Two lists, and the distinction is load-bearing. In gzconfig.py, rendered into both SOURCES.md and the almanac artifact by build_caveats.py so they cannot drift.
CAVEATS_DEFECT— something is wrong or unknown and can be fixed. A worklist. Currently empty.CAVEATS_CONSTRAINT— permanent properties of the sources. Nothing closes these. They are instructions to the algorithm, not unfinished work. Currently 5. A non-empty constraint list is not a sign of incompleteness.
The test for which list an item belongs in: name the action that would close it. If the answer is "acquire data nobody ever created" or "make a moving number stop moving", it is a constraint.
The five constraints: two films have no Tomatometer at all; RT publishes only one audience score type per film (VERIFIED vs ALL, not comparable); Metacritic drifts; Showa yen figures are sparse and one is self-contradictory; Filmarks n scales with recency.
10. Positions reversed along the way
Recorded so they are not re-litigated.
| Reversed | Now |
|---|---|
| "Ship audience-weighted" as a meaningful stance | That preset was a 50/50 split. Renamed balanced. The name oversold it. |
| "Stop collecting sources" | Too blunt. Stop collecting redundant sources; do collect independent ones. A fifth Western site adds nothing at r=0.94; China added a genuinely new axis. |
| Collapse the Western sites into one bloc | Withdrawn. IMDb and Letterboxd are global, not Western — that label was asserted, not established. And mechanical correlation clustering would merge the US and Japan (r=0.83), which shows correlation cannot be the sole criterion. |
| "China flips #1" | False — an artifact of a bug that overwrote IMDb's data with Douban's. On clean data, Minus One stays first. |
| RT critics is "single-source" | Imprecise. RT aggregates 213 critics for Minus One. The real concern is one aggregator with one methodology, and tiny counts on the old films. |
Ship audience-led because it "says something new" | Rejected, correctly — that is an argument about wanting a particular result, which disqualifies it as a basis for a default. |
Then: ship balanced as the neutral choice | audience-led, on different grounds. 2,176 critic reviews and 8 list writers cannot carry the same weight as 8,753,046 audience ratings. Representativeness is a principle, not a preference for output — it passes the test the previous argument failed. |
11. Not yet decided
- Website design. Not started. The data layer imposes no constraints on it.
- Whether to publish a "biggest" ranking alongside "best", using box office and attendance.
- Whether to add the two remaining Anglophone lists (AV Club, Forbes/Mark Hughes). Both exist and were deliberately not added — they would deepen the Anglophone skew.
- Kinema Junpo readers' poll (読者選出) — runs separately from the critics' poll and is usually kinder to genre film. The next real Japanese critic axis if one is wanted.
12. Current state
| Films | 45 rows (43 rankable) |
| Score observations | 432 |
| Journalist-list placements | 346 across 12 lists |
| Novelty stats | 210 |
| Awards | 15 |
| Japanese box office | 30 films, metric labelled |
| Open defects | 0 |
| Permanent constraints | 5 |