Skip to content
TH Intelligence, home

Case studies

Stories from real work inside a primary care practice, anonymized. Each one says what was built, what was hard, what the logs measured, and what is not measured yet. No practice, staff, patient or health plan is named.

RPA bot means robotic process automation: software that clicks through screens the way a person does. It is not AI; it is the right tool for clicking, reading and matching.

Quality and care gaps

Tracking HEDIS and Star measures, prioritizing outreach and preparing chart reviews.

1,405 of 1,409

patients matched to their EHR chart

Source: Build notes and the bot's run logs, Oct 2026

Chart prep without the clicking

Before each chart review, medical assistants need to know what is already on file. An RPA bot opens each upcoming patient in the EHR, reads history notes and recent labs, and matches them to the quality measures. The hard part wasn't AI. It was getting every patient to the right chart.

Read the case study Quality and care gaps

29 of 29

test cases passed, including shifted, tilted, faded and already-filled scans

Source: Form-filling bench run, 14 Oct 2026

Requesting outside records by fax, one safe step at a time

Many conditions found in outside claims are real, but nothing can be done about them without the records. An RPA bot takes the patient's signed release, fills in the facility and fax number, and sends the request with a cover page. It passed every case on its test bench, and it is built so it cannot fax twice by accident.

Read the case study Quality and care gaps

Risk adjustment

Surfacing documentation gaps with the evidence behind every suggestion.

357 → 2,154

conditions confirmed as captured for one health plan, once the bot read the practice's own claims

Source: The bot's run logs and build notes, Oct 2026

Coding gaps, with the evidence attached

Plan claims files run weeks to months behind and barely show the practice's own visits. So an RPA bot reads the claims the practice actually sent, and a gap engine marks each risk-adjusting condition captured or open, with the evidence for every suggestion. A practice manager's audit of real rows became the rules that keep the list honest.

Read the case study Risk adjustment

30 / 20 / 50

weights for surveillance flags, spending trend and value-based balance

Source: Build notes, Jul 2026

One risk score anyone can read the reason for

The roster's first risk column was a placeholder with no data behind it, and its replacement disagreed with the patient page. The fix was a single 0 to 100 score that blends surveillance flags, spending trend and the value-based balance, with the breakdown shown in every patient's header.

Read the case study Risk adjustment

Value-based care finance

Dashboards for membership, utilization, spending trends and contract performance.

103

releases since July 2026, each tested on a staging site first

Source: Commit history, Oct 2026

One view of every member, across three health plans

Three plans, three file formats, and the surplus-and-deficit picture in a workbook: there was no single place to see one member's story. The finance dashboard puts claims, hospital and ER use, risk, value-based balance and upcoming visits on one page per member. It was built on de-identified data first and tested before any real record went in.

Read the case study Value-based care finance

507 → 277

apparent admissions became true admissions

Source: Commit history and notes, Jul 2026

Count events, not claim lines

Counting claim lines overstated ER visits about nine times and nearly doubled hospital admissions. The utilization engine merges day-by-day claim lines into real stays and visits, with length of stay and 30-day readmission flags.

Read the case study Value-based care finance

Front office and referrals

Insurance verification, pre-registration, referral routing and patient queues.

137

patients pre-registered on the first clinic day, with zero duplicates

Source: The bot's run logs and build notes, Sept–Oct 2026

Patients on the queue before they walk in

A patient used to appear on the front desk queue only when they arrived. An RPA bot now exports the schedule every 15 minutes and pre-registers the next two weeks of appointments, routed to the right desk, with insurance and copay filled in before the patient arrives.

Read the case study Front office and referrals

281

cards created on the first run

Source: Build notes, Oct 2026

A call board that closes its own cards

Follow-up calls for missed and cancelled appointments were reported as a number typed into a daily checklist. Now every missed or cancelled provider appointment becomes a card on a shared board, with phone and insurance filled in, and the card closes itself when the patient rebooks.

Read the case study Front office and referrals

Revenue cycle

Claim tracking, rejections, unbilled visits and re-bill worklists.

2,727

claims captured in the first history load, across 72 biller-days

Source: Build notes, Oct 2026

Billers stopped typing their own numbers

Billers used to type 'charts billed' and 'rejections' into the dashboard by hand. An RPA bot now reads the claims each biller sent, in every status, plus the clearinghouse's claim-status reports, every 30 minutes, and links each rejection back to its claim and its biller.

Read the case study Revenue cycle

15 s → under 1 s

year-to-date view after one query fix (a few seconds today, with features added since)

Source: Build notes, Oct 2026

The list of visits that were seen but never billed

There was no automatic list of visits that had been checked out but had no claim. The dashboard now compares checked-out insured visits with the claims the billing bot has seen and lists the gap, per biller and insurance.

Read the case study Revenue cycle

Operations

Live dashboards and daily performance reporting for every department.

4 + 47

on-site RPA bots and scheduled server jobs keeping the dashboard current

Source: Build notes, Oct 2026

A live operations dashboard for every department

In the first version, departments typed their daily numbers in by hand and the entries went stale. One by one they were replaced with live data from RPA bots, the EHR, the pharmacy system and the phone system, until the leadership tiles came straight from the work itself.

Read the case study Operations

248 → 13

prescriptions open past 14 days, after the cleanup

Source: Build notes, Sept 2026

Prescriptions that looked overdue but weren't

The pharmacy system's feed reports some events and not others, so reversed and picked-up prescriptions stayed open on the dashboard and showed up as falsely overdue. A live connection with automatic cleanup cut the open-past-14-days list from 248 to 13.

Read the case study Operations

Start with 20 minutes.

Bring one process that eats your team’s day. We’ll talk through what to measure first, and whether automation or AI fits it at all.