Inspiration

Be honest with yourself — have you ever actually read through your entire insurance benefit booklet? Nobody does. And that's costing Canadians billions of dollars every year in unclaimed benefits. 15 million Canadians have private drug insurance, yet most have no idea what they're actually covered for, what generic alternatives exist, or which provincial programs they qualify for. The information is buried in 40 pages of legal jargon that nobody reads. We built Benefit Bot to fix that in seconds.

What it does

Benefit Bot is an AI-powered benefits auditor for Canadians. Users simply:

  1. Select their province
  2. Upload a photo of their pharmacy receipt
  3. Optionally upload their insurance benefit booklet

The app instantly identifies the medication, cross-references the Ontario Drug Benefit formulary, calculates exact insurance coverage, surfaces cheaper generic alternatives, and checks eligibility for provincial programs like Ontario's Trillium Drug Program, Quebec's RAMQ, BC PharmaCare, and Alberta Blue Cross — with a one-tap apply button.

Three modes:

  • Receipt only — finds cheapest generic without insurance info
  • Booklet only — extracts coverage details, prompts for receipt
  • Full analysis — the wow moment. Cross-references real insurance coverage against drug costs and provincial programs to show exact savings

How we built it

  • Frontend: React Native + Expo for cross-platform mobile experience
  • Backend: Python + FastAPI for a clean, fast REST API
  • OCR: Tesseract OCR + pdf2image to extract text from receipt and booklet photos
  • AI: Groq Llama 3.3 70B for intelligent drug identification and insurance document parsing
  • Coverage Engine: Custom Python engine cross-referencing the Ontario Drug Benefit formulary against provincial programs
  • Storage: IBM Cloud Object Storage for secure medical document handling
  • Data: Ontario Drug Benefit formulary covering 30+ common medications across diabetes, cholesterol, blood pressure, respiratory, mental health, and more

Challenges we ran into

  • OCR accuracy: Pharmacy receipts have inconsistent formatting, noisy backgrounds, and abbreviations. We improved accuracy using image preprocessing, contrast enhancement, and careful Tesseract configuration.
  • AI JSON parsing: LLMs sometimes return multiple JSON objects or extra text. We built a robust extractor that finds the first valid JSON block regardless of output format.
  • Token limits: Large insurance booklets exceed API token limits. We implemented smart truncation that captures the first pages where coverage details always appear.
  • IBM Cloud integration: Navigating IBM Cloud's authentication and regional endpoint configuration was challenging under time pressure.
  • Python version compatibility: IBM Watsonx AI SDK incompatibility with Python 3.14 required setting up isolated virtual environments mid-hackathon.

Accomplishments that we're proud of

  • Built a fully working end-to-end pipeline in under 36 hours — from phone camera to savings recommendation
  • The coverage engine correctly handles all three user scenarios with intelligent fallbacks
  • Real OCR reading real Canadian pharmacy receipts with high accuracy
  • Clean, intuitive mobile UI that a senior citizen could use without confusion
  • The "wow moment" — uploading both documents and seeing your exact insurance-adjusted savings in seconds

What we learned

  • Prompting LLMs for structured data extraction requires extreme precision — small wording changes dramatically affect output reliability
  • OCR preprocessing matters as much as the model itself
  • Build the MVP first, polish second — we had a working pipeline within the first 12 hours and spent the rest refining
  • Hackathons teach you to make decisions fast and move on — perfect is the enemy of done

What's next for Benefit Bot

  • Expand the formulary: Currently covering 30+ drugs — scale to all 5,900+ drugs in the full ODB formulary
  • More provinces: Add Saskatchewan, Manitoba, Nova Scotia, and other provincial programs
  • Drug interaction checking: Flag potentially dangerous drug combinations
  • Cost history tracking: Monitor price changes over time and alert users to savings opportunities
  • Pharmacy integration: Partner with pharmacy chains to pull receipt data automatically — no photo needed
  • IBM Watsonx production integration: Replace Groq with IBM Watsonx Granite for enterprise-grade document parsing in production

Built With

Share this project:

Updates