What it is
Net collection rate is the money a practice collects divided by its net production. Net production is gross production minus contractual write-offs, the amounts the practice agreed not to charge under insurance contracts.
The gross collection rate divides collections by gross production instead. It is mostly driven by payer mix and fee schedules, so it says less about billing.
Why operators track it
- Cash. It shows how much of the work done turns into money.
- Billing quality. A falling net rate can point to claim denials, slow follow-up, or patient balances not collected.
- Fair comparison. The net rate lets offices with different payer mix be compared.
- Valuation and lending. Buyers and lenders may look at collections compared to production. (General observation.)
How it is calculated
Net collection rate = collections ÷ (gross production − contractual write-offs)
- Collections = patient and insurance payments received in the period, minus refunds.
- Contractual write-offs = fee minus the allowed amount under an insurance contract.
- Other adjustments, such as courtesy discounts or bad debt, are usually not subtracted. They count as money not collected.
- Gross collection rate = collections ÷ gross production.
Worked example
In one example quarter, gross production was $600,000. Contractual write-offs were $150,000, so net production was $450,000. The practice collected $432,000.
How to read it
- Use a long enough period. Payments arrive weeks after the work. Monthly rates jump around. A rolling 3 or 12 months is steadier.
- Look at the gap. The difference between net production and collections is still in receivables, written off, or lost. Check which.
- A rate above 100% for one month usually means old balances were collected. It is not a problem on its own.
- We do not publish a benchmark. Results depend on period, payer mix, and how adjustments are coded.
Definitional choices and common pitfalls
- Which adjustments are subtracted. Only contractual write-offs, or also others. This choice moves the rate the most. Write the list of adjustment types down.
- Period and lag. Same period, rolling period, or matched by date of service. Label it.
- Refunds. Subtract refunds from collections.
- Production basis. Use completed procedures at the practice's full fee.
- Estimated vs actual write-offs. Some systems post an estimated write-off at checkout and correct it when the claim pays. Decide which you use.
How different roles use it
| Role | How they use it |
|---|---|
| Owner dentist | Watches the rolling rate as a check on the business side of the practice. |
| Office manager | Uses it with aging reports to direct insurance and patient follow-up. |
| Billing staff | Works the gap: denied claims, unpaid balances, and misposted adjustments. |
| DSO regional manager | Compares locations on the same definition. |
Questions it answers
- How much of what we are owed do we collect?
- Is the rate falling at any location?
- How much is still uncollected, and where is it?
- How much does insurance contracting reduce production?
How to present it in a report
- A headline rolling net collection rate, with the period stated.
- A small waterfall: gross production, contractual write-offs, net production, collected, not yet collected.
- A monthly trend line.
- A table by location for DSOs.
Data you need
Fields
| Field | What it means | Example value |
|---|---|---|
| Procedure and fee | Completed procedures at the practice's full fee | D2740 crown, $1,450 |
| Adjustment type | The kind of adjustment, such as contractual write-off or courtesy | Contractual write-off |
| Adjustment amount | The amount adjusted | $310 |
| Payment | A patient or insurance payment, with date and source | $1,140, insurance |
| Refund | Money returned to a patient or payer | $60 |
| Location | The office | Maple Grove |
What the raw data looks like
Example data A few rows as they might come out of the source system.
| Date | Type | Detail | Amount | Location |
|---|---|---|---|---|
| Oct 14 | Production | D2740 crown | $1,450 | Maple Grove |
| Oct 14 | Adjustment | Contractual write-off | -$310 | Maple Grove |
| Nov 3 | Payment | Insurance | $910 | Maple Grove |
| Nov 20 | Payment | Patient | $230 | Maple Grove |
Where this data usually lives
- Practice management system (PMS) holds the schedule, procedures, fees, adjustments, treatment plans, and payments. For example: Dentrix and Dentrix Ascend (Henry Schein One), Eaglesoft (Patterson Dental), Open Dental.
- Insurance clearinghouse and eligibility tools hold claims, remittances, and payer details, which explain write-offs.
- Imaging systems hold x-rays and clinical images. They are rarely needed for these metrics.
- Payroll or HR may hold hours actually worked, if the schedule does not.
- DSO data warehouses combine data from many locations, sometimes from more than one PMS.
Common data gaps and traps
- Adjustment types mixed together. If contractual write-offs share a type with discounts, the net rate is wrong. Map every adjustment type.
- Estimated write-offs. Write-offs posted at checkout may be corrected later. Pull the final amounts.
- Payments not tied to a location. Insurance payments for many offices may be posted centrally.
- Short periods. A single month is distorted by payment timing.
Related metrics
- Production per hour: uses the same production and write-off data.
- Case acceptance rate: accepted treatment becomes production.
- Hygiene reappointment rate: a full hygiene schedule supports production.
FAQ
- What is the difference between gross and net collection rate?
- Gross divides collections by full-fee production. Net first subtracts contractual write-offs, so it shows how well the practice collects what it is actually owed.
- Why can the rate be above 100%?
- Payments for older work may land in the period. Use a rolling period to smooth this.
- Should courtesy discounts be subtracted?
- Usually not. They are a choice to collect less, so most definitions count them as not collected. Say which you do.
For your data teamFormula variants, tables, SQL sketch, and dashboard spec
Formula details
gross_production = SUM(fee) for completed procedures in period
contractual_wo = SUM(adjustment_amount) WHERE adjustment_type IN (:contractual_types)
net_production = gross_production - contractual_wo
collections = SUM(payments) - SUM(refunds) in period
net_collection = collections / net_production
gross_collection = collections / gross_production
Worked example detail
| Quarter | |
|---|---|
| Gross production | $600,000 |
| Contractual write-offs | $150,000 |
| Net production | $450,000 |
| Collections | $432,000 |
| Net collection rate | 432,000 / 450,000 = 96.0% |
| Gross collection rate | 432,000 / 600,000 = 72.0% |
Tables and fields
| Table | Fields | Notes |
|---|---|---|
procedures |
procedure_id, location_id, fee, status, completed_at | |
adjustments |
procedure_id, location_id, adjustment_type, amount, posted_at | Map types to contractual or other |
payments |
location_id, source, amount, received_at | Patient and insurance |
refunds |
location_id, amount, refunded_at |
SQL sketch
WITH p AS (SELECT location_id, SUM(fee) AS gross FROM procedures
WHERE status = 'completed' AND completed_at >= :start AND completed_at < :end GROUP BY 1),
w AS (SELECT location_id, SUM(ABS(amount)) AS wo FROM adjustments
WHERE adjustment_type IN (:contractual_types) AND posted_at >= :start AND posted_at < :end GROUP BY 1),
c AS (SELECT location_id, SUM(amount) AS paid FROM payments
WHERE received_at >= :start AND received_at < :end GROUP BY 1),
r AS (SELECT location_id, SUM(amount) AS refunded FROM refunds
WHERE refunded_at >= :start AND refunded_at < :end GROUP BY 1)
SELECT p.location_id,
(COALESCE(c.paid,0) - COALESCE(r.refunded,0)) / NULLIF(p.gross - COALESCE(w.wo,0), 0) AS net_collection_rate
FROM p LEFT JOIN w USING (location_id) LEFT JOIN c USING (location_id) LEFT JOIN r USING (location_id);
As a dashboard card
- Card type: KPI for the rolling net rate, a waterfall from gross production to collected, and a trend line.
- Measures:
gross_production,contractual_wo,net_production,collections,net_collection. - Dimensions: location, payer type, period.
Common mistakes
- Subtracting all adjustments, which hides money not collected.
- Using one month, which is distorted by payment timing.
- Forgetting refunds.