If you are worried about completed dental work slipping through the cracks and never being billed to insurance, this report is for you. This open dental procedures not billed query identifies completed procedures that do not have an associated insurance claim, helping you catch missed revenue before it becomes an aging nightmare.
The Query
Copy and paste the following code into your User Query window. This query looks for completed procedures (status 2) for active patients that are not currently attached to any insurance claim.
SET @FromDate = '2026-01-01';
SET @ToDate = '2026-03-31';
SELECT
p.LName,
p.FName,
pl.ProcDate,
pc.ProcCode,
pc.Descript,
pl.ProcFee
FROM procedurelog pl
INNER JOIN patient p ON pl.PatNum = p.PatNum
INNER JOIN procedurecode pc ON pl.CodeNum = pc.CodeNum
LEFT JOIN claimproc cp ON pl.ProcNum = cp.ProcNum
WHERE pl.ProcStatus = 2
AND pl.ProcDate BETWEEN @FromDate AND @ToDate
AND p.PatStatus = 0
AND cp.ClaimProcNum IS NULL
ORDER BY pl.ProcDate;
How to Run This Query
- In Open Dental, go to Reports in the Main Menu.
- Click User Query.
- Paste the query provided above into the large text box.
- Click Submit Query.
- The results will display in the grid below.
Understanding the Results
- LName/FName: The patient's last and first name.
- ProcDate: The date the procedure was completed.
- ProcCode: The ADA procedure code (e.g., D0150, D1110).
- Descript: The description of the procedure code.
- ProcFee: The fee charged for that specific procedure.
If a patient appears on this list, it means the procedure is marked as "Complete" in their Chart Module, but the system cannot find a corresponding insurance claim record for it.
How to Customize
You can easily adjust the date range to look for older or newer missed billings.
- Change Date Range: Modify the two lines at the top of the query. Change the dates inside the single quotes (e.g.,
'2026-01-01') to your desired start and end dates. - Filter by Provider: If you only want to see procedures for a specific provider, add this line to the
WHEREclause:AND pl.ProvNum = 1(replace1with the actualProvNumfrom your provider list).
Variations
Only Patients with Insurance
If you want to ignore patients who are strictly "self-pay" and only see procedures for patients who actually have insurance plans attached, add this line to the WHERE clause:
AND p.PatNum IN (SELECT PatNum FROM patplan)
Skip the Query — Use DentalCanvas Instead
Don't want to write SQL? DentalCanvas connects to your Open Dental database and shows you this data automatically in a visual dashboard — no queries required.
This article is provided by opendentalsupport.com, an independent community resource. We are not affiliated with Open Dental Software, Inc.