Hash Health already warns users about food–drug interactions — but only for medications they manually type in, which most never do. The Prescription Decoder removes that step: point the camera at an Rx label, and OCR + Gemini extract the drug, dose, and directions, translate the pharmacy shorthand into plain English, and stage a clean medication record for one-tap confirmation. It converts our highest-friction onboarding moment into a five-second action.
Context
Medication Intelligence is Hash Health's wedge — the food–medication intersection is the part of the market with no serious competitor. But the feature is only as good as the medication list behind it, and today that list is built by hand. Internal data shows fewer than one in five activated users add a single medication, and the median active list length is zero.
The label on every prescription bottle already contains everything we need: drug name, strength, the sig (directions), prescriber, pharmacy, and refills. The Decoder treats that label as a structured input we can read, rather than a form the user has to transcribe.
The problem
Manual medication entry fails for three compounding reasons:
- It is work. Typing a drug name, strength, and schedule is four+ fields of friction at the exact moment a new user is deciding whether the app is worth it.
- It requires literacy we can't assume. Users often
don't know their drug's generic name, can't parse
1 tab PO BID, and guess at dosage — producing records too unreliable to safely drive interaction warnings. - It is the gate to our differentiator. No medication list means no interaction engine, which means a new user never sees the one thing that makes Hash Health different from a calorie tracker.
The result: our most defensible feature is invisible to ~80% of the people who install the app.
Goals & non-goals
◆ Goals
- Make adding a medication a sub-10-second camera action.
- Produce records accurate enough to safely power interaction warnings.
- Lift the share of activated users with ≥1 medication from ~18% to 45%+.
- Keep every image and inference private and, where possible, on-device.
◇ Non-goals
- Diagnosing conditions or recommending dosage changes.
- Replacing a pharmacist or prescriber — this is a record, not advice.
- Filling, transferring, or pricing prescriptions.
- Reading handwritten prescriptions (the paper script, not the label).
User stories
Requirements
UX flow
Five screens, from a pointed camera to the payoff that justified it.
End to end
How a single capture moves through the system:
The medication record is written only after the user confirms (step 3). Field-level confidence scores from the decode gate that review — anything uncertain is flagged before it can reach the profile or the engine.
Success metrics
Launch is judged on activation lift and record quality, not on capture volume alone.
Risks & open questions
⚠ Risks ▸
- Safety of a wrong decode. A misread strength could drive an incorrect interaction warning. Mitigated by mandatory confirmation (R4) and low-confidence flagging (R6) — but residual risk remains and needs a documented stance.
- Label variance. Pharmacy label layouts differ widely; the 200-label test set may under-represent regional chains. Expand the set before GA.
- Regulatory framing. The feature must read as a record-keeping tool, not clinical decision support. Copy and positioning need a compliance review.
- Vision API cost. Per-decode inference cost scales with adoption; model the unit economics against the 45% activation target.
? Open questions ▸
Out of scope
⊘ Explicitly not in this release ▸
- Handwritten prescription scripts — only printed pharmacy labels are supported.
- Prescription filling, transfer, or price comparison.
- Direct pharmacy-system or EHR integration (tracked separately under Longitude).
- Dosage or treatment recommendations of any kind.
- Wearable, CGM, or lab data ingestion — see the Hash Health roadmap.