# How to Build an ICD-10 Code Set and Keep It Current Each FY

URL: https://icdcodefinder.com/blog/how-to-build-an-icd-10-code-set  
Published: 2026-11-02  
Updated: 2026-11-02  
Author: Priya Raman, CPC, CCS-P — Code Set & Tools Editor (ICD Code Finder editorial pen name)  
Category: Coding Tools & Tips  
ICD-10-CM codes: E11, E11.6, E11.65, E11.9, E78.5, I10, M54.5, M54.50, M54.51, M54.59  

> A workflow guide for billing teams and coding leads: build specialty code lists and superbills from real data, avoid header codes, and audit every list against each October 1 ICD-10-CM update.

## Key takeaways

- Build a code set from 12 months of real claims and denial data, then verify every entry in the Tabular List rather than copying from memory or an old superbill.
- Include only billable codes at the highest specificity the documentation supports, and flag any category or subcategory header, such as E11.6, for removal.
- Each October 1 update can turn a billable code into a header, delete codes, revise titles, or change instructional notes, so a list that worked last year can generate denials this year.
- Audit every code set against the new, revised and deleted code lists before October 1, and use the code set in effect on the date of service.
- Name each code set with its fiscal year, keep a change log with one owner, and export clean CSV or PDF versions for EHR pick lists and printed superbills.

Learning how to build an ICD-10 code set comes down to three habits. Start from real encounter data and provider documentation, include only billable codes at the highest specificity the records support, and re-audit the list against new, revised and deleted codes every October 1.

A code list that was accurate last year can quietly generate denials this year. This guide walks billing teams and coding leads through building and maintaining specialty lists, superbills and quality-measure code sets for FY2027.

This article is educational. Always follow the ICD-10-CM Official Guidelines for Coding and Reporting, payer policies and provider documentation.

## Why do practices and coding teams maintain their own ICD-10 code sets?

No team codes every encounter from a blank screen. Curated lists speed up work and make results more consistent. Common uses include:

- **Superbills and charge tickets** for a specialty or clinic.
- **EHR favorites and pick lists** that providers select from at the point of care.
- **Quality-measure code lists** used to identify denominators and exclusions.
- **Payer coverage lists**, such as diagnoses a policy lists as supporting a service.
- **Audit and education targets**, such as high-volume or high-denial diagnoses.

The benefit is speed and consistency. The risk is that a list feels authoritative even after the code set has changed underneath it. Maintenance matters as much as the initial build.

## How to build an ICD-10 code set for a specialty

A good ICD-10 code list for a specialty reflects what your providers actually treat and document. It should not reflect what an old template happened to contain.

### Start with data, not memory

Pull 12 months of claims data and rank diagnoses by frequency. Then add two more views:

- Diagnoses tied to denials or edits.
- Diagnoses that providers frequently write in rather than pick from the list.

The first view shows where the list causes errors. The second shows what is missing.

### Verify every code in the Tabular List

Never copy a code from a spreadsheet straight onto a superbill. Look it up and confirm it in the Tabular List. Check the full title, billable status and instructional notes.

You can [browse the Tabular List by chapter](/chapters) or [search ICD-10-CM codes free](/search). Each code page shows Excludes1 and Excludes2 notes, Code first and Use additional code notes, and 7th-character rules.

If you start from a diagnostic term rather than a code, use the [ICD-10-CM Alphabetic Index](/index) first. Our guide to [using the Alphabetic Index and Tabular List together](/blog/how-to-use-the-alphabetic-index-icd-10-cm) explains why both steps matter.

### Group codes the way people work

Organize the list by clinical grouping, not code order. A cardiology list might group hypertension, coronary disease, heart failure and arrhythmias. Within each group, list the specific options side by side so the provider sees the choices the documentation must support.

### Define scope, owner and fiscal year

Every code set needs a short header record:

1. Purpose, such as an outpatient endocrinology superbill.
2. Fiscal year of the code set it was validated against, such as FY2027.
3. Named owner and reviewer.
4. Date of last review.

Without these, nobody knows whether the list is current or who should fix it.

## How do you avoid non-billable header codes and unspecified-code overuse?

Header codes are the most common error on homegrown lists. A category or subcategory that has further subdivisions cannot be reported. The general coding guidelines on level of detail require codes to be reported at the highest number of characters available.

### What does a header problem look like?

| Code | Description | Billable? | Use on a code set? |
|---|---|---|---|
| [E11](/icd10/E11) | Type 2 diabetes mellitus | No (category) | No |
| [E11.6](/icd10/E11.6) | Type 2 diabetes mellitus with other specified complications | No (subcategory) | No |
| [E11.65](/icd10/E11.65) | Type 2 diabetes mellitus with hyperglycemia | Yes | Yes, when documented |
| [E11.9](/icd10/E11.9) | Type 2 diabetes mellitus without complications | Yes | Yes, when no complications are documented |
| [M54.5](/icd10/M54.5) | Low back pain | No (subcategory) | No |
| [M54.50](/icd10/M54.50) | Low back pain, unspecified | Yes | Yes, when no further detail is documented |
| [M54.51](/icd10/M54.51) | Vertebrogenic low back pain | Yes | Yes, when documented |
| [M54.59](/icd10/M54.59) | Other low back pain | Yes | Yes, when documented |

### Why do header codes slip onto lists?

They usually arrive in three ways. Someone types a short code from memory. A list is copied from a summary chart that shows only categories. Or a code was billable when the list was built and later gained subcodes.

That last case is the sneakiest. Low back pain is a good example. When the FY2022 update expanded M54.5 into M54.50, M54.51 and M54.59, any list that still carried M54.5 began producing invalid claims.

### When do unspecified codes belong?

Unspecified codes are not forbidden. They are correct when the documentation does not support more detail. For example, [I10](/icd10/I10), Essential (primary) hypertension, and [E78.5](/icd10/E78.5), Hyperlipidemia, unspecified, are routine entries on primary care lists.

The problem is a list that offers only the unspecified option. Providers pick what is in front of them. Place specific options next to the unspecified one so the list prompts better documentation rather than replacing it.

If documentation gaps keep forcing unspecified codes, that is a CDI issue. Our guide to [compliant physician query examples](/blog/compliant-physician-query-examples-cdi-templates) can help.

### What about 7th characters and placeholders?

Injury and certain other categories require a 7th character, sometimes with the placeholder X. A superbill entry without the 7th character is incomplete. Either list the full code with each needed 7th character, or train staff to add it from the code page.

## What changes in each FY update can break an existing code list?

ICD-10-CM updates take effect October 1 each year. CMS and NCHS can also release mid-year updates effective April 1. Claims must use the code set in effect on the date of service.

These are the changes that break lists:

- **Expansions.** A billable code gains subcodes and becomes a non-billable header.
- **Deleted ICD-10 codes.** A code is removed and must be replaced on every list that holds it.
- **Revised titles.** The code stays, but its meaning or scope may narrow or widen.
- **New codes.** A new, more specific option may now fit encounters you were coding less precisely.
- **Instructional note changes.** New Excludes1, Code first or Use additional code notes can change valid pairings. See our explainer on [Excludes1 vs Excludes2 notes](/blog/excludes1-vs-excludes2-icd-10-cm-exclusion-notes).
- **Guideline and Index changes.** These can change which code a term leads to, even when the codes themselves did not change.

For the official files, see the [CMS ICD-10 page](https://www.cms.gov/medicare/coding-billing/icd-10-codes) and the [NCHS ICD-10-CM page](https://www.cdc.gov/nchs/icd/icd-10-cm/index.html).

## How do you audit a code set against new, revised and deleted codes?

Run this audit as soon as the next fiscal year's files are released. For FY2027, the code set took effect October 1, 2026, and you can review the [FY2027 new, revised and deleted codes](/updates) in one place.

1. **Export the current list** with codes and descriptions exactly as they appear today.
2. **Match against the deleted list.** Every hit needs a replacement before the effective date.
3. **Match against the new list by category.** If a new code shares a parent with one of your codes, check whether your code became a header.
4. **Match against revised titles.** Reread each revised description and confirm it still fits the clinical group.
5. **Re-check billable status for every entry.** This catches expansions that the first three steps can miss.
6. **Review instructional notes** on the codes your providers use most.
7. **Have a coder and a clinician sign off** on replacements, especially where one old code splits into several.
8. **Record every change** in a change log with the fiscal year and date.

### How should you act on audit findings?

| Finding | Action |
|---|---|
| Code deleted | Replace with the appropriate new code or codes; never auto-map without review |
| Code became a header | Replace with the billable subcodes the documentation can support |
| Title revised | Confirm the code still matches the clinical intent of the list |
| New, more specific code available | Consider adding it and educating providers on the documentation it needs |
| New Excludes1 note | Check common code pairs on the list for conflicts |

Legacy lists that still carry ICD-9-CM history need a separate conversion. Our guide to [using GEMs without miscoding](/blog/icd-9-to-icd-10-crosswalk-gems-guide) covers that process.

## How should teams share, version and export code sets?

Most stale-list problems come from copies. One person updates the master spreadsheet while three clinics keep printing last year's superbill.

### Keep one source of truth

Store each list in one place with one owner. Everything else, including EHR pick lists, practice management tables and printed forms, should be generated from that source.

### Version by fiscal year

Put the fiscal year in the name, for example Cardiology Superbill FY2027. Keep the prior year's version read-only. You may need it to review claims with earlier dates of service.

### Export in usable formats

A CSV export feeds EHR and billing system imports. A PDF works for printed superbills and audit files. Always export codes with dots and full descriptions to avoid transcription errors.

ICD Code Finder's [Code Set Builder](/code-sets) lets you save, organize and share code lists. Free accounts get a limited number of code sets. Pro and Team plans add unlimited code sets, CSV and PDF exports and FY-update email alerts. Team plans add shared team code sets. See [plans and pricing](/pricing) for details.

## What does an annual ICD-10 update checklist look like?

Use this annual ICD-10 update checklist each fiscal year. Adjust the timing to your organization.

**When the next FY files are released**

- Download the official new, revised and deleted code lists and the updated guidelines.
- Inventory every code set: superbills, EHR favorites, quality lists, payer lists and education materials.
- Assign an owner and deadline for each list.

**Before October 1**

- Run the audit steps above on every list.
- Build FY2027-labeled versions and keep prior versions read-only.
- Update EHR and practice management tables and test them.
- Reprint or retire paper superbills.
- Brief providers on new codes that need more documentation detail.

**After go-live**

- Monitor rejections and denials tied to invalid or header codes for the first weeks.
- Watch for April 1 updates and repeat a smaller audit if one is released.
- Log lessons learned for next year.

When guideline questions come up during the review, the [guidelines chat](/ai/guidelines-chat) can help you find relevant sections quickly. AI answers always need review by a qualified coder against the official guideline text.

## Next steps

Knowing how to build an ICD-10 code set is only half the job; keeping it current every fiscal year is what prevents denials. Start by checking your highest-volume list against the [FY2027 updates](/updates), then rebuild it as a versioned list in the [Code Set Builder](/code-sets).

Ready to verify your entries? [Look up codes free](/search), or explore more [coding tools and tips](/blog/category/coding-tools-and-tips) on the blog.

## Frequently asked questions

**How many codes should a specialty superbill include?**

There is no official number. Most teams aim for the diagnoses that cover the large majority of their encounters, based on claims frequency, and leave rarer conditions to a full code search. A shorter, accurate list is safer than a long one full of headers and stale entries.

**Can I keep using a deleted ICD-10-CM code until my superbill is reprinted?**

No. Claims must use codes that are valid on the date of service, and deleted codes are not valid after the effective date of the update. Replace deleted codes in printed and electronic lists before October 1, or before any mid-year effective date.

**Is it wrong to put unspecified codes on a code set?**

Not necessarily. Unspecified codes are appropriate when the documentation does not support a more specific code. The risk is a list that offers only unspecified options, which encourages under-specific coding even when the record supports more detail.

**Do GEMs help with the annual ICD-10-CM update?**

Not directly. GEMs map ICD-9-CM to ICD-10-CM and are mainly useful for converting legacy lists or historical data. For year-over-year changes, review the official new, revised and deleted code files for the fiscal year instead.

**Who should own a practice's ICD-10 code sets?**

Assign one named owner per code set, usually a coding lead or billing manager, with a credentialed coder reviewing clinical content. Providers or CDI staff should review specialty lists for clinical relevance. Shared ownership without a named owner is how outdated lists survive.

**When should the annual code set review start?**

Start as soon as the next fiscal year's code files are released, which usually happens months before October 1. That leaves time to update EHR pick lists, practice management systems and printed superbills, and to train staff before the effective date.

---

Disclaimer: ICD Code Finder is an informational tool and is not a substitute for professional coding judgment, payer policy, or the official ICD-10-CM classification and guidelines. Not affiliated with, endorsed by, or sponsored by CMS, NCHS, or the World Health Organization. AI suggestions require review by a qualified coder.
