How it works

Honest math, not magic.

NameyFi turns your taste into a vector and ranks names against it using cosine similarity per axis. The match score (e.g., 87%) is literally how aligned your preferences are with that name's profile — no LLM, no hidden adjustments, no marketing inflation.

The four axes

Every taste vector and every name vector lives in this same 4-axis space.

Emotional

weight 0.25

Captures the vibe — built from your answers about feelings, color, food taste, season, decade and lifestyle.

elegantwarmmysteriousboldcelestialplayful

Sound

weight 0.20

Auto-derived from each name's spelling. Vowel ratio, consonant clusters, length, ending — pure phonetics.

short_formsoft_vowelsvowel_endingstrong_consonantsrepeating_syllables

Cultural

weight 0.15

From Wikidata language labels and the language tag you chose. Hard-filters candidate names by language.

italianjapaneseslavicarabiclatingreekglobal

Meaning

weight 0.20

From etymology — a curated 25-pattern keyword library maps Wiktionary text to meaning tags. No LLM.

lightwisdomwarriorlovestarwatervictorypeace

The pipeline

01

You fill the questionnaire

Roughly 20 questions — feeling, sound, culture, color, food, place, season, animal totem, decade, decision style, inspiration. Most have known psychological backing (color psychology, taste-personality correlation, mythological archetypes).

02

Your answers become a 4-axis taste vector

Every option you pick contributes weighted deltas to four axes: emotional, sound, cultural, meaning. We L1-normalize each axis. Result: a fingerprint of your taste in roughly 30–60 weighted tags.

03

Every name in the database has the same shape

Names come from Wikidata (cross-language alias graph), SSA / INSEE / ONS popularity files, and Wiktionary etymology. A rule-based tagger turns each name's spelling + culture + etymology into the same 4-axis vector — no LLM, fully reproducible.

04

We score with cosine similarity per axis

Cosine similarity is the standard math for comparing sparse weighted vectors — bounded 0–1, ignores magnitude differences, robust to vocabulary mismatches. Every name gets four sub-scores (emotional / sound / cultural / meaning).

05

We blend the sub-scores using purpose-specific weights

Baby names weight emotional + meaning heavily. Pet names weight sound (recall-friendly). Brand names blend in domain availability + collision safety. Character names weight genre + sound symbolism.

06

Hard filters cull non-fits before scoring

Gender, target language, and purpose-type filters apply at the SQL level — not at scoring time. So if you ask for Italian-only names, you ONLY see Italian names. The scoring then ranks within that pool.

Why this matches taste & psychology

The questions aren't trivia — they're well-studied personality proxies.

Color psychology

Decades of research correlate color preference with personality dimensions. Gold → prestige + warmth + luxury maps to elegant + warm tags; Purple → mystery + creativity → mysterious + creative.

Taste-personality correlation

Food preference studies (sweet, spicy, refined, exotic) map cleanly to extraversion / openness / conscientiousness, which in turn correlate with name preference patterns.

Place archetypes

Sky / mountains / forest / sea evoke different emotional registers — celestial vs grounded vs natural vs flowing. The mapping is from blueprint §8.3 and reflects classical literary archetype research.

Sound symbolism

Soft vowels feel gentle (mama, soft); sharp consonants feel strong (k, x, hard t). This is real linguistic phenomena, not preference. The matcher rewards the alignment between sound preferences and a name's actual phonetic shape.

Etymology resonance

Names with light meanings (Aurora — dawn, Stella — star, Lucia — light) cluster together in the meaning axis. If you pick celestial-coded answers, you get those names — not just because the words rhyme but because the deep semantics align.

The scoring formula (no secrets)

For personal names — baby, pet, character:

final_score =
    emotional × 0.25
  + sound × 0.20
  + meaning × 0.20
  + cultural × 0.15
  + purpose × 0.10
  + popularity × 0.05
  + practical × 0.05

For brand / product / website names:

final_brand_score =
    audience_fit × 0.18
  + sound_fit × 0.14
  + memorability × 0.14
  + domain_availability × 0.16
  + collision_safety × 0.16
  + brandability × 0.12
  + industry_fit × 0.10

Same formula every time. Reproducible. No LLM. No randomization.