Appointment status: what each column means
One row per appointment, with what it was billed at and what has been paid on it.
This is the per-appointment view of your billing. Every row is one appointment on one day, priced, with the payment position on that appointment beside it. If you want to know the gap between what you charged and what actually arrived, this is the report that carries both numbers on the same line.
That pairing is rarer than it sounds. Most practice software makes you export the billed side from one report and the collected side from another, then join them yourself. This one does not.
Every column in the file
Appointment status
Date of Service, Client, Billing Code, Rate per Unit, Units, Total Fee, Client Payment Status, Charge, Uninvoiced, Paid, Unpaid
| Column | What it holds |
|---|---|
Date of Service | Decides the moneyThe day the appointment happened. This is the date everything on the row buckets by. |
Client | Names a clientThe person the appointment was for. This is the column that makes the file client-level. |
Billing Code | The service code the appointment was billed under. |
Rate per Unit | Decides the moneyThe price the appointment was billed at, per unit. |
Units | Decides the moneyHow many units were billed. Units are not minutes: this report does not carry appointment length, so a row of 1 unit tells you nothing about whether the session ran 30 minutes or 90. |
Total Fee | Not confirmedNamed for the appointment's full fee. We have not confirmed how it is filled, so nothing here reads it. |
Client Payment Status | Where the client stands on paying for this appointment. A private-pay export carries this in place of the insurance claim columns. |
Charge | Decides the moneyWhat the appointment was billed at. This is the billed side of the pair, and it is what gets read as billed revenue. |
Uninvoiced | Not confirmedNamed for an amount not yet put on an invoice. The exact rule is unconfirmed, so nothing here reads it. |
Paid | Decides the moneyWhat has actually been paid on this appointment. This is the collected side of the pair, and it is what gets read as collected revenue. |
Unpaid | Not confirmedNamed for the balance still owed on the appointment. Unconfirmed, and not read. |
Which columns decide practice economics
Four columns carry the money story. Date of Service sets which month a row belongs to, Charge is what you billed, Paid is what came in, and the distance between Charge and Paid across the whole file is your collection rate. Everything else on the row is context.
What this file cannot tell you
What we do not know
- Total Fee, Uninvoiced, and Unpaid are named on the header row, but we have not confirmed the rule SimplePractice uses to fill them, so nothing here reads them.
- This export came from a private-pay practice. A practice that bills insurance would very likely see a different set of columns, and we have not seen that version.
What will bite you
- Units is not minutes. The header row we hold has no appointment-length column at all, so clinical hours have to come from somewhere other than this file.
- The header row we hold carries no clinician column. On its own this report cannot say who delivered which appointment, which matters the moment there is more than one clinician. The Outstanding balances report from the same account does carry one.
Drop this exact file here
Drop this exact file into the step that removes client data. It runs on your own computer, strips the columns that name a client, and hands back clinician-level totals. Those totals are what the free Snapshot reads. Nothing is uploaded at any point.
Both steps run in your browser. No file is uploaded, and no client data is ever sent anywhere.
All the export files we have written up · Last checked 2026-08-13