Pia drafts, the team sends
25 October 2026
Pia reads a practice’s inbox and writes a draft reply to every email. When a patient forwards a letter in which their private insurer or Beihilfe office cuts the bill, Pia checks each cut against the fee schedule and says, with a source, whether the cut holds.
Then it stops. Someone on the team reads the draft, changes what needs changing and presses send. Pia has no way to send anything. There is no code for it.
It started as something much smaller.
A search box with page numbers
The first version was a knowledge bot for one practice’s team. The first commit, on 29 September, already had document import, chat, tests and deployment. The question it had to answer: is this insurer allowed to cut this position?
The answers exist. They sit in fee schedule commentaries, statements from the dental chamber, court rulings and Beihilfe regulations. The knowledge base today holds 306 documents, split into 9,846 searchable sections, each tagged with file and page. Scanned rulings go through OCR first.
The model searches that base several times with different terms before it answers. Every factual statement has to name its source as file and page. If the base has nothing, the bot has to say that first. Only then may it search official websites, and anything it finds there gets a warning that it did not come from the practice’s documents. Those answers land on a report page, so I can see which documents are missing.
Every cut, one at a time
The case it was built for: a patient sends a cut letter as PDF or phone photo. Pia pulls out every single reason the insurer gives, with the fee number, and checks each one on its own. Each position gets a verdict: justified, partly justified or not justified.
Two distinctions matter more than anything else. Whether a dentist may bill something under the fee schedule is a different question from whether a tariff has to reimburse it. And private insurance disputes go to civil courts, Beihilfe disputes to administrative courts. The same position can come out differently. The prompt forces Pia to keep both apart.
If the team wants, Pia then writes a statement the patient sends to their insurer. The work is split by model. A small one transcribes attachments once. A mid-sized one runs the search and analysis loop. The largest one writes the statement.
Most mail is not a dispute
Five days in, the first lesson. I had built a system for insurance disputes. The mail a practice gets every day is appointments, X-ray requests, invoices and patients asking to move a date. A rescheduling request does not need a verdict table and three search rounds.
Since 4 October Pia first sorts every mail. Everyday mail gets one line of assessment, saying what it is and what has to happen internally, and a draft of two to five sentences. Anything it cannot know, like free slots or whether a payment arrived, goes into the draft as a placeholder. It does not guess. Medical questions get an offer of an appointment. Pia gives no medical assessment by email.
Every practice also has its own way of doing things. The owner describes them in plain words. Pia turns that into proposed rules, and only the ones the owner confirms apply. Some rules Pia refuses to propose at all, and says why: sending without a human check, answers without sources, passing patient data on without consent.
Into the inbox
On 9 October the chat window became an inbox. The practice connects its existing mailbox. Pia only reads what arrives after that moment and puts a draft for each mail into the drafts folder. Since 14 October it can also sort mail into four folders: reply ready, please check, for info, done. A mail counts as done when a reply shows up in the sent folder, whether the team sent Pia’s draft or wrote their own.
An inbox is also where strangers can write to your AI. To Pia, mail text is material. Requests in it that are aimed at an AI get ignored. My first wording told it to mention such instructions in its assessment. On 11 October I narrowed that: mention it in one sentence, and only when a mail actually contains one.
Why there is no send button
A wrong number in a letter to an insurer costs a patient money. A wrong sentence to a worried patient costs the practice trust. Both are cheap to catch in a draft and expensive once they are out.
So the line is fixed. Pia drafts. The team decides. Drafts are marked as AI suggestions in the tool, so nothing goes out unread by accident. It is the same rule I use for my own research routine: the agent gets as much trust as its work can be checked, and checking happens before anything reaches a reader.
Where it stands
On 15 October the bot got its name and its own address. A day later practices could sign the data processing agreement online. Without it, Pia will not connect a mailbox. Chats, rules and mailbox of each practice are kept strictly apart. From the first commit to that point were 35 commits in under three weeks.
Pia is a live pilot and invite-only. The team can rate every answer with thumbs up or down. The thumbs down land on a review page and are candidates for the test set I run before each prompt change.
Pia is an experiment from my lab, supercharged.sh. You can see it at pia.supercharged.sh.