This article has not been translated into English yet — you are reading the English original. Also available in:Deutsch, Українська
Guessed Weights Cost Ten Times More Than Quantisation
For a long time we described one defect as the serious problem in our name-frequency data: weights squeezed into a single byte, so that half a list ended up tied at the minimum. We wrote it up, we fixed it, and the fix was real — the story is in Half of Your Weighted List Is Not Weighted.
Then we measured what that defect had been worth. The total variation distance between the broken Swedish given-name list and the same list carrying true counts was 2.45% for women and 2.25% for men.
That is a small number, and we had been treating the mechanism behind it as the main thing wrong with the data. So we finally asked the question we had never put a number on: what is the distance for a corpus whose weights were never counts at all — where somebody sat down with a list of names and assigned each one a value between 1 and 100 out of knowledge, intuition and a couple of published top-20 tables?
For Finnish given names, measured against the national population register: 20.96% for men, 28.50% for women. For three Swiss surname corpora, measured against the federal register: 22.05%, 35.67% and 25.60%.
Roughly ten times the defect we had named. In the same directory, under the same validator, in files that are indistinguishable from the outside.
Two defects that produce the same-looking file
Both failure modes ship a two-column TSV of names and small positive integers, sorted descending. Every structural check passes on both. But they are not variants of one problem; they are opposites in almost every property that matters.
| Property | Quantised real counts | Curated modelling |
|---|---|---|
| Where the numbers came from | measured, then divided down | assigned by hand from judgement |
| Maximum weight | a container edge: 255, 127 | a person's round number: 100, 70, 50, 40 |
| Rank order | exact; the transform is monotone | approximate; inversions throughout |
| Failure created | ties, only in the tail | wrong values everywhere, head included |
| Distance from the truth | 2.45% (measured) | 16–36% (measured) |
| The fix | widen the column | obtain a source — or admit there is none |
The give-away is the ceiling, and it is almost embarrassingly easy to read. A maximum of exactly 255 means the number hit the edge of a byte. A maximum of exactly 100, or 44, or 40, means the number hit the edge of a person. Across the modelled corpora on disk, the ceilings we counted were 100 (115 files), 40 (34), 70 (6), 35 (6), 44 (5), 45 (4), 30 (4), 55, 46, 28, 24, 20 (2 each), 75 and 42 (1 each). Not one of them is a power of two minus one, and every one of them is a number a human would choose while grading a list into tiers.
The second give-away is resolution. In the Swiss French surname corpus, 831 rows carried 23 distinct weights — 2.8% of the rows. The German-Swiss list: 710 rows, 22 distinct values. The Italian-Swiss list: 489 rows, 16 values, with 48.7% of all rows sitting on weight 1. Those are not measurements that happen to repeat. They are labels: very common, common, seen it, rare.
What the two defects actually cost
Every figure in this table is a total variation distance between the weights that were in the corpus and the true counts published by the relevant national registry, computed over the set of names the two have in common. The two Swedish rows are the byte defect. Everything else is curated modelling.
| Corpus | Weights came from | Compared against | Distance |
|---|---|---|---|
| Swedish given names ♀ | counts, cut to 1–255 | Statistics Sweden counts | 2.45% |
| Swedish given names ♂ | counts, cut to 1–255 | Statistics Sweden counts | 2.25% |
| Finnish surnames | curated, scale 7–100 | DVV register | 15.97% |
| Finnish given names ♂ | curated, scale 2–100 | DVV register | 20.96% |
| Swiss German surnames | curated, scale 1–40 | Federal register | 22.05% |
| Swiss Italian surnames | curated, scale 1–50 | Federal register | 25.60% |
| Finnish given names ♀ | curated, scale 2–100 | DVV register | 28.50% |
| Swiss French surnames | curated, scale 1–30 | Federal register | 35.67% |
The ordering in that table is the whole article. The defect with a name, a write-up and a fix sits at the top as the least damaging thing in the set. The defect nobody had named — because it was not a bug, it was simply how the data had always been made — occupies the rest of the range at six to fifteen times the size.
There is an arithmetic reason, and it is the same argument as the byte article with the numbers made worse. A weighted list has to represent a dynamic range: the ratio between the commonest and the rarest entry it contains. For the 295 Finnish male given names in the corpus, the registry counts for those exact names run from 5 to 43,107 — a range of ×8,621. The curated scale ran from 2 to 100: a range of ×50. The byte defect was 2,679 needed against 255 available. This is 8,621 needed against 50 available, and unlike the byte the ceiling was not forced by anything.
The negative control: how much of it is the scale itself?
The number 20.96% mixes two errors that have completely different remedies:
- Order error — the curator put the names in the wrong sequence.
- Shape error — even in the right sequence, a 1–100 tier scale cannot produce the curve that real frequencies have.
If the damage were mostly order error, a better-curated list would fix it. If it were mostly shape error, no amount of curation would, and the only remedy is counts.
So we built a negative control. Take a locale where we hold real registry counts — Norway, Sweden, the United States, Spain, France. Truncate it to the top N. Then take the multiset of weights from a real curated corpus of the same size and assign them strictly by rank: the curator's largest weight to the genuinely commonest name, the second to the second, and so on all the way down.
That construction gives the curator a perfect score on ordering. Every name is in exactly the right place. The only thing left wrong is the shape of the numbers. Whatever distance survives is the price of the scale alone.
Thirty pairs — six reference distributions against five donor shapes:
| Reference (real counts) | Shape: Germany ♂ | Shape: Denmark ♀ | Shape: Japan ♂ | Shape: Croatia ♀ | Shape: Romania ♂ |
|---|---|---|---|---|---|
| Norway ♀ | 9.69% | 12.39% | 15.38% | 8.96% | 15.48% |
| Norway ♂ | 6.98% | 9.55% | 12.37% | 7.80% | 12.30% |
| Sweden ♀ | 7.84% | 10.35% | 13.64% | 8.26% | 13.07% |
| United States ♀ | 12.44% | 14.93% | 18.57% | 12.66% | 17.24% |
| Spain ♂ | 12.29% | 11.76% | 6.17% | 14.36% | 6.81% |
| France ♀ | 7.20% | 9.61% | 12.80% | 6.77% | 12.92% |
Median 12.30%, range 6.17% to 18.57%.
That is the finding. Of the 21–28% we measured on real curated corpora, about half is the shape of a 1–100 tier scale, and it stays there even when the ordering is flawless. A better curator does not remove it. A longer curated list does not remove it. Only counts remove it.
The matrix also shows why the residual varies. Spain's male given names are unusually flat at the head, so the flat donor shapes (Japan, Romania) fit them best and the steep ones fit worst; the American female list is the steepest reference in the set and every donor shape does badly on it. Shape error is not a constant tax — it is a mismatch between two curves, and it grows with how skewed the real distribution is.
The caveats, since they matter for anyone repeating this. The reference distribution is truncated to the top N and renormalised over that head, so this measures shape error alone and deliberately excludes the depth problem discussed further down. The donor shapes are themselves curated corpora with their own ceilings (100, 44, 40), so the control is measuring the family of shapes we actually ship, not a theoretical worst case. And thirty pairs is a median, not a confidence interval.
A real case with a perfect head and a 16% error
The cleanest demonstration is not the synthetic control at all. It is the Finnish surname corpus.
All 618 names in it were found in the DVV register, exactly, with no spelling mismatches. Its top 10 was Korhonen Virtanen Mäkinen Nieminen Mäkelä Hämäläinen Laine Heikkinen Koskinen Järvinen — and the register's top 10 was the same ten names in the same order. Ten out of ten, in sequence, no inversions.
The distance between the curated weights and the true counts was 15.97%.
Nothing was wrong with the list, nothing was wrong with the head order, and one row in six of the probability mass was still in the wrong place, because a scale that runs 7 to 100 was being asked to represent counts that run 59 to 21,209.
The ordering was wrong as well
For given names, unlike surnames, the curated order was genuinely poor — which is worth saying plainly, because it is the part a careful human could in principle have improved.
Against the register's first-given-name statistics, the corpus scored a Spearman rank correlation of +0.430 for men and +0.618 for women. Of the corpus's top 10 male names, 7 appeared in the register's top 10; for women, 2. Widen the window and it improves: 82 of our top 100 male names were in the register's top 100, and 71 of 100 for women. The head was where the curation was least reliable — which is exactly where a frequency list is read.
One methodological trap deserves a line of its own, because it moved our headline number by eight points. The Finnish register publishes several tables: first given name only, and all given names counted together. Finns commonly carry two or three given names, and the two tables produce different rankings — Juhani is the top male first name but ranks differently among all names, and the register's own top 10 differs between the sheets. Measured against all given names, the same corpus scores 29.24% for men and 22.16% for women; measured against first names, 20.96% and 28.50%. The male and female errors swap places purely on the choice of comparand. We report the first-name figures because the corpus is a first-name corpus, but anyone auditing frequency data against an official source should establish which population the source counts before quoting a distance.
How much of this can be fixed at all
At the time of the audit, the collection held 128 name corpora across 64 locales. Twenty of them already carried real counts. The other 108 did not, and the honest question is not "how bad are they" but "how many of them can be repaired".
So we classified all 108 by the only thing that determines the answer: whether a source with counts exists.
| Class | Meaning | Corpora | Share |
|---|---|---|---|
| A | A source with real counts exists and is usable | 21 | 19% |
| A~, A? | Partial or unverified source — a region, a cohort, a claim | 7 | 6% |
| B | A source exists but publishes only a ceiling — a top-N | 23 | 21% |
| C | No source exists to build from | 55 | 51% |
| X | The only source's terms rule it out | 2 | 2% |
Class A is a work queue: national statistical offices in Finland, Switzerland, Belgium, Slovenia, Croatia, Poland, Latvia, Iceland and Brazil publish name counts, and there is nothing standing between those files and the corpus except the work of ingesting them.
Class B is a ceiling in the source, not in us. Hungary's interior ministry publishes the top 100 surnames and no more. China's public security ministry publishes the top 100 with percentages. Portugal's registry publishes the top 20 given names. You can repair the head of those lists and only the head; below rank 100 there is nothing to repair it with.
Class C is not "fine"
This is the point that must not be blurred, and it is the reason the taxonomy is in the article at all.
Class C does not mean the data is acceptable. It means the error is large and there is nothing to fix it with. Those are completely different statements, and collapsing them is the most tempting error in a data audit, because a category that cannot generate tasks quietly stops generating attention.
The distinction is between a debt and a limit:
- A debt is a defect with a known remedy that has not been paid for yet. Class A is debt. It belongs on a plan with a date.
- A limit is a defect with no available remedy. Class B and C are limits. They belong in the documentation, stated in the open, next to the data they affect.
Some class B and C examples, so that "no source exists" is not read as "we did not look":
- Slovakia — the population register is closed by law, and the statistical office does not produce name statistics.
- Czechia — the interior ministry stopped publishing name frequencies in 2017 on data-protection grounds. What survives is regional and several years older.
- Hungary — publication is capped at the top 100.
- Germany — there is no national surname register at all, and the society that publishes given-name statistics releases only a top 10 per year without charge.
- Italy — the statistical office does not maintain a surname frequency register, which we confirmed rather than assumed.
- Serbia — the 2022 census published a top 10 and nothing below it.
Serbia is the worst hole in the set and shows what a class-B ceiling does to a corpus underneath it. The Serbian surname list holds 958 rows on a scale topping out at 70, and 748 of them — 78.1% — sit on the minimum weight. Three quarters of the file is one undifferentiated block, and the published source can distinguish exactly ten names.
It is not alone. Italian surnames: 67.9% of rows on the floor. New Zealand surnames: 58.2%. German surnames: 57.4%. In each case the flatness is not a modelling choice; it is the shape of the available knowledge.
Two corpora fall in class X, where the only source that exists carries terms that make it unusable for this purpose. The remedy there is not repair. It is removal, and calling it anything else would be pretending a limit is a debt.
What the repairs proved — including the part that proves nothing
Four locales were repaired in one session, by replacing curated weights with registry counts on the same set of names.
| Corpus | Before | After |
|---|---|---|
| Finnish given names ♂ | 20.96% | 0% |
| Finnish given names ♀ | 28.50% | 0% |
| Finnish surnames | 15.97% | 0% |
| Swiss German surnames | 22.05% | 0.0001% |
| Swiss French surnames | 35.67% | 0.0002% |
| Swiss Italian surnames | 25.60% | 0.0133% |
Those zeroes are a tautology, not an achievement. If you set the weights equal to the counts, the distance between the weights and the counts is obliged to be zero; the only reason the Swiss rows are not exactly zero is that a handful of names had to be mapped across spelling variants before the values could be copied. A before/after table computed on the shared set measures that the copy succeeded. It does not measure that the corpus is now correct, and quoting it as if it did is one of the easiest ways to launder an unresolved problem into a green number.
The measurement that means something is against the full register, with every name the register knows and the corpus does not entered at mass zero. There the distance has a hard floor: it cannot go below 1 − coverage, where coverage is the share of the population carried by the names the corpus actually holds. We sat exactly on that floor:
| Corpus | Names held | Share of bearers covered | Distance from full register | Floor (1 − coverage) |
|---|---|---|---|---|
| Finnish given names ♂ | 295 | 78.7% | 21.31% | 21.31% |
| Finnish given names ♀ | 290 | 71.4% | 28.61% | 28.61% |
| Finnish surnames | 618 | 42.0% | 58.03% | 58.03% |
| Swiss German surnames | 710 | 24.9% | — | 75.06% |
| Swiss French surnames | 831 | 20.3% | — | 79.75% |
Sitting on the floor is the correct reading of a successful weight repair: the weight defect is exhausted, and every remaining unit of distance is a different problem — depth. A corpus of 618 Finnish surnames covering 42% of the population is not mis-weighted any more; it is short. Those are separate defects with separate fixes, and the value of measuring against the full register is that it refuses to let one hide inside the other.
It is also worth saying which way the depth number cuts. For generating a plausible person, holding the names of 79% of Finnish men is entirely reasonable — the missing 21% is the long tail, and drawing from the head is what you want. For claiming the corpus represents the register, 42% coverage of surnames is the number that matters. The same file is adequate or inadequate depending only on the claim being made about it, which is why the claim belongs in the documentation next to the file.
The lists were well chosen; only the numbers were invented
The most useful thing the repair produced was not a smaller distance. It was a verdict on the curators.
When each corpus was joined to its registry, we counted how many of its names the registry had never heard of:
| Corpus | Names in corpus | Found in registry | Not found |
|---|---|---|---|
| Finnish given names ♂ | 295 | 295 | 0 |
| Finnish given names ♀ | 290 | 290 | 0 |
| Finnish surnames | 618 | 618 | 0 |
| Swiss German surnames | 710 | 707 | 3 |
| Swiss French surnames | 831 | 827 | 4 |
| Swiss Italian surnames | 489 | 480 | 9 |
Three of the Finnish corpora matched perfectly. The Swiss misses total sixteen out of 2,030 rows, and five of those were not data problems at all: Doerig and Duebendorfer were ASCII expansions of Dörig and Dübendorfer, and Étienne, Crétegny and Émery are held in the register without their accents. Those five resolved to registry rows the moment the spellings were normalised — the same class of failure as the searches described in The Check That Goes Blind Exactly Where You Need It, where a name was declared missing because a diacritic did not match. Six more exist in Switzerland but in a different language region, which is a question about where the corpus draws its boundary rather than about whether the name is real. That leaves five names in 2,030 that the national register does not contain at all.
So the composition of these hand-built lists was good. Whoever assembled them knew which names belong to Finland and which surnames belong to Italian-speaking Switzerland, and they were right essentially every time. What they had no way of knowing was how frequent each one is, because at the time nobody had put the register in front of them.
That is the sentence worth carrying away from all of this: curated does not mean invented. It means the membership is knowledge and the weights are guesses, and those two halves of the same file deserve completely different levels of trust. Our own error was treating the file as a single object with a single quality — and then spending years improving the half that was already correct.
What we would check first now
- Read the maximum weight before anything else. 255 and 127 are containers; 100, 70, 50, 44 and 40 are people. The ceiling tells you which of the two defects you have in about one second.
- Divide distinct weights by rows. 23 distinct values across 831 rows is not a measurement of anything. Under a few percent means the column holds categories.
- Measure against a source, not against yourself. Every internal consistency check we owned passed on files that were 20–35% away from the truth. Distance to an external register is the only number that moves when the data is wrong.
- Separate order error from shape error before choosing a remedy. Run the negative control: impose the curated shape on real counts by perfect rank. If most of the distance survives that, better curation will not save you and only counts will.
- Never report a before/after distance on the shared set alone. It is a tautology by construction. Report the distance to the full source, where the floor is
1 − coverage, and say which of the two you are quoting. - Classify each corpus by whether a source exists, not by how bad it looks. The number you need for planning is how many defects are payable, not how many exist.
- Write the limits down where the data is, not where the tickets are. A defect with no remedy still has to be declared; otherwise the only thing that gets communicated is the subset that happened to be fixable.
- When a repair lands on a hard floor, say what the floor is made of. Ours is depth, not weighting, and the two would have been indistinguishable in a single summary number.
The byte defect was worth 2.45%, and we found it because it left a fingerprint — a ceiling of exactly 255 and half a file tied at the floor. The curated-weight defect was worth ten times that and left no fingerprint at all, because a hand-assigned scale looks exactly like a well-behaved measurement until you put it next to one.
For the byte defect itself and the diagnostics that catch it, see Half of Your Weighted List Is Not Weighted. For the general method of comparing a corpus against its source, see How to Audit Name Frequency Data. For what the head of a real frequency distribution looks like when it is intact, see Surname Concentration Curves. For the other kind of value that means two things at once, see When Zero Means Two Different Things.
Data as of 2026-07-22
All figures were measured on 22 July 2026 against the corpus files on disk, against pre-change backups of the same files, and against the registry extracts named below. The distances quoted here were re-derived for this article rather than copied from the change record; where a second derivation path gave a slightly different value, both are noted.
Method. Every distance is a total variation distance — half the sum of absolute differences between two probability distributions over the same name set. "Shared set" means the comparison is restricted to names present in both the corpus and the registry, with both sides renormalised. "Full register" means every registry name absent from the corpus is included at mass zero, which is why that variant has a floor of 1 − coverage.
Sources and attribution:
- Finland — DVV (Digital and Population Data Services Agency), Etunimitilasto and Sukunimitilasto, snapshot of 3 February 2026, licensed CC BY 4.0, published via
avoindata.suomi.fi. Given names are published with a threshold of ≥5 bearers (7,312 male and 9,616 female first names); surnames with a threshold of ≥20 (23,228 entries). The workbook carries separate sheets for ens (first given name) and kaikki (all given names); the headline figures here use ens. All processing, weighting and every percentage derived from these counts are ours, not DVV's. - Switzerland — Federal Statistical Office (Bundesamt für Statistik, BFS), Nachnamen der ständigen Wohnbevölkerung nach Sprachregion, 2024 data, published on opendata.swiss, dataset at <bfs.admin.ch/asset/de/ts-x-01.04.00…;. The terms are "Open use. Must provide the source. […] You must provide the source (author, title and link to the dataset)", which is why author, title and link all appear in this note. Regional totals used here: 6,066,184 bearers in the German-speaking region, 2,080,145 in the French-speaking region, 333,620 in the Italian-speaking region. The derived weights and distances are ours.
- Sweden — the 2.45% and 2.25% figures are our own calculation from given-name counts published by Statistics Sweden (SCB). The processed material, the weights and the percentages are ours and not SCB's; SCB is not the source of the processed figures, and only the underlying counts are attributable to the agency.
- Reference distributions in the negative control — Norway (SSB), Sweden (SCB), United States (Census Bureau 2020), Spain (INE), France (INSEE), all held as real counts. Donor shapes were taken from the curated corpora for Germany, Denmark, Japan, Croatia and Romania, each truncated to the smaller of the two row counts (266 to 369 rows per pair).
- Finnish given names, before the repair — 295 male names on a 2–100 scale with 47 distinct values, 290 female names on a 2–100 scale with 44 distinct values. Both matched the register 100%. Distances against the ens sheets: 20.96% and 28.50%. Against the kaikki sheets: 29.24% and 22.16%.
- Finnish surnames, before the repair — 618 rows on a 7–100 scale with 58 distinct values, no rows on weight 1, all 618 present in the register. Distance 15.97%, measured for this article from the pre-change backup; the audit record does not contain this figure.
- Swiss surnames, before the repair — 710 rows on a 1–40 scale (22 distinct values, 18.6% on weight 1), 831 rows on 1–30 (23 values, 28.2% on weight 1), 489 rows on 1–50 (16 values, 48.7% on weight 1). Distances 22.05%, 35.67% and 25.60%. ⚠ The Italian-Swiss figure was produced twice by two different join paths and came out as 25.60% and 25.59%; the difference is the handling of a small number of spelling variants, and the larger value is used above.
- After the repair — 0% on the shared set for all three Finnish corpora, and 0.0001% / 0.0002% / 0.0133% for the three Swiss corpora, the residue being the mapped spelling variants. Against the full register: 21.31%, 28.61% and 58.03% for Finland, each equal to
1 − coverageto two decimal places. Coverage of the regional registers by the Swiss corpora: 24.94%, 20.25%, 20.32%. - The sixteen Swiss misses — 3 in the German-Swiss list, 4 in the French-Swiss list, 9 in the Italian-Swiss list, out of 2,030 rows. Five were spelling variants (
Doerig,Duebendorferas ASCII expansions;Étienne,Crétegny,Émeryaccented against unaccented register rows); six exist in the national register but in another language region; five are absent from the national register altogether. After normalisation the exact-match counts on disk read 709, 830 and 480. - The negative control — six reference distributions × five donor shapes = 30 pairs, median 12.30%, range 6.17% to 18.57%. The reference is truncated to the top N and renormalised, so the control isolates shape error and deliberately excludes depth.
- The taxonomy — 128 corpora across 64 locales; 20 on real counts at audit time, 108 not. The 108 were classified by hand against the published output of each country's statistical office or population register: 21 class A, 7 partial or unverified, 23 class B, 55 class C, 2 class X. Shares are rounded and sum to 99%. After the repairs described above, 25 corpora carry real counts and 103 do not.
- Floor shares quoted for class B and C corpora — Serbia 748 of 958 surname rows on the minimum weight (78.1%), Italy 67.9%, New Zealand 58.2%, Germany 57.4%, all measured directly from the files on disk.
- ⚠ Not measured here. This article compares weights to counts. It says nothing about whether the names in a corpus are the right names beyond the presence check, nothing about cohort or age structure, and nothing about the corpora that carry real counts already — those were excluded from the taxonomy by construction and are not part of the 108.