Cookie preferences

Choose what we may use. Strictly necessary cookies keep you signed in and can't be turned off; everything else is your call and changes nothing about how the site works. You can change your mind any time from the footer.

Marketing attribution for Dentists

Which ads actually filled the chair?

Match your practice-management export to your call and ad data, and see which channels produced treatment that was actually paid for.

  • No card required
  • Nothing to install
  • Cancel anytime
Bright Row Dental August 2026 Sample data
Treatment traced to a channel

$207,000 68% of $304,400 paid

  • Google Ads $124,800 · 41%
  • Meta Ads $54,800 · 18%
  • Email marketing $27,400 · 9%
  • Direct / Unknown $97,400 · 32%
Direct / Unknown is shown, never shared out across the channels above.
Consult · Mar 12(512) 555-0134 · Google Ads
Implant case accepted · Jun 3$4,000 · 512.555.0134
Matched three months later

The blind spot

What's actually happening

You know how many calls the ads produced. You do not know how many became a $4,000 implant case and how many were a cleaning that never rebooked — so the ad spend decision is made on call volume, which is the one number that does not pay the lease.

What you get

Built for Dentists.

Treatment value, not call count

Rank channels by the treatment they produced, so a channel with fewer, larger cases wins properly.

Long treatment plans still match

A consult in March that accepts in June still matches the ad that produced the call.

Patient data stays yours

Encrypted, isolated to your practice, deletable in one click. We are a processor, and there is a DPA.

A worked example

The number you can take into a budget meeting.

Not impressions, not leads, not cost per click. Closed revenue, by the channel that produced it, for a period you choose — with the portion we could not trace shown rather than quietly shared out across your paid channels.

Total revenue$304,400paid treatment
Attributed to a channel$207,00068% of revenue
Average deal$2,340per paid sale
Match rate64%of sales matched
ChannelSalesRevenueShare%
Google Ads38$124,80041%
Meta Ads31$54,80018%
Email marketing14$27,4009%
Direct / Unknown46$97,40032%
01

Call volume is the wrong number to buy ads on

Two campaigns produce forty calls each. One fills hygiene appointments; the other produces three implant consults, two of which accept. On call volume they look identical. On revenue they are not remotely comparable, and the practice that cannot tell them apart usually keeps funding the wrong one.

Dentistry makes this worse than most industries because the spread between a cleaning and a full-arch case is enormous. Averaging across them hides exactly the cases that pay for the marketing.

CloseRev ranks channels by the treatment value that was actually produced, taken from your own practice-management export. Not booked value, not estimated value — what was invoiced.

02

The treatment plan that accepts three months later

A consult in March that accepts a plan in June is the case a click-attribution tool loses. The cookie is gone, the session is long over, and the ad platform has closed the books on that month.

Because matching is on the patient's phone number or email rather than on a browser session, the June revenue is still credited to the March ad. It also means you can answer the question retroactively: the quarter that already closed can be analyzed on your first afternoon, without having had anything installed at the time.

03

What about patient privacy?

You are uploading patient contact details and treatment revenue, so this is a fair question and it deserves a direct answer. Data is encrypted in transit and at rest, isolated to your practice's workspace, and deletable — records and the original file — in one click. We act as a data processor and provide a DPA.

The match needs a phone number or an email, an amount and a date. Clinical notes, diagnoses and treatment codes are not needed and are not read, so the smallest export that works is also the least you ever hand over.

04

Production is a gross number and the insurer already spent part of it

A crown posted at $1,480 in a PPO practice is not $1,480 of anything. The contracted adjustment comes off before the money moves, the patient portion arrives on a different day from the insurer portion, and a practice participating in six plans has six different real prices for one procedure. Rank channels on production and you have partly ranked them on which insurers their patients happen to carry, which is not a marketing decision anybody made and not a thing any campaign can be adjusted to fix. The number looks precise, it comes out of the practice-management system, and it is answering a question nobody asked.

This matters more than it sounds, because plan participation and channel are correlated rather than independent. Insurance-directory traffic and searches phrased around what a plan covers deliver patients on the worst fee schedules in the practice. Searches for a named procedure, and referrals from existing patients, skew toward people paying their own way at the full fee. A production-based ranking flatters the first group and understates the second, and a practice acting on it funds the channel that fills chair time with the least profitable work available. That is the opposite of what the exercise was meant to achieve.

The correction is to export the collections column instead, or the net figure after adjustments where the system keeps them apart. The match itself has no opinion — it reads a contact detail, an amount and a date, and treats whatever number you send as the money. So the choice is yours, and the only real rule is to keep it the same from one month to the next, because a switch halfway through the year produces a trend line about your export habits. Run it both ways once: if the two rankings disagree about a channel, that disagreement is itself the finding.

05

Hygiene is where a new patient becomes a practice

The first visit is rarely where a general practice makes its money. The value of a new patient is the recall cycle: two hygiene appointments a year, the restorative work found during them, and eventually the crown, the root canal or the implant that pays for the whole relationship. A channel judged on the revenue from a patient's first appointment is being judged on the smallest number that patient will ever produce. The emergency-toothache channel wins that comparison every time, and contributes almost nothing to the schedule twelve months later, by which point the budget has already been moved toward it.

Run the same reconciliation across a full year and the ranking rearranges itself. Because the join is on the patient rather than on a browser session, every subsequent visit from that person traces back to the advert that produced the first one, whether it happened in March or the following February. Sources delivering patients who attend recall separate visibly from sources delivering a single painful evening and a patient nobody sees again. Neither is worthless, but they are different purchases, and a practice that funds them from one budget on one number cannot tell which of them it is buying.

This is also the honest argument against reading much into a single month. Thirty days of data ranks channels on urgency, because urgent problems are the only ones that start and finish inside thirty days, and a practice acting on that ranking will slowly convert itself into an emergency clinic. Comparing twelve months against the twelve before it asks about the thing a general practice actually sells, which is a patient list rather than a series of appointments. That longer comparison costs nothing extra to run, because the records were kept for billing regardless of whether anybody was measuring marketing at the time.

Why it matters

What changes when you can prove it.

You stop defending the budget and start growing it

"We generated 400 leads" invites an argument. "This channel closed $186,400 last quarter, here is the reconciliation" ends one. The teams that can show closed revenue by channel are the teams that get the next increase approved, because they are asking with evidence rather than with conviction.

You can cut the wrong channel without a fight

Killing spend is politically harder than adding it, because someone always owns the channel being cut. A number that reconciles to the sales export takes the argument out of the room — you are not overruling a colleague's judgment, you are reading the same ledger they are.

Your reporting survives the finance review

Platform-reported conversions do not reconcile to revenue, and eventually someone in finance notices. Reporting built from your own closed-sales export starts from the number finance already trusts, which is why it holds up when it is checked.

You answer in an afternoon, not a quarter

Because this reconciles exports rather than tracking visitors, it works on months that have already closed. You are not instrumenting now to learn something in ninety days — you can answer for last quarter today, which is usually when the question is being asked.

Honest answers

The pushback we hear from Dentists.

They say

Our practice-management software's export is ugly.

We say

It usually is. Any column layout works and any column order — you confirm the mapping once and it is the same next month. Extra columns are ignored rather than treated as an error.

They say

A third of ours will be Direct / Unknown.

We say

Probably, and for a dental practice that is genuine: word of mouth, a family member of an existing patient, someone who drove past the sign. That bucket is shown rather than redistributed across your paid channels, because inflating Google Ads with walk-ins would make the number useless for deciding anything.

They say

We already have call tracking numbers.

We say

Then you already have one of the two files. CloseRev takes the export your call tracker produces and joins it to what the patient actually paid — which is the part call tracking cannot see, because it ends at the call.

Pricing

Flat monthly pricing. No per-call fees.

The price here is the price on the invoice, plus any sales tax that applies — no per-call, per-minute or per-form fees. Growth usually fits dental practices running Google and Meta ads — thirteen months of history to compare a month to the same month last year, and a PDF you can put in front of whoever holds the budget.

Questions

Questions we get about Dentists.

Anything else? Talk to us — a person answers, usually the same day.

A list of completed, paid treatment: a patient phone number or email, the amount, and the date. Most systems have a production or collections report that already does this. Nothing clinical is needed.

Where your sales already are

What to export, by system.

All systems

Dentrix

Match accepted, completed and collected treatment to the campaigns and calls that produced the patient.

What to export

Curve Dental

Export collected production from Curve, upload the inquiries beside them, and rank marketing on what patients actually paid for.

What to export

Solutionreach

Use the patients Solutionreach messages as one side of the match and collected production as the other.

What to export

Birdeye

Export Birdeye conversations as your lead file, match them against closed revenue, and find out what the widget and the listings are worth.

What to export

Google Ads

Export the leads your campaigns produced, match them against closed sales, and find out which campaigns produced revenue rather than form fills.

What to export

NexHealth

Use NexHealth bookings as your lead file, match them against collected production, and separate the patients you acquired from the ones who rebooked.

What to export

Podium

Export your conversations, match them against closed sales, and find out what texting actually produced.

What to export

Weave

Export call records from Weave, match them against collected production, and find out what the phone was actually worth.

What to export

Yelp

Capture Yelp calls and requests as leads, match them against closed sales, and separate what the ads added from what the listing would have brought anyway.

What to export

WhatConverts

Export your WhatConverts leads, match them against your invoices, and see where the recorded values and the real ones part company.

What to export

Open Dental

Export collections from Open Dental, bring the referral source and your other lead files with them, and rank every source on what it collected.

What to export

Denticon

Export collections from Denticon, upload the leads behind them, and rank sources on the patients the group actually won — office by office.

What to export

CallRail

CallRail tells you which campaign produced the call. Match the caller against your sales export and find out which calls became money.

What to export

Start today

Stop guessing which ads pay off.

Upload two exports and see your real revenue by channel in minutes. 14 days free, no card.