Skip to content
Book a demo
Menu

Protect

The dental write-off report: reading adjustments properly

How to split contractual PPO write-offs from courtesy adjustments, run the report by user and provider, and spot the rows that need a question.

3 min readUpdated 2026-10-13

Share
An adjustment ledger printout with several rows highlighted

Adjustments were $31,000 last month. Production was $180,000. Is that fine? Nobody can say until the $31,000 is split into the part the office agreed to in advance and the part somebody decided on the day.

The write-off report is where that split happens. It is also the report most owners never run by user, which is the one view that matters.

What is the difference between contractual and courtesy adjustments?

Type What it is Expected? Who should be able to post it
Contractual (PPO, HMO, Medicaid) Office fee minus the plan’s allowed fee Yes, on every in-network claim Insurance coordinator, at claim payment
Courtesy or professional Owner’s decision to reduce a fee Occasionally, with a note Owner or office manager
Senior, cash, family discount A published office policy Yes, if the policy exists Front desk, per the policy
Bad debt Account sent to collections or forgiven Rarely Owner only
Correction Fixing a posting error Occasionally, same day Whoever made the error

The first row is not a problem. The other four are decisions, and decisions have a person attached.

A contractual adjustment is the office fee minus the allowed fee
A contractual adjustment is expected on every in-network claim.

How do you run it in each system?

Open Dental. Set up adjustment types so that contractual and non-contractual have different names (Setup, Definitions, Adj Types). Then run the Adjustments report under Reports, filtered by date, adjustment type, provider and user.

Dentrix. Adjustment types live in Office Manager under Practice Setup. Run the Adjustment Summary from Office Manager, Reports, Ledger. Note that admin.adjustment_view carries no user column, so “by user” is only available through the Audit Trail Reports.

Eaglesoft. Adjustments are rows in transactions_header with type C (credit, reduces the balance) or D (debit), and adjustment_type names the reason. Run the Adjustments report from the Reports menu and group by adjustment type. The user_id on each row is the provider, so for the person who posted it you need the audit utility.

What does a healthy report look like?

Work through a month with numbers you can check.

  • Gross production: $180,000
  • Contractual adjustments: $27,000
  • Courtesy and discount adjustments: $2,800
  • Corrections: $900
  • Bad debt: $300

Net production is $180,000 minus $31,000, which is $149,000. The contractual share is $27,000 divided by $180,000, or 15.0%. That figure should move only when payer mix moves. The non-contractual share is $4,000 divided by $180,000, or 2.2%, and every dollar of it is a decision someone made.

Now run the $4,000 by user. If three people post courtesy adjustments and one of them posted $3,100 of the $4,000, that is the row to ask about. The answer may be “the doctor told me to” every time. It may not.

Non-contractual adjustments as a share of gross production
Every dollar of the non-contractual share is a decision someone made.

Which rows deserve a question?

  • A courtesy adjustment on an account that also had a payment deleted within the previous 30 days.
  • A PPO adjustment on a patient whose insurance is fee-for-service or none.
  • Adjustments posted by a user outside their role in the table above.
  • Round amounts that exactly match a patient’s share after insurance.
  • A rising non-contractual share month over month with no new discount policy.
  • Adjustments posted after hours.

None of these is evidence on its own. Each one is a reason to open the account ledger and read the sequence of entries.

How often should the owner look?

Weekly for the by-user view, monthly for the contractual share. Fifteen minutes a week is enough. The prevention page puts this review into a short weekly routine alongside deleted payments and the deposit check.

What Calibic adds

Protect is LIVE and includes a write-off card. Calibic reads adjustments read-only from each system, splits contractual from non-contractual using your own adjustment type names, shows the non-contractual share by user and provider, and flags the specific sequences above (a courtesy adjustment following a deleted payment, an adjustment type that does not match the account’s insurance). Where the system does not record who posted the row, Calibic says so instead of guessing. It never writes to the practice software.

Next step: the Protect product page.

Useful? Send it to the person who runs your front desk.

Share this page

Questions people ask

What does PPO write-off mean?

When a practice is in network with a PPO plan, it agrees to the plan's fee schedule. The difference between the office fee and the allowed fee is the PPO write-off. It is a contractual adjustment, expected on every in-network claim, and it is not a loss the office could have collected.

What is a write-off example?

Office fee for a crown is $1,400. The PPO allows $950. The $450 difference is written off as a contractual adjustment. If the office then forgives a further $100 of the patient's share, that $100 is a courtesy adjustment and belongs in a different bucket.

Keep reading

See it on your own data

Read-only toward Open Dental, Dentrix and Eaglesoft. A Business Associate Agreement is sent with every sign up.