Inspiration
When the FDA approves a new drug, independent practices can't bill it normally for a long time. It usually takes 6–9 months to assign the drug its own billing code, and until it does, claims have a generic "temporary" code, which is priced by hand and is rejected when anything is missing. On top of that, practices buy these drugs up front and out of pocket, and wait to be reimbursed. So, small practices wait, and their patients wait with them. The Impiricus challenge asked for a new way to engage doctors, and we saw a better one than another message: we help doctors get new drugs to patients once the drug maker has told them it exists, instead of several months after.
What it does
FirstDose takes a newly approved drug from launch to a paid claim. A drug maker enters the drug, FirstDose pulls its FDA and CMS data automatically, and every practice is notified. The doctor sees at a glance whether their practice can take the drug on, then sets up the team with one click, and each staff role gets its tasks in order. For each patient, FirstDose works out the right dose, uses AI to make sure the doctor's notes meet the insurer's requirements, and prepares a claim that's checked for mistakes before it's sent. When the drug later gets its own billing code, FirstDose switches to the new code automatically.
How we built it
We built FirstDose on a stack that includes the following:
Backend: Python with FastAPI and Pydantic, split into one module per stage of the product (consider, prepare, treat and bill, switch). All the billing rules, including dose and vial math, code selection by date of service and waste modifiers, live in pure, fully tested Python functions. Data and login: Supabase Postgres stores drugs, practices, patients, team tasks and claims, with row-level security locked down so only our backend can touch the data. Google sign-in runs through Supabase Auth. AI: we integrated the Claude API with structured JSON output to pull dosing and clinical facts out of FDA labels and to check visit notes against insurer requirements. Every AI answer is backed by a verbatim quote from its source. Real data: live openFDA labels, packages and approvals, CMS's quarterly drug pricing and billing-code files, and the national NPI registry, so every number traces back to an official source. Frontend: a responsive React and Vite app with a custom, accessible design system built for busy clinical staff.
Challenges we ran into
We ran into numerous challenges while creating FirstDose. Medical billing is full of exceptions: the code is chosen by the date the drug was given, not the date it was bought. A generic code bills one unit while a drug's own code bills by the milligram. Wasted drug from a single-dose vial needs its own claim line. Another challenge was governing the AI and keeping it honest, because we couldn't let it mark a requirement as met without evidence from the note. In addition, some information isn't public for brand new drugs, such as its price and insurer policies, which is why the drug maker enters them. Realism mattered too: our first placeholder billing code turned out to belong to a real, different drug, so we switched to real FDA and CMS data wherever it exists. Finally, three people working in parallel meant a lot of merge conflicts during production, which was a challenge in itself.
Accomplishments that we're proud of
The whole path, from launch to consider to prepare to treat to bill, works end to end on real regulatory data. The code-change feature is real rather than a mock-up: CMS's own October 2026 file gives VYKOURA its own code, J0644, on Oct 1, 2026, and FirstDose switches that drug's claims on exactly that date. We're also proud that the AI shows its evidence instead of just giving answers, and that the claim builder catches the mistakes that get these claims rejected before they're ever sent.
What we learned
We learned how much money and risk sits between an FDA approval and a practice's first paid claim, and that the bottleneck is paperwork and cash timing, not medicine. Along the way we learned the rules behind that gap: CMS's quarterly code cycle, Medicare's requirement to pay a clean claim no sooner than day 14 and no later than day 30, how generic-code claims get priced, and the JW/JZ modifiers for wasted versus fully used drug. On the engineering side, we learned to let AI handle reading and judgment, keep the money math in simple tested code, and label every number with where it came from.
What's next for FirstDose
Some goals for next steps includes: we want AI to read insurer policy documents and CMS's quarterly code decisions, so new policies and code changes arrive without anyone typing them in. We also want to read distributor invoices directly from PDFs, submit claims through a clearinghouse instead of exporting them, and connect to practice EHRs so patients and notes come in automatically. For drug makers, we'd add an opt-in, anonymized view of where practices get stuck, only showing groups of five or more practices so no single practice can be identified.
Built With
- anthropic
- claude
- dailymed
- fastapi
- google-oauth
- httpx
- javascript
- nppes-npi-registry
- openfda
- postgresql
- pydantic
- pytest
- python
- react
- react-router
- sql
- supabase
- tailwindcss
- three.js
- uvicorn
- vite
Log in or sign up for Devpost to join the conversation.