Methodology & Data Provenance
This page documents the entire path from source data to what you see on screen. NewbornNames has exactly one data source and exactly one transformation pipeline, both described here, plus a sampling method for the generator that is stated precisely enough to be checked.
The source
All name data comes from the U.S. Social Security Administration's national "Popular Baby Names"
dataset (ssa.gov/oact/babynames), one file per birth year with lines of
name,sex,count derived from Social Security card applications. It is a work of the U.S.
government in the public domain. The archive we built from states it reflects SSA records as of March
2026; its latest year file — and therefore this site's headline year — is
2025.
The pipeline
A committed script (scripts/build-name-data.mjs) reads the official archive and
emits three JSON files that ship with the site: the top 1,000 names per gender for
2025; the top 50 per starting letter per gender for 2025 (each with its overall
rank); and the top 200 per gender for the decade snapshot years 1955, 1965, 1975, 1985, 1995, 2005, 2015. The script
selects subsets and attaches ranks — it never edits names or counts. Integrity is enforced by
automated tests over the committed files: exactly 26 letters per gender, no rank gaps in the top
1,000, counts never increasing as rank falls, and no duplicate name within a gender.
Rank and count conventions
- Rank is a name's position within one sex for one year, ordered by descending count — the SSA's own ordering, which breaks count ties alphabetically. We preserve it, so our ranks are the SSA's ranks.
- Count is the number of U.S. births that year whose card application carried that exact spelling and sex. We never estimate, merge spellings, or extrapolate.
- Decade eras are single-year snapshots (1955, 1965, 1975, 1985, 1995, 2005, 2015) — labeled with the snapshot year wherever they appear, because "the 1980s" in our generator literally means "registered in 1985".
Generator filters
- Length classes: short is 4 letters or fewer, medium is 5–7, long is 8 or more — counted on the SSA spelling.
- Popularity tiers are rank ranges in the selected era's list: top 10, top 100, ranks 101–500, and ranks 501–1,000. Decade snapshots only reach rank 200, so deeper tiers are reported as structurally empty there rather than silently refilled.
- Empty results are real results. If no name matches a combination, the generator says so. It never pads a list with names from outside your filters, and never invents names at all.
How "spin" randomness works
The generator draws bytes from your browser's cryptographic random number generator (crypto.getRandomValues) and maps them onto the filtered pool with rejection sampling: it takes the minimal number of
bits covering the pool size, masks the excess, and discards out-of-range draws instead of
wrapping them — so every matching name is exactly equally likely, with no modulo bias.
Multi-name draws use a partial Fisher–Yates shuffle, so a spin never repeats a name. The
sampling code accepts an injected byte source, which is how the automated tests verify the exact
mapping.
The caveats that travel with the data
These are the SSA's own qualifications, restated plainly; we repeat them because any honest use of this data has to:
- Names given fewer than 5 times in a year (per sex) are excluded for privacy — absence from our lists is not evidence a name went unused.
- Data covers births in the 50 states and D.C. only; it says nothing about popularity outside the U.S.
- Spelling variants are separate entries with separate ranks; hyphens and spaces are stripped by the SSA before counting.
- The data is unedited by the SSA: recorded sex may occasionally be wrong, and entries like "Unknown" are not removed.
- Records require a year of birth, sex, and state of birth on file, and a given name of at least 2 characters; people born before 1937 who never applied for a card are absent.
What we deliberately do not publish
No name meanings, origins, or etymologies — we have no provenance-clean source, so v1 of this site publishes none rather than fabricating any. No "uniqueness" scores beyond what a rank and count literally state. No AI-generated names: the generator is filtered sampling of real registration data, and that is all it is.
Worked figures can't drift
Every count quoted in page prose — "the #1 girl name was registered N times" — is computed at build time from the same committed JSON the interactive tools read. If the dataset changes, the copy changes with it (or the build fails); the words cannot silently disagree with the tables. If you believe any figure is wrong, that is a checkable claim against the SSA archive: please report it, and confirmed issues get fixed alongside a new test.