All builds Book a call
Healthcare · dental · insurance · Tri-Valley Dental · October 2026

Putback, an insurance checker for a dental front desk: coverage checked two days before every visit, and every unpaid claim given a status and a next step.

Insurance problems used to surface at the visit or months later on the aging report. Putback puts them in front of the desk two days ahead, and every claim that hasn't paid comes with a status and the next step, in plain words.

2 daysahead every patient on the schedule sent to the insurer before the visit, with the ones who need something, or need a call, listed first Before the visits runs over the practice's schedule export about two days ahead of the appointments.
16situations from what the practice's front desk told us, each answered with the exact words to ask the patient
Before the visits screen with sample patients: five marked Attention at the top, each with a plain reason and a Do line, above patients marked Ready
The schedule, checked two days ahead, with the patients who need something first. Sample patients.
What was broken

Before

A one-dentist PPO practice checked insurance by hand, insurer portal by insurer portal, and worked unpaid claims from an aging report that says how old a claim is but never why it hasn't paid. Every insurer wants different details, some won't find a patient by name and birthday at all, and a claim left too long can miss the insurer's timely filing limit.

What I built

The build

What changed

Before and after

Before

By hand
Checking coveragePortal by portal, by hand
A patient with a problemFound at the visit
An unpaid claimA line on the aging report
What each insurer needsLearned call by call

After

The system
Checking coverageThe whole schedule, two days ahead
A patient with a problemListed first, with what to ask
An unpaid claimA status and a next step
What each insurer needsOne grid, from the same rules
Where the numbers come from. Checks go through a healthcare clearinghouse at about 30 cents each at its published rate. Every screen on this page uses sample patients.
For engineers

How it's built

Architecture
A Python service with a one-page web front end. Coverage checks are X12 270/271 eligibility requests through Stedi; claim status is 276/277. Deterministic code reads every insurer's answer: plan-year against coverage dates, ranked maximum and deductible rows, split categories (a crown at 60% beside a repair at 90%), DeltaCare facility matching. The schedule and the aging report come in as the exports the desk already makes, so nothing has to connect into the practice software.
Where it runs
On the practice's own computer, answering only on that machine unless a password is set, with the clearinghouse as the one outside connection.
Tests and evals
210 automated tests across 14 files, plus 12 recorded insurer answers from the clearinghouse's test mode. Three QA passes and a review against 15 test requests to sample insurers.
Cost and latency
About 30 cents a check at the clearinghouse's published rate for the first 250 a month.
Guardrails
It never guesses. A check that is missing a detail says what to ask the patient instead of sending a guess, and an incomplete search never tells the desk to resubmit. An insurer that does not answer claim status electronically, like MetLife, is marked Call rather than given an answer it never sent.
The tradeoff we chose
Why this way and not the other

No direct connection into Dentrix yet. The schedule export and aging report the desk already makes are enough to run on, and an approved integration costs thousands up front. A direct connection comes once enough practices on the same software are using it.

Keep going