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

Supervised (97010–97028)0′5′10′15′97110upper-body exercise97010ice on the kneeConstant attendance (97032–97036)0′5′10′15′971108′970357′
The same quarter-hour, twice. A supervised modality may run underneath other therapy; a constant-attendance modality takes minutes of its own.

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.

CodeModalityFamilyUnitsMedicare status
97010Hot or cold packsSupervised1 / visitB
97012Mechanical tractionSupervised1 / visitA
97014Unattended e-stim (CPT)Supervised1 / visitI
G0283Unattended e-stim (Medicare's code)HCPCS (Medicare)1 / visitA
97016Vasopneumatic deviceSupervised1 / visitA
97018Paraffin bathSupervised1 / visitA
97022WhirlpoolSupervised1 / visitA
97024DiathermySupervised1 / visitA
97026InfraredSupervised1 / visitR
97028UltravioletSupervised1 / visitA
97032Attended e-stimConstant attendance15-minA
97033IontophoresisConstant attendance15-minA
97034Contrast bathsConstant attendance15-minA
97035UltrasoundConstant attendance15-minA
97036Hubbard tankConstant attendance15-minA
97039Unlisted modalityUnlistedper MACC
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.

SituationCodeWhy
Unattended stim, Medicare patientG0283Status 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 code97014Status 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 finish97032Constant attendance, 15-minute units, status A
Stim for a chronic ulcerG0281Its 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

Published 2026-10-18 · reviewed 2026-10-18