What is HCPCS?

Healthcare Common Procedure Coding System (HCPCS) is a standardized code system necessary for medical providers to submit healthcare claims to Medicare and other health insurances in a consistent and orderly manner. HCPCS comprises two medical code sets, HCPCS Level I and HCPCS Level II.

HCPCS Level I consists of the Current Procedural Terminology (CPT®) code set and is used to submit medical claims to payers for procedures and services performed by physicians, nonphysician practitioners, hospitals, laboratories, and outpatient facilities.

HCPCS Level II is the national procedure code set for healthcare practitioners, providers, and medical equipment suppliers when filing health plan claims for medical devices, supplies, medications, transportation services, and other items and services.

When medical coders and billers talk about HCPCS codes, they're referring to HCPCS Level II codes. When they talk about CPT® coding, they’re actually referring to HCPCS Level I.

If you're new to medical coding or even well practiced in CPT® and HCPCS Level II reporting, you may be asking yourself two questions.

  1. Why are CPT® codes also called HCPCS Level I codes?
  2. Why are HCPCS Level II codes, which appear to represent everything but routine medical procedures, considered a national procedure code set?

To understand the answers to these questions and gain a better grasp of HCPCS coding, you need to know how these two code sets came into existence.

History of HCPCS Coding

The history of HCPCS coding began in 1978 when the federal government created this coding system to standardize the reporting of medical services to the federal government for reimbursement. The HCPCS system, however, underwent several changes before adoption by commercial payers, which was eventually mandated by HIPAA in 1996.

Prior to the advent of procedure coding, providers submitted written descriptions of the services they performed to payers for reimbursement. This proved inefficient, in that 100 providers could report the same service with 100 different descriptions.

The American Medical Association (AMA) was the first to tackle the problem. In efforts to standardize reporting of medical, surgical, and diagnostic services and procedures, the association created a coding system and introduced CPT® in 1966.

By this time, the government had become a major payer of healthcare services. While it too needed to standardize healthcare claims, it also bore the responsibility of controlling costs for taxpayers. With this dual agenda, it created the HCFA Common Procedure Coding System (HCPCS).

In the above expansion of the HCPCS acronym, notice that the "H" does not stand for Healthcare, as it currently does. That’s because the federal agency we know today as the Centers for Medicare & Medicaid Services (CMS) went by the name of the Health Care Financing Administration (HCFA) until June 14, 2001. The original code set it created—essentially a version of CPT® tailored for claims filed with the government—was self-named.

But standardization in medical reporting was not yet achieved. In the subsequent decade, more than 120 different coding systems came into play, causing widespread variations in payers’ guidelines and claim forms.

In 1983, CMS merged its HCFA Common Procedure Coding System with AMA's CPT® and mandated use of CPT® for all Medicare billing.

Meanwhile, these two organizations had been collaborating on the development of a new code set to report medical-related expenses not represented in CPT® - items such as orthotic and prosthetic procedures, hearing and vision services, ambulance services, medical and surgical supplies, drugs, nutrition therapy, durable medical equipment, outpatient hospital care, and Medicaid.

The resulting code set, also implemented in 1983, begins where CPT® ends. As such, it is the second of two principal subsystems of HCPCS, aptly named HCPCS Level II.

And so it is, through the evolution of HCPCS coding, that CPT® was incorporated as the backbone of Level I, and the newer HCPCS Level II became known as a procedure coding system. Though procedures are only a minor part of the HCPCS Level II code set, most HCPCS codes are linked in application to procedure codes, as you will see.

History of HCPCS

Figure 1: Development of procedure coding systems. (Modified from Fordney MT, French LL: Medical Insurance Billing and Coding, ed 1, St Louis, 2003, Saunders.)

In the timeline above, note the relatively short-lived appearance of HCPCS Level III codes. The use of HCPCS Level III Local Regional codes for specific programs and jurisdictions was discontinued in 2003 to promote consistent coding standards.

Also in the timeline, notice that when HCFA became CMS in 2001, the HCPCS name changed to Healthcare Common Procedure Coding System.

HCPCS At A Glance

Among medical code sets—ICD-10, CPT®, and HCPCS Level II—HCPCS Level II is the most dynamic. CMS updates HCPCS Level II codes throughout the year, based on factors that include public input and feedback from providers, manufacturers, vendors, specialty societies, Blue Cross, and others.

Further distinctions between CPT® codes (HCPCS Level I) and HCPCS Level II codes include:

Code Set Codes Uses Code Structure Maintaining Body Period in Use Frequency of Updates
HCPCS Level I: Current Procedural Terminology, Fourth Edition Procedures and services provided by physicians and other allied healthcare professionals 5 numeric characters; some codes with a fifth alpha character AMA 1966 to present Yearly, in late summer or early fall for Jan. 1 implementation; some codes updated on Jan. 1 and July 1 for use six months later
HCPCS Level II: National Healthcare Common Procedure Coding System Drugs, supplies, equipment, non-physician services and services not represented in CPT® 5 characters, beginning with a letter and followed by 4 numbers CMS 1983 to present Yearly updates of the permanent code set, with quarterly updates of temporary codes

Structure of Level II HCPCS Codes

All HCPCS Level II codes consist of five characters, beginning with a letter—A through V—and followed by four numeric digits. The letter that begins the HCPCS Level II code represents the code chapter to which the HCPCS code belongs, thereby grouping similar items together.

Some examples of HCPCS Level II codes include:

  • J9355 — Injection, trastuzumab, excludes biosimilar, 10 mg
  • G9631 — Patient sustained ureter injury at the time of surgery or discovered subsequently up to 30 days post-surgery
  • C1823 — Generator, neurostimulator (implantable), non-rechargeable, with transvenous sensing and stimulation leads
  • V2599 — Contact lens, other type

The codes in each HCPCS code range are categorically referred to by the letter they begin with. For example, codes beginning with the letter J—used to report non-orally administered medication and chemotherapy drugs—are called J codes. Incidentally, J codes are among the most commonly reported codes in the HCPCS Level II code set.


How HCPCS Level II Codes Are Used

HCPCS Level II codes report what a provider used during a service provided to a patient to treat or assess a given diagnosis. As such, HCPCS codes are used in conjunction with CPT® and ICD-10 codes, as these three code sets are interdependent and come together in medical coding and billing, often in a single claim.

For a provider to receive reimbursement for a medical service, represented by a CPT® code, the medical coder must submit an ICD-10 code depicting the patient’s diagnosis to demonstrate medical necessity for the service. A HCPCS code is then added to the claim (when required by the payer) to report products that may have been prescribed, injected, or otherwise delivered to the patient during the service.

In general terms—with some exceptions—medical coders use the three code sets when submitting medical claims to report the following:

  • CPT® codes: what the provider did.
  • HCPCS codes: what the provider used.
  • ICD-10-CM: why the provider 'did' and 'used'.

For example, if a urologist diagnoses a patient with bladder cancer and performs a bladder instillation of 1 mg of Bacillus Calmette-Guerin (BCG) to treat the tumor, the medical coder might assign:

  • CPT® codes (did): 51720 (Bladder instillation of anticarcinogenic agent (including retention time))
  • HCPCS code (used): J9030 (BCG live intravesical instillation, 1mg)
  • ICD-10 code (why): C67.9 (Malignant neoplasm of bladder, unspecified)

As mentioned above, though, there are some exceptions to these general code set concepts.


First, not all payers accept HCPCS Level II codes. Initially intended for Medicare claims, many private payers have since adopted the HCPCS Level II code set. In fact, under the HIPAA requirement for standardized coding systems, HCPCS level II was selected for describing healthcare equipment and supplies not represented in CPT® due to its widespread commercial acceptance. That said, the existence of a HCPCS Level II code does not indicate third-party coverage. The medical coder must verify coverage with the payer prior to submitting a claim.

A second exception that may influence whether to choose a CPT® code or a HCPCS Level II code comes into play when the HCPCS code represents a procedure (what the provider did).

When a CPT® code and HCPCS Level II code exist for the same service or procedure, Medicare frequently requires you to report the HCPCS Level II code. Several third-party payers follow Medicare guidelines, but you must check with your payer.

You must also study the distinction between similar CPT® and HCPCS Level II code options. For instance, HCPCS Level II list various G codes to report screening services. The operative word in each of these HCPCS G code descriptors is screening.

Screening procedures are not diagnostic procedures. In other words, the HCPCS screening codes apply only to asymptomatic patients. Consider the following HCPCS code examples:

You might submit HCPCS code G0121 (Colorectal cancer screening; barium enema) when an asymptomatic patient fits the once every 10-year interval. If you bill G0121 earlier than the 10-year period, your claim will likely be denied.

But if a patient complains of symptoms such as blood in stool, and the gastroenterologist performs a diagnostic colonoscopy, you would choose CPT® code 45378 (Colonoscopy, flexible; diagnostic, including collection of specimen[s] by brushing or washing, when performed [separate procedure]).

Similarly, if an abnormal finding prompts your physician to convert a colorectal cancer screening into a diagnostic procedure, you would abandon the HCPCS code for the appropriate CPT® code and append it with CPT® modifier PT (Colorectal cancer screening test; converted to diagnostic test or other procedure).

Other circumstances may involve the option of reporting a HCPCS Level II code if the HCPCS code offers greater specificity than the CPT® code. This is sometimes the case with CPT® codes that represent supplies.

For example, you would choose CPT® code 29540 (Strapping; ankle and/or foot) to report the service of a physician who diagnosed a sprained right ankle and applied layers of web roll followed by adhesive tape to stabilize the patient’s ankle, which he then covered with the application of an elastic bandage.

If this encounter was an initial service with "no other procedure or treatment" required, you would also report CPT® code 99070 to document the use of supplies like tape or bandages. Some coders, though, opt to forgo the generic CPT® code 99070, preferring instead the detailed HCPCS A code options, such as A6448 (Light compression bandage, elastic, knitted/woven, width less than 3 inches, per yard).

HCPCS Level II Modifiers

HCPCS modifiers consist of two alpha or alphanumeric characters and are appended with a hyphen to the end of a HCPCS (or CPT®) code to expand the description of the code. Medical coders use HCPCS Level II modifiers when the information provided by a HCPCS code descriptor needs supplementation to fully capture the circumstances that apply to an item or service.

For example, you would use the HCPCS modifier UE when an item identified by a HCPCS code is “used equipment.” The NU modifier would be added to indicate “new equipment.”

So, if you're filing a claim for a patient who was prescribed and received a new wheelchair, you might report HCPCS code E1130 (Standard wheelchair, fixed full-length arms, fixed or swing away, detachable footrests) and append NU, as in E1130-NU, which would significantly affect reimbursement.

Another HCPCS code example demonstrates how modifiers affect reimbursement by accounting for loss.

If your provider administers 44 units of Botulinum toxin injection by direct laryngoscopy from a 100-unit single-dose vial, and then had to discard the remaining contents of the vial, you could report the discarded drug with the HCPCS JW modifier.

For this scenario, you'd report HCPCS code J0585 (Injection, onabotulinumtoxinA, 1 unit) on two separate lines. On the first line, you’d report J0585 x 44 to identify the amount administered. On the second line you would report J0585-JW x 56 to identify the amount discarded.

When reporting codes with more than one modifier, always list functional or pricing modifiers in the first position. Payers consider functional modifiers when determining reimbursement. Next, report the informational modifiers.

You will find the complete list of HCPCS Level II modifiers and their descriptions in the appendix of most HCPCS Level II code books.

Keeping Pace with HCPCS Level II

The Medicare Improvements for Patients and Providers Act of 2008 (MIPPA) requires CMS to review HCPCS Level II codes for potential changes that would enhance accurate reporting and billing for medical items and services. This involves maintaining HCPCS Level II quarterly updates, releasing information, and posting transaction and code set standards on its website.

Providers may acquire the CMS HCPCS Level II application form and instructions for submitting a recommendation to establish, revise, or discontinue a code.

Various types of HCPCS Level II codes are defined according to their purpose and who is responsible for establishing and maintaining them:

  • Permanent national HCPCS Level II codes
  • Dental codes
  • Miscellaneous codes (not otherwise classified)
  • Temporary national codes

Permanent national HCPCS Level II codes are updated annually by CMS. The CMS HCPCS Workgroup meets monthly to discuss if requests warrant a change to the national permanent codes. CMS then issues preliminary decisions for public comment and holds public meetings before making final decisions on codes.

Dental codes are a separate category of national codes for billing dental procedures and supplies. The American Dental Association (ADA) created the Current Dental Terminology (CDT®) code set comprised of HCPCS dental service codes, which are also called D codes because these codes begin with the letter D. The ADA holds the copyright to CDT codes and makes all decisions regarding the revision, deletion, or addition of dental service codes.

Miscellaneous codes (not otherwise classified) are used when no national code describing an item or service exists. A miscellaneous code maybe assigned by insurers for use while CMS considers the request for a new code. HCPCS miscellaneous codes also allow suppliers to bill for items or services as they are FDA-approved.

Before submitting a miscellaneous code, you should check with the health plan to verify the absence of a specific code. When submitting a claim to Medicare, it may be beneficial to contact your Medicare representative for coding advice.

Temporary national codes are used at the discretion of CMS to meet specific operating needs, such as newly issued coverage policies or legislative requirements. HCPCS temporary codes allow health plans to establish codes prior to the annual update on Jan. 1.

Temporary codes can be added, changed, or deleted on a quarterly basis—though they do not have established expiration dates. If CMS decides to replace a HCPCS Level II temporary code with a permanent national code, the temporary code is deleted and cross-referenced to the new permanent code.

Newly established temporary codes effective dates are posted on the HCPCS Level II website.


1. C codes are required under the Medicare Outpatient Prospective Payment System (OPPS) for use by hospitals to report drugs, biologicals, magnetic resonance angiography (MRA), and devices. Other facilities may report C codes at their discretion.

2. G codes are national codes assigned by CMS to identify professional healthcare procedures and services that may not have assigned CPT® codes.

3. H codes establish unique HCPCS temporary codes to identify mental health services for state Medicaid agencies mandated by state law to establish separate codes for those services.

4. K codes are used by Durable Medical Equipment Medicare Administrative Contractors (DME MACs). DME MACs develop new K codes when existing national codes for supplies and certain product categories do not include the codes needed to implement a DME MAC medical review policy.

5. Q codes identify services that would not be given a CPT® code or are not identified by national Level II HCPCS codes but are needed by CMS to facilitate claims processing. Such services include drugs, biologicals, and other types of medical equipment or services.

6. S codes meet various business needs of commercial and Medicaid agency health plans. HCPCS S codes report drugs, services, and supplies for which national codes do not exist but are needed to implement policies, programs, or support claims processing. They are not payable by Medicare.

7. T codes are designated for use by Medicaid agencies to establish codes for items for which there are no permanent national codes, and for which codes are necessary to meet Medicaid program operating needs. T codes are not used by Medicare but may be used by commercial health plans.

Interested in Becoming a Medical Coder?

If you’ve been thinking about a career in medical coding, there has never been a better time. Not only are medical coders in short supply and high demand, but training to become a Certified Professional Coder (CPC®) is far more affordable than college—and doesn’t take a fraction of the time. Learn proficient use of ICD-10, CPT®, and HCPCS, and launch your new career on the business side of healthcare.

And in the meantime, if you have HCPCS coding questions that we haven’t answered, you can post them here and receive helpful insight from AAPC members working in diverse healthcare settings.

Last Reviewed on Oct 24, 2019 by AAPC Thought Leadership Team

Looking for HCPCS Code Search?

Search across 4 medical code sets (CPT®, ICD-9, ICD-10, & HCPCS)

Become a Certified Medical Coder

Get your medical coding training and certification from the same trusted source

Order a HCPCS Book

Count on AAPC's HCPCS book to help you choose and report the right HCPCS code

Get Real-world Coding Experience

Improve coding skills across multiple specialties coding actual medical charts

Looking for Exhibiting Opportunities or Group Discounts?

Contact us at 877-524-5027.

Which certification is right for you?

Call 877-290-0440 or have a career counselor call you.

Which eNewsletters are right for you?

Call 844-334-2816 to speak with a specialist now.

Which books are right for you?

Call 877-524-5027 to speak to a representative.