IOP vs PHP Billing Differences: Rules & Documentation

Your admissions team moved a client from PHP down to IOP last Tuesday. The clinical note says “stepped down,” the schedule changed, but the biller kept submitting H0035 because nobody told her. Three weeks later, the payer claws back two weeks of PHP days and denies the IOP claims for missing prior auth on the new level. That’s a five-figure problem, and it started with a documentation gap, not a billing mistake.

IOP and PHP get treated like cousins in clinical conversations, but payers treat them as entirely different products with different codes, different hour requirements, and different audit triggers. Here’s where the lines actually sit.

What’s the difference between IOP and PHP billing?

  • PHP bills under H0035 (or revenue code 0912/0913 on a UB-04) and requires roughly 20+ hours of structured programming per week, typically 5–6 hours per day, 5 days a week.
  • IOP bills under H0015 (or revenue code 0905/0906) and requires 9–19 hours per week, usually 3 hours per day, 3–5 days a week.
  • PHP requires a higher medical-necessity threshold — the client must need daily clinical contact but not 24-hour supervision.
  • Documentation, not the schedule, is what survives an audit. Hours attended must be logged, signed, and tied to a treatment plan that matches the level being billed.

How do payers verify the level of care you billed?

Commercial payers and Medicaid MCOs both audit IOP and PHP, but they use different triggers. The most common ones we see:

  • Hours billed vs. hours documented. If you billed H0035 for a Tuesday and the attendance log shows the client left after three hours, that day is getting recouped. PHP needs the full programming day documented — group notes, individual sessions, psychoeducation, the schedule itself.
  • Medical necessity at the wrong level. A client who’s stable, working part-time, and attending evening groups isn’t a PHP client on paper, even if you’re running them through a day program. Payers look at the treatment plan, recent assessments, and progress notes for language that justifies the intensity.
  • Concurrent service errors. Billing individual therapy (90837) on the same day as H0035 or H0015 without payer-specific carve-out rules is one of the fastest ways to trigger a denial. Some payers bundle it; some require modifiers; some pay separately. You need to know which is which per contract.

What documentation does each level of care require?

The clinical chart is the only thing that matters when a payer requests records. For both levels, the floor is:

  • A signed treatment plan that names the level of care, the goals, and the expected duration
  • Daily attendance with start and stop times, signed by staff
  • Group notes that show the client participated — not just that the group happened
  • A physician or qualified clinician signature on the order/admission at the billed level
  • Progress notes that reference the treatment plan goals, not generic “client engaged in group” entries

PHP adds two things IOP doesn’t always need: a psychiatric evaluation within the first few days of admission, and weekly physician contact documented in the chart. Miss either one and the entire stay is at risk during a post-payment review.

Do you need a new prior auth when a client steps down from PHP to IOP?

Almost every commercial payer requires prior auth for both PHP and IOP, and the auth is level-specific. When a client steps down from PHP to IOP, you need a new authorization — the old one doesn’t follow them. This is where utilization review becomes the difference between getting paid and writing off two weeks.

The UR team should be submitting the step-down request at least 24–48 hours before the transition, with updated clinical justification for IOP-level care. If the auth gap is even one day and the payer is strict, those days bill at the wrong level — or don’t bill at all.

Medicaid MCOs are tighter. Some require auth renewal every 7–14 days at PHP and every 30 days at IOP, with concurrent review calls that include the treating clinician. Missing a review window is a denial that’s hard to appeal because the rule was procedural, not clinical.

What are the most common IOP and PHP billing mistakes?

From the audits we run for new clients, the same five mistakes show up over and over:

  1. Billing PHP on days the client didn’t meet the hours minimum. A client who left at noon was an IOP day, or a no-show, not a PHP day.
  2. Not updating the level in the billing system after a step-down. The clinical team knows; the biller doesn’t. Charts and claims drift apart.
  3. Missing the psychiatric eval requirement for PHP. Some facilities default to a 7-day window when the payer requires 72 hours.
  4. Billing concurrent individual therapy without checking the payer’s bundling rule. One major commercial payer bundles 90837 into H0035; another pays it separately with a modifier.
  5. Letting authorizations lapse during transitions. Weekend admissions and Friday step-downs are where this happens most.

Most of these aren’t billing problems — they’re communication problems between clinical, admissions, and the billing team. The reason we keep behavioral health billing, UR, and VOB under one roof is so the level change in a UR note triggers a flag on the claim before it ever goes out the door. A generalist RCM shop running medical-surgical claims on Monday and your IOP claims on Tuesday won’t catch that.

How do I audit my own IOP and PHP billing?

Pull 20 claims at each level from the last 90 days and check four things against the chart:

  • Did the attendance log meet the hours threshold for that level on each day billed?
  • Does the treatment plan in effect on the date of service name that level of care?
  • Is the authorization on file active for the level billed on every date of service?
  • Are concurrent codes (individual therapy, drug screens, medication management) billed in a way that matches the payer’s contract?

If even three out of 20 claims fail any of those checks, you have a systemic gap, not a one-off. That’s the gap that shows up as a recoupment letter six months later, when the cash has already been spent.

If you’d rather have someone else run that audit on your last six months of claims, request a free billing audit and we’ll show you where the level-of-care gaps are before the payer finds them.

Frequently Asked Questions

What is the main billing code difference between IOP and PHP?

PHP is billed under HCPCS code H0035 (or revenue codes 0912/0913 on a UB-04 institutional claim), while IOP is billed under H0015 (or revenue codes 0905/0906). The codes reflect different levels of intensity, hours, and medical necessity requirements.

How many hours per week are required for PHP vs IOP?

PHP typically requires 20 or more hours of structured programming per week, usually 5–6 hours per day across 5 days. IOP requires 9–19 hours per week, generally 3 hours per day across 3–5 days. Payer-specific definitions can vary slightly, so check each contract.

Do you need a new prior authorization when a client steps down from PHP to IOP?

Yes. Authorizations are level-specific. A PHP auth does not automatically cover IOP days. The UR team should submit a step-down request with updated clinical justification at least 24–48 hours before the transition to avoid an auth gap that creates denied or wrongly leveled claims.

Can individual therapy be billed on the same day as IOP or PHP?

It depends on the payer. Some commercial payers bundle individual therapy (CPT 90837) into the per diem H0035 or H0015 code. Others pay it separately with a specific modifier. The answer should be documented per payer contract before claims go out — guessing is how denials happen.

What documentation gaps cause the most PHP and IOP denials?

The biggest ones are attendance logs that do not meet the hours requirement for the billed level, treatment plans that do not specifically name the level of care, missing psychiatric evaluations within the required window for PHP, and lapsed authorizations during level-of-care transitions.


Not sure where your billing is leaking?

Global AHS will audit your last 6 months of billing for free. We pull denials, aged AR, timely filing misses, undercoded services, and underpaid claims, then hand you a written report showing the exact gaps and what they’re costing you. No commitment, no sales pressure — just your numbers, laid bare.

Request your free 6-month audit →