# Revenue Leak Audit — Go To Market

Owner: Mike Rodgers (RIG). Solo operator. Last updated 2026-08-12.
All dollar figures trace to `app/engine.js` and match `PRICING.md`.

---

## 1. ICP

**Primary.** Owner-dentist of a single general practice.

| Attribute | Target |
|---|---|
| Annual collections | $900K – $2.5M |
| Active patients | 1,200 – 2,600 |
| Locations | 1, or 2 if recently acquired |
| Chairs | 4 – 8 |
| Staff | 6 – 18 |
| Practice management software | Dentrix, Eaglesoft, Open Dental, Curve, Denticon |
| Insurance mix | 55%+ PPO. Fee-for-service-only practices leak less and buy slower. |
| Decision maker | The owner. Not the office manager, though she will be in the room. |
| Age of practice | 6+ years. Enough ledger history for a 12-month scan to mean something. |

**Secondary.** Medspa doing $600K–$1.5M with an injectables membership program. Same six
categories, different labels: lapsed membership instead of lapsed recall, unredeemed package
balances instead of unused insurance benefits.

**Disqualify.**
- Under $600K collections. The leak is real but the fee is a real percentage of their month.
- Startup practices under 3 years. Not enough history, and the owner is buying patients, not efficiency.
- Already inside a DSO. Billing is centralized and the decision moves to a regional VP.
- Practices running a percentage-of-collections RCM vendor on a long contract. Wait for renewal.

---

## 2. Trigger Events

Ranked by how sharply they raise reply rate. These are the reasons the email arrives at the right moment.

| Trigger | Why it opens the door | How to detect it |
|---|---|---|
| **Second location acquired in the last 12 months** | Two ledgers, one office manager, no central billing. This is the highest-leak state a practice can be in. | Google Maps new listing, practice website "now two locations", LinkedIn post, state board license address addition |
| **PM software migration in the last 12 months** | Migrations drop treatment plan status and claim history. Leak spikes and everyone blames the software. | Open Dental / Dentrix user group posts, vendor case studies, front-desk job posts naming the new system |
| **New office manager** | The person who held the recall list in her head left. Nobody has re-run it since. | LinkedIn "started a new position", Indeed job post closed |
| **Associate hired in the last 6 months** | New provider, new coding habits, no calibration. Undercoding shows up within one quarter. | Practice website "meet our team" update, LinkedIn, ADA new-licensee lists |
| **Q4, any year** | Unused annual maximums expire December 31. Hard deadline, sharpest email in the sequence. | Calendar. Run this angle October 1 through December 10. |
| **Owner over 55 or listed with a practice broker** | Valuation is a multiple of collections. Recovered leak raises the sale price by roughly 5x the recovered amount. | Practice transition broker listings, LinkedIn, ADSO / Dykema attendee lists |
| **Front desk job posting open 30+ days** | Understaffed front desk means recall and claims are not being worked. | Indeed, ZipRecruiter, practice site careers page |

---

## 3. Cold Email Sequence

Five emails over 18 days. Plain text, no images, no tracking pixel on emails 1 and 2.
Send from mike@ the RIG domain, one thread, replies in-thread.
`{{First}}` = first name. `{{City}}` = practice city. `{{Practice}}` = practice name.

### Email 1 — Day 1
**Subject:** the $88K sitting in your Dentrix

{{First}},

Most practices your size are carrying somewhere around $88,000 in treatment that was diagnosed,
presented, and accepted, and then never got on the schedule. It is not a marketing problem. The
plan is sitting in the software with an accepted status and no appointment attached.

I built something that reads 12 months of ledger, schedule and claims data and returns the actual
number for a specific practice, itemized, with the patient names attached.

For a practice around $1.2M in collections it usually comes back between $250K and $420K a year
across six categories. About a third of that is realistically recoverable.

Worth me running it on {{Practice}}?

Mike

P.S. I am not selling software. There is nothing to install.

---

### Email 2 — Day 4
**Subject:** December 31

{{First}},

Following up with the one that has a clock on it.

If {{Practice}} has roughly 1,200 insured patients, about 500 of them are carrying an average of
$680 in unused annual maximum right now. On December 31 that money goes back to Delta and Cigna
and it does not come back.

Even at a modest capture rate that is low five figures of production that already has a payer
attached to it. The practices that get it are the ones who call in October with a dollar figure,
not the ones who send a "you are due for a cleaning" postcard in November.

I can tell you exactly which patients and exactly how much each one is holding.

Mike

P.S. This is the only category with a hard deadline. The other five will still be there in January.

---

### Email 3 — Day 8
**Subject:** what a $1.2M practice actually found

{{First}},

A general practice, similar size to yours, 1,650 active patients, $1.2M collections. Owner was
convinced they ran a tight ship, and honestly they mostly did.

The scan came back at $366,002 identified across six categories. The biggest single line was not
what he expected. It was $158,720 in lapsed recall / overdue hygiene: 44,442 dollars of that recoverable,
sitting in patients who had simply stopped coming and nobody had called.

Second was broken appointments. Third was $53,568 in claims over 90 days that had been
denied once and never re-worked.

He recovered $32,152 in the first quarter working the list. No new patients, no new ads.

Five business days, $2,500, and you keep the report either way. Want the number for {{Practice}}?

Mike

---

### Email 4 — Day 13
**Subject:** wrong person?

{{First}},

Three emails and no reply usually means one of three things.

Either you are not the person who would decide this, in which case tell me who is and I will stop
filling your inbox. Or the timing is wrong, in which case tell me a month and I will come back
then. Or you looked at it and it is not for you, which is a completely fine answer and I would
rather have it than the silence.

The only outcome I am trying to avoid is you finding out in January that half a million walked out
the door in {{City}} last year and nobody ran the numbers.

Which one is it?

Mike

P.S. If it is the second one, October is the month that matters. That is when the benefit expiry
work has to start.

---

### Email 5 — Day 18
**Subject:** closing this out

{{First}},

Last one from me, I will not keep going.

Standing offer, no expiry: if I run the audit on {{Practice}} and it does not identify at least
$25,000 in annual leak, you pay nothing and you keep the full report. That is 10x the fee. I have
not yet modeled a practice where it did not clear that bar, including the ones doing almost
everything right.

If that is still a no, no hard feelings. I will send one note in October when the insurance
deadline gets close and then I am out of your inbox for good.

Mike

---

## 4. LinkedIn Posts

### Post 1 — the number nobody ran

A dentist told me last month that his practice was "running clean."

$1.2M in collections. 1,650 active patients. Good team, low turnover, full schedule.

We scanned 12 months of his ledger.

$366,002.

That is what was leaking out of a practice everyone agreed was well run.

Not projected revenue. Not new patients. Money already earned or already diagnosed that never
finished the trip to the bank.

The largest line was $158,720 in lapsed recall / overdue hygiene. Patients who quietly stopped coming.
Nobody had called them because the recall list lives in a report that nobody opens on a busy day.

Second was broken appointments. Third was $53,568 in insurance claims over 90 days, denied
once, never re-worked, sitting on an aging report that had become wallpaper.

Here is the part that actually matters.

None of this was a people problem. His team was good. The information simply never reached anyone
in a form they could act on. A dashboard told him his recall percentage. It did not tell him which
47 people to call this morning.

A metric is not a task.

If your practice does more than $900K, the number is bigger than you think, and you can find it in
about five days.

#dentistry #practicemanagement

---

### Post 2 — stop blaming the front desk

Every consultant tells the dentist the same thing: your front desk needs to be better at follow-up.

I think that is mostly wrong.

I have now modeled dozens of practices and the pattern is consistent. The front desk is not lazy.
The front desk is handed a 60-page report and a full waiting room and asked to find the money in it
between phone calls.

Watch what actually happens on a Tuesday.

A patient accepts a $2,800 treatment plan in the operatory. The assistant walks her to the front.
The phone is ringing, two people are checking out, and the next patient is late. She says "we will
call you to get that scheduled." Nobody writes down who owns that call.

That plan is now revenue that exists in the software and nowhere else.

Multiply by eleven months.

The fix is not a motivational meeting. It is handing one person a list of 57 names, sorted by
dollar value, with a phone number next to each one and a place to log the outcome.

Same team. Same hours. The only thing that changed is that the work became findable.

Design the list before you critique the effort.

#dentalpractice #leadership

---

### Post 3 — the cheapest patient you will ever acquire

Dental practices will spend $2,400 a month on Google Ads to acquire a new patient at $280 a head.

The same practice has 500 existing patients who already know them, already trust them, already
have a chart, and have not been called in fourteen months.

Acquisition cost on those: one phone call.

I keep running into this and it never stops being strange.

The ad budget has an owner, a dashboard, a monthly review, and a vendor who calls to discuss
performance. The reactivation list has none of those things. It is a report somebody could run if
they thought of it.

So one channel gets managed like a business line and the other gets managed like a chore.

Run this yourself before you spend another dollar on ads. Pull every patient with no visit in 12
months and no future appointment. Multiply by your average annual patient value. For most practices
in the $1M range that number lands north of $150,000.

Then ask who owns it.

I am not against ads. I am against buying strangers at $280 while the people who already chose you
sit in a list nobody opened.

#dentistry #growth

---

## 5. Pricing and ROI Summary

Full detail in `PRICING.md`. The one-line version for a sales conversation:

> $2,500 for the audit. $1,500 a month if you want it re-run and pushed to the front desk.
> On a $1.2M practice that finds about $366,002 and recovers about $128,608 in year one.
> That is 6.3x on the full first-year cost, or 51x on the audit alone.
> If it does not find $25,000, it is free.

| Practice | Identified | Recovered yr 1 | Cost yr 1 | Return |
|---|---|---|---|---|
| Solo GP $1.2M | $366,002 | $128,608 | $20,500 | 6.3x |
| 3-location $2.8M | $831,278 | $290,620 | $44,500 | 6.5x |
| Medspa $850K | $207,959 | $75,021 | $20,500 | 3.7x |
| Well-run $1.2M (floor case) | $225,063 | $83,973 | $20,500 | 4.1x |

---

## 6. Top 3 Objections

### Objection 1: "My office manager already tracks this. We run our reports."

I believe you, and she probably does run them. The reports are not the problem.

Here is the distinction I would draw. Your software will tell you that recall compliance is 68%.
It will not tell you that 327 specific patients are overdue with nothing on the books, sort them
by what they are worth, and put them on someone's desk Monday morning. One is a metric, the other
is a task list.

The second thing is that no single report crosses categories. Unscheduled treatment lives in one
place, aged claims in another, unused benefits in a third. The same patient is often in all three
and nobody sees it because nobody joins those reports together.

I am not replacing your office manager. I am handing her the list she does not have time to build.

### Objection 2: "$2,500 is a lot for a report."

It is, and if it were a report I would not charge it.

What you get is a named work list. Every finding has a patient, a dollar figure, and the next
action. On a practice your size it typically identifies around $366,002 a year with roughly
$128,608 realistically recoverable. That is 51x the fee.

But the reason you should not worry about the $2,500 is the guarantee. If the audit does not
identify at least $25,000 in annual leak, which is ten times what you paid, you get the fee back
and you keep the report. I can make that promise because I have modeled the tightest practice I
can construct, 88% case acceptance, 88% recall compliance, and it still comes back at
$225,063.

So the real question is not whether $2,500 is a lot. It is whether you want to know the number.

### Objection 3: "I do not want anyone touching my patient data. What about HIPAA?"

Correct instinct, and it is the question I would ask first.

Three things. One, I sign a BAA before I get any access, not after. Two, the analysis runs on
hardware I own, physically, in my office. No patient data goes to OpenAI, Anthropic, or any cloud
API, because the models run on my own GPUs on an isolated network. That is not a policy promise,
it is an architecture.

Three, and this is the part most people do not expect: I do not need identifiers to find the
money. If you prefer, export with patient IDs only and no names. The audit works identically. You
hold the key that maps ID back to person, and the work list comes back keyed to your chart numbers.

Most owners take the BAA route because the named list is more useful. But the de-identified path
exists and it changes nothing about the number.

---

## 7. First 10 Prospect Types and Where To Find Them

**A note on Apollo, verified 2026-08-12.** The API key in `com.rig.env.APOLLO_API_KEY`
authenticates (`/auth/health` returns `is_logged_in: true`) but the account is on the **Free plan
with zero credits**. `mixed_people/search`, `mixed_companies/search` and `people/match` all return
403 `API_INACCESSIBLE`. Everything below is therefore written for the **Apollo web UI**, which
works on the current seat, or for sources that need no Apollo at all. Programmatic prospecting
needs a paid plan first. Do not build an automation against these endpoints until that is fixed.

| # | Prospect type | Why they leak | Where to find them | Opening hook |
|---|---|---|---|---|
| 1 | Solo owner who bought a second location in the last 12 months | Two ledgers, one office manager, no central billing. Recall and claims fall between the two. | Google Maps: new dental listings by metro, filter to practices whose website lists 2 locations. Cross-check state board license address additions (TSBDE, Dental Board of California publish rosters as CSV). Practice broker "recently sold" pages. | "You added a second location. Which of the two is the recall list actually being worked out of?" |
| 2 | Practice that migrated PM software in the last 12 months | Migrations drop treatment plan status and claim history. Accepted plans arrive at the new system as unaccepted. | Open Dental Users and Dentrix Users Facebook groups, sort by recent posts asking migration questions. Vendor case study pages. Indeed front-desk postings that name a new system. | "Migrations lose treatment plan status. Do you know what did not come across?" |
| 3 | Practice that hired an associate in the last 6 months | New provider, uncalibrated coding. Undercoding shows within one quarter and nobody audits a new doc. | LinkedIn Sales Navigator: title "Associate Dentist", filter "Changed jobs in past 90 days", geography by metro. State board new-licensee lists. Practice website team page changes. | "New associate coding is the fastest way to lose 3% of production without anyone noticing." |
| 4 | Owner 55+ preparing a sale or DSO exit | Valuation is a multiple of collections. Recovered leak is the highest-leverage dollar they will ever find. | Practice transition broker listings (Henry Schein PPT, Aftco, Menlo Transitions). ADSO Summit and Dykema DSO Conference attendee lists. LinkedIn seniority filter plus "Owner" title. | "Every dollar you recover before the valuation is worth about five in the sale price." |
| 5 | Medspa scaling injectables with a membership program | Unredeemed package balances and lapsed memberships. Same leak, no insurance involved. | AmSpa (American Med Spa Association) member directory. Instagram business accounts by metro with booking links. Aesthetic Extender Symposium and Vegas Cosmetic Surgery attendee lists. | "How much of your membership base is carrying an unredeemed balance right now?" |
| 6 | Practice with a brand new office manager | The recall list lived in the last manager's head. It left with her. | LinkedIn Sales Navigator: title "Office Manager" or "Practice Administrator", "Changed jobs in past 90 days", industry Medical Practice, company headcount 2-50. | "Your new manager inherited a recall list nobody has run in three months. Want to know what is in it?" |
| 7 | High-volume PPO or Medicaid practice | Thin margins per procedure make undercoding and denials proportionally brutal. Volume amplifies every coding habit. | Google Maps: practices with 400+ reviews in a metro. State Medicaid provider enrollment files (public in most states). Dentaltown forum "insurance" board regulars. | "At your volume a 3% coding gap is a full-time salary. Have you ever had it measured?" |
| 8 | Practice spending heavily on Google Ads or Facebook | Buying strangers at $280 while 500 existing patients sit uncalled. The spend proves they have budget and growth intent. | Meta Ad Library search by practice name and metro. SEMrush or SpyFu for practices bidding on "dentist near me". Dental marketing agency client pages. | "You are paying $280 for a stranger. What are you paying to call a patient who already chose you?" |
| 9 | Orthodontic practice with contract balances | Contracts are long, balances drift, and treatment-in-progress accounting hides unbilled milestones. | AAO Annual Session attendee list. LinkedIn title "Orthodontist" plus "Owner". Ortho-specific Facebook groups (Ortho Pearls, OrthoMarketing). | "Contract balances drift. When did you last reconcile treatment-in-progress against what has actually been billed?" |
| 10 | Multi-location group with no central billing office | Each location runs its own front desk with its own habits. Leak is uneven and invisible from the top. | Dental Group Practice Association member list. LinkedIn company headcount 50-200, industry Dentists. Group practice websites listing 3+ locations with one phone number. | "You have three front desks running three different processes. Which one is your worst and how would you know?" |

---

## 8. Channel Sequencing

1. **Weeks 1-2, warm proof.** Run the audit free for two practices in the personal network. Get
   the real numbers and one line of permission to quote. Everything below converts 3-4x better
   with a named local example.
2. **Weeks 3-8, cold email.** 40 contacts a day, the sequence above. Trigger-matched, not blasted.
   Volume is capped by trigger detection, not by list size, and that is intentional.
3. **Ongoing, LinkedIn.** The three posts above on a two-week rotation with new numbers each cycle.
   Objective is inbound from owners who self-identify, plus warming the cold list.
4. **October 1, the Q4 push.** Email 2 as a standalone one-off to the entire non-responder list.
   Hard deadline, highest reply rate of the year.
5. **Referral loop.** Every completed audit ends with one question: "who else should see their
   number?" Dentists talk to dentists in study clubs, and that is the real distribution channel.

## 9. What Is Not Built Yet

Honest list, so nobody sells past the product.

- No live PM-system integration. Delivery today is a CSV export the practice pulls, plus a
  screen-share to help them pull it. Dentrix and Eaglesoft direct connectors are not built.
- Apollo API prospecting is blocked on plan tier (see section 7). Manual UI export only.
- No BAA template drafted yet. Needed before the first paying client, not before the first demo.
- Medspa category mapping is designed but not implemented in `engine.js`. The six categories are
  currently dental-specific.
