Party Theme Quiz Methodology
How the Party Theme Quiz scores 100 themes against your 5 answers and normalizes the top 3 matches into a compatibility percentage.
Reviewed by Baljeet Aulakh · Last reviewed April 19, 2026
How We Score Themes
Each of the 100 themes in our library gets scored against your answers on a 100-point scale. The top 3 by score are shown, and the top score is normalized to ~95% so the compatibility display feels like a real recommendation rather than a cold math readout.
Core formula
score = ageMatch + interestMatch + vibeMatch (max 100)
ageMatch = round((overlapRange / userRange) * 40)
(full overlap = 40 pts, no overlap = 0 pts,
theme w/ no age range = 20 pts)
interestMatch = 35 if theme.category ∈ INTEREST_CATEGORY_MAP[interest]
vibeMatch = 25 if theme.category ∈ VIBE_CATEGORY_MAP[vibe]
top3 = themes.sort(byScoreDesc).slice(0, 3)
top3.percentage = clamp(50, 99, round(score / top3[0].score * 95))Question Weights
Age is the heaviest signal because a 4-year-old princess party and an 18th birthday rave need very different themes. Interest is the next strongest — a kid who loves dinosaurs should not end up with a spa theme. Vibe is tertiary: it tilts the ranking between themes that already match age and interest.
| Question | Max Points | How It Scores |
|---|---|---|
| Age group | 40 | Proportional overlap between your age range and the theme's recommended range. |
| Interest | 35 | Binary — 35 points if the theme's category is mapped to your selected interest. |
| Vibe | 25 | Binary — 25 points if the theme's category maps to your selected vibe (magical, adventurous, mellow, etc.). |
| Setting (indoor/outdoor) | 0 | Used in downstream party-plan generation, not in the initial theme score. |
| Budget | 0 | Used to flag DIY-friendly activities later; every theme scales to any budget. |
Percentage Normalization
Raw scores rarely hit 100 because not every theme has interest + vibe mapped to your exact answer. To avoid showing "your #1 theme: 62% match," we scale the top three: the best score maps to ~95%, and the others scale proportionally. The final display is always clamped between 50% and 99%.
This is a calibration choice, not a fabrication — the ranking order is identical to the raw score. Balli's rule: never fabricate social proof, but do make honest math feel honest to a human reader.
Sources
- Party Genius AI theme library (
src/lib/themes/party-themes.ts), 100 themes across 12 categories — adventure, fantasy, nature, sports, creative, pop culture, seasonal, food, entertainment, wellness, milestone, and classic. - Interest and vibe category maps are editorially maintained in
src/components/tools/theme-quiz.tsxand reviewed each time new themes are added to keep coverage balanced. - Weighting (40 / 35 / 25) tuned against 50 internal test personas — each persona is a realistic parent profile, and the quiz must place at least one genuinely appropriate theme in the top 3 for all 50.
Edge Cases & Limitations
Cross-interest kids (a 7-year-old who loves dinosaurs AND baking AND soccer) can only pick one interest per quiz. For those cases we recommend retaking the quiz with each interest and seeing which theme wins across multiple runs.
Themes without a declared age range get a neutral 20 out of 40 on the age axis so they are not unfairly penalized, but they are also not unfairly boosted.
Budget does not affect the initial score — it only influences which activities and decorations are recommended inside the full party plan later. A theme match is not a budget match; the plan handles that downstream.
Back to the Theme Quiz
Answer 5 quick questions and get your top 3 themes in under 60 seconds.
Take the Theme Quiz