Who We Serve · PHP

Partial Hospitalization Program (PHP) Billing

A PHP program is billed per diem, but which code applies depends entirely on who is on the other end of the claim. Medicaid programs, commercial plans and Medicare each expect a different billing model for the same program day, which makes PHP one of the more structurally complex levels of care to bill correctly.

The Level of Care

What Makes PHP Billing Different

Two per-diem HCPCS codes describe a PHP day, and which one applies is a payer question: many Medicaid programs and Medicaid managed care plans require H0035, while many commercial payers require S0201. Neither is payable by Medicare, which pays PHP on institutional claims under its own outpatient rules using individual service lines rather than a single per-diem code. A program serving Medicare, Medicaid and commercial patients is effectively running three different PHP billing models at once, and billing one payer’s model to another is the most common and most avoidable PHP billing mistake.

At a glance

Reference

PHP Billing Codes

Which code applies depends on the payer and on how many distinct services were delivered that day.
Code
Definition
Applies To
H0035
Mental health partial hospitalization treatment, less than 24 hours
Medicaid programs and select commercial payers. Not payable by Medicare
S0201
Partial hospitalization services, less than 24 hours, per diem
Commercial payers and select Medicaid programs. Not payable by Medicare
0912 (revenue code)
Partial hospitalization, less intensive program
Commercial and Medicaid institutional claims. Not used for Medicare PHP
0913 (revenue code)
Partial hospitalization, intensive program
Commercial and Medicaid institutional claims. Not used for Medicare PHP
H0035 and S0201 should never both appear on the same claim for the same patient on the same date of service. Both carry CMS coverage status “I — not payable by Medicare,” as do all HCPCS Level II H-codes. Medicare pays PHP institutionally under its outpatient prospective payment system, reporting individual service lines with condition code 41, and it does not accept revenue codes 0912 or 0913 for PHP. The 0912 and 0913 split reflects program intensity, not a count of services delivered that day.

What’s Included

PHP Billing Services From CodeMax

Payer-specific model confirmation

CodeMax confirms which billing model each payer expects, H0035, S0201, or Medicare’s institutional code set, before claims go out, rather than applying one default across every payer.

Program hour and service tracking

Daily program hours and services delivered are tracked as they happen, so the documentation supports the intensity level billed rather than being reconstructed after the fact.

Authorization and reauthorization tracking

PHP’s typically shorter reauthorization cycles are tracked so a program doesn’t run past its authorized days before the next review is submitted.

Denial management

Denials tied to wrong-code submissions, H0035 billed to a payer expecting S0201 or the reverse, or to a per-diem code billed to Medicare, are worked and appealed with supporting documentation.

Documentation review

Program-hour and service documentation is reviewed against what’s billed before submission to confirm it supports PHP-level intensity specifically.

Step-Down

PHP to IOP or Residential: What Changes at the Transition

A patient stepping down from PHP to IOP, or up from PHP to residential, needs authorization and correct coding on both sides of the transition date. PHP’s revenue codes and HCPCS don’t carry over to IOP’s, which use an entirely different code set. See the IOP page and the Residential page for how each adjacent level is billed.

Why CodeMax

The Right Code Combination, Per Payer

PHP’s biggest risk isn’t clinical, it’s a coding mismatch to the wrong payer type. CodeMax confirms the correct billing model per payer before submission and tracks daily program hours and services to support the intensity level actually billed, rather than defaulting to whichever code was used on the last claim.
10+
Years in behavioral health revenue management
All 5
Levels of care billed, detox through outpatient
Live
Real-time authorization and continued-stay tracking

FAQ

Partial Hospitalization Program Billing: Frequently Asked Questions

No, and this is where most PHP denials start. Many Medicaid programs require H0035 while many commercial payers require S0201. Neither is payable by Medicare: both carry CMS coverage status “I,” and Medicare instead pays PHP institutionally, reporting individual service lines with condition code 41 under its outpatient prospective payment system. Confirming the model per payer rather than applying one default is what prevents denials here.

They distinguish program intensity: 0912 is the less intensive partial hospitalization revenue code and 0913 the intensive one. They are used on commercial and Medicaid institutional claims. Medicare does not accept either for PHP; it uses a different revenue code set and separately determines payment based on whether three or four or more services are furnished in the day. That services-per-day rule is a Medicare payment mechanic, not the definition of 0912 and 0913.

PHP typically requires more hours of programming per day (often five days a week) than IOP, and uses a different code set: H0035 or S0201 with revenue codes 0912 and 0913 for PHP, versus S9480 or H0015 with revenue codes 0905 and 0906 for IOP. Medicare treats them as two separate benefits with different certification thresholds, 20 hours a week for PHP and 9 for IOP. See the IOP page for that level’s codes.

Yes. Facilities offering a full continuum of care are common, and billing needs to reflect the correct level, code set, and transition dates accurately whenever a patient steps between programs.

For Medicare the requirements are specific: a physician certification that the patient would require inpatient psychiatric hospitalization without the program, at least 20 hours per week of therapeutic services, a physician-signed plan of care, recertification by the 18th day and at least every 30 days after that, and a reasonable expectation of improvement through active treatment. Commercial payers apply their own criteria, most often MCG or InterQual for mental health and ASAM Level 2.5 for substance use, and their hour thresholds do not necessarily match Medicare’s.

No. They should never both appear on the same claim for the same date of service; one or the other applies depending on the payer.

Billing the wrong model for the payer type, most often a per-diem HCPCS code sent to Medicare or H0035 sent to a payer that expects S0201. After that, documentation that does not evidence PHP-level intensity for the days billed.

Yes. The codes are the same, with modifier HA identifying a child or adolescent program, but the surrounding requirements differ: separate state licensure, documented family therapy as a condition of payment in many state Medicaid programs, and EPSDT, which requires coverage of medically necessary services for Medicaid enrollees under 21 even where the adult benefit would not reach. Adolescent weekly hour thresholds are also frequently lower than adult thresholds.