Physical Therapy Billing: AI Checks for Claims and Time Entries

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Physical Therapy Billing: AI Checks for Claims and Time Entries.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Physical Therapy Billing: AI Checks for Claims and Time Entries.

A PT practice can export the day's billing lines, compare minutes against units with spreadsheet rules, then have AI read each session note against what was billed and flag mismatches before the claim goes out. A biller reviews every flag. AI flags, it never picks codes, and each payer's own rules decide what is correct.

Code lists are easy to find. The harder and more valuable step comes just before submission: catching the mismatch between what the therapist wrote and what the claim says, while it is still cheap to fix. A denied line costs a resubmission, a phone call or a write-off. A flagged line costs a minute of someone's attention.

Follow me on Instagram@sagnikteaches

Two kinds of check, and why they need different tools

Claim errors fall into two groups, and mixing them is the commonest reason these projects disappoint.

Connect on LinkedInSagnik Bhattacharya

The first group is mechanical: units that do not match minutes, a missing modifier, a duplicated line, a date of service outside the approved window, a signature missing. These have a right answer that can be written as a rule. A spreadsheet applies rules perfectly and for free. Asking a language model to do arithmetic on 200 lines is slower and sometimes wrong.

Subscribe on YouTube@sagnikteaches

The second group is meaning: the note says the therapist spent most of the session on gait training and balance, but the billed lines are all manual therapy; the note describes a re-evaluation but no evaluation line was billed; the note says "patient left early" while the line shows a full hour. These need reading, and reading is what AI does well. So the sound design is rules first, AI second, a person last.

CheckBest toolWhy
Minutes against units for timed entriesSpreadsheet formulaPure arithmetic against a payer table
Duplicate lines on one date of serviceSpreadsheet formulaExact matching
Date of service inside the authorised windowSpreadsheet formulaDate comparison
Missing signature or note not finalisedExport filter from practice softwareA status field, not a judgement
Note content against billed linesAI reading, human decisionNeeds understanding of free text
Patterns across denied claimsAI summary, human checkMany reason texts to group
The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

The time-entry rules table (build this before touching AI)

Timed entries are where small practices lose most. Many payers convert minutes to units in 15-minute blocks with a threshold, and they differ on whether units are worked out per service or from total timed minutes. Do not trust a general article, including this one, for your payers' rule: open each payer's published policy and copy what it says into a table.

For illustration, imagine a practice whose main payer uses total timed minutes with 15-minute units, a first unit from 8 minutes. That policy would produce this lookup.

Total timed minutesUnits allowed (illustrative payer)
0 to 70
8 to 221
23 to 372
38 to 523
53 to 674

Put your real table on its own sheet with three extra columns: the payer, the date you read the policy and a link or document name. Untimed services such as an evaluation need their own list so the formula does not try to convert them to units. A rule without a source and a date will eventually flag good claims and let bad ones through.

One Tuesday's 22 billing lines, checked end to end

An illustrative practice with three therapists exports 22 billing lines for one day from its practice software. Patient names are replaced by a reference number; the session note text has identifiers removed. A column called MinutesRecorded comes from the timer or the therapist's entry, and UnitsBilled from the claim.

First, the spreadsheet. A formula looks up total timed minutes for each patient-day in the table above and compares it with total units billed. In the example it flags four patient-days.

RefTimed minutesUnits allowedUnits billedResult
P-04124033Match
P-04173423Over by 1
P-04335233Match
P-04392012Over by 1
P-04413832Under by 1
P-0452601Over by 1

Three over, one under. Notice the under-billed line: a good check flags money left on the table as readily as money at risk. The biller opens each flagged record and finds out why. P-0417 turns out to be a timer left running; the therapist confirms 28 minutes, so two units is correct and the claim line is fixed down. P-0441 is the reverse: the timer shows 38 minutes but only two units reached the claim. The therapist confirms the session did run 38 minutes, so the third unit is added and the confirmation is noted in the record. No one adjusts time to make a number fit.

That is the point where rules end and AI starts. The other records matched on units, but a match on units does not prove the note supports the lines. For those, the biller pastes the line details and the de-identified note into the prompt below.

You are checking a physical therapy practice's claim lines against the
session note before submission. You do not choose or suggest billing
codes and you never suggest adding time or services. Flag mismatches in
BOTH directions: billed but not documented, and documented but not billed.

For each record, answer:
1. Does the note describe each billed service? Quote the phrase that
   supports it, or write NONE FOUND.
2. Does the note describe any intervention that has no billed line?
3. Does the note contain anything that conflicts with the minutes
   (for example "left early", "session cut short")?
4. Is the note signed and dated on the date of service? (Say if you
   cannot tell.)
Give a verdict per record: OK, REVIEW or MISSING DOCUMENTATION, with
one sentence of reason. Do not rewrite the note.

Record format: reference | minutes | billed services | note text
[paste records here]

An illustrative response for two records:

P-0455 | REVIEW
Billed: therapeutic exercise (3 units), manual therapy (1 unit)
Note supports: exercise ("progressed resisted knee extension, 3 x 12").
Manual therapy: NONE FOUND in the note.
No conflict with minutes.

P-0460 | OK
Billed: gait training (2 units). Note: "gait training with a frame
over 12 m, cues for step length, 25 minutes". Signed on the date.

The biller now asks the therapist about P-0455. Either the manual therapy happened and the note needs an addendum written by the therapist, or it did not happen and the line comes off. The AI settled neither; it found the question.

Reading flags without letting them become a push to bill more

Any billing tool can quietly turn into a revenue pump. If a prompt rewards "found missing services", staff learn that the model likes more billed lines. Three habits keep the check honest.

  • Two-direction prompts. The prompt above asks for billed-but-undocumented first, because that is where audit exposure lives.
  • A monthly direction count. In the flags sheet, tally how many flags would lower a claim and how many would raise it. A practice where 90 per cent of flags point up should look at itself.
  • Therapist confirmation for any change. Time and services only change when the treating therapist confirms what happened, in writing in the record. A biller never edits a clinical fact.

The tutorial on human review for AI work without slowing down describes the same principle for other tasks: the model proposes, a named person decides, and the decision is recorded.

Documentation match: the five patterns the model finds well

With a few hundred reviewed records you will see the same families of mismatch. Knowing them lets you word the prompt to look for them and train the team to prevent them.

PatternExample, illustrativeWhat the fix usually is
Billed, no supporting textNote describes exercise only; manual therapy is on the claimTherapist addendum or line removed
Copied-forward noteThree consecutive notes with identical wording and numbersTherapist rewrites to reflect that day
Minutes that do not fit the sessionNote says "patient arrived 20 minutes late", billed 60 minutesCorrect minutes from therapist
Intervention without a goal linkTreatment described, plan of care goal not referencedAdd the link in the note
Missing re-evaluation contextProgress change described but no re-evaluation recordedTherapist confirms whether one was done

The copied-forward pattern deserves a note. Practice software makes it easy to carry a previous note into a new one, and payers and auditors look for it. AI is good at spotting near-identical text across several notes for one patient. Ask for it explicitly: "Flag any record whose note text is more than 80 per cent identical to the previous visit for the same reference." Treat 80 per cent as a rough prompt, not a threshold with legal meaning.

Finding denial patterns in a month of rejections

Pre-submission checks reduce denials; they do not remove them. The second use of AI is reading what came back. Export the month's denied lines with the payer's reason text, drop identifiers, and ask for groups.

Below are de-identified denied claim lines with the payer's stated
reason. Group them into themes. For each theme give a name, the line
numbers, a count, the payer(s) involved, and the preventable step on
our side if one is evident from the text. Do not guess at causes the
text does not support. List lines that do not fit any theme.
[paste lines: number | payer | service | units | reason text]

Say a month produces 31 denials. The illustrative themes: 11 for authorisation not on file or visits exceeded, 8 for documentation not supporting the timed units, 5 for missing or mismatched insurance details, 4 for a timely-filing issue and 3 unclassified. As with any AI grouping, check the counts yourself; 11 + 8 + 5 + 4 + 3 is 31, and a total that does not match means the model dropped lines. The first theme points to your visit tracking, covered in tracking prior authorisations and approved visits with AI. The third usually starts at the front desk, where the AI receptionist for referral and insurance questions can capture details properly the first time.

A weekly routine that takes under an hour

Consistency beats cleverness. A small practice can run this once a week, before the main submission run.

  1. Export (5 minutes). Billing lines for the week, plus note text with identifiers removed.
  2. Run the rules sheet (5 minutes). Paste into the template; the formulas flag units, duplicates and dates.
  3. Resolve mechanical flags (10 minutes). Ask therapists about any minutes you cannot explain.
  4. Run the note-against-line prompt (10 minutes). In batches of about 15 to 20 records so the output stays readable.
  5. Review verdicts (15 minutes). Open every REVIEW and MISSING DOCUMENTATION record; spot-check three OK records per therapist.
  6. Log outcomes (5 minutes). Record each flag, what was found and whether the claim changed.

The spot-check in step 5 is how you learn whether the model misses things. If two of nine spot-checked OK records turn out to have problems, tighten the prompt or shrink the batch size before relying on it.

De-identifying billing lines before the note check

Billing text is patient health information, and the safest design never sends it in recognisable form. Use a reference number from your practice software in place of names; remove dates of birth, addresses and phone numbers; check the note text for names of relatives or employers. Use a business plan whose terms say content is not used for training (ChatGPT Business and Claude Team both say so on their pricing pages, checked November 2026) rather than a personal account, and read your own data-protection duties or ask your adviser before starting. The guide to patient data and AI for small practices has a short pre-paste checklist you can copy into your routine.

If you already use an AI scribe, ask its vendor what it offers inside its own system, since keeping data within one tool is better than copying it out. The comparison of AI scribes for physical therapy and the overview of clinic software with built-in AI show what some products already include.

Handling several payers without a rules table per person

A practice with one dominant payer can get away with a single lookup. Most have three or four, and the rules diverge in small, expensive ways: one converts per service, another from total timed minutes; one wants a modifier on a certain line, another does not. The tidy solution is one column in the rules sheet called Payer, with the lookup keyed on payer plus total minutes. Add a short Notes column for the odd rule that does not fit, such as "needs a progress note every tenth visit".

Take an illustrative three-payer practice. Payer A uses the total-minutes method above. Payer B counts each service separately, so a 10-minute exercise block and a 10-minute manual block each earn one unit, while Payer A would give two units for 20 total minutes. Payer C pays a flat amount per visit and has no unit rule at all. Running the same 22 lines through one sheet, the Payer B patients would show false flags on the total-minutes rule. Keying the lookup on payer removes those false alarms, and false alarms are what make staff stop reading flags.

Before adding a payer, ask for its current published billing or provider manual and read the timed-service section. Write the rule in plain words in the notes column, with the date. When the AI note check runs, include the payer name in each record so you can see whether flags cluster on one payer; a cluster is usually a rule you have misread, not a therapist problem.

Eligibility changes and re-evaluations: two upstream slips

Not every billing error starts with the therapist. Two more illustrations show where the check can reach back.

A patient who changed insurer mid-plan

A patient's insurer changes in the third week of a plan of care. The old policy number sits in the practice system and three claims are rejected for eligibility. In the denial grouping, those three lines appear as one theme with identical reason text. The fix is outside AI: re-verify eligibility at the first visit of each month. The model's contribution was making the pattern visible in a minute rather than in a quarter's complaints. Add a recurring eligibility check to the front-desk list and the theme should vanish from next month's grouping.

An evaluation billed on a follow-up day

A note headed "Re-evaluation" has no evaluation line on the claim, and the minutes were billed as treatment. The model flags documented-but-not-billed. The biller asks the therapist, who confirms a full re-evaluation did take place and writes the addendum themselves. Whether it can be billed on that date depends on the payer's rules for how often a re-evaluation is allowed, so the biller checks that policy before changing anything. Had the policy said no, the claim would have stayed as billed, and the flag would still have been worth raising because it surfaced a note-template problem.

Stale rules, vague quotes and other ways flags mislead

  • The rules table goes stale. A payer changes its unit policy and your sheet keeps flagging correct claims. It shows up in the data as a sudden spike in "over by 1" flags on one payer. Fix: date every rule; review quarterly and whenever a payer notice arrives.
  • The model approves things it cannot see. The note says "exercise" in one word and the model calls it supported. Fix: require a quoted phrase for each billed service, and treat a vague quote as REVIEW.
  • Flags are ignored. A busy week, a long list, nobody opens it. Fix: one named person owns the list and the weekly slot; unresolved flags hold the claim.
  • Therapists feel policed. If the check arrives as a list of faults, notes get defensive. Fix: share monthly pattern results, not individual league tables, and use findings to improve the note template.

Three numbers to compare after eight weeks

Pick three numbers before you start and write them down: first-pass acceptance rate, denials for documentation reasons per month and days from visit to payment. Run the check for eight weeks and compare. Say the practice's illustrative baseline was 31 denials a month out of roughly 560 submitted lines. If documentation-related denials fall from 8 to 3 and nothing else changed, that is a sensible sign. It is not proof, since payer mix and staffing move too, so keep notes on anything else that changed in the period.

Also count minutes. Track how long the weekly routine takes against the time previously spent on resubmissions and calls. If it takes 50 minutes a week and removes five hours of rework a month, it has paid for itself; if not, simplify it.

What this does not do

This check is not a medical coding service. It does not decide which services were performed, set fees or replace a certified biller's knowledge of your payers. It does not interpret clinical meaning, and it cannot tell you whether care was medically necessary. It also does not remove your duty to verify payer rules directly: every threshold in this tutorial is illustrative. Used as a flagging layer with a person in charge, it catches the dull, expensive slips before a payer does.

Questions before you add AI to claim checking

Can AI decide which code to bill?

It should not. Code selection is a clinical and billing judgement that rests with the treating therapist and your biller, under each payer's policy. Use AI to flag lines where the note and the billed line disagree, then let a person decide what is correct.

Do I need to send patient names to the AI?

No. Export lines with a patient reference number, not names, and paste only the fields a check needs: minutes, units, codes, note text with identifiers removed. Use a business plan whose terms say content is not used for training, and check your own data-protection duties first.

How do I stop the check nudging staff to bill more?

Tell the model to flag mismatches in both directions, under-billing and over-billing, and never to suggest adding time or services. Review the flag list for direction each month. If flags only ever point upwards, the prompt or the process needs changing.

What does this cost to run?

The check itself needs a spreadsheet you already own and a business-plan chat seat, which on ChatGPT Business is $20 a user a month billed annually or $25 monthly, with a two-user minimum. The real cost is about 30 to 60 minutes a week of a biller's or manager's time reading flags.

How often should the rules be updated?

Review the rules table whenever a payer announces a policy change and at least quarterly. A rule written from last year's policy will flag correct claims and miss wrong ones. Date every rule and note where you read it.

Further reads

Sources: ChatGPT Business pricing page (openai.com) and Claude pricing page (claude.com), both checked 4 November 2026, for seat prices and no training on business content by default. Payer billing rules differ and change, so every threshold in the examples is illustrative and must be replaced with your payers' current published policy.

Want a pre-submission check built for your practice?

On a 1:1 call we can map how your claims are prepared today, choose which checks a spreadsheet can do and which need AI, and set up a weekly routine your biller can run.

Book a 1:1 call with me