Skip to main content
Status: In Progress Phase: Year 1 Foundation | Tier: Pro

Overview

You are standing in a dispensary. The menu is a wall of strain names, THC percentages, and prices. You recognize maybe three of them. The budtender is busy. You have sixty seconds before the person behind you starts sighing. Menu Scanning solves this. Point your phone at a dispensary menu — printed, digital, or handwritten — and High IQ identifies every strain on it. In seconds, you see the full profile for each: effects, terpene breakdown, High Family classification, and how it compares to strains you already know and love. It transforms the most stressful moment in the dispensary experience into the most informed one. This is the single highest-impact feature on the roadmap. It turns High IQ from a tool you use at home into a tool you use at the point of purchase, which is exactly where cannabis decisions are made and where the most value is delivered.

What It Does

  • Full menu recognition — Photograph any dispensary menu (printed board, digital screen, paper handout, or chalkboard) and the AI identifies all listed strain names
  • Instant strain profiles — Each recognized strain displays its High Family, dominant terpenes, cannabinoid range, and primary effects
  • Database matching — Strains are matched against the 5,226+ strain database for verified data; unrecognized strains are flagged
  • Side-by-side comparison — Tap any two strains on the scanned menu to compare them directly
  • Personal context — Strains you have tried before are marked with your rating and notes; strains similar to your favorites are highlighted
  • Save for later — Bookmark strains from the menu to your wishlist without leaving the scanner view
  • Quick add to stash — Purchase a strain and add it to your active stash directly from the scan results
  • Shareable results — Share your scanned menu analysis with friends who are also deciding

User Value

The “aha moment” is the first time you scan a dispensary menu and instantly know which strains match your preferences — no more guessing, no more Googling strain names on your phone while the line moves behind you.

How It Works

1

Open Menu Scanner

Launch the Menu Scanner from the home screen Quick Actions or the camera icon in the navigation bar.
2

Capture the Menu

Point your camera at the dispensary menu. The viewfinder highlights detected text regions. Tap to capture, or select an existing photo from your library.
3

AI Processing

Gemini vision AI extracts all text from the image, identifies strain names, and separates them from prices, weights, and other menu metadata.
4

Database Matching

Each extracted strain name is matched against the TIWIH database using fuzzy matching (handles misspellings, abbreviations, and alternate names like “GSC” for “Girl Scout Cookies”).
5

Results Overlay

A scrollable results card appears with every identified strain, its High Family badge, key terpenes, and a match confidence indicator. Strains you have tried before are visually distinguished.
6

Explore or Act

Tap any strain for the full profile. Compare two strains side-by-side. Add to wishlist. Add to stash after purchase.

Technical Approach

Menu Scanning builds directly on the existing Label Scanner infrastructure, which already handles image capture, Gemini vision processing, and strain database matching in production.

Architecture

LayerTechnologyNotes
Image CaptureExpo Camera + Image PickerAlready built for label scanner
Vision AIGoogle Gemini 2.5 ProUpgraded from Flash for multi-strain extraction
Text ExtractionGemini structured outputExtracts strain names, prices, weights, types from free-form menu layouts
Strain MatchingFuzzy search + embeddingsHandles misspellings, abbreviations, and slang names
Results AssemblyHono API batch lookupSingle request fetches profiles for all matched strains
UIReact Native bottom sheetOverlay on camera view with scrollable results

Key Technical Challenges

  1. Menu layout diversity — Dispensary menus range from beautifully designed digital boards to handwritten chalkboards to crumpled paper printouts. The vision model needs to handle all of these gracefully.
  2. Multi-strain extraction — Unlike label scanning (1 strain), menu scanning may need to extract 20-50 strain names from a single image. The prompt engineering must reliably separate strain names from surrounding text.
  3. Fuzzy matching at scale — “GDP” means “Granddaddy Purple.” “GSC” means “Girl Scout Cookies.” “GG4” means “Gorilla Glue #4.” The matching layer needs a comprehensive alias dictionary plus embedding-based fallback.
  4. Processing time — Users expect results within 3-5 seconds. Batch database lookups for 30+ strains must be fast. The API already supports batch strain retrieval, but may need optimization for this volume.

Reuse from Label Scanner

ComponentReuse LevelAdaptation Needed
Camera UI & image captureFull reuseNone
Image preprocessing & resizingFull reuseNone
Gemini API integrationFull reuseNew prompt for menu extraction
High Family classificationFull reuseApplied per-strain instead of per-label
Strain database matchingPartial reuseNeed batch matching + alias expansion
Results UINew buildMulti-strain card list vs. single result
Privacy handling (no image storage)Full reuseSame policy

Tier Impact

TierAccess
Free3 menu scans per month with basic strain name matching
ProUnlimited scans, full terpene profiles, personal context overlay, comparison mode, wishlist integration

Dependencies

  • Label Scanner infrastructure (camera, Gemini, matching) — built and live
  • Strain database with 5,226+ profiles — built and live
  • Batch strain lookup API endpoint — built and live
  • Gemini prompt engineering for multi-strain menu extraction
  • Strain alias dictionary (abbreviations, slang, misspellings)
  • Batch fuzzy matching endpoint optimization
  • Multi-strain results UI component
  • Side-by-side comparison view

Open Questions

  1. Handwritten menus — Should we support handwritten chalkboard menus in v1, or start with printed/digital only? Handwriting OCR is significantly harder and may produce poor results that damage trust.
  2. Multi-image stitching — Some dispensary menus span multiple boards or pages. Should v1 support scanning multiple images and merging the results, or require one image per scan?
  3. Offline mode — Dispensaries often have poor cell reception. Should we cache a local strain name dictionary for basic matching without network access?
  4. Pricing data — Menus include prices. Should we extract and display pricing alongside strain data? This adds value but also adds complexity and accuracy risk.
  5. Digital menu integration — Some dispensaries use Dutchie or Jane for digital menus. Should we offer a “paste menu URL” option that scrapes the digital menu instead of requiring a photo?
  • Barcode Scanner — Complementary scanning feature for individual products
  • Label Scanner — The existing single-label scanner that this feature builds on
  • Smart Suggestions — Menu scan results can feed into personalized recommendations
  • Shopping Agent — Future integration: “Which dispensary has the best strains for me?”