If you need to quickly compare your monthly revenue against your actual cash intake to gauge practice health, this report provides the numbers you need. This open dental production vs collections query pulls your total completed production and total payments received for a specific date range directly from your database.
The Query
Copy and paste the following code into your User Query window. You can adjust the StartDate and EndDate variables at the top to fit the month you are analyzing.
SET @StartDate = '2026-01-01';
SET @EndDate = '2026-01-31';
SELECT
'Production' AS Category,
SUM(ProcFee * UnitQty) AS TotalAmount
FROM procedurelog
WHERE ProcStatus = 2
AND DateComplete BETWEEN @StartDate AND @EndDate
UNION ALL
SELECT
'Collections' AS Category,
SUM(SplitAmt) AS TotalAmount
FROM paysplit
WHERE DatePay BETWEEN @StartDate AND @EndDate;
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, showing your total production and total collections for the selected dates.
Understanding the Results
- Category: This column labels the row as either 'Production' or 'Collections'.
- TotalAmount: This column displays the dollar value for that category.
- Production: This is the sum of all procedures marked as 'Complete' (ProcStatus = 2) within your chosen date range, calculated by multiplying the procedure fee by the quantity.
- Collections: This is the sum of all payment splits recorded in the system for that date range. This includes patient payments, insurance payments, and any adjustments that were split to a payment.
How to Customize
You can easily modify this report to look at different timeframes or specific providers.
- Change the Date Range: Update the dates in the
SETstatements at the top of the query. Ensure you keep the format'YYYY-MM-DD'. - Filter by Provider: If you want to see production and collections for a specific provider, add a
WHEREclause to both parts of the query. For example, addAND ProvNum = 1(replace '1' with the actual Provider Number from your Provider setup) before theUNION ALLand at the end of the query.
Variations
If you want to see how much of your production was written off due to insurance adjustments, you can add a third section to the query:
UNION ALL
SELECT
'Write-Offs' AS Category,
SUM(WriteOff) AS TotalAmount
FROM claimproc
WHERE DateCP BETWEEN @StartDate AND @EndDate
AND Status = 1; -- Only includes received insurance claims
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.