The CRA medical expense tax credit is a non-refundable credit you can claim on your T1 return for eligible medical expenses above a threshold. Most Canadians under-claim or skip it because receipts are scattered and eligibility is confusing.
🍁 How it works:
- Claim on Line 33099 (self, spouse/common-law partner, minor children under 18)
- OR Line 33199 (adult dependents you supported — each dependent gets their own threshold applied per their own net income)
- Threshold = LESSER of 3% of net income (Line 23600) or $2,833 (2025 figure, indexed annually)
- Credit = (Eligible expenses − threshold) × (15% federal + your provincial rate)
- Typical combined rate: 20–25% per dollar above threshold
📅 The 12-month window trick (most Canadians miss this): You can pick any 12 consecutive months ending in the tax year — not just the calendar year. If you had a big expense in late November of the prior year and another in January of the current year, pick a window capturing both. Can shift the claim by hundreds or thousands of dollars.
✅ Always eligible:
- Prescription medications (recorded by licensed pharmacist)
- Dental — cleanings, fillings, orthodontics, dentures, implants
- Vision — eye exams, prescription glasses, contacts, laser eye surgery
- Paramedical — physiotherapy, chiropractic, psychologist, naturopath (province-dependent), massage (only in BC/ON/NB/NL/PEI — provinces where it's regulated)
- Medical devices — hearing aids, CPAP, insulin pumps, wheelchairs, walkers
- Private health insurance premiums (portion you pay, not employer portion)
- Attendant care
💡 Commonly missed:
- Service animal expenses (food, vet, training) — certified service animals only, not ESAs
- Accessibility home renovations (ramps, grab bars, walk-in tubs) + doctor's letter
- Travel over 40 km for treatment not available locally — mileage, parking, public transit
- Travel over 80 km unlocks meals + accommodation
- Tutoring for diagnosed learning-disabled dependents
- Gluten-free food — incremental cost only, for diagnosed celiac disease
- Air conditioning — up to $1,000, for specific medical conditions (asthma, MS)
❌ NOT eligible:
- Over-the-counter meds (Tylenol, Advil, cough syrup, Claritin)
- Vitamins and supplements (EXCEPT prescribed Vitamin B12)
- Cosmetic procedures (unless reconstructive after accident/disease)
- Gym memberships (unless specifically prescribed for a diagnosed condition)
- Home spa, sauna, hot tub
- Expenses already reimbursed by PHSP, HSA, or private insurance
📋 CRA receipt requirements: Each receipt must show: patient name, vendor name, date, purpose (e.g., "prescription glasses"), amount, and prescriber name where applicable. Credit card statements alone are NOT acceptable.
📂 Retention: CRA doesn't want receipts with your return — just totals on Line 33099/33199. But you MUST keep receipts for 6 years from the end of the tax year.
🤖 How ExpenseBot helps (current — V1):
- Scans Gmail for 24 months of medical receipts
- Extracts vendor, date, amount, tax, line items from each receipt via Gemini AI
- Classifier tags each receipt by CRA-eligible expense type (dental, vision, Rx, paramedical, etc.) based on vendor + line items
- Recognizes Canadian medical vendors: Shoppers Drug Mart, Rexall, Jean Coutu, Pharmaprix, London Drugs, LifeLabs, Sun Life, Manulife, Canada Life, Blue Cross, Green Shield, Medavie, Maple, Felix, Tia, Dialogue
- Wizard at
/my-cra-medical-reportlets you pick any 12-month date window and see eligible totals live - Shows the 3% vs $2,833 threshold math with 15% federal credit estimate
- Non-destructive regeneration — run the report as many times as you want without marking any receipt "submitted"
- Stores receipt images in your own Google Drive for the 6-year CRA retention window
- Generates T1-supporting documentation (one itemized spreadsheet; you transfer totals to TurboTax/Wealthsimple Tax/UFile/H&R Block or hand to your accountant)
- One-click Receipt Bundle ZIP export — every Drive-linked receipt numbered and dated (e.g.
001_2026-02-14_Shoppers_Drug_Mart_47.99.pdf), plusindex.csvmapping every filename to date/vendor/amount/expense-type andREADME.txtwith admin-specific upload instructions. Streams from Drive → browser (100+ MB bundles work). If a receipt was deleted, it's marked FAILED in index.csv and the rest of the ZIP completes.
⚠️ Coming in V2:
- Auto-split between Line 33099 (self/spouse/minors) and Line 33199 (adult dependents) based on patient name. Today you split manually when filing by scanning the itemized report.
💰 Tip: Have the lower-income spouse claim the family's medical expenses. The threshold is based on their net income (lower income = lower threshold = more credit).
🔗 Learn more: CRA Medical Expense Tax Credit Tracker · Complete CRA Medical Expense Guide
📎 Not tax advice — ExpenseBot produces documentation. Consult a qualified Canadian tax professional or CRA for specific guidance.
