Custom fee schedule
Use the Custom fee schedule payment model when reimbursement is based on rates in one of your organization's fee schedules. You can use it in a payor arrangement or a facility contract payment term.
A fee schedule specifies a rate for each CPT code. For example:
| CPT code | Service | Example rate per unit |
|---|---|---|
| 97110 | Therapeutic exercises | $30.00 |
| 97116 | Gait training | $35.00 |
| 97530 | Therapeutic activities | $40.00 |
Upload the fee schedule to your organization, then select it in the Custom fee schedule payment model. RehabAlpha uses the rate for the CPT code that is effective on the service date.
For each CPT code, reimbursement is:
RehabAlpha aggregates service-item minutes by CPT code, calculates and allocates units to those CPT codes, then multiplies each code's allocated units by its rate. The reimbursement for the date is the sum of those CPT-code amounts.
Data partitioning
Every service item has an inherent set of attributes; namely:
- facility
- service location
- place of service
- patient
- payor
- billing provider
- service date
- discipline
- clinical document
- therapist
For example,
| Facility | Srvc loc | POS | Pt | Payor | Bill Prov | Date | Disc | Doc | Thera | CPT | Mins |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Hilltop | SNF | 31 | Joe | UHC | RWD | Jan 1 | PT | tx 1 | Sue | 97110 | 12 |
| Hilltop | SNF | 31 | Joe | UHC | RWD | Jan 1 | PT | tx 1 | Sue | 97530 | 8 |
| Hilltop | SNF | 31 | Joe | UHC | RWD | Jan 1 | PT | tx 2 | Sue | 97110 | 10 |
| Hilltop | SNF | 31 | Joe | UHC | RWD | Jan 1 | PT | tx 2 | Sue | 97530 | 11 |
| Hilltop | SNF | 31 | Joe | UHC | RWD | Jan 2 | PT | tx 2 | Sue | 97116 | 15 |
| Hilltop | SNF | 31 | Joe | UHC | RWD | Jan 2 | OT | eval 1 | Sue | 97165 | 30 |
| Hilltop | OP A | 11 | Joe | UHC | RWD | Jan 2 | PT | tx 4 | Sue | 97110 | 10 |
| Hilltop | OP B | 11 | Joe | UHC | RWD | Jan 2 | PT | tx 6 | Sue | 97110 | 8 |
| Hilltop | OP B | 11 | Joe | UHC | RWD | Jan 2 | PT | tx 5 | Sue | 92526 | 22 |
| Hilltop | SNF | 31 | Joe | Aetna | RWD | Jan 1 | OT | tx 3 | Sue | 97535 | 20 |
| Hilltop | OP A | 11 | Joe | Aetna | RWD | Jan 1 | PT | eval 2 | Sue | 97161 | 25 |
Before RehabAlpha calculates units and applies a fee schedule, the service items are partitioned by (facility, patient, payor, billing provider, service date). The example above would lead to the following three partitions:
Hilltop, Joe, UHC, RWD, Jan 1
| Service location | Place of service | Discipline | Clinical document | Therapist | CPT code | Minutes |
|---|---|---|---|---|---|---|
| SNF | 31 | PT | tx 1 | Sue | 97110 | 12 |
| SNF | 31 | PT | tx 1 | Sue | 97530 | 8 |
| SNF | 31 | PT | tx 2 | Sue | 97110 | 10 |
| SNF | 31 | PT | tx 2 | Sue | 97530 | 11 |
Hilltop, Joe, UHC, RWD, Jan 2
| Service location | Place of service | Discipline | Clinical document | Therapist | CPT code | Minutes |
|---|---|---|---|---|---|---|
| SNF | 31 | PT | tx 2 | Sue | 97116 | 15 |
| SNF | 31 | OT | eval 1 | Sue | 97165 | 30 |
| OP A | 11 | PT | tx 4 | Sue | 97110 | 10 |
| OP B | 11 | PT | tx 6 | Sue | 97110 | 8 |
| OP B | 11 | PT | tx 5 | Sue | 92526 | 22 |
Hilltop, Joe, Aetna, RWD, Jan 1
| Service location | Place of service | Discipline | Clinical document | Therapist | CPT code | Minutes |
|---|---|---|---|---|---|---|
| SNF | 31 | OT | tx 3 | Sue | 97535 | 20 |
| OP A | 11 | PT | eval 2 | Sue | 97161 | 25 |
In the sections the follow, it's important to understand that all statements made are relative to a single partition of the data. In other words, the facility, patient, payor, billing provider, and service date are fixed constants for the service items described.
Configurable units
The Custom fee schedule payment model lets you define how a unit of service is calculated. The two options currently supported are
-
Medicare (8-minute rule) - follows the Medicare methodology for calculating units
-
Custom - allows you to customize
- base duration (number of minutes)
- rounding behavior (up, down, nearest)
- scope at which units are calculated and allocated
The unit definition affects the quantity paid; the selected fee schedule still determines the rate paid for each CPT code.
Medicare (8-minute rule)
Choose Medicare (8-minute rule) when the payment terms use Medicare-style units but the rate comes from your custom, uploaded fee schedule.
Step 1: Partition the service items by discipline
Our starting point is a partition of service items as described above. For example,
Hilltop, Joe, UHC, RWD, Jan 2
| Service location | Place of service | Discipline | Clinical document | Therapist | CPT code | Minutes |
|---|---|---|---|---|---|---|
| SNF | 31 | PT | tx 2 | Sue | 97116 | 15 |
| SNF | 31 | OT | eval 1 | Sue | 97165 | 30 |
| OP A | 11 | PT | tx 4 | Sue | 97110 | 10 |
| OP B | 11 | PT | tx 6 | Sue | 97110 | 8 |
| OP B | 11 | PT | tx 5 | Sue | 92526 | 22 |
In this step, we further partition these items by discipline:
Hilltop, Joe, UHC, RWD, Jan 2, OT
| Service location | Place of service | Clinical document | Therapist | CPT code | Minutes |
|---|---|---|---|---|---|
| SNF | 31 | eval 1 | Sue | 97165 | 30 |
Hilltop, Joe, UHC, RWD, Jan 2, PT
| Service location | Place of service | Clinical document | Therapist | CPT code | Minutes |
|---|---|---|---|---|---|
| SNF | 31 | tx 2 | Sue | 97116 | 15 |
| OP A | 11 | tx 4 | Sue | 97110 | 10 |
| OP B | 11 | tx 6 | Sue | 97110 | 8 |
| OP B | 11 | tx 5 | Sue | 92526 | 22 |
Step 2: Determine total units per partition
RehabAlpha totals the timed minutes and converts that total to units using the Medicare 8-minute rule:
RehabAlpha calculates units separately for each discipline partition. In the example above, the OT partition has 30 minutes and the PT partition has 55 minutes:
| Discipline partition | Total minutes | Total units |
|---|---|---|
| OT | 30 | 2 |
| PT | 55 | 4 |
For the OT partition:
For the PT partition:
Step 3: Aggregate minutes by CPT code
Before allocating units, RehabAlpha combines the service items for each CPT code within the discipline partition and totals their minutes. The two PT service items for 97110 are therefore treated as one 18-minute CPT-code total:
| Discipline | CPT code | Service-item minutes | Aggregated minutes |
|---|---|---|---|
| OT | 97165 | 30 | 30 |
| PT | 97116 | 15 | 15 |
| PT | 97110 | 10 + 8 | 18 |
| PT | 92526 | 22 | 22 |
Step 4: Allocate units to furnished CPT codes
Next, RehabAlpha allocates the units back to the furnished CPT codes using a greedy load-balancing algorithm with lexicographic tie-breaking.
In pseudocode, the algorithm works like this:
For each unit to be allocated:
Allocate the current unit to the CPT code with the highest number of remaining aggregated minutes.
If multiple CPT codes tie, allocate the unit to the code that comes first in lexicographic order.
After a unit is assigned to a CPT code, decrement its minutes by 15
Repeat this process until all the units have been allocated
Following the example above, the resolved unit allocations would look like this:
Hilltop, Joe, UHC, RWD, Jan 2, OT
| CPT code | Minutes | Units |
|---|---|---|
| 97165 | 30 | 2 |
Hilltop, Joe, UHC, RWD, Jan 2, PT
| CPT code | Minutes | Units |
|---|---|---|
| 97116 | 15 | 1 |
| 97110 | 18 | 1 |
| 92526 | 22 | 2 |
Custom
Choose Custom when the reimbursing party defines their own time-based unit. You set the minutes in one unit, the rounding behavior, and which service items have their minutes pooled together before units are calculated.
For this example, assume the payment terms use the following Custom unit definition:
| Setting | Selection |
|---|---|
| Minutes per unit | 20 minutes |
| Rounding behavior | Round up |
| Partition service items by | NONE |
Step 1: Partition the service items using the selected scope
The starting point is the same partition of service items used in the Medicare example:
Hilltop, Joe, UHC, RWD, Jan 2
| Service location | Place of service | Discipline | Clinical document | Therapist | CPT code | Minutes |
|---|---|---|---|---|---|---|
| SNF | 31 | PT | tx 2 | Sue | 97116 | 15 |
| SNF | 31 | OT | eval 1 | Sue | 97165 | 30 |
| OP A | 11 | PT | tx 4 | Sue | 97110 | 10 |
| OP B | 11 | PT | tx 6 | Sue | 97110 | 8 |
| OP B | 11 | PT | tx 5 | Sue | 92526 | 22 |
RehabAlpha always partitions service items by facility, patient, payor, billing provider, and service date first. Partition service items by controls whether it then partitions those items further:
| Choice | Result |
|---|---|
| NONE | No additional partition |
| Discipline | Partition by discipline |
| Clinical document | Partition by clinical document |
Because this example uses NONE, all five service items remain in one partition. This differs from the Medicare example, which separates the OT and PT service items before calculating units.
Step 2: Determine total units per partition
RehabAlpha totals the minutes in each partition and divides by Minutes per unit:
The partition has 85 total minutes. With 20 minutes per unit, it has 4.25 unrounded units:
RehabAlpha applies the selected rounding behavior once to the entire partition, not separately to each service item. The available choices would resolve this example as follows:
| Rounding behavior | Unrounded units | Total units |
|---|---|---|
| Round down | 4.25 | 4 |
| Round nearest | 4.25 | 4 |
| Round up | 4.25 | 5 |
Because this example uses Round up, RehabAlpha allocates 5 units.
Round nearest rounds a half unit up. For example, 4.5 unrounded units would resolve to 5 units.
Step 3: Aggregate minutes by CPT code
Before allocating the 5 units, RehabAlpha combines service items with the same CPT code and totals their minutes. The 10-minute and 8-minute 97110 service items become one 18-minute CPT-code total:
| CPT code | Service-item minutes | Aggregated minutes |
|---|---|---|
| 97116 | 15 | 15 |
| 97165 | 30 | 30 |
| 97110 | 10 + 8 | 18 |
| 92526 | 22 | 22 |
Step 4: Allocate units to furnished CPT codes
Unit allocation follows the same greedy load-balancing procedure as the Medicare configuration. For each unit, RehabAlpha selects the CPT code with the highest remaining aggregated minutes, using lexicographic order to break a tie. It then reduces that CPT code's remaining minutes by the custom 20-minute unit size and repeats until all 5 units are allocated.
The resolved unit allocation is:
Hilltop, Joe, UHC, RWD, Jan 2
| CPT code | Minutes | Units |
|---|---|---|
| 97116 | 15 | 1 |
| 97165 | 30 | 2 |
| 97110 | 18 | 1 |
| 92526 | 22 | 1 |
With the Medicare configuration, the same starting service items produce 6 units across separate OT and PT partitions. With this Custom configuration, they produce 5 units in one partition.
Applying the rates
After RehabAlpha determines the allocated units for each CPT code, it looks up that code's rate in the selected custom fee schedule. The rate effective on the service date is multiplied by the allocated units to calculate reimbursement for that CPT code. Rate application starts from the CPT-code allocation table, not from the original service-item rows.
For the Jan 2 example above, assume the selected custom fee schedule contains these rates:
| CPT code | Service | Rate per unit |
|---|---|---|
| 97110 | Therapeutic exercises | $30.00 |
| 97116 | Gait training | $35.00 |
| 97165 | Occupational therapy evaluation | $85.00 |
| 92526 | Oral function therapy | $45.00 |
The allocated units map to the fee schedule as follows:
Hilltop, Joe, UHC, RWD, Jan 2
| CPT code | Units | Rate per unit | Reimbursement |
|---|---|---|---|
| 97116 | 1 | $35.00 | $35.00 |
| 97165 | 2 | $85.00 | $170.00 |
| 97110 | 1 | $30.00 | $30.00 |
| 92526 | 1 | $45.00 | $45.00 |
| Total | 5 | $280.00 |
The two original 97110 service items appear once in this table because their minutes were aggregated before unit allocation. Their single allocated unit is multiplied by the 97110 rate once.
RehabAlpha adds the CPT-code reimbursement amounts to calculate the total reimbursement for the partition.