Inspiration

Picture someone looking after a parent. Over a year and a half there's the parent's physio and prescriptions, a child's braces, their own dental work, and a shoebox of receipts with different names on them. Canada's medical expense credit can give some of that money back, but only if the receipts are sorted by person, the right 12 months are picked, and the right partner claims. That's a lot of paperwork for someone who's already busy caring for people.

The rules leave room that a calendar-year total misses. You can use any 12-month period that ends in the tax year. The claim is reduced by 3% of the claimer's net income (up to $2,834), so the lower-income partner often gets more. Relatives you support, like a parent or an adult child, are worked out separately with their own income.

The CRA's own worked example shows the second point. Richard and Pauline have $6,300 in family medical expenses. Pauline, at $55,000 of net income, could claim $4,650. Richard, at $42,000, could claim $5,040. That's $390 more claimed, about $57 off federal tax, just by picking the right person.

What it does

Receipt Window is a one-page tool that organizes a household's medical receipts and works out the claim.

  1. Your household. Your net income, your partner's, and any relatives you support.
  2. Your receipts. Date paid, who it was for, what it was (picked from the CRA's list of common medical expenses), the amount and what insurance covered.
  3. The answer. It tries every 12-month period ending in 2025 that starts or ends on one of your receipt dates, works out both partners' claims for each, and keeps the best. Because the credit is non-refundable, it also estimates each partner's federal tax and won't recommend someone who has too little tax for the credit to reduce. You see the claim, about what it takes off federal tax, who should file it, a timeline of which receipts fall inside the period, and a table of receipts by person.
  4. Before you file. What to keep on file: a prescription for items that need one, a written certification or an approved Form T2201 where the CRA requires it, which receipts don't count (over-the-counter drugs, vitamins, gym fees), and which fall outside the period and may carry to next year. The page prints as a summary you can hand to whoever does your taxes.

For the demo I took the CRA example's amounts and incomes and gave the receipts dates, added two small receipts, and assumed Rob, the 19-year-old, has $8,000 of income (the CRA doesn't give his). With those assumptions the best period runs July 15, 2024 to July 14, 2025. Richard claims $5,040 on line 33099 and $1,060 for Rob on line 33199, about $885 off federal tax. Using only January to December 2025 would claim $4,250 less on line 33099, roughly $616 in tax, provided the late-2024 receipts weren't already claimed on the 2024 return.

Nothing is uploaded. There's no account or server, and everything saves in your browser.

How I built it

Plain HTML, CSS and JavaScript on GitHub Pages, with no build step and no libraries.

  • rules.js holds the 2025 numbers: the $2,834 threshold, 3% of net income, the 14.5% federal rate, the 2025 brackets and basic personal amount for the tax estimate, and a subset of the CRA's expense list with its prescription and certification flags.
  • calc.js is pure functions. The best 12 months always start or end on a receipt date (or are the calendar year), so checking those covers every case without scanning every day.
  • test.js checks the CRA's Richard and Pauline numbers to the dollar, period maths including a February 29 start, reimbursed, already-claimed and ineligible receipts, the tax estimate, and that a partner with almost no tax isn't picked just because their claim is bigger.

Accessibility

Every input has a visible label. It works with a keyboard alone, with a gold focus ring. Results are announced through a polite live region after you stop typing. The timeline has a text description of the period and how many receipts it holds, and its markers use shape (filled, hollow, dashed) as well as colour. It prints cleanly.

Challenges I ran into

The 2025 credit rate. It is easy to assume 15%, but the lowest federal rate dropped to 14% on July 1, 2025, so the CRA uses 14.5% for the full year. I confirmed it on the CRA's "what's new for 2025" page.

Who should claim. "Lower income claims" is the usual advice, but the credit can't go below zero tax. A partner earning $17,000 owes very little federal tax, so a bigger claim on their return can be worth less. The planner compares the credit each partner can actually use.

Accomplishments that I'm proud of

It reproduces the CRA's worked example exactly, and it shows its working: the line-by-line sum, the timeline and the comparison with the other partner are on screen, so you can check it.

What I learned

How much the dates matter. In the demo, moving the 12 months from the calendar year to July-to-July claims $4,250 more on line 33099 without adding a single receipt.

What's next

The refundable medical expense supplement for lower-income workers, provincial credits starting with Ontario, and importing pharmacy and insurer statements.

I work in Canadian mortgage finance, where tax returns are part of every file, and this line is one that's easy to get wrong.

Share this project:

Updates

Submission history