Overview
HCPCS — Healthcare Common Procedure Coding System — is the two-level coding system used for healthcare billing in the United States. Level I is CPT, maintained by the AMA. Level II is the alphanumeric code set maintained by CMS, covering services, supplies, products, and drugs not described in CPT. In everyday RCM language, 'HCPCS code' usually refers to Level II; when CPT is meant, it is called CPT. The full term HCPCS properly encompasses both levels.
HCPCS Level II codes are structured as a letter prefix plus four digits. A-codes cover medical and surgical supplies; B-codes enteral/parenteral therapy; C-codes hospital outpatient payment system codes; D-codes dental procedures; E-codes durable medical equipment; G-codes temporary CMS-specific procedures; H-codes rehabilitative services; J-codes injectable drugs; K-codes temporary codes for DME; L-codes orthotic and prosthetic procedures; M-codes medical services; P-codes pathology and laboratory services; Q-codes miscellaneous temporary codes; R-codes diagnostic radiology services; S-codes non-Medicare temporary codes; T-codes national T-codes established for Medicaid; V-codes vision services.
Level II codes are most operationally important in DMEPOS (durable medical equipment, prosthetics, orthotics, supplies) and drug administration contexts. A hospital outpatient clinic billing for an injection of a biologic drug uses a J-code (e.g., J2505 for pegfilgrastim) to report the drug along with administration CPT. A DME supplier providing a wheelchair uses an E-code (e.g., E1161 for a manual wheelchair). Medicare's Durable Medical Equipment MAC jurisdictions reference HCPCS Level II directly for coverage and payment.
Temporary and category-specific codes warrant operational attention. G-codes are CMS-maintained for CMS-specific services (e.g., G0438 for initial annual wellness visit) and may not be recognized by all commercial payers. S-codes are BCBS Association and non-Medicare commercial payer codes; they should not appear on Medicare claims. C-codes are OPPS-specific for hospital outpatient; they do not apply to physician claims. Selecting the wrong category of HCPCS for the specific payer is a common denial driver.
Updates happen quarterly (not annually like CPT). CMS publishes quarterly HCPCS Level II updates with new, revised, and retired codes. RCM systems that refresh CPT annually but not HCPCS Level II quarterly will have stale codes on DMEPOS and drug claims.
Coders working with HCPCS Code see the edge cases most often at the coding-documentation boundary. Payer-specific coverage policies, LCDs, NCDs, and local guidance on HCPCS Code change more often than the underlying clinical text implies, so a reviewer-authored crosswalk between the coding convention and the associated cpt code workflow is one of the cheapest CDI interventions available. HCPCS Code is also where a well-maintained claim scrubber earns its keep — the cost of a single mis-coded claim downstream is usually 5–10× the cost of the scrub rule that would have caught it.
Industry benchmark
CMS HCPCS Level II quarterly updates (https://www.cms.gov/medicare/coding/medhcpcsgeninfo). The Medicare DME MAC coverage database directly references HCPCS Level II codes. Misaligned codes across payers (Medicare vs commercial) drive 1–3% of total denial volume in DMEPOS operations.
Worked example
A hospital infusion clinic administers 10mg of pegfilgrastim. The claim includes CPT 96372 (administration) plus HCPCS J2505 with 10 units (representing 6mg per unit — the drug's HCPCS unit definition). Units × HCPCS unit-allowable × dose quantity must align with payer drug-pricing logic. Misreporting units is one of the most frequent drug-claim denial reasons.
Frequently asked questions — HCPCS Code
What's the difference between HCPCS and CPT?
CPT is HCPCS Level I — AMA-maintained, five-digit numeric codes for most professional services. HCPCS Level II is CMS-maintained alphanumeric codes for items not in CPT — DMEPOS, drugs, ambulance, administrative services. Together they are the HCPCS code set.
Are HCPCS Level II codes updated annually?
No, quarterly. CMS publishes quarterly updates to Level II. Organizations that update coding systems only annually miss three of four quarterly updates and will submit claims with retired HCPCS codes.
Can I use S-codes on Medicare claims?
No. S-codes are BCBSA and commercial temporary codes, not recognized by Medicare. Using S-codes on Medicare claims produces rejection or denial. Commercial claims may accept them depending on payer policy.
Are J-code units the drug dose or a specific unit?
Each J-code has a unit definition in its HCPCS description (e.g., J2505 is 'per 6 mg'). Claims must report the number of unit allowances consumed, not the mg. Mismatched units vs. dose is a frequent drug-claim denial.
Disclaimer
This glossary entry is operational reference for revenue-cycle and medical-billing professionals. It is not legal, clinical, or contractual advice. Industry benchmarks cite named public sources where available; always verify against the current guidance from the authority body before relying on a number in a contract, policy, or compliance filing.