Skip to main content

How Medicare Part B calculates outpatient therapy payments

This article explains how Medicare Part B calculates outpatient therapy payments.

Medicare Part B payment rules can depend on coverage, medical necessity, provider enrollment, claim details, payor edits, and Medicare Administrative Contractor guidance. You should verify payment calculations against official Medicare guidance and your organization's billing process.

Before you start

If you want to test different inputs to see what the resulting reimbursements are, you can create a free RehabAlpha account and follow along by entering fake data into our system.

Medicare Part B pays by the service item

For outpatient therapy services, Medicare Part B generally pays under the Medicare Physician Fee Schedule, often shortened to MPFS or PFS. Payment is estimated one CPT service line at a time, then adjusted based on the other services and modifiers that apply for the date of service.

In other words, for a given patient service date, Medicare starts with service lines that could look like this:

CPT codeUnitsMPFS rateMedicare allowed amount
971611$96.40$96.40
971102$31.25$62.50
975301$38.90$38.90
Total4...$197.80

That total is the Medicare allowed amount before adjustments such as Multiple Procedure Payment Reduction, assistant payment reductions, coinsurance, and sequestration.

note

The example amounts in this article are simplified examples. They show the calculation flow, not a current official fee schedule for a specific locality.

Units

A unit is the quantity Medicare uses for a CPT service line. The MPFS rate is the allowed amount for one unit, and the service line's allowed amount is:

Medicare allowed amount=Units×MPFS rate\begin{alignedat}{3} \text{Medicare allowed amount} &={} & \text{Units} &{}\times{}& \text{MPFS rate} \end{alignedat}

Some CPT codes are timed. For timed outpatient therapy codes, units are based on the number of billable timed minutes furnished on the service date.

Medicare commonly uses the 8-minute rule for timed therapy codes:

Timed minutesUnits
0-70
8-221
23-372
38-523
53-674
68-825

After the first unit, each additional unit generally requires another 15 minutes.

The same rule can be summarized with this formula:

Timed units=floor(Total timed minutes+715)\begin{alignedat}{3} \text{Timed units} &={} & \operatorname{floor}\left( \frac{\text{Total timed minutes} + 7}{15} \right) \end{alignedat}

For example:

Timed serviceMinutesUnits
97110232
97530151

When more than one timed CPT code is furnished on the same date, the total timed minutes determine the total timed units for the session. Those units are then assigned across the timed CPT service lines supported by the documentation.

For example, suppose the timed services for the date are:

CPT codeDescriptionMinutes
97110Therapeutic exercise18
97116Gait training12
97530Therapeutic activities15
Total...45

The total timed units are:

Timed units=floor(45+715)=floor(3.46)=3\begin{alignedat}{3} \text{Timed units} &={} & \operatorname{floor}\left( \frac{45 + 7}{15} \right) \\ &={} & \operatorname{floor}(3.46) \\ &={} & 3 \end{alignedat}

Those 3 timed units are then allocated across the timed CPT codes. A practical way to think about the allocation is to assign the next unit to the code with the highest remaining minutes, then repeat until all timed units have been assigned.

Unit allocation pseudocode

RehabAlpha allocates timed units with this pattern:

totalTimedMinutes = sum(minutes for timed CPT codes)
totalTimedUnits = floor((totalTimedMinutes + 7) / 15)

for each timed CPT code:
assignedUnits = 0

repeat totalTimedUnits times:
choose the CPT code with the highest minutes / (assignedUnits + 1)
add 1 assigned unit to that CPT code

This distributes timed units toward the CPT codes with the strongest documented minute support.

CPT codeDescriptionMinutesUnits
97110Therapeutic exercise181
97116Gait training121
97530Therapeutic activities151
Total...453

Other CPT codes are untimed. Untimed services are usually billed as one unit when the service is furnished, regardless of the number of minutes documented.

For example:

Untimed serviceDescriptionFurnished?Units
97161Physical therapy evaluationYes1
97012Mechanical tractionYes1
97012Mechanical tractionNo0

A service date can include both timed and untimed service lines. In the example above, adding one furnished service-based code would produce 4 total units: 3 timed units plus 1 untimed unit.

How Medicare calculates the service payment

At a high level, Medicare starts with the service date, service location, CPT code, billing units, relative value units, geographic adjustments, and conversion factor. It uses those inputs to calculate an MPFS rate for the service line.

Details and formulas

Step 1: Determine the locality and rate setting

First, Medicare determines the payment locality and whether to use the facility or non-facility practice expense RVU.

For a given service line, the calculation needs:

  1. ZIP code - used to look up the Medicare carrier and locality
  2. ZIP+4 - used when Medicare's ZIP code mapping requires the extra four digits
  3. Place of service - used to choose the facility or non-facility rate setting

Step 2: Calculate the MPFS component amounts

Next, Medicare calculates the dollar amount for each MPFS component.

For a standard RVU-priced line, the components are:

Work dollars=Work RVU×Work GPCI×Conversion factorPractice expense dollars=Practice expense RVU×Practice expense GPCI×Conversion factorMalpractice dollars=Malpractice RVU×Malpractice GPCI×Conversion factor\begin{alignedat}{7} \text{Work dollars} &={} & \text{Work RVU} &{} \times {}& \text{Work GPCI} &{} \times {}& \text{Conversion factor} \\ \text{Practice expense dollars} &={} & \text{Practice expense RVU} &{} \times {}& \text{Practice expense GPCI} &{} \times {}& \text{Conversion factor} \\ \text{Malpractice dollars} &={} & \text{Malpractice RVU} &{} \times {}& \text{Malpractice GPCI} &{} \times {}& \text{Conversion factor} \end{alignedat}

The Practice expense RVU is either the facility practice expense RVU or the non-facility practice expense RVU, depending on the service location's place of service.

Step 3: Add the components to get the MPFS rate

Medicare then adds the three component amounts.

MPFS rate=+Work dollars+Practice expense dollars+Malpractice dollars\begin{alignedat}{3} \text{MPFS rate} &={} & \phantom{{}+{}}\quad& \text{Work dollars} \\ && {}+\quad& \text{Practice expense dollars} \\ && {}+\quad& \text{Malpractice dollars} \end{alignedat}

This produces the MPFS rate for one unit of that CPT code at that service location on that service date.

Codes with no separate MPFS payment

Some MPFS status codes indicate that Medicare does not separately pay the code under the physician fee schedule. For those statuses, the MPFS allowed amount is $0.00 instead of an amount calculated from the ordinary RVU pricing formula.

Step 4: Multiply the MPFS rate by units

After the MPFS rate is determined, the rate is multiplied by the number of billed units for that service line.

Medicare allowed amount=Units×MPFS rate\begin{alignedat}{3} \text{Medicare allowed amount} &={} & \text{Units} &{}\times{}& \text{MPFS rate} \end{alignedat}

For example:

CPT codeUnitsMPFS rateMedicare allowed amount
971102$31.25$62.50

Step 5: Apply Multiple Procedure Payment Reduction when applicable

Many therapy service lines are subject to Multiple Procedure Payment Reduction, often shortened to MPPR.

When MPPR applies, Medicare pays the full practice expense portion for the highest practice expense unit on that date, then reduces the practice expense portion for the other MPPR-subject units.

MPPR is calculated across therapy services furnished to the same patient on the same service date.

MPPR reduction=Practice expense dollars×0.50\begin{alignedat}{3} \text{MPPR reduction} &={} & \text{Practice expense dollars} &{}\times{}& 0.50 \end{alignedat} MPPR-adjusted rate=Base MPFS rateMPPR reduction\begin{alignedat}{3} \text{MPPR-adjusted rate} &={} & \text{Base MPFS rate} &{}-{}& \text{MPPR reduction} \end{alignedat}

For example, if three units on the same date are subject to MPPR:

OrderCPT codeBase MPFS ratePractice expense dollarsMPPR reductionMPPR-adjusted rate
197530$38.90$18.20$0.00$38.90
297110$31.25$14.00$7.00$24.25
397110$31.25$14.00$7.00$24.25
Total...$101.40...$14.00$87.40

Step 6: Apply assistant payment reduction when applicable

For outpatient occupational therapy and physical therapy services furnished in whole or in part by an assistant, Medicare can apply an assistant payment reduction.

Medicare therapy modifiers identify the discipline and, when applicable, assistant involvement:

Discipline and therapist typeMedicare modifier
Occupational therapyGO
Occupational therapy assistantCO
Physical therapyGP
Physical therapy assistantCQ
Speech-language pathologyGN

When the service uses the CO or CQ modifier, the applicable allowed amount is multiplied by 0.85.

Assistant adjusted amount=Allowed amount after MPPR×0.85\begin{alignedat}{3} \text{Assistant adjusted amount} &={} & \text{Allowed amount after MPPR} &{}\times{}& 0.85 \end{alignedat}

If MPPR does not apply, the assistant reduction uses the Medicare allowed amount before MPPR as its base.

Step 7: Split the final allowed amount

After MPPR and assistant reductions, payment can be split into three additional estimates:

Patient coinsurance responsibility=Final allowed amount×0.20Medicare portion before sequestration=Final allowed amount×0.80Medicare payment after sequestration=Medicare portion before sequestration×0.98\begin{alignedat}{3} \text{Patient coinsurance responsibility} &={} & \text{Final allowed amount} &{}\times{}& 0.20 \\ \text{Medicare portion before sequestration} &={} & \text{Final allowed amount} &{}\times{}& 0.80 \\ \text{Medicare payment after sequestration} &={} & \text{Medicare portion before sequestration} &{}\times{}& 0.98 \end{alignedat}

Expected collected revenue can then be estimated as:

Expected collected revenue=Patient coinsurance responsibility+Medicare payment after sequestration\begin{alignedat}{3} \text{Expected collected revenue} &={} & \text{Patient coinsurance responsibility} &{}+{}& \text{Medicare payment after sequestration} \end{alignedat}

The sections below define the main inputs used in those formulas and explain where each value comes from.

Calendar year

Medicare Part B MPFS rates follow the calendar year. A calendar year starts on January 1 and ends on December 31.

Calendar yearStartsEnds
2024January 1, 2024December 31, 2024
2025January 1, 2025December 31, 2025
2026January 1, 2026December 31, 2026
2027January 1, 2027December 31, 2027

Because Part B services are priced by service date, a single admission can span more than one MPFS calendar year. Each service line should use the calendar year for that service date.

For example:

Service dateCalendar year used
December 31, 20252025
January 1, 20262026

Service location and locality

This section explains...

how to determine the GPCI values in these formulas

Work dollars=Work RVU×Work GPCI×Conversion factorPractice expense dollars=Practice expense RVU×Practice expense GPCI×Conversion factorMalpractice dollars=Malpractice RVU×Malpractice GPCI×Conversion factor\begin{alignedat}{7} \text{Work dollars} &={} & \text{Work RVU} &{} \times {}& \textbf{Work GPCI} &{} \times {}& \text{Conversion factor} \\ \text{Practice expense dollars} &={} & \text{Practice expense RVU} &{} \times {}& \textbf{Practice expense GPCI} &{} \times {}& \text{Conversion factor} \\ \text{Malpractice dollars} &={} & \text{Malpractice RVU} &{} \times {}& \textbf{Malpractice GPCI} &{} \times {}& \text{Conversion factor} \end{alignedat}

For a given service line, Medicare payment calculation depends on the Medicare carrier and locality for the service location.

CMS publishes locality information that maps geography to a carrier and locality. The service location's ZIP code and, when needed, ZIP+4 determine the locality.

The locality determines the Geographic Practice Cost Index values:

GPCI valueMeaning
Work GPCIGeographic adjustment for physician work
Practice expense GPCIGeographic adjustment for practice expense
Malpractice GPCIGeographic adjustment for malpractice expense

The service date determines which locality and GPCI values apply.

Source data

CMS publishes Medicare PFS locality information on the Medicare PFS Locality Configuration page and the Locality Key page.

CMS publishes national and carrier-specific fee schedule files on the Physician Fee Schedule pages.

Facility vs non-facility rate setting

This section explains...

how to determine the practice expense RVU in this formula

Practice expense dollars=Practice expense RVU×Practice expense GPCI×Conversion factor\begin{aligned} \text{Practice expense dollars} &= \textbf{Practice expense RVU} \times \text{Practice expense GPCI} \times \text{Conversion factor} \end{aligned}

The MPFS RVU file can include two practice expense RVUs for the same CPT code:

  1. Facility practice expense RVU
  2. Non-facility practice expense RVU

The service location's place of service determines which practice expense RVU applies.

Place of service exampleRate setting
11 - OfficeNon-facility
12 - HomeNon-facility
31 - Skilled Nursing FacilityFacility
32 - Nursing FacilityNon-facility
62 - Comprehensive Outpatient Rehabilitation FacilityNon-facility

If the place of service does not map to a Medicare facility or non-facility rate setting, the ordinary MPFS line estimate cannot be calculated.

Source data

CMS publishes place of service codes on the Place of Service Code Set page.

CPT codes, units, and status codes

This section explains...

how to determine the units in this formula

Medicare allowed amount=Units×MPFS rate\begin{alignedat}{3} \text{Medicare allowed amount} &={} & \textbf{Units} &{}\times{}& \text{MPFS rate} \end{alignedat}

The service line calculation uses the CPT codes, minutes, utilization, and units for the services furnished on the date of service.

For timed CPT codes, the total timed minutes determine the total Medicare timed units using the 8-minute rule. Those units are then allocated back to the timed CPT codes.

For untimed CPT codes, the calculation usually counts one unit when the service was utilized and zero units when it was not utilized.

Service item typeUnit behavior
Timed CPT codeTotal timed minutes determine Medicare timed units
Untimed CPT code with Utilized set to yes1 unit
Untimed CPT code with Utilized set to no0 units
Untimed CPT code with minutes greater than 01 unit

The MPFS status for each CPT code helps explain whether ordinary RVU pricing applies.

Status categoryPayment behavior
Separately payable or restricted coverageApplies ordinary RVU pricing when source data is available
Bundled, excluded, reporting-only, non-covered, or not valid for MedicareForces the MPFS allowed amount to $0.00
MAC-priced, anesthesia pricing, or conditional pricingDisplays the source status and does not force a standard RVU price unless the status supports it
Source data

CMS publishes RVUs, conversion factors, status codes, and multiple procedure indicators in the PFS Relative Value Files.

RVUs, GPCIs, and conversion factor

This section explains...

how to determine the RVUs and conversion factor in these formulas

Work dollars=Work RVU×Work GPCI×Conversion factorPractice expense dollars=Practice expense RVU×Practice expense GPCI×Conversion factorMalpractice dollars=Malpractice RVU×Malpractice GPCI×Conversion factor\begin{alignedat}{7} \text{Work dollars} &={} & \textbf{Work RVU} &{} \times {}& \text{Work GPCI} &{} \times {}& \textbf{Conversion factor} \\ \text{Practice expense dollars} &={} & \textbf{Practice expense RVU} &{} \times {}& \text{Practice expense GPCI} &{} \times {}& \textbf{Conversion factor} \\ \text{Malpractice dollars} &={} & \textbf{Malpractice RVU} &{} \times {}& \text{Malpractice GPCI} &{} \times {}& \textbf{Conversion factor} \end{alignedat}

The MPFS calculation uses three RVU components, three GPCI values, and one conversion factor.

InputExample value
Work RVU0.90
Facility practice expense RVU0.40
Non-facility practice expense RVU0.95
Malpractice RVU0.05
Work GPCI1.0000
Practice expense GPCI0.9250
Malpractice GPCI0.7100
Conversion factor32.3465

For a facility service line using the example values above, the calculation would look like this:

ComponentCalculationComponent amount
Work0.90 x 1.0000 x 32.3465$29.11
Practice expense0.40 x 0.9250 x 32.3465$11.97
Malpractice0.05 x 0.7100 x 32.3465$1.15
MPFS rate$29.11 + $11.97 + $1.15$42.23
Source data

CMS publishes RVU and conversion factor data in the PFS Relative Value Files.

CMS publishes locality and GPCI information through the Medicare Physician Fee Schedule data files and locality pages.

Multiple Procedure Payment Reduction

This section explains...

how to determine the MPPR reduction in this formula

MPPR-adjusted rate=Base MPFS rateMPPR reduction\begin{alignedat}{3} \text{MPPR-adjusted rate} &={} & \text{Base MPFS rate} &{}-{}& \textbf{MPPR reduction} \end{alignedat}

Medicare's therapy MPPR policy reduces the practice expense portion for certain therapy services when multiple services are furnished to the same patient on the same day.

The service line is included in the MPPR calculation when the MPFS multiple procedure indicator identifies the CPT code as subject to therapy MPPR.

For a given patient and service date, the MPPR calculation:

  1. Collects all therapy service lines subject to MPPR.
  2. Expands each billed unit into one MPPR row.
  3. Sorts rows from highest practice expense dollars to lowest.
  4. Leaves the first row unreduced.
  5. Reduces each later row by 50% of its practice expense dollars.

An MPPR details table typically shows:

  • discipline
  • CPT code
  • units
  • base MPFS rate
  • practice expense
  • MPPR reduction
  • MPPR-adjusted rate
Source data

CMS publishes therapy payment policy information and MPPR rate files on the Therapy Services page.

Assistant payment reduction

This section explains...

how to determine the assistant adjusted amount in this formula

Assistant adjusted amount=Allowed amount after MPPR×0.85\begin{alignedat}{3} \text{Assistant adjusted amount} &={} & \text{Allowed amount after MPPR} &{}\times{}& \textbf{0.85} \end{alignedat}

For outpatient therapy, Medicare uses discipline modifiers and assistant modifiers to identify certain services furnished by occupational therapy assistants and physical therapy assistants.

The modifiers are determined from:

  1. The therapy discipline
  2. The treating therapist
  3. The treating therapist's license for the service location and service date

If an occupational therapy assistant or physical therapy assistant furnished the service, the corresponding assistant modifier applies with the 85% payment multiplier.

ScenarioModifiersPayment multiplier
OT furnished by an occupational therapistGO1.00
OT furnished by an occupational therapy assistantGO, CO0.85
PT furnished by a physical therapistGP1.00
PT furnished by a physical therapy assistantGP, CQ0.85
SLP furnished by a speech-language pathologistGN1.00
Source data

CMS explains the outpatient therapy assistant modifier policy on the Therapy Services page.

Generate the example in RehabAlpha

The sections above explain the Medicare Part B payment formula. This section shows how to enter example inputs in RehabAlpha so the app can generate the Part B payment estimate in the service log.

This example uses an outpatient therapy service with these values entered in RehabAlpha:

Input or setup valueExample value
Payment modelOutpatient Part B
PayorMedicare Part B
Service dateJanuary 5, 2026
Facility stateAlabama
Service location ZIP code36104
Service location place of service31 - Skilled Nursing Facility
DisciplinePT
Treating therapistPhysical therapist
CPT code97110
Minutes23

Set up the organization, facility, and service location

  1. Create a test organization. See Set up an organization.
  2. Create a facility. See Set up a facility.
  3. Select Alabama as the facility State.
  4. Open the facility, click Locations, and open Default service location.
  5. Set the service location place of service to 31 - Skilled Nursing Facility.
  6. Enter the service location ZIP code and ZIP+4 when known.
  7. Save the service location.

The service location's ZIP code, ZIP+4, and place of service determine the locality, GPCI values, and facility or non-facility practice expense RVU used in the MPFS calculation.

Set up the patient, coverage, and admission

  1. Create a patient. See Set up a patient.
  2. Add a patient coverage that uses Medicare Part B. New organizations include a pre-loaded Medicare Part B payor, so use that payor when it is available. See Add patient coverages.
  3. Open the patient and click Admissions.
  4. Click New admission.
  5. Select the facility.
  6. Enter Admit date as January 5, 2026.
  7. Leave Discharge date blank if the admission is ongoing.

Add the Outpatient Part B coverage episode

  1. In Coverage episodes, click Add coverage episode.
  2. Set Payment model to Outpatient Part B.
  3. Under Payors (coverages), select the patient coverage that uses Medicare Part B.
  4. Select the discipline or disciplines covered by the episode.
  5. Select the Default service location.
  6. Keep Start of period set to Admit date.
  7. Keep End of period set to Indefinite / unknown if the episode is ongoing.

RehabAlpha uses the coverage episode to decide whether to show Medicare Part B payment fields for the clinical document.

Document the service

  1. Create or open the patient's therapy case.
  2. Add or open the evaluation, recertification, or treatment for January 5, 2026.
  3. Confirm the document discipline is PT.
  4. Confirm the treating therapist is the physical therapist who furnished the service.
  5. In Services or interventions provided today, click Add service item.
  6. Select CPT code 97110.
  7. Enter 23 minutes.
  8. Save the document.

RehabAlpha uses the service date, service location, discipline, therapist, CPT code, and minutes to calculate the Part B estimate.

View the payment estimate

  1. Reopen the saved clinical document.
  2. Scroll to Services or interventions provided today.
  3. Review the service item fields for units, modifiers, MPFS status, MPFS breakdown, Medicare allowed amount, MPPR status, and any assistant adjustment.
  4. Review the service log totals for final allowed amount, patient coinsurance responsibility, Medicare portion before sequestration, Medicare payment after sequestration, and expected collected revenue.

For each service item, RehabAlpha can display:

  • Units
  • Modifiers
  • MPFS status
  • Medicare Physician Fee Schedule (MPFS)
  • Medicare allowed amount
  • Subject to MPPR?
  • MPPR Adjusted Amount
  • Assistant adjusted amount

For the whole service log, RehabAlpha can display:

  • Total units
  • Medicare allowed amount
  • MPPR Adjusted Amount
  • Assistant adjusted amount
  • Final allowed amount
  • Patient coinsurance responsibility
  • Medicare portion before sequestration
  • Medicare payment after sequestration
  • Expected collected revenue

If RehabAlpha cannot resolve the MPFS data for a service item, the affected payment fields display a dash. This can happen when the service date, service location ZIP code, ZIP+4, place of service, locality data, or CPT source data is missing or does not match available Medicare data.

Expected calculation flow

If the example service line has 23 timed minutes, RehabAlpha counts 2 Medicare timed units.

The calculation flow is:

StepExample result
Timed units2 units
MPFS rateResolved from CPT code, service date, locality, rate setting, RVUs, GPCIs, and conversion factor
Medicare allowed amount2 x MPFS rate
MPPR adjusted amountApplies when the CPT code is subject to MPPR
Assistant adjusted amountApplies only when CO or CQ is present
Final allowed amountAllowed amount after MPPR and assistant payment reductions
Patient coinsurance responsibility0.20 x final allowed amount
Medicare payment after sequestration0.98 x (0.80 x final allowed amount)
Expected collected revenuePatient coinsurance responsibility plus Medicare payment after sequestration

You should know

RehabAlpha calculates Part B payment estimates from the information available in the clinical document, service location, therapist record, coverage episode, and Medicare source data.

The estimate does not decide whether the service is covered, medically necessary, payable after all claim edits, subject to a local coverage determination, or ultimately paid by Medicare. Review the estimate as part of your billing workflow, not as a final remittance amount.

If an estimate looks wrong, check:

  • The patient's Outpatient Part B coverage episode
  • The document service date
  • The selected service location
  • The service location ZIP code and ZIP+4
  • The service location place of service
  • The document discipline
  • The treating therapist and license
  • The CPT codes and minutes in the service log
  • Whether the CPT code is subject to MPPR
  • Whether the CO or CQ assistant modifier applies