← Anjan’s notebook
← Back to anjanps.com Demo content — every figure, metric, milestone, and competitor in these documents is illustrative, not real.
← Back to all product docsSpecs & PRDs  /  Prescription Decoder
In Planning

Prescription Decoder

Photograph a prescription label; get back a plain-language medication record that feeds Hash Health's food–drug interaction engine.

℞ ATORVASTATIN 1 tab PO QHS OCR + GEMINI Atorvastatin · 20 mg Cholesterol-lowering statin · tablet Take 1 tablet by mouth at bedtime ADDED TO YOUR MEDS
Owner
A. Panneer Selvam
Product
Hash Health
Version
Draft 0.3
Updated
May 22, 2026
Target
Q3 2026
TL;DR

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

New user …so that during onboarding I can add my meds by photographing the bottles instead of typing, and immediately see why the app matters to me.
Chronic patient …so that when a label is faded or partly obscured, the app tells me exactly which field it's unsure about and lets me fix just that one.
Polypharmacy user …so that I can capture all six of my prescriptions in one sitting without re-entering the app flow each time.
Caregiver …so that I can decode and track prescriptions for my parent under a separate profile from my own.

Requirements

The priority filter (sidebar) scopes both views. List reads as a spec for review; Board reads as a delivery pipeline — same data, same source of truth, two ways in.
No requirements match the current filter.

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:

1 · CAPTURE Photograph label 2 · DECODE OCR + Gemini Vision 3 · REVIEW Confirm & edit 4 · PROFILE Save med record 5 · ENGINE Interaction check FDA label API ⚑ Low-confidence fields flagged for review

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.

Primary
45% of activated users
have ≥1 medication, up from ~18% today
Quality
<5% edit rate
of decoded fields corrected on the review screen
Speed
<10s median
from capture screen to saved record
Downstream
+30% engine reach
more users seeing at least one interaction check

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 ▸
What is the per-field confidence threshold for flagging, and is it uniform across field types?
Owner: Product · due before R6 build
Do we keep the label image by default with an opt-out, or discard by default with an opt-in?
Owner: Product + Legal
Can sig translation run on-device, or must it round-trip to the model?
Owner: Engineering
Should onboarding lead with the Decoder, or introduce it after the first food log?
Owner: Product · A/B candidate

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.