Your case acceptance rate is a number your CRM can't see. Here's how to make it visible.
Case Acceptance Lab earns a commission if you sign up for HighLevel through our link. We only write about things we've built and tested ourselves.
Ask a practice what their case acceptance rate is and you get one of three answers: a number from the practice management software, a number from a consultant's spreadsheet, or a shrug. All three are usually wrong, and they're wrong in the same way - they measure dollars presented against dollars scheduled, in a system that has no idea what happened in between.
That gap matters, because the number itself doesn't tell you anything you can act on. "We're at 41%" is not a finding. "Cases over $5,000 sit for nine days before anyone touches them, and the ones that die mostly die on cost" is a finding. The second one is the one your CRM can produce, and almost nobody sets it up to.
Why the PMS number is the wrong number
Dentrix, Open Dental and Eaglesoft all report treatment planned versus treatment completed. That's an accounting view, and it has three problems if you're trying to improve anything.
It's lagging. A case accepted today and seated in November shows up as unaccepted for months. It's undifferentiated - a $180 filling and a $22,000 full-arch case are one number together, and they are not the same business. And it has no reason attached. The report can tell you a case didn't close. It cannot tell you whether the patient balked at the price, wanted to ask a spouse, went for a second opinion, or simply never got called back.
The last one is the one that costs the most, because it's the only cause that's entirely yours.
What to track instead: four numbers, not one
Break the single rate into four, and each becomes something you can fix.
Acceptance rate by case size. Split at whatever your high-ticket threshold is - $3,000 is a common line. Most practices discover their overall rate is being propped up by small restorative work while the cases that pay for the year sit at half that.
Time to first contact after presentation. Hours, not days, from "the coordinator finished the presentation" to "someone followed up." This is the single most controllable number in the list.
Lost reason. Cost, timing, second opinion, insurance denial, or silence. Five buckets, one required field, and it changes what you build next. A practice losing on cost needs financing that actually gets chased. A practice losing on silence needs a follow-up system, and no amount of financing will help it.
Recovery rate. Of the cases that didn't close on the day, how many closed later? If it's near zero, nothing is working the list.
How to build it in HighLevel
None of this needs a new tool. It needs an opportunity record with the right fields on it, and something that creates one every time a case is presented.
Start with a pipeline that models the case, not the lead. Consult Requested, Consult Booked, Consult Attended, Case Presented, Decision Pending, Accepted, Scheduled, Treatment Completed. The pipeline value is the treatment plan amount. Every case that gets presented gets an opportunity, including the ones you assume will close - especially those.
Add three custom fields on the opportunity: case value, case type, and lost reason as a dropdown with those five options. Make lost reason required to move an opportunity to lost. That single constraint is what turns your reporting from a number into a diagnosis.
Then automate the timestamp. A workflow that fires when the opportunity enters Case Presented and stamps the date, and a second one when the first follow-up goes out, gives you time-to-first-contact without anyone logging anything by hand. Anything you ask a front desk to log manually during a busy Tuesday will not get logged.
Build the dashboard last. Opportunities by stage filtered to case value over your threshold, conversion between Case Presented and Accepted, and a breakdown of lost reasons over the last 90 days. Three widgets. If you're running HighLevel already, this is an afternoon. If you're not, this is what we build ours in.
The part nobody does
Getting the case into the CRM in the first place is where this falls down. There is no native integration between HighLevel and Dentrix, Open Dental or Eaglesoft, so the treatment plan does not walk itself over. In practice one of three things has to happen: the coordinator creates the opportunity during the presentation, the opportunity is created from the consult booking and updated afterwards, or a middleware sync does it. We wrote up what actually connects them and what each route costs.
The route that survives contact with a real practice is the second one. The consult booking already creates a contact. Attaching the case to that contact at the moment the consult is marked attended costs the coordinator one dropdown and one number, and it happens while they're still sitting down.
What the number is for
A case acceptance rate you check monthly is a scoreboard. A case acceptance rate broken into four numbers, with a lost reason on every closed case, is a to-do list - it tells you which follow-up to build next, and it tells you a month later whether the thing you built worked.
That's the whole point of measuring it.
Read next: A treatment-plan pipeline is not a sales pipeline
Also: Connecting GoHighLevel to Dentrix, Open Dental or Eaglesoft: what actually works
The pipeline, the fields and the lost-reason tracking come pre-built in The Case Acceptance Layer.