The billing export
Most of the bad numbers I find in an ABA practice’s books did not come from the bookkeeping. They came from the export. A billing report built three different ways in three different months produces three different revenue figures, and nobody can tell you which one is right.
So before anything syncs anywhere, the export has to be built the same way every time. Here is the way.
Set the date range by date of service
Not by claim date, not by posted date. Date of service is what makes accrual reporting possible, and it is the only field that puts revenue in the month the work actually happened.
Run the full calendar month. Do not stop at the last submission date — late billing entered on the 3rd for service on the 28th belongs in the month it was delivered, and you will pick it up when you re-run.
Exclude the void labels
Voided and reversed activity still sits in the export unless you tell it not to. If you leave it in, your revenue is overstated by every claim you already knew was dead.
Filter out your void labels. If your practice does not have a consistent void label convention, that is the first thing to fix, because without it there is no clean way to tell a reversal from a real charge.
Agreed rates only
This is the one that costs practices the most.
An export that carries the full charge amount tells you what you asked for. An export that carries the agreed amount tells you what you contracted to collect. The difference between them is the contractual adjustment, and it is not revenue — it never was.
In CentralReach that means ClientChargesTotalAgreed and RateClientAgreed, not
their gross counterparts. Book agreed rates and your A/R is real. Book gross and
your A/R is a wish list, your net collection rate is meaningless, and every
month ends with a write-off that is not a write-off at all.
Turn on “has agreed charges”
The same filter does a second job: it drops the $0 administrative activity. Documentation time, internal meetings, anything logged for scheduling rather than billing — none of it has an agreed charge, and none of it belongs in a revenue report.
Without this filter a month of 4,800 lines might be 1,200 lines of actual billing and 3,600 lines of noise. The totals come out the same, but every per-line average, every utilisation figure and every code-level margin is wrong.
What you should end up with
One file, one calendar month, one row per billable line, carrying:
- Date of service
- Procedure code
- Funder
- Location
- Units
- Agreed amount
- Claim status
That is the file that can become a profit and loss statement you would actually show an owner. Everything downstream — revenue by service line, A/R by aging bucket, margin by procedure code — is only as honest as this export.
Then run it again
The most common mistake after building a good export is treating it as final. It is not. Claims get corrected, payors get changed, late billing arrives. Re-run the month and re-post it; a sync that cannot be re-run safely is a sync you will stop trusting by March.