Skip to main content
Status: Brainstorm Phase: Phase 7 | Tier: Pro

Overview

Cannabis is social. People go to dispensaries together, share joints, text each other strain recommendations, and argue about whether sativas are better than indicas. But there is no way to quantify how similar (or different) two people’s cannabis preferences actually are. Strain Compatibility changes that. When two High IQ users connect, the app calculates a Strain Match score from 0% to 100% based on the overlap and similarity of their cannabis preferences. The score considers four dimensions: strains they have both tried, terpene preference alignment, High Family dominance similarity, and strain type ratio overlap. The result is a single, shareable number that captures something real: “You and Sarah are 87% Strain Compatible.” The feature serves two purposes. First, it creates a compelling social experience for existing users — comparing your cannabis taste with friends is genuinely fun and often surprising. Second, it is a powerful growth lever. The most effective referral mechanic is personalized: “Invite Sarah to see your Strain Match score” is dramatically more compelling than “Invite a friend to High IQ.” The curiosity gap — what is our score? — drives the download. Strain Compatibility is the bridge between High IQ as a solo utility and High IQ as a social cannabis platform. It does not require feeds, comments, followers, or any of the heavy social infrastructure that would distract from the core product. It is a single, focused interaction: compare your taste with someone you know.

What It Does

Strain Match Score (0-100%)

The headline metric is a single percentage representing how similar two users’ cannabis preferences are. The score is calculated across four weighted dimensions:
DimensionWeightWhat It Measures
Strain Overlap35%Percentage of strains that both users have tried (Jaccard similarity on strain collections)
Terpene Alignment25%Cosine similarity between each user’s average terpene preference profile
High Family Match25%How similar each user’s High Family distribution is (e.g., both lean Creative Family)
Type Ratio15%How similar each user’s sativa/indica/hybrid ratio is

Score Interpretation

Score RangeLabelMeaning
90-100%“Cannabis Twins”Nearly identical preferences — you probably already share strains
70-89%“Strong Match”Very similar taste with some interesting differences to explore
50-69%“Complementary”Overlapping core preferences but distinct edges — great for recommendations
30-49%“Opposites Attract”Very different preferences — you can introduce each other to new worlds
0-29%“Different Planets”Radically different taste — the other person’s collection is uncharted territory for you

Comparison Breakdown

Beyond the headline score, users see a detailed breakdown:
  • Shared Strains — List of strains both users have tried, with each user’s notes or ratings if available
  • Terpene Comparison — Side-by-side terpene radar charts showing each user’s preference profile
  • High Family Distribution — Stacked bar chart comparing each user’s High Family split
  • “You Should Try” Recommendations — Strains that one user loves but the other has not tried, ranked by likelihood of enjoyment based on the recipient’s terpene profile
  • Cannabis Personality Comparison — If both users have Cannabis Personality types, shows them side by side

The Shareable Card

The Strain Compatibility card follows the share card format: two user avatars with the Strain Match percentage between them, the match label (e.g., “Strong Match”), the top 3 shared strains, and a “Compare your cannabis taste — Download High IQ” CTA.

User Value

“You and Sarah are 87% Strain Compatible” is the kind of result people screenshot and send to friends — and the friend’s first question is always “how do I check mine?”

Growth Mechanic

The strongest growth application of Strain Compatibility is the personalized invitation:
  1. User A has High IQ and 50+ strains in their collection
  2. User A wants to compare with their friend Sarah
  3. Sarah does not have High IQ
  4. User A taps “Invite Sarah to compare”
  5. Sarah receives a personalized message: “John wants to see your Strain Match score. Download High IQ and import your orders to find out.”
  6. Sarah downloads, creates an account, imports at least one order
  7. The Strain Match score is calculated and both users see the result
  8. The referral is confirmed (Sarah uploaded an order), and John earns referral rewards
This flow is dramatically more effective than a generic “invite a friend” because it creates a specific, personal curiosity gap. Sarah is not being asked to download a cannabis app. She is being asked to find out her compatibility score with a specific person she knows. That specificity changes the conversion calculus entirely.

How It Works

1

Connect with a Friend

From the “Friends” tab or profile screen, the user searches for another High IQ user by username, or sends an invitation link to someone who does not have the app.
2

Send Comparison Request

The user taps “Compare Strains.” If the other person is already on High IQ, a comparison request is sent. If not, a personalized invitation link is generated.
3

Mutual Consent

Both users must opt in to the comparison. The recipient receives a notification: “John wants to compare cannabis preferences with you.” They can accept or decline. No data is shared without explicit consent.
4

Score Calculation

Upon mutual acceptance, the algorithm processes both users’ strain collections, terpene profiles, High Family distributions, and type ratios. The Strain Match score is calculated in real time.
5

Results Reveal

Both users see the results simultaneously: the headline Strain Match percentage, the detailed breakdown, shared strains, and “You Should Try” recommendations.
6

Share the Results

A share button generates a Strain Compatibility card for the iOS share sheet. The card shows both users’ names, the score, and the match label.

Technical Approach

Architecture

ComponentTechnologyNotes
Friend ConnectionsConvex friendships tableBidirectional connection model with request/accept flow
Score CalculationServer-side Convex actionComputes score from both users’ data; results cached for 7 days
Strain OverlapJaccard similaritySet intersection / set union on strain IDs
Terpene AlignmentCosine similarityVector comparison on normalized terpene preference profiles
Family MatchJensen-Shannon divergenceProbability distribution comparison on High Family ratios
Type RatioEuclidean distanceNormalized distance between sativa/indica/hybrid percentages
Result CardsReact Native + view-shotRenders comparison card for sharing
NotificationsExpo NotificationsComparison requests and result availability

Data Model (Convex)

friendships
  - userA: Id<"users">
  - userB: Id<"users">
  - status: "pending" | "accepted" | "declined"
  - initiatedBy: Id<"users">
  - createdAt: number
  - acceptedAt?: number

strain_comparisons
  - userA: Id<"users">
  - userB: Id<"users">
  - score: number (0-100)
  - dimensions: {
      strainOverlap: number,
      terpeneAlignment: number,
      familyMatch: number,
      typeRatio: number
    }
  - sharedStrains: string[] (strain IDs both users have tried)
  - recommendationsForA: string[] (strains B has that A should try)
  - recommendationsForB: string[] (strains A has that B should try)
  - calculatedAt: number
  - expiresAt: number (7-day cache)

Privacy Model

Strain Compatibility is built on explicit consent at every step:
  • Opt-in connections — Users must accept a friend request before any comparison is possible
  • Per-comparison consent — Each comparison requires mutual acceptance (even between existing friends)
  • Data minimization — The comparison algorithm runs server-side; neither user sees the other’s raw data
  • Visible output only — Users see: shared strains, score, recommendations. They do NOT see: spending data, order history, dispensary names, consumption frequency
  • Revocable — Either user can remove a friendship at any time, which deletes all cached comparison data

Tier Impact

TierAccess
FreeSend comparison requests, see headline Strain Match score only
ProFull breakdown (terpene radar, family distribution, recommendations), unlimited comparisons, shareable comparison card, comparison history

Dependencies

  • Strain collections per user — built and live
  • Terpene data in strain profiles — built and live
  • High Family classification — built and live
  • Friend connections infrastructure (new Convex tables and UI)
  • Comparison algorithm implementation
  • Comparison request / consent flow UI
  • Results screen with breakdown visualizations
  • Comparison card for sharing
  • Referral System (Phase 2) — for personalized invitations
  • Cannabis Personality (Phase 6) — for personality comparison in results

Open Questions

  1. Friend discovery — How do users find each other? Username search requires knowing the exact username. QR code scanning (in person) is the most natural cannabis-social interaction. Phone contact matching raises privacy concerns.
  2. Minimum data threshold — How many strains does a user need before a comparison is meaningful? A comparison between two users with 3 strains each is not very interesting. Minimum 10 strains each?
  3. Anonymous comparison — Should there be a way to compare with “the average High IQ user” or “users in your city” without connecting to specific people? This could be interesting for users without friends on the platform.
  4. Score stability — The score changes as users add new strains. Should users be notified when their compatibility with a friend changes significantly (e.g., “Your Strain Match with Sarah increased by 12% this month”)?
  5. Group comparison — Could this extend to groups? “Your friend group’s collective Strain Match is 73%” would be compelling but exponentially more complex.
  • Cannabis Personality — Personality types add depth to compatibility comparisons
  • Referral System — Personalized comparison invitations are the strongest referral mechanic
  • Share Cards — Compatibility cards use the share card visual system
  • Community Badges — “Connected” badges for making first friend, first comparison