This is the most expensive coding confusion in ABA, and it almost always costs money in the same direction: work done by a BCBA gets paid at technician rates.
97153 is adaptive behavior treatment by protocol. A technician delivers a plan someone else wrote. Technician rate.
97155 is adaptive behavior treatment with protocol modification. A BCBA changes the plan based on what the data is showing. Substantially higher rate.
The distinction payers actually audit
97155 is not “the BCBA was in the room.” Presence is not modification. Supervision is not modification.
97155 requires the BCBA to be actively changing the protocol — adjusting a prompting hierarchy, altering a reinforcement schedule, revising a target based on trend data — and the note has to show the change and the reasoning behind it.
A note reading “BCBA present, observed session, gave feedback to RBT” is a 97153 session with a BCBA standing in it. Billed as 97155, that is an overpayment waiting to be recouped.
The error that costs more, and nobody reports
Everyone worries about over-billing 97155. The larger loss runs the other way.
A BCBA spends the session genuinely modifying the protocol, documents it properly, and it gets billed as 97153 anyway — because scheduling booked a direct-service slot, or because billing staff default to the technician code when they see direct client time.
The service was delivered. The documentation supports the higher code. The claim went out at the lower one, paid clean, and nothing flagged it.
A clean payment is invisible. Denials get worked. Underpayments on paid claims get nothing, because no report in your system looks for services billed correctly at the wrong level.
Run this on your own data
1. Pull 90 days of 97155 and read ten notes. Count how many describe an actual protocol change versus observation and RBT feedback. If most are observation, that is recoupment exposure, and it compounds every month you leave it.
2. Match BCBA calendars against billed 97155 units for the same period. Direct clinical hours on a calendar but not in 97155 billing are the downcode. Multiply the unit-rate difference by that gap and you have the annualised number.
3. Check concurrent 97153 and 97155 for the same client at the same time, by payer. Some payers permit it with documentation of distinct roles; others deny outright. Sort those denials by payer before appealing — half will never pay, and the other half should never have denied.
Find something and want the fix? Reply and say so. Find nothing? Genuinely good to know for certain.
When the code isn’t the real problem
Check the authorisation before the code. Most payers authorise 97153 and 97155 as separate unit pools, and 97155 units are always the scarcer of the two. If your BCBA hours exceed the authorised 97155 units, correcting the code just moves the denial from a coding edit to an authorisation edit. Fix the auth request first, then the coding.