balanced2026-05-01

What Happens When the First Suggestions Aren't Right

The setup

Let's trace a real scenario through three rounds to show what happens when you reject our suggestions — and how each rejection makes the next round better.

Your input:

"Birthday gift for my husband. Turning 40. He's into cycling and whisky."

Clear interests, milestone birthday, intimate relationship. The engine has plenty to work with.

Round 1 — The opening hypothesis

The engine's first move is honest commitment. It doesn't hedge with "a little of everything" — it takes what you've said at face value and finds the best matches.

What surfaces:

  1. A whisky tasting experience at a local distillery — Experiences, meaningful, ~€65
  2. A merino cycling jersey from an independent maker — Outdoors, practical, ~€85
  3. A set of whisky stones with a leather pouch — Food & Drink, balanced, ~€35
  4. A bike maintenance toolkit in a waxed canvas roll — Outdoors, practical, ~€55
  5. A single-cask whisky from his birth year (1986) — Food & Drink, meaningful, ~€70

These are solid, obvious matches. They directly serve the stated interests. For many people, this round would contain the answer.

But you say:

"He already has all the cycling gear. And honestly, he's been cutting back on drinking."

What the engine does with rejection

This is where the algorithm earns its keep. Your feedback isn't just "no" — it contains two specific signals:

  1. "Has all the cycling gear"category_saturated:outdoors + requires_not:cycling_equipment. The engine doesn't just remove those products — it penalises the entire cycling-gear region of the embedding space. The Rocchio formula subtracts the centroid of rejected embeddings from your query vector.

  2. "Cutting back on drinking"requires_not:alcohol. This is a hard filter. Every product with an alcohol prerequisite is excluded from future rounds.

The vector has shifted. Two of the three strongest signals (cycling gear, whisky) are now gone. What's left: a 40-year-old man, a milestone birthday, and a wide-open product space.

Round 2 — The lateral pivot

With the original interests removed, the engine goes lateral. It looks for products that serve the underlying needs behind cycling and whisky — not the activities themselves, but what they provide:

What surfaces:

  1. A morning at a climbing wall with instruction — Experiences, balanced, ~€50. Physical challenge without cycling equipment.
  2. A subscription to a curated coffee roaster — one bag per month — Food & Drink, balanced, ~€60. Craft appreciation, ritual, no alcohol.
  3. A Japanese ceramic tea set — matcha bowl, whisk, scoop — Kitchen, meaningful, ~€55. Sensory ritual, new territory.
  4. A half-day pottery workshop — Experiences, balanced, ~€45. Hands-on, tactile, produces something.
  5. A massage or spa voucher — sports recovery focused — Wellbeing, practical, ~€65. The physical recovery side of cycling, without cycling gear.

The product space has completely shifted. None of these categories appeared in round 1.

You say:

"Oh — the coffee thing is interesting. He's actually been really into making coffee lately. I forgot to mention that."

What happens with new information

This is the most powerful moment in the refinement loop. You didn't reject round 2 — you discovered something. A dormant interest that your initial input didn't include.

The engine treats "he's really into making coffee" as a high-confidence new interest signal. It's stronger than an initial mention because it emerged through conversation — you verified it against the suggestions and recognised it.

The Rocchio formula now has a positive pull: the coffee subscription's embedding vector gets added to the query as a confirmed-relevant signal. The next round doesn't just include coffee — it orbits around it.

Round 3 — The refined result

What surfaces:

  1. A hand grinder from a specialty manufacturer — stepless adjustment — Kitchen, practical, ~€75. The serious tool a coffee enthusiast eventually wants.
  2. A single-origin bean subscription with brewing guides — Food & Drink, balanced, ~€55. Exploration paired with education.
  3. A latte art workshop for two — Experiences, playful, ~€45. Skills and a date.
  4. A ceramic pour-over dripper — handmade, Japanese — Kitchen, meaningful, ~€40. Beautiful functional object for a daily ritual.
  5. A coffee table book on global coffee culture — Books & Media, balanced, ~€35. The intellectual dimension of the obsession.

Every product in round 3 serves the confirmed interest (coffee) while inheriting constraints from earlier rounds (no cycling gear, no alcohol). The engine didn't reset — it built on everything learned across all three rounds.

What actually happened, technically

| Round | Query vector | Hard filters | Active constraints | |---|---|---|---| | 1 | Original input: cycling + whisky + 40th birthday | Standard | None | | 2 | Original minus rejected centroids (Rocchio γ=0.3) | + requires_not:alcohol, cycling_equipment | category_saturated:outdoors | | 3 | Round 2 vector + positive coffee signal (Rocchio β=0.8) | + requires_not:alcohol, cycling_equipment | coffee interest confirmed |

Three rounds. Three completely different product sets. The final round was impossible without the first two, because the information that made it possible — "he's into coffee" — only emerged through the process of seeing and rejecting suggestions.

Why this matters

Most gift finders give you one shot. You type, you get a list, you leave. If the list is wrong, you start over with different words and hope for better luck.

Our engine treats the first round as the beginning of a conversation, not the end. Each rejection removes wrong directions. Each piece of new information opens right ones. By round 3, the algorithm knows things about your situation that you didn't know when you started — because you only discovered them by reacting to suggestions.

The best gift recommendation often isn't the one that matches what you said. It's the one that matches what you meant, which you only figured out by seeing what you didn't mean.


This is an illustrative walkthrough of our multi-round refinement engine. When you use the gift finder, each round genuinely learns from your feedback and adjusts its recommendations.

[Try the gift finder →]

These are illustrative recommendations showing how our algorithm handles this scenario. When you use the gift finder, it works with your actual situation and surfaces real products from our curated catalog.
Find a gift for your situation →