ICD-9 to ICD-10 Crosswalk: How to Use GEMs Without Miscoding
GEMs show plausible ICD-10-CM translations of legacy ICD-9-CM codes, not final codes. Learn what the GEMs flags mean and how to validate crosswalk results against the FY2027 Tabular List.
On this page
- What are the GEMs and why were they created?
- How do forward and backward mappings differ?
- What do the approximate, no map and combination flags mean?
- How should you handle one-to-many and many-to-one mappings?
- When is an ICD-9 to ICD-10 crosswalk appropriate?
- How do you validate crosswalked codes against the current Tabular List?
- What is a safe workflow for converting legacy code lists?
- Common crosswalk mistakes to avoid
- Next steps
Key takeaways
- An ICD-9 to ICD-10 crosswalk built on GEMs lists plausible translations, not the code you should report.
- Forward mappings run from ICD-9-CM to ICD-10-CM and backward mappings run the other way, and the two files are not mirror images.
- The approximate, no map and combination flags tell you how much manual review a mapping entry needs.
- GEMs were last updated for FY2018, so every target code must be checked against the current FY2027 Tabular List for billable status, 7th characters and instructional notes.
- Use GEMs for legacy data conversion, research and historical code lists, never as a substitute for coding from the medical record.
An ICD-9 to ICD-10 crosswalk built on the General Equivalence Mappings (GEMs) shows which ICD-10-CM codes are plausible translations of a legacy ICD-9-CM code. It does not tell you which code to report. Use GEMs to convert historical data and code lists, then validate every result against the current FY2027 Tabular List and, whenever claims are involved, the source documentation.
This guide explains what the GEMs files contain, what their flags mean and how to build a conversion workflow that does not introduce coding errors. It is educational content, not billing-compliance advice. Always follow the ICD-10-CM Official Guidelines, payer policies and provider documentation.
What are the GEMs and why were they created?
The General Equivalence Mappings are reference files that CMS and the CDC's National Center for Health Statistics (NCHS) published to support the move from ICD-9-CM to ICD-10-CM and ICD-10-PCS. ICD-10 took effect in the United States on October 1, 2015.
Organizations needed a way to translate years of claims, registries, quality measures and payment logic. GEMs gave them a shared, published starting point. They were designed for data translation, not for coding individual encounters.
Two facts matter most today:
- GEMs are frozen. The FY2018 release was the last update. Every ICD-10-CM update since then, including FY2027, has added, revised or deleted codes the GEMs never saw.
- GEMs are not one-to-one. ICD-10-CM is far more granular. It adds laterality, encounter-based 7th characters and many combination codes, so most mappings are approximate.
You can browse the mappings in the GEMs ICD-9-CM to ICD-10-CM crosswalk. For background on the code set itself, see the CDC NCHS ICD-10-CM page.
How do forward and backward mappings differ?
The GEMs come in two directions. The forward map starts from ICD-9-CM and lists ICD-10-CM targets. The backward map starts from ICD-10-CM and lists ICD-9-CM targets.
The two files are not mirror images. Each was built from the point of view of its own source code. A relationship can appear in one direction and not the other.
| Feature | Forward mapping | Backward mapping |
|---|---|---|
| Source code set | ICD-9-CM | ICD-10-CM |
| Target code set | ICD-10-CM | ICD-9-CM |
| Typical use | Converting legacy data and old code lists | Comparing new data with historical trends |
| Key risk | Picking one target from many candidates | Losing ICD-10-CM detail when collapsing |
| Reverse lookup | Possible, but adds candidates to review | Possible, but adds candidates to review |
Should you use both directions?
For high-stakes conversions, many analysts check both. A "reverse lookup" means reading the backward file from the target side. It can surface ICD-10-CM codes that the forward file never lists for a given ICD-9-CM code.
That widens the candidate list. It does not make the decision for you. More candidates mean more review, not more accuracy.
What do the approximate, no map and combination flags mean?
Each GEMs entry carries a set of flags. They tell you how much trust and review the entry needs. The five flags are approximate, no map, combination, scenario and choice list.
| Flag | Value meaning | What you should do |
|---|---|---|
| Approximate | 1 = not an exact equivalent | Compare code titles and notes; confirm meaning |
| No map | 1 = no plausible translation exists | Research manually or flag for review |
| Combination | 1 = more than one target code is needed | Keep all required codes together |
| Scenario | Number identifying a combination scenario | Group entries by scenario |
| Choice list | Number identifying a choice list within a scenario | Pick one code from each choice list |
What does the approximate flag mean?
The approximate flag set to 1 means the source and target do not express exactly the same concept. The target may be broader, narrower or organized differently. Most GEMs entries carry it.
So an approximate flag is not an error. It is a warning that the ICD-10-CM code may say more, or less, than the original ICD-9-CM code.
What does the no map flag mean?
A no map entry means the GEMs found no plausible translation. In the files, the target appears as a placeholder rather than a real code.
Never force a code onto these records. Look the concept up in the ICD-10-CM Alphabetic Index, check the Tabular List, or route the record to a coder or clinician.
What do combination, scenario and choice list flags mean?
A combination flag means one source code needs two or more target codes to capture its full meaning. The scenario number groups the entries that belong together. The choice list number tells you which slot each code fills.
To build a complete translation, take one code from each choice list within the same scenario. Splitting a scenario, or using only its first code, loses meaning and can break sequencing rules.
How should you handle one-to-many and many-to-one mappings?
These are the two patterns that cause the most miscoding.
One-to-many mappings
One ICD-9-CM code often maps to several ICD-10-CM codes. The extra detail usually involves laterality, encounter type, a specific complication or a type of condition.
Consider ICD-9-CM 820.8, fracture of unspecified part of neck of femur, closed. ICD-10-CM splits this concept by side and requires a 7th character. Candidates include S72.001A for the right femur and S72.002A for the left femur, both for the initial encounter for closed fracture.
The legacy record does not say which side, or which encounter. A crosswalk cannot invent that. Only documentation can supply it.
Diabetes shows a subtler version. ICD-9-CM 250.00 converts naturally to E11.9, type 2 diabetes mellitus without complications. ICD-9-CM 250.02 described type II diabetes "uncontrolled," and the ICD-10-CM Alphabetic Index classifies uncontrolled diabetes by what it means:
- Hyperglycemia: E11.65, type 2 diabetes mellitus with hyperglycemia
- Hypoglycemia: E11.649, type 2 diabetes mellitus with hypoglycemia without coma
Picking one automatically would misstate the patient's condition in a large share of records.
Many-to-one mappings
Several ICD-9-CM codes can also collapse into one ICD-10-CM code. Distinctions that ICD-9-CM made may not exist in ICD-10-CM, or may live elsewhere in the classification.
This is usually safe for conversion. It matters for analytics, though. Trend lines can shift when distinct historical categories merge into one current code.
A simple decision rule
- If one target exists and the approximate flag is 0, verify it and accept it.
- If one target exists and the flag is 1, compare titles, inclusion terms and notes before accepting.
- If several targets exist, choose based on documentation, or keep the most defensible unspecified option and record why.
- If a combination scenario exists, keep every required code from it.
- If no map exists, research manually.
When is an ICD-9 to ICD-10 crosswalk appropriate?
An ICD-9 to ICD-10 crosswalk is a data tool. It works well when you need consistency across large historical datasets. It works poorly when a single patient's claim is at stake.
Good uses for GEMs
- Legacy data conversion for research, registries and longitudinal reporting
- Rebuilding old value sets, edits or quality-measure code lists
- Comparing pre-2015 and post-2015 trends
- Translating historical diagnosis lists in policies or templates as a first draft
Poor uses for GEMs
- Assigning codes to a current encounter
- Recoding old claims for rebilling without reviewing the record
- Replacing the Alphabetic Index and Tabular List lookup
- Building payer edits without checking current-year validity
CMS described the GEMs as translation tools, not a substitute for coding from documentation. Current claims must be coded from the provider's record using the CMS ICD-10 resources and the Official Guidelines.
How do you validate crosswalked codes against the current Tabular List?
Because GEMs stopped at FY2018, validation is not optional. A code that was valid then may now be a header, may have new children or may have been deleted.
Check each target code for these points:
- Billable status for FY2027. A code that has since been expanded is no longer reportable at its old level.
- Required 7th characters and placeholders. Injury, poisoning and some other chapters need them.
- Excludes1 and Excludes2 notes. Two converted codes may not be reportable together. See our guide to Excludes1 vs Excludes2 exclusion notes.
- Code first and use additional code notes. A converted code may require a paired code or a specific sequence.
- Default rules. For example, Section I.C.4.a.2 of the Official Guidelines directs coders to default to E11.- when the type of diabetes is not documented.
Each code page on ICD Code Finder shows the full title, billable status, exclusion notes, instructional notes and 7th-character rules. Browse the Tabular List by chapter for context, and check the FY2027 new, revised and deleted codes for anything that changed after the GEMs were frozen.
What is a safe workflow for converting legacy code lists?
A repeatable process keeps a conversion defensible. Here is a workflow that suits coders, analysts and billing teams.
- Define the purpose. Decide whether the output feeds analytics, policy, edits or claims. Claims require documentation review for every record.
- Clean the source list. Confirm that each ICD-9-CM code is valid and formatted with its decimal.
- Run the forward map. Pull every target from the GEMs crosswalk, with all flags.
- Add a reverse lookup when stakes are high. Capture candidates that appear only in the backward file.
- Triage by flag. Separate exact, approximate, one-to-many, combination and no map entries.
- Resolve with the classification. Use the Alphabetic Index and Tabular List, not the GEMs alone, to choose among candidates.
- Validate against FY2027. Confirm billable status, 7th characters, notes and any code changes since FY2018.
- Document every decision. Record the source code, the chosen target, the flag and the rationale.
- Get a second review. Have a credentialed coder sign off on ambiguous or high-volume mappings.
- Save and maintain the list. Re-check it every October 1 when the new fiscal year takes effect.
The Code Set Builder lets you save, organize and share converted lists. Pro and Team plans add CSV and PDF exports and FY-update email alerts, which help with step 10. See pricing for plan details.
Can AI tools help with crosswalk review?
They can speed up research, but they do not replace review. The guidelines chat can help you find the relevant Official Guidelines section for a tricky mapping. These bring-your-own-key tools run on your own AI provider account, and every suggestion needs a qualified coder's review.
Common crosswalk mistakes to avoid
Most conversion errors come from a few predictable shortcuts:
- Taking the first listed target in a one-to-many map
- Dropping the second code in a combination scenario
- Ignoring no map entries or filling them with a guess
- Skipping current-year validation because the GEMs "already checked it"
- Rebilling historical claims from a crosswalk without the record
- Treating unspecified targets as interchangeable with specified ones
A well-documented ICD-9 to ICD-10 crosswalk avoids these by treating every mapped result as a draft until it passes validation.
Next steps
Start with the GEMs crosswalk to pull candidate mappings, then verify each target code against the FY2027 Tabular List before you use it. When you are ready to check titles, notes and billable status, look up codes free. For more practical guides, browse more Coding Tools & Tips articles.
Frequently asked questions
Are GEMs still updated by CMS?
No. CMS and NCHS released GEMs annually during the transition years, and the FY2018 files were the last update. Because the ICD-10-CM code set has changed every fiscal year since, crosswalk targets can be outdated and must be validated against the current Tabular List.
Can I bill a code that came directly from a GEMs crosswalk?
Not without review. A GEMs result is a plausible translation for data conversion, not a coding decision. Claims must be coded from the provider documentation using the ICD-10-CM Official Guidelines, the Tabular List and applicable payer policies.
What does an approximate flag of 1 mean in the GEMs?
It means the source and target codes are not exact equivalents. The target may be broader, narrower or differently organized than the source. Most GEMs entries carry this flag, so it signals that review is needed rather than that the map is wrong.
What should I do with an ICD-9-CM code that has no map?
Do not force a translation. Research the clinical concept in the ICD-10-CM Alphabetic Index and Tabular List, or flag the record for clinical or coding review. If no reasonable equivalent exists, document that the record could not be converted.
Why do forward and backward GEMs give different answers?
The two files were built separately, each from the perspective of its source code set. A backward map can link an ICD-10-CM code to an ICD-9-CM code that the forward map never points to. Many analysts review both directions to see the full set of candidate relationships.
Do crosswalked codes need 7th characters?
Often, yes. Many ICD-10-CM categories, especially injury and external cause codes, require a 7th character that ICD-9-CM never captured. A crosswalk cannot infer the encounter type, so the 7th character must come from documentation or be handled as a known data limitation.
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.
Look up ICD-10-CM codes free.
Search the FY2027 code set with instructional notes, Excludes1/Excludes2, 7th characters and GEMs, then build and check code sets. AI note-to-code suggestions included.