The Intel: How It Works

Behind the scenes of The Racket's recommendation engine

The Straight Talk

We're not magic. We're math. This page explains exactly how Unwyned matches you to wines, how we learn from your ratings, and why our recommendations get better over time. No smoke and mirrors. Just the operation.

Want the full technical deep-dive? Read The Architecture of Taste for the complete engineering documentation including mathematical proofs, psychophysical research citations, and implementation details.

1. The Eight-Dimension Taste System

Every wine has a profile. Every drinker has preferences. We map both using the same 8-dimensional system. Think of it like coordinates on a map—except instead of north and south, we're measuring how sweet, tannic, fruity, or earthy something tastes.

Dimension What It Measures Scale (1-5)
Body How heavy or light the wine feels in your mouth Light → Full-bodied
Sweetness Residual sugar level Bone-dry → Sweet
Acidity Tartness, brightness, crispness Soft → Crisp/Bright
Tannin That dry, grippy feeling (mostly in reds) Silky → Grippy
Fruit Intensity How much fruit flavor dominates Subtle → Fruit-forward
Oak Vanilla, toast, spice from barrel aging Unoaked → Heavily oaked
Earthiness Mineral, dirt, mushroom, leather notes Clean → Earthy/Mineral
Spice Pepper, clove, cinnamon notes Mild → Spicy/Peppery

2. How We Build Your Profile: Center-Out Psychographics

When you take the quiz, we use a Center-Out Scoring Model instead of directly asking "do you like tannins?" (which most people can't answer accurately). Here's how it works:

Quiz Strategy: Starting Neutral

Every user starts with a neutral profile: all dimensions set to 3.0 (the middle of our 1-5 scale). Questions then shift your profile up or down based on proxy questions about coffee, desserts, textures, and other familiar experiences.

Primary Anchors (±1.2): Initial questions establish broad direction ("Do you drink coffee black?" affects tannin tolerance).
Reinforcement (±0.8): Follow-up questions triangulate tricky dimensions like tannin and acidity.
Trade-offs (±1.0): Final questions prevent "impossible" profiles by forcing choices between conflicting attributes (e.g., "Which is worse: too sweet or too dry?").

Why Center-Out Works

This approach prevents "profile saturation" where users hit the maximum (5.0) too easily. To reach an extreme preference, you must answer consistently across multiple correlated questions. Most users end up with profiles around 1.8-4.2, which leaves headroom for learning and adaptation as you rate wines.

Edge Case: Manifold Projection. If your quiz answers create a chemically impossible profile (e.g., high acid + high sugar + high body), we project it 30% toward the nearest valid wine archetype. This rarely happens with our trade-off questions, but it's a safety net that ensures we can always find real wines that match you.

3. The Matching Algorithm

When you scan a menu, here's what happens:

Step 1: Extract the Text

Your phone's camera reads the menu using on-device OCR (Optical Character Recognition). On iOS, we use Apple's Vision framework. On Android, Google ML Kit. The image never leaves your device—we only extract the text.

Step 2: Parse the Wines

We send the text (not the image) to an AI model to identify each wine, including:

Privacy Tiered AI Processing

On supported devices (iOS 26+), we use Apple Intelligence to parse menus entirely on your device—no cloud required. For older devices or complex menus, we fall back to cloud AI (OpenAI or Claude) with strict input sanitization.

Step 3: Estimate Wine Profiles

For each wine on the menu, we estimate its 8-dimension profile using:

Step 4: Calculate Match Scores (Asymmetric Similarity)

This is where the math happens. We calculate a weighted, asymmetric Euclidean distance between your taste vector and each wine's profile vector.

// Standard distance calculation distance = √[weight₁×(dim₁_wine - dim₁_you)² + ... all 8 dimensions] // BUT with asymmetric penalties for "deal-breaker" dimensions: // - Sweetness, Tannin, Acidity are deal-breakers // - If wine > your preference (overshooting): penalty × 1.4 // - If wine < your preference (undershooting): penalty × 0.8

Shorter distance = better match. A distance of 0 means the wine is exactly your stated preferences. Higher numbers mean it's further from what you like.

Why Asymmetric Penalties?

Humans are evolutionarily programmed to reject bitterness (poison signal) and excessive acidity (spoilage signal). A wine that's too tannic for you is worse than one that's not tannic enough.

Our asymmetric penalty function ensures that "offending" your palate (overshooting) is penalized nearly twice as heavily as simply "boring" your palate (undershooting). This matches real human sensory psychology.

Step 5: Personalized Weighting

Not all dimensions matter equally to you. Some people care deeply about sweetness but don't mind tannins. Others are picky about oak but flexible on acidity.

As you rate wines, we learn which dimensions you care about most by analyzing the variance in your ratings. Dimensions you rate consistently high or low get higher weight. Dimensions you're inconsistent about get lower weight.

Step 6: Sigmoid Normalization

Raw distance scores are hard to interpret. We use a logistic sigmoid transformation to convert distance into an intuitive match percentage:

score = 1 / (1 + e^(slope × (distance - pivot))) // Where: // - pivot = calibrated distance where score = 50% // - slope = sensitivity (how quickly score drops with distance)

This gives you a clean 0-100% match score. A 98% match means the wine's chemical profile is nearly identical to your preferences in vector space.

Step 7: Rank and Display

We sort all wines by match score (best matches at the top) and show you:

4. The Ranking System

We don't use a 100-point scale. We use The Bootlegger's Quality Scale—a 1-5 barrel system inspired by Prohibition-era slang.

Rating Title What It Means
1 Barrel The Swill Undrinkable. Drain pour. Gas station wine.
2 Barrels The Hustle Trying but failing. Good for cooking, not drinking.
3 Barrels The Daily Grind Solid. Does the job. A working person's pour.
4 Barrels The Heavy Hitter Excellent. Commands respect. Worth the price.
5 Barrels The Don Perfection. You run the block with this bottle.

5. How We Learn From Your Ratings: Bounded Asymptotic Learning

Every time you rate a wine, we update your taste vector using a bounded asymptotic learning model. Here's how it works:

The Update Formula

new_profile = old_profile + learning_rate × dampening × (wine_profile - old_profile) // Where: // - learning_rate: Controls update speed (typically 0.1-0.15) // - dampening: Prevents "lock-in" at extremes (min 0.25)

Positive Ratings (4-5 Barrels)

We shift your taste vector toward the wine's profile. If you love a wine that's more tannic than your current preference (e.g., you're at 3.0, wine is 4.5), we nudge your tannin tolerance up.

Negative Ratings (1-2 Barrels)

We shift your vector away from the wine's profile. Hated an oaky Chardonnay (wine oak = 4.5, you're at 3.0)? We'll lower your oak preference toward 2.5 or lower.

Saturation Dampening (The Anti-Lock-In)

If you're at an extreme (e.g., Tannin = 5.0 or 1.0), we apply dampening with a hard floor of 0.25. This ensures that even extreme preferences can shift back toward center if you consistently rate wines differently. You're never "locked in" to your initial quiz results.

Cold Start Problem

New users start with quiz-based profiles. These are decent but not perfect. After 5-10 ratings, your profile becomes significantly more accurate. After 20+ ratings, it's highly personalized.

6. Data Privacy and Processing

Here's what stays on your device vs. what goes to the cloud:

Data Type Where It Lives Why
Camera images On-device only Privacy. Images never leave your phone unless you explicitly choose to send a difficult label.
OCR text extraction On-device Apple Vision (iOS) and ML Kit (Android) run locally.
Menu text parsing Cloud (sanitized) Sent to AI model to identify wines. Text is sanitized to remove personal info.
Your taste vector Device + encrypted cloud Stored locally and synced to your account (encrypted at rest).
Wine ratings Device + cloud Used to improve your recommendations and sync across devices.

7. Limitations and Known Issues

We're not perfect. Here's what we're working on:

OCR Accuracy

Wine Data Coverage

Taste Complexity

8. The Bottom Line

Unwyned isn't trying to replace sommeliers or become a wine encyclopedia. We're trying to make wine less intimidating. Our algorithm is designed to:

Questions or Feedback?

If you have technical questions about the algorithm, want to report a bug, or have suggestions for improvement, reach out to us at support@unwyned.com.

We built this because we were tired of guessing at wine menus. If it helps you, too—good. If you find issues, let us know.