NLM logo

Unified Medical Language System (UMLS)

UMLS Vocabularies

HCPCS (HCPCS - Healthcare Common Procedure Coding System) - Source Representation



Three SABs are assigned to HCPCS data, based on the code value.

  • Level I codes are copyrighted by the American Medical Association (AMA) and are assigned RSAB = "HCPT".
  • Level II codes include data copyrighted by the American Dental Association’s Current Dental Terminology (CDT). 5-character alpha-numeric codes beginning with the letter "D," and are assigned RSAB = "HCDT". All other Level II codes are assigned RSAB = "HCPCS."

The standard HCPCS data files do not include a hierarchy. The NLM uses the printed book and other resources to generate a hierarchy during Metathesaurus source processing. This hierarchy has not been reviewed by CMS and is attributed to SAB = HCPCS, TTY = MTH_HT.

HCPCS includes many attributes. When possible, NLM source processing has attempted to include an expanded value in the ATV field of MRSAT to enable the data to be self-documenting.
The expanded values have been extracted from HCPCS2020_recordlayout.txt and proc_notes2020.txt as appropriate.
For example, for the HCPCS Multiple Pricing Indicator Code is assigned an ATN of "HMP" in MRSAT.RRF.
A value that appears as "A"in the data file is given an expanded ATV of "A = Not applicable as HCPCS priced under one methodology" in MRSAT.RRF.

Summary of Changes


SAB = MTHHH has been deprecated. The HCPCS hierarchy is now represented as SAB = HCPCS, TTY = MTH_HT

Source-Provided Files: Summary


The complete HCPCS Contractor distribution includes the following:

Documentation and Reference

File Name Description
HCPC2020_Trans_Report_ALL.xlsx A series of reports containing information on the types of transactions (updates and changes) which were made to the HCPCS database. This file is not processed directly.
HCPC2020_recordlayout.txt Documentation for the contractor record layout, including field names, lengths, beginning and ending character positions, and detailed descriptions of the values.
proc_notes_2020.txt Explanations of values for HCPCS Processing Notes.

Data File

File Name Description
HCPC2020_CONTR_FINAL_11042019.txt Fixed-length field data file, including Level I and Level II codes and all associated data.

Source-Provided Files: Details

Details on format of input files and representation of source data. Consult the HCPCS documentation for additional details.

file: HCPC2020_CONTR_FINAL_11042019.txt

# Field Length Begin End Description Representation
1 Code 5 1 5 HCPCS Level I or Level II Code; for modifiers, characters 1-3 are filler MRCONSO.CODE, MRCONSO.SCUI
2 Sequence Number 5 6 10 Sequence number by 100s. Used to group procedure or modifier codes together Not represented in the Metathesaurus
3 Record Identification Code 1 11 11 Code to identify record type Used to determine TTY: 3 = Modifier (TTY = "MP", "AM", "OM", "OAM");
7 = procedure record (TTY = "PT", "AB", "OP", "OA")
4 Long Description 80 12 91 Contains all text of procedure or modifier long description MRCONSO.STR, TTY = "PT", "OP", "OM" or "OP" depending on values of the "Record Identification Code" and the "Termination Date." The "MP" atom is generally created by extracting the text before the first ":". Material appearing after the first ":" is included in MRSAT.ATN = "CPF".
5 Short Description 28 92 119 Short descriptive text of procedure or modifier code. MRCONSO.STR; TTY = "AM", "OAM", "AB", or "OA" depending on values of the "Record Identification Code" and the "Termination Date."
6 Pricing Indicator 2 120 121 Code used to identify the appropriate methodology for developing unique pricing amounts under part B. A procedure may have multiple pricing codes. MRSAT.ATN = "HPI" (value expanded per documentation).
7 Multiple Pricing Code 1 128 128 Code used to identify instances where a procedure could be priced under multiple methodologies. MRSAT.ATN = "HMP" (value expanded per documentation).
8 Coverage Issues Manual Reference Section Number 6 129 134 Number identifying the reference section of the coverage issues manual. A procedure may have multiple references. MRSAT.ATN = "HIR"
9 Medicare Carriers Manual Reference Section Number 8 147 154 Number identifying a section of the Medicare carriers manual. A procedure may have multiple references. MRSAT.ATN = "HMR"
10 Statute Number 10 171 180 Number identifying statute reference for coverage or non-coverage of procedure or service. MRSAT.ATN = "HSN".
11 Lab Certification Code 3 181 183 Code used to classify laboratory procedures according to the specialty certification categories listed by CMS. Any generally certifiable laboratory (e.g., 100) may perform any of the tests in its subgroups (e.g., 110, 120, etc.) A procedure may have multiple certification codes. MRSAT.ATN = "HLC"
12 Cross Reference Code 5 205 209 Explicit reference cross-walking a deleted code or a code that is not valid for Medicare to a valid current code (or range of codes). MRSAT.ATN = "HXR"; when codes are valid, cross-references are also represented in MRREL, with REL = "RQ" and RELA = "mapped_to"/"mapped_from".
13 Coverage Code 1 230 230 Code denoting Medicare coverage status. MRSAT.ATN = "HCC"
14 ASC Payment Group Code 2 231 232 A value of "YY" indicates that this procedure is approved to be performed in an ambulatory surgical center. MRSAT.ATN = "HPG"
15 ASC Payment Group Date 8 233 240 Date the procedure is assigned to the ASC payment group. MRSAT.ATN = "HPD"
16 MOG Payment Group Code 3 241 243 Medicare outpatient groups (MOG) payment group code. Not applicable (in the current HCPCS version, this field is always empty.)
17 MOG Payment Policy 1 244 244 Indicator identifying whether a HCPCS code is subject to payment of an ASC facility fee, to a separate fee under another provision of Medicare, or to no fee at all. Not applicable (in the current HCPCS version, this field is always empty.)
18 MOG Effective Date 8 245 252 The date the procedure is assigned to the Medicare outpatient group (MOG) payment group. Not applicable (in the current HCPCS version, this field is always empty.)
19 Processing Note Number 4 253 256 Number identifying the processing note contained in Appendix A of the HCPCS manual. MRSAT.ATN="HPN" (value expanded per documentation).
20 Berenson-Eggers Type of Service Code 3 257 259 The BETOS for the procedure code based on generally agreed-upon clinically meaningful groupings of procedures and services (values expanded per documentation). MRSAT.ATN = "HBT"
21 filler 1 260 260 Not applicable Not applicable
22 Type of Service Code 1 261 261 The carrier-assigned CMS type of service which describes the particular kind(s) of service represented by the procedure code . A procedure may have multiple type of service codes. MRSAT.ATN = "HTS"
23 Anesthesia Base Unit Quality 3 266 268 Represents the level of intensity for anesthesia procedure services that reflects all activities except time. These activities include usual pre-operative and post-operative visits, the administration of fluids and/or blood incident to anesthesia care, and monitoring procedures. MRSAT.ATN = "HAQ"
24 Code Added Date 8 269 276 Year the code was added to HCPCS. MRSAT.ATN = "HCD"
25 Action Effective Date 8 277 284 Effective date of action to a procedure or modifier code. MRSAT.ATN = "HAD"
26 Termination Date 8 285 292 Last date for which a procedure or modifier code may be used by Medicare providers. MRSAT.ATN = "HTD"; a non-blank termination date is also used to assign obsolete term types (TTY = "OP", "OA", "OM", "OAM").
27 Action Code 1 293 293 A code denoting the change made to a procedure or modifier code within the HCPCS system (value expanded per documentation). MRSAT.ATN = "HAC"
28 filler 27 294 320 Not applicable Not applicable