CORPUS EXPORT · 12269 calibers · 59387 family views · round round/2026-09-08Compiled from app/public/data/ · corpus 70c0140eba.

Compare · 9 axes

12 calibers, 9 axes, and every hole left open

Neither the universe nor the family tree carries a single measured dimension. This does — for a set you assemble, up to 12 at a time. Where the corpus has no value the ribbon stops and resumes on the far side of the gap: never bridged, never averaged, never guessed.

The set1ETA 2892-28/92ETA 2824-27/93ETA 2892-A26/94Valjoux / ETA 77505/95EB 16124/96Grand Seiko 9S553/97Lemania 23102/98ETA 28241/99Venus 188 / Valjoux 77300/9
9 axes — scroll the panel sideways · the table further down carries the same values as text
ETA 2892-2 — 8 of 9 axes carried, 1 unknown1 · ETA 2892-21 · ETA 2892-21/9ETA 2824-2 — 7 of 9 axes carried, 2 unknown2 · ETA 2824-22 · ETA 2824-22/9ETA 2892-A2 — 6 of 9 axes carried, 3 unknown3 · ETA 2892-A23 · ETA 2892-A23/9Valjoux / ETA 7750 — 5 of 9 axes carried, 4 unknown4 · Valjoux / ETA 77504 · Valjoux …ETA 77504/9EB 1612 — 4 of 9 axes carried, 5 unknown5 · EB 16125 · EB 16125/9Grand Seiko 9S55 — 3 of 9 axes carried, 6 unknown6 · Grand Seiko 9S556 · Grand Seiko 9S556/9Lemania 2310 — 2 of 9 axes carried, 7 unknown7 · Lemania 23107 · Lemania 23107/9ETA 2824 — 1 of 9 axes carried, 8 unknown8 · ETA 28248 · ETA 28248/9Venus 188 / Valjoux 7730 — 0 of 9 axes carried, 9 unknown9 · Venus 18…oux 77309/9
9 calibers · 36 of 81 caliber-axis cells carry a value · 45 are unknown and are drawn as a break · 2 contested · 1 drawn as a range rather than a point. Point at a ribbon or a chip to read one caliber. Set: A cross-section of what the corpus knows — for every coverage level k, the design with the widest descendant reach that carries exactly k of the 9 axes — from the most complete record on the site down to one that carries nothing at all.
a value at both ends — the ribbon runsa value the corpus holdscontested — the ribbon breaksno value in the corpusaxis coverage: outline = the whole corpus · mid = designs carrying this property · dark = the uncontested share of the values behind them

A caliber with no value on an axis is given no position on that axis. Its hollow tick goes in the gutter beneath the plot instead, on the caliber’s own row, because “where the value would be” is precisely what the corpus does not say — and a tick placed on the line between its neighbours would be an interpolation drawn in the one view built to refuse them. Reading a row of the gutter left to right tells you what this site does not know about that movement; reading a column tells you what it does not know about that property.

What this view cannot draw

Not one of the 12,269 designs in this corpus carries all 9 of these properties. The most complete record on the site carries 8. That is not a defect in the view — it is the single most useful thing the view says, and you can read it off the plot in one glance the first time a ribbon breaks. This page is deliberately not a corpus overview: 12,269 polylines would be solid ink, and 12,269 is a fifteenth of what this corpus will hold when the current ingestion lands. It is a comparison instrument, and the cap of 12 is the form working rather than the form giving up.

300
0
172
1
171
2
335
3
549
4
1,394
5
1,686
6
3,981
7
3,681
8
0
9

Designs by how many of the 9 axes they carry. The column at 9 is empty, drawn as a dashed rule rather than as a bar, because an unknown must never read as a small quantity.

Reading the axes left to right: 11,084 designs carry the first 2 · 9,743 designs carry the first 3 · 8,918 designs carry the first 4 · 8,357 designs carry the first 5 · 7,184 designs carry the first 6 · 6,637 designs carry the first 7 · 3,669 designs carry the first 8 · 0 designs carry the first 9. Every one of those drop-offs is a ribbon breaking, and the drop is steepest at the last axis because it is the least documented property in the vocabulary.

The 300 designs this view can put nothing on the picture for

They carry none of the 9 axes. They are not filtered out: add one and it appears as a numbered chip, a labelled row, a full row of hollow ticks in the gutter, and a table row of dashes. What it does not get is a line, because there is nothing to draw one through. The first 12 by descendant reach: Venus 188 / Valjoux 7730 · Eterna 1427 · Rolex 1530 · Cartier 1847 MC · Baume & Mercier Baumatic BM12-1975A · ETA 2890-2 · Lemania 5100 · Rolex 3085 · Venus 175 · Ракета 2609.НА · Credor 6830 · Grand Seiko 9F62. That list is a warning about the corpus, not about the calibers: “Venus 188 / Valjoux 7730” is not an obscure movement.

And the gaps are not random

Mean number of these 9 axes carried, by maker, over the 71 makers with at least 5 designs attributed. Best: Enicar 7.66 over 67 · Zodiac 7.57 over 14 · Mido 7.53 over 36. Worst: Tianjin Sea-Gull Watch Group 0 over 7 (7 with nothing at all) · Luch 1.05 over 43 (33 with nothing at all) · Molnija 1.17 over 6 (4 with nothing at all). The 5,770 designs with no maker sourced average 6.7. A comparison that happens to pick from the top of that list will look complete; one that picks from the bottom will look broken. Both pictures are true, and neither is a statement about the movements.

How a value gets chosen when the corpus asserts more than one

Where a design asserts several values for one property this view never averages and never chooses: values in a dispute group are drawn as ruby ticks and the ribbon breaks between them, and values that merely differ in scope (the 17/21-jewel case) are drawn as a fork through every asserted value. rank='preferred' would supersede this behaviour; the corpus currently has no preferred rows.

And how one never gets chosen: there is no code path in this view that joins two axes across a missing value. A gap is emitted as a gap in components/viz/compare-geometry.ts, and tools/layout_compare.py re-derives every carrier count from SQL and refuses to write the payload if it disagrees with what it is about to publish.

The axes, and why each one is on the scale it is on

#AxisScaleDesigns
carrying it
Designs
with no value
Values
asserted
Values
accepted
Values
staged
Contested
values · designs
Designs
asserting a range
1
Jewels
build.jewel_count
linear11,60366615,93981715,1148 · 43,257
2
Frequency
osc.frequency_vph
log · vph11,1741,09511,18167510,5042 · 17
3
Movement height
geom.height_mm
log · mm10,4851,78410,5439579,5824 · 258
4
Winding mode
wind.mode
enum10,3561,91310,36234510,0152 · 16
5
Power reserve (typical)
power.reserve_typical_h
log · h9,9472,32210,0056139,37220 · 955
6
Movement diameter
geom.diameter_mm
linear · mm9,9222,3479,9507359,20411 · 527
7
Seconds display
disp.seconds_display
enum9,1093,1609,133459,088—24
8
Shock protection
osc.shock_protection
enum5,4316,8385,966255,941—500
9
Total components
build.component_count
log8912,180938904 · 24
1 Jewels · linear
corpus range includes 0, so the axis is linear. Extremes: Dugena 819 (Otero 27) at 17,721 · 4002 anonymous at 0.
2 Frequency · log · vph
corpus range 120–5,184,000 spans a factor of 43200; a linear axis would be governed by its largest value alone. Extremes: Omega 1220 at 5,184,000 · Jaeger-LeCoultre 560 (Atmos) at 120.
3 Movement height · log · mm
corpus range 0.98–15.1 spans a factor of 15; a linear axis would be governed by its largest value alone. Extremes: Ganthony 19''' at 15.1 · ETA-ESA 210.001 at 0.98.
4 Winding mode · enum
enum property; 2 of 4 vocabulary levels occur in the corpus.
5 Power reserve (typical) · log · h
corpus range 3–744 spans a factor of 248; a linear axis would be governed by its largest value alone. Extremes: A. Lange & Söhne L034.1 at 744 · Hanhart 155 at 3.
6 Movement diameter · linear · mm
corpus range 9–54 spans a factor of 6.0; linear keeps the units readable. Extremes: Slava 5498 at 54 · Ronda 1032 at 9.
7 Seconds display · enum
enum property; 4 of 4 vocabulary levels occur in the corpus.
8 Shock protection · enum
enum property; 11 of 12 vocabulary levels occur in the corpus.
9 Total components · log
corpus range 119–1,278 spans a factor of 11; a linear axis would be governed by its largest value alone. Extremes: Patek Philippe Calibre 89 at 1,278 · Jaeger-LeCoultre 849 at 119.

Two grains in one table, and they are labelled rather than blended. The first two columns count designs; the next three count asserted values. They differ wherever a design asserts more than one value for one property — the 17/21-jewel case — so a value count can and does exceed the count of designs carrying that property. Nothing is double-counted; the two columns are answers to different questions, and adding one to the other is meaningless.

Axes are ordered by coverage descending (n_designs), ties broken by property id, computed at build time, so the densest axes lead and the ribbons are established before the sparse ones thin them. Round round/2026-09-08 · corpus 70c0140ebad3f9a6 · built 2026-09-08T17:57:55 · every number on this page comes from tools/layout_compare.py.

A quantity with at most 16 distinct values in the whole corpus is drawn as an ordinal band rather than a continuous line, because a continuous axis would invent positions no escapement can physically occupy. A quantity whose corpus range spans a factor of 10 or more, with a positive floor, gets a log axis so one true outlier cannot govern the whole scale. Both thresholds live in the build tool, not in the page.

There is no time axis here on purpose. 8,569 of 12,269 designs have no introduction year, and 9,750 touch no lineage edge. The universe already places a dated caliber on a real era axis and holds the undated ones in its reservoir band rather than interpolating them; repeating that here would add a tenth axis on which most ribbons break for a reason this view has nothing new to say about.

Assemble a set

Showing the 40 calibers with the widest descendant reach, of 4,000 in the picker (8,269 further designs are not in the shipped picker index and are reachable by search or by URL). The comb shows which of the 9 axes each one carries.

Sets to start from

Each of these is chosen by a rule at build time, not curated by hand, so the set changes with the corpus rather than going stale. The rule is printed beside it.

A cross-section of what the corpus knows

for every coverage level k, the design with the widest descendant reach that carries exactly k of the 9 axes — from the most complete record on the site down to one that carries nothing at all

The largest family

every member of the largest cluster under the heritage profile (28 designs), taken in descending descendant reach and cut at 12

The most completely documented

the designs carrying the most of the 9 axes, ties broken by descendant reach then designation

Where the sources disagree

every design carrying at least one disputed value on these axes, most contested first — the only set on this page that is guaranteed to show ruby (22 designs qualify; the first 12 are loaded)

Calibers that ship as a range

designs asserting more than one value on an axis without a dispute — the 17/21 jewel case, where the corpus records a range because the caliber has one (3,623 designs qualify; the first 12 are loaded)

Undated, unconnected, and fully specified

designs with no introduction year AND no lineage edge, yet carrying at least 6 of the 9 axes — the calibers the era field can only put in the reservoir and the family tree draws as a lone node (5,005 designs qualify; the first 12 are loaded)

The comparison as a table

Everything the plot draws, in text, with the status of each value: ● a value no source contradicts · ◆ contested · — no value in the corpus. Ten columns do not fit a phone, so this table scrolls sideways inside its own box; the page never does.

CaliberJewelsFrequencyMovement heightWinding modePower reserve (typical)Movement diameterSeconds displayShock protectionTotal componentsUnknown
ETA SA Manufacture Horlogère Suisse
● 21● 28,800 vph● 3.6 mm● Automatic + hand-winding● 42 h● 25.6 mm● Central seconds● Incabloc —1/9
ETA SA Manufacture Horlogère Suisse
● 17 or 21 or 25● 28,800 vph● 4.6 mm● Automatic + hand-winding◆ 38 h / 42 h● 25.6 mm —● Incabloc —2/9
ETA SA Manufacture Horlogère Suisse
● 21● 28,800 vph● 3.6 mm● Automatic + hand-winding● 42 h● 25.6 mm — — —3/9
ETA SA Manufacture Horlogère Suisse
● 25● 28,800 vph● 7.9 mm —◆ 48 h / 54 h● 30 mm — — —4/9
5 · EB 1612
maker not sourced
● 17● 18,000 vph —● Hand-wound (manual) — — —● KIF Parechoc —5/9
Grand Seiko
—● 28,800 vph —● Automatic + hand-winding● 50 h — — — —6/9
Lemania Watch Co.
—● 18,000 vph — — —● 27 mm — — —7/9
ETA SA Manufacture Horlogère Suisse
— — —● Automatic + hand-winding — — — — —8/9
Valjoux SA
— — — — — — — — —9/9
Sources behind ETA 2892-2
  • build.jewel_count = 21 (staged) cc1d9f88ac7d54656 · source (tier 2, read 2018-11-07)
  • osc.frequency_vph = 28,800 vph (staged) c636fe466b14eb5f1 · source (tier 2, read 2018-11-07)
  • geom.height_mm = 3.6 mm (staged) c27a40b2afda87f2f · source (tier 2, read 2018-11-07)
  • wind.mode = Automatic + hand-winding (staged) cebf88cd274977f74 · source (tier 2, read 2018-11-07)
  • power.reserve_typical_h = 42 h (staged) c088953c4c9a13652 · source (tier 2, read 2018-11-07)
  • geom.diameter_mm = 25.6 mm (staged) c00e92a95200fd5c5 · source (tier 2, read 2018-11-07)
  • disp.seconds_display = Central seconds (staged) c755a05d41217755d · source (tier 2, read 2018-11-07)
  • osc.shock_protection = Incabloc (staged) c373b0ae2ab41e208 · scope: example movement, 2000 · source (tier 2, read 2018-11-07)
Sources behind ETA 2824-2
  • build.jewel_count = 17 (accepted) c3c64e5d6db4a1449 · scope: Ranfft data sheet, the 17-jewel member of its 17/21/25 range · source (tier 2, read 2026-08-24)
  • build.jewel_count = 21 (accepted) c452b2c32ce27477a · scope: Ranfft data sheet, the 21-jewel member of its 17/21/25 range · source (tier 2, read 2026-08-24)
  • build.jewel_count = 25 (accepted) c050346174321c650 · scope: ETA Executions sheet, all four grades · source (tier 1, read 2026-08-24)
  • osc.frequency_vph = 28,800 vph (accepted) cc44e5b785e21669d · source (tier 2, read 2026-08-24)
  • geom.height_mm = 4.6 mm (accepted) c4f298ffde68eec2d · source (tier 2, read 2017-04-01)
  • wind.mode = Automatic + hand-winding (accepted) c578221d05f3c2a61 · source (tier 2, read 2026-09-08)
  • power.reserve_typical_h = 38 h (disputed) cfc4f36a874e37a75 · source (tier 2, read 2026-09-08)
  • power.reserve_typical_h = 42 h (disputed) c5327776f21592c5c · source (tier 2, read 2023-12-17)
  • geom.diameter_mm = 25.6 mm (accepted) c5bfffa3e81c53cde · source (tier 2, read 2026-08-24)
  • osc.shock_protection = Incabloc (accepted) c32cc2be839390ad8 · source (tier 2, read 2026-09-08)
Sources behind ETA 2892-A2
  • build.jewel_count = 21 (accepted) c883664dfe1c90664 · source (tier 2, read 2017-04-08)
  • osc.frequency_vph = 28,800 vph (accepted) c37249858357e682e · source (tier 2, read 2026-08-24)
  • geom.height_mm = 3.6 mm (accepted) c317a14f2c5db4a7c · source (tier 2, read 2017-04-08)
  • wind.mode = Automatic + hand-winding (accepted) c096ea2919b267378 · source (tier 2, read 2026-08-24)
  • power.reserve_typical_h = 42 h (accepted) ccde14740b2496f37 · source (tier 2, read 2026-08-24)
  • geom.diameter_mm = 25.6 mm (accepted) c69c63d9c302a52b1 · source (tier 2, read 2017-04-08)
Sources behind Valjoux / ETA 7750
  • build.jewel_count = 25 (accepted) cba4d8b174ed5e83d · source (tier 2, read 2026-08-24)
  • osc.frequency_vph = 28,800 vph (accepted) ca1a5f79dd85427d8 · source (tier 2, read 2026-08-24)
  • geom.height_mm = 7.9 mm (accepted) cf1f5448421ae60df · source (tier 2, read 2019-08-22)
  • power.reserve_typical_h = 48 h (disputed) c72ec578a68cfc442 · source (tier 2, read 2026-08-24)
  • power.reserve_typical_h = 54 h (disputed) c0cc8db73741bdfe6 · source (tier 2, read 2019-08-22)
  • geom.diameter_mm = 30 mm (accepted) c7dbc35f4e1c98861 · source (tier 2, read 2019-08-22)
Sources behind EB 1612
  • build.jewel_count = 17 (staged) c6b70686ad75e6758 · source (tier 2, read 2023-09-07)
  • osc.frequency_vph = 18,000 vph (staged) c7d61aba8fab40f99 · source (tier 2, read 2023-09-07)
  • wind.mode = Hand-wound (manual) (staged) c5fc04635d1c626eb · source (tier 2, read 2023-09-07)
  • osc.shock_protection = KIF Parechoc (staged) cc41387e6d3c55e9f · scope: example movement, 1970 · source (tier 2, read 2023-09-07)
Sources behind Grand Seiko 9S55
  • osc.frequency_vph = 28,800 vph (accepted) cc819edc6f457fc1d · source (tier 2, read 2026-08-24)
  • wind.mode = Automatic + hand-winding (accepted) c07f804207c581399 · source (tier 2, read 2026-08-24)
  • power.reserve_typical_h = 50 h (accepted) ca37082048529632b · source (tier 2, read 2026-08-24)
Sources behind Lemania 2310
  • osc.frequency_vph = 18,000 vph (accepted) c8bbcfc8aab9bcf97 · source (tier 2, read 2026-08-24)
  • geom.diameter_mm = 27 mm (accepted) c5e58efc4eaa57d4e · source (tier 2, read 2026-08-24)
Sources behind ETA 2824
  • wind.mode = Automatic + hand-winding (accepted) cf3f78875721d7304 · source (tier 2, read 2026-08-24)
Sources behind Venus 188 / Valjoux 7730
  • Nothing on these 9 axes.

Elsewhere

This view answers “how do these differ”. For where they sit in time and descent, the universe; for what the corpus holds and what it does not know, the browse table and its facet coverage; for one caliber in full, its own page — every designation above links straight to it.