Physical therapy modality CPT codes
2026-10-18 · 10 min read
Packs, traction, stim, ultrasound. The modality codes split into a supervised family billed once a visit and an attended family billed by the clock, and Medicare treats several of them differently from the CPT book.
Two families, two clocks
The modality codes come in two families, and the family decides how you count. The supervised family, 97010 to 97028, is the patient on the unit while you are free to be elsewhere: packs, mechanical traction, unattended stim, paraffin, whirlpool, diathermy. These are untimed. CMS tells you to enter one unit for an untimed code, however many minutes it ran.
The constant-attendance family, 97032 to 97036, needs you there and working: attended stim, iontophoresis, contrast baths, ultrasound, Hubbard tank. Their minutes go into the day’s timed total and come out in 15-minute units, exactly like therapeutic exercise.
The diagram above is the NCCI rule in one picture. Medicare’s correct-coding manual says no more than one physical medicine service may be reported for the same fifteen minutes, with a single exception: a supervised modality in the 97010–97028 range may share those minutes with other therapy. Ice on the knee during upper-body work is two lines. Ultrasound during exercise is not; it needs minutes of its own.
When attendance time starts
CMS counts the minutes you spend directly treating a patient who is already on the table and ready. Setting up the unit, taking it down, toileting and waiting for equipment are not treatment time. Seven minutes of ultrasound means seven minutes with the head moving.
What Medicare does with each code in 2026
The PT CPT code lookup tells you what a code covers. This table is the other half: the status letter CMS gives each modality in the 2026 fee schedule file. That letter decides whether a line can be paid at all, before any question of documentation.
| Code | Modality | Family | Units | Medicare status |
|---|---|---|---|---|
| 97010 | Hot or cold packs | Supervised | 1 / visit | B |
| 97012 | Mechanical traction | Supervised | 1 / visit | A |
| 97014 | Unattended e-stim (CPT) | Supervised | 1 / visit | I |
| G0283 | Unattended e-stim (Medicare's code) | HCPCS (Medicare) | 1 / visit | A |
| 97016 | Vasopneumatic device | Supervised | 1 / visit | A |
| 97018 | Paraffin bath | Supervised | 1 / visit | A |
| 97022 | Whirlpool | Supervised | 1 / visit | A |
| 97024 | Diathermy | Supervised | 1 / visit | A |
| 97026 | Infrared | Supervised | 1 / visit | R |
| 97028 | Ultraviolet | Supervised | 1 / visit | A |
| 97032 | Attended e-stim | Constant attendance | 15-min | A |
| 97033 | Iontophoresis | Constant attendance | 15-min | A |
| 97034 | Contrast baths | Constant attendance | 15-min | A |
| 97035 | Ultrasound | Constant attendance | 15-min | A |
| 97036 | Hubbard tank | Constant attendance | 15-min | A |
| 97039 | Unlisted modality | Unlisted | per MAC | C |
- B
- Bundled: never paid separately; folded into the other services that day
- A
- Active: paid separately under the fee schedule, if covered
- I
- Not valid for Medicare: Medicare uses another code for the service
- R
- Restricted coverage
- C
- Contractor-priced: the MAC sets the payment, usually case by case on the documentation
Every code above is on CMS’s 2026 “always therapy” list. On a Medicare claim each one carries the therapy modifier for the plan of care it was delivered under, GP for physical therapy, and counts toward the annual threshold that the KX modifier is about.
A modality is worth less than its line suggests
Medicare pays the therapy service with the highest practice-expense value in full that day, then 50% of the practice-expense portion on every further unit or procedure (the rule since April 1, 2013). Bundled and contractor-priced codes sit outside the reduction. Adding a modality to a full visit adds a discounted unit, not a full fee.
97010: the cold pack code Medicare never pays
Hot packs and cold packs share one code, 97010, so the cold pack CPT code and the hot pack CPT code are the same number. Its 2026 Medicare status is B: bundled. CMS’s therapy code list spells out what that means. The code is never paid separately, whether it is billed alone or beside other therapy; billed alone it is denied, with a remittance reason saying payment is included in another service.
It still belongs in the treatment note. CMS wants every intervention identified, timed and untimed, in words that can be matched to the claim. Whether it goes on the claim itself is a payer question: Medicare will not pay it, and commercial contracts set their own rules. Read yours.
Common mistake
Folding the pack minutes into a timed code. Ten minutes under ice are not ten minutes of 97110. They count toward total treatment time, never toward the timed total that decides units.
G0283, 97014 or 97032: one machine, three codes
Electrical stimulation has three codes, and the right one depends on who is in the room and who is paying.
| Situation | Code | Why |
|---|---|---|
| Unattended stim, Medicare patient | G0283 | Status A. CMS’s own code for unattended stim to one or more areas, for reasons other than wound care, under a therapy plan of care |
| Unattended stim, payer that takes the CPT code | 97014 | Status I for Medicare: not valid, because Medicare uses another code. Fine for a payer whose contract accepts it |
| You apply it one-to-one, start to finish | 97032 | Constant attendance, 15-minute units, status A |
| Stim for a chronic ulcer | G0281 | Its own HCPCS code, status A; G0283 is for non-wound indications. The other wound-stim code, G0282, is non-covered (N) |
Two cautions. First, the code follows your attendance, not the machine’s settings. If the patient is alone with the unit, this is the wrong code. Second, the NCCI overlap exception is written for CPT codes 97010–97028. G0283 is a HCPCS code outside that range, so do not assume it can share a quarter-hour with exercise on a Medicare claim without checking your MAC.
97012: the mechanical traction code
97012 is the mechanical traction CPT code: a cervical or lumbar unit doing the pulling while you supervise. It sits in the supervised family and carries Medicare status A, so it is payable, as one unit. Untimed. One unit, however long the table ran.
Traction by hand is a different code. Manual traction is part of manual therapy, so it is billed as 97140 in timed units, with the minutes counted like any other hands-on work. Chiropractic offices bill 97012 beside manipulation; the chiropractic billing codes guide covers that pairing.
What a traction line in the note needs
Region, position, the unit’s settings, the duration and how the patient responded. A line that only says “traction” cannot show why it was skilled care rather than a machine running.
97035: the unit that gets squeezed out
97035 is ultrasound, constant attendance, status A. Because it is timed, its minutes join the day’s pool with everything else timed, and that pool, not the list of things you did, sets the units. CMS’s own worked example in the claims manual has 18 min of 97110, 13 min of 97140, 10 min of 97116, 8 min of 97035: 49 timed minutes, which is 3 units. The ultrasound (97035) is the shortest service, so it is the one left off the claim. It stays in the note.
Ultrasound is the code most often performed, documented, and correctly left off the claim.
The 97116 gait training guide draws the same example as minute bars. To run your own day, put the minutes into the units calculator rather than adding units per code.
97039: the unlisted modality
97039 is for a modality no other code describes. Its Medicare status is C: the fee schedule carries no price, and the MAC sets payment case by case from what you send. So the claim has to say what the modality was and, if you stayed with the patient, for how long. Expect a records request.
Not a way round a non-covered code
Some modalities have a code and are not covered. Low-level laser has its own code, 97037, which the 2026 Medicare file lists as non-covered (N). Infrared, 97026, is restricted: CMS denies it for peripheral neuropathy, wounds and ulcers under NCD 270.6, and the provider is liable unless the patient signed an ABN. Filing either as 97039 is miscoding, not a workaround.
97113: aquatic therapy is a procedure
The aquatic therapy CPT code, 97113, is not a modality. It sits with the therapeutic procedures beside 97110, not with whirlpool or the Hubbard tank, and it is status A for Medicare. The water is the setting; the service is exercise. Document it as exercise: what was done, the dosage, and why the water was needed, such as unloading a joint that cannot yet tolerate land-based work.
A patient soaking in a whirlpool is 97022, a supervised modality, one unit. A patient doing a supervised exercise programme in a pool with you is 97113.
Treating in a community pool
Medicare expects a practice or outpatient provider treating in a community pool to rent or lease the pool, or a defined part of it, for specified times when only its own patients use it. The written agreement has to be available on request.
What the treatment note has to show
CMS lists the elements of a treatment note, and modalities trip over two of them: every intervention named in words that match the claim, and both totals recorded. The untimed ones count toward total treatment time even though they never touch the units. The documentation cheat sheet and the worked SOAP note show where each line sits.
Modality lines, quick reference
- Each modality named, timed and untimedevery line
- Region and parametersper modality
- Total timed minutesunits come from this
- Total treatment timetimed + untimed
- Who delivered or supervised itsignature
When the visit is done, the superbill generator lays the codes and units out for a cash-pay or out-of-network patient.
What is the CPT code for a cold pack?
97010 — the same code as a hot pack. Medicare status B: bundled, never paid on its own.
What is the mechanical traction CPT code?
97012, supervised and untimed: one unit a visit. Manual traction is billed inside 97140 instead.
What is the aquatic therapy CPT code?
97113. It is a therapeutic procedure, not a modality, so it is documented as exercise performed in water.
Is 97035 a timed code?
Yes. Ultrasound is a constant-attendance modality counted in 15-minute units against the day's timed total.
Can I bill 97014 to Medicare?
No. Its Medicare status is I, not valid: report unattended stim as G0283.
Red flag — refer out
A modality is never the answer to a worsening picture. Heat, ice or stim over skin the patient cannot feel, or pain that keeps climbing despite care, is a reason to stop and reassess or refer, not to change the setting.
CPT is a trademark of the American Medical Association; code names here are our own short labels, not the AMA descriptors. Medicare status and dispositions read from the CMS 2026 files listed below on 2026-10-18. Commercial payers set their own rules; your contract is the authority.
Sources
- American Medical Association — Current Procedural Terminology (CPT) — CPT is an AMA trademark; the official descriptors are the AMA's and are paraphrased here, never reproduced · read 2026-09-04
- CMS Pub. 100-04, Medicare Claims Processing Manual, Chapter 5 §20.2.C — counting minutes for timed codes in 15-minute units · read 2026-10-18
- CMS — CY 2026 PFS relative value file RVU26D (PPRRVU2026_Oct_nonQPP) — status code per HCPCS code; status definitions in the file's Attachment A · read 2026-10-18
- CMS — CY 2026 therapy code list and dispositions — disposition 3 (bundled, never paid separately), 1 (contractor-priced), 5 (always therapy) · read 2026-10-18
- CMS — Medicare NCCI Policy Manual 2026, Chapter XI §P (physical medicine and rehabilitation) — the supervised-modality exception to the one-service-per-fifteen-minutes rule · read 2026-10-18
- CMS Pub. 100-04, Medicare Claims Processing Manual, Chapter 5 §10.7, §20.2–20.4 — untimed codes = 1 unit; constant-attendance time; MPPR; 97026 NCD denial · read 2026-10-18
- CMS Pub. 100-02, Medicare Benefit Policy Manual, Chapter 15 §220 and §220.3 — treatment-note elements; rented or leased community pools · read 2026-10-18
Keep reading
KX modifier in physical therapy
The 2026 KX threshold, GP/GO/GN pairing, and when an ABN and GA apply instead.
Physical therapy billing units calculator
Turn treatment minutes into billable units under the 8-minute rule.
Physical therapy CPT code lookup
Search the outpatient physical therapy CPT set with timed/untimed flags.
Patient intake form builder
Assemble a printable intake and informed-consent packet for a new patient.
Published 2026-10-18 · reviewed 2026-10-18