Match medical bills against your EOBs

StackNext.jsClaude APISupabaseStripe

Market read pendingWe are still researching this idea.
How scoring works

The idea

Most people pay medical bills the way they pay parking fines: wince and pay. Yet a large share of bills contain errors — duplicate lines, charges the insurer already settled, balance billing the patient does not owe — and the document that proves it, the EOB, arrives separately and goes unread because comparing the two is miserable manual work. Professional bill advocates charge 25-35% of recovered savings, which tells you both that the errors are real and that self-serve tooling is missing.

The wedge is doing the reconciliation itself, not offering education or advocacy referrals. Two uploads, an extracted side-by-side table, and specific flags: this line exceeds what your insurer says you owe, this line appears twice, this line is not on the EOB at all. Then the follow-through most people never manage: a dispute letter citing the exact lines and figures, ready to send.

Who pays

Chronic-illness households, who receive bills monthly and for whom GBP 10 a month pays for itself with one caught error a year — a single flagged duplicate can be worth hundreds. The free first reconciliation converts at the moment of a scary bill. Distribution: condition-specific communities and forums where billing horror stories are a genre, personal-finance Reddit and newsletters, and SEO on “how to read an EOB” and “medical bill dispute letter”, both high-volume queries currently answered with generic advice instead of a tool.

MVP scope

  • Two-document upload with PDF and phone-photo support
  • Claude-powered line-item extraction with visible source snippets and editable cells
  • Matching table with per-row status flags and plain-English explanations
  • Generated, editable dispute letter citing flagged lines
  • Saved cases, loud data-deletion controls, free-first-bill Stripe pricing
  • Skip for v1: insurer portal integrations, claim submission, negotiation services, hospital price transparency data, and any automation of sending
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build BillCheck, a web app that reconciles a medical bill against the matching explanation of benefits and flags what the patient does not actually owe. Stack: Next.js (App Router), Claude API for document extraction, Supabase (Postgres + auth + storage), Stripe.

Core flow: user uploads two PDFs (or phone photos): the provider bill and the insurer's EOB for the same encounter. Claude extracts structured line items from each — dates of service, CPT/procedure codes where present, descriptions, billed amount, allowed amount, insurance paid, and patient responsibility — into a side-by-side matching table. Matching runs on code first, then date plus fuzzy description. Each row gets a status: matched and consistent, provider charging more than the EOB's patient-responsibility figure (possible balance billing), on the bill but absent from the EOB, duplicate line, or EOB says USD 0 patient responsibility.

Flagged rows feed a generated dispute letter: professional tone, citing the specific lines and EOB figures, addressed to the provider's billing department. User edits before downloading.

Pages: upload flow, reconciliation table with per-row status chips and plain-English explanations, dispute letter editor, saved cases list, and billing.

Implementation details: show the source snippet (cropped image region) next to each extracted row so users can verify numbers at a glance, and make every cell editable. Delete uploaded documents on request and say so loudly; trust is the product.

Pricing: first reconciliation free, then GBP 6 per bill or GBP 10/month unlimited via Stripe, pitched at chronic-illness households.

// More Consumer ideas