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.

Reading guides

This page is the reference. The guides are the readable version of the same material: each one is sourced only from this page, the provenance document, and figures computed at build time from the committed files, and each ends with the same SSA attribution the data pages carry. Start with how SSA baby-name data works, which walks through the source, the pipeline, and the nine qualifications the SSA attaches to its own files, then reading ranks and counts, which states what a rank and a count literally mean and how steep the gap between positions is in the 2025 lists. Spelling variants chart separately shows what the separate-spellings rule does to real rows, with clusters taken from the data and never merged. Decade snapshots explained covers why every era on this site is a single year and how deep each list goes, and first-letter trends since 1955 tabulates every initial's share of top-200 births in each snapshot year. Short, medium, and long names gives the length-class distributions behind the generator's length filter. How the name generator samples walks through the rejection sampling and shuffle described further down this page, and what this site does not publish states the provenance position on meanings, origins, uniqueness claims, and generated names in full. The index of all eight is at /guides/.

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.

Letter profiles

Each of the 52 per-letter pages (26 initials for each sex) is built from one call to letterProfile(gender, letter) in src/lib/names/letter-profile.ts. The function is pure and deterministic: it reads the committed files only through the typed data module, never the JSON directly, and the same sex and initial always yield the same profile, so every figure a letter page quotes is testable and cannot drift from the table beside it. It throws on an unknown letter or an empty committed list, because either means the data files need regenerating, not that the page needs a fallback. Automated tests recompute every field from the raw JSON with independent loops, pin the results for one full and one short letter list per sex, and check invariants across all 52 profiles: the share sums, every share rank used once, and determinism across repeated calls.

Every field is defined relative to the three committed depths — the top 1,000 per sex for 2025, the top 50 per initial per sex for 2025, and the top 200 per sex for each snapshot year — and nothing extrapolates past them. The running example below is not hand-picked: it is the initial that holds the largest share of 2025 top-1,000 girl births, which the build computes as A. The 26 letters of one sex share only headings and scaffolding; every prose sentence on a letter page carries that letter's own computed facts, the same discipline the one-sentence intros already followed.

  • entries and n — the committed list for the initial in 2025, each name carrying its overall rank for that sex, and the length of that list. Depth: at most 50 names; an initial with fewer qualifying names carries what exists and is never padded. For A girls, n is 50.
  • top and last — the first and last rows of that list. For A girls in 2025: Amelia at #4 with 12,699 births, down to Azalea at #278 with 1,109.
  • inTop1000 — how many names in the 2025 top 1,000 for that sex begin with the letter. Depth: the top 1,000 only, so an initial whose letter list runs past that rank reports fewer names here than its page lists. A girls: 170.
  • shareOfTop1000BirthsPct — births for the initial inside the top 1,000, divided by all top-1,000 births for that sex, times 100. The denominator is the top 1,000, not every birth that year: names below that rank, and names given fewer than 5 times, sit outside it. A girls: 16.7% of the 1,182,238 births in the 2025 top 1,000.
  • initialRankByShare — the initial's position, 1 to 26, among all initials for that sex ordered by that share. Ties, including initials with no top-1,000 births at all, break alphabetically, so every position is used exactly once. A girls: #1 of 26.
  • lengthClasses — the letter list counted by the generator's length classes on the SSA spelling: short, medium, and long as defined above. A girls: 8 short, 39 medium, 3 long.
  • tiers — the letter list counted by the generator's popularity tiers using each name's overall 2025 rank: top10, top100 (which includes the top 10), mid (ranks 101–500), and uncommon (501–1,000). Names ranked past 1,000 fall in no tier and are counted as beyondTop1000 rather than folded into the nearest one. A girls: 1 in the top 10, 14 in the top 100, 36 mid, 0 uncommon, 0 beyond the top 1,000.
  • crossGender — names that appear on both sexes' 2025 letter lists for the initial, with the rank and count on each. Depth: only the two top-50 lists are compared, so a name on one list but ranked past 50 for the other sex is not detected. A girls: 1 name, starting with Avery at #37 for girls and #291 for boys.
  • longestName and shortestName — the longest and shortest SSA spellings on the list by character count, ties keeping the better rank. A girls: Anastasia (9 letters) and Ava (3).
  • decadePresence — for each snapshot year (1955, 1965, 1975, 1985, 1995, 2005, 2015), how many names with the initial sit inside that year's top 200 for the sex, and the best-ranked of them, the leader, or null when there are none. Depth: the top 200 of one year; a count of zero means no name with that initial reached rank 200 in that year, nothing more. A girls — 1955: 12 (led by Ann at #43); 1965: 14 (led by Angela at #10); 1975: 19 (led by Amy at #2); 1985: 24 (led by Ashley at #2); 1995: 27 (led by Ashley at #2); 2005: 36 (led by Abigail at #4); 2015: 38 (led by Ava at #4).
  • faded — names with the initial that appear in at least one snapshot's top 200 but are absent from the 2025 top-50 letter list, each with the snapshot years it charted, the last of those years, its best rank, and the year of that rank. Absence is relative to the committed depth: such a name may still be registered below rank 50 for the letter in 2025, which the committed files do not cover. A girls: 34 names; first in list order is Alexis, last charted in 2015, best rank #13 in 2005.
  • newcomers — 2025 letter-list names absent from every snapshot's top 200. The same depth caveat applies in reverse: a newcomer may have been registered below rank 200 in a snapshot year. A girls: 18 names, beginning with Ailany at #14.
  • secondLetters — the second letter of each SSA spelling on the list and how many names use it, most common first with ties alphabetical. A girls: "l" leads, in 10 of the 50 names.
  • initialShareByDecade(gender) — the companion function: for each snapshot year, every initial's share of that year's top-200 births for one sex, in A–Z order with zeros for absent initials, summing to 100 within a year. It is the table behind the first-letter trends guide. For girls, A holds 3.0% of 1955 top-200 births and 20.2% of 2015; the 1955 column sums to 100.0.

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 row — a spelling that charts for both sexes can appear once per sex when both are selected, each with its own rank and count. 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.

Worked figures

Three illustrations of the conventions above, each computed at build time by the same modules the pages use, so they stand or fall with the tables.

The spread inside the top 1,000

In 2025, the #1 girl name, Olivia, was registered 13,544 times; #10 Eliana 8,191 times; #100 Juniper 2,618 times; and #1,000 Harmoni 252 times, so the first count is 53.7 times the last. For boys the same positions read Liam 20,818, Lucas 10,219, Myles 3,511, and Langston 227, a ratio of 91.7. Both lists stop at rank 1,000; whatever sits below is outside the committed depth, and this site does not estimate it.

Ties and the alphabetical rule

The first tie in the 2025 girls' list falls at #24 and #25: Ellie and Lucy both carry 6,176 births, and the SSA orders them alphabetically, so the gap between them is one rank and zero births. For boys the first such pair is #132 Calvin and #133 Ryder, at 2,710 births each. Adjacent ranks can therefore represent identical counts, which is why every table on this site prints the count beside the rank instead of the rank alone.

Where the depths stop

Per-initial lists are cut at 50 names, and the cut is never padded: in the 2025 data, Q for girls carries 34, U for girls carries 32, Q for boys carries 39, and every other initial carries a full 50. Decade snapshots are cut at rank 200, so the generator's deeper tiers are structurally empty there: in the 1955 snapshot for girls, the 101–500 tier holds 100 names, because the list ends at rank 200, and the 501–1,000 tier holds 0. tierBeyondDepth returns true for that tier against a depth of 200 and false for the mid tier, which is the difference between a result that happens to be empty and one that cannot be filled at all.

Last reviewed . Data year in use: 2025; snapshot years: 1955, 1965, 1975, 1985, 1995, 2005, 2015.