If you need to see exactly how much revenue specific procedures are generating over a set period, this report provides the granular detail that standard summary reports often miss. This open dental production by procedure query allows you to analyze your practice's performance by individual procedure code, helping you identify your most profitable services.
The Query
Copy and paste the following code into your User Query window. This query filters for completed procedures (status 2) for active patients.
SET @FromDate = '2026-01-01';
SET @ToDate = '2026-01-31';
SELECT
pc.ProcCode,
pc.Descript,
COUNT(pl.ProcNum) AS 'Count',
SUM(pl.ProcFee) AS 'TotalProduction'
FROM procedurelog pl
INNER JOIN procedurecode pc ON pl.CodeNum = pc.CodeNum
INNER JOIN patient p ON pl.PatNum = p.PatNum
WHERE pl.ProcDate BETWEEN @FromDate AND @ToDate
AND pl.ProcStatus = 2
AND p.PatStatus = 0
GROUP BY pc.ProcCode, pc.Descript
ORDER BY TotalProduction DESC;
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 the text box.
Understanding the Results
- ProcCode: The ADA or custom procedure code used in your office.
- Descript: The description associated with that procedure code in your fee schedule.
- Count: The total number of times this specific procedure was completed within your chosen date range.
- TotalProduction: The sum of the fees for all instances of this procedure, representing your gross production for that code.
How to Customize
You can easily modify this query to fit your specific reporting needs by changing the values in the SET statements at the top:
- Change Date Range: Update the
@FromDateand@ToDatevalues. Ensure you keep theYYYY-MM-DDformat. - Filter by Provider: If you want to see production for a specific provider, add this line before the
GROUP BYclause:AND pl.ProvNum = 1(Replace1with the actualProvNumfrom your provider list). - Filter by Clinic: If you have multiple locations, add this line before the
GROUP BYclause:AND pl.ClinicNum = 1(Replace1with the actualClinicNumfor your desired location).
Variations
If you want to see production for a specific category of procedures (like hygiene), you can add a filter for the procedure category.
Filter by Procedure Category:
Add this line before the GROUP BY clause:AND pc.ProcCat = 1
(Note: You will need to check your Procedure Categories setup in Open Dental to find the correct ID number for your hygiene category.)
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.