DEV Community

Voor AI
Voor AI

Posted on

Scoring a Personality Quiz Without Making It Feel Arbitrary

Personality quizzes look trivial to build and are surprisingly easy to get wrong. The hard part is not the UI, it is making the result feel earned rather than random. These are the choices that mattered most when I built one.

Score traits, not answers

The mistake is mapping each answer directly to a character. That produces brittle results: one unusual answer flips the outcome. Instead, define a small set of trait axes (say four to six), give every answer a weighted contribution to two or three of them, and only match to an archetype at the very end. The result then changes gradually as answers change, which is what makes it feel like a measurement.

Normalise before you compare

Raw trait sums are dominated by whichever axis has the most questions. Normalise each axis to its own achievable range first, otherwise the archetype with the widest spread wins almost every time. This one line of arithmetic fixes the single most common complaint about homemade quizzes.

Weight the questions, then hide the weights

Some questions discriminate much better than others. Give those a higher weight, but never show the weight. Displaying "this answer is worth 3 points" turns a quiz into a spreadsheet and invites gaming.

Handle ties deliberately

Ties will happen. Pick a deterministic rule - closest cosine distance to the archetype vector, with a documented tiebreak - rather than the order of a lookup table. It makes results reproducible, which matters if people retake the quiz and compare.

Write the result text last

The archetype copy is what people actually remember, and it is tempting to write it first. Write it after the scoring behaves, because only then do you know what each archetype genuinely represents in the data.

The version I built with this scheme is live at South Park Test if you want to see how the trait axes behave in practice.

Top comments (0)