How to deal with gaps in eligibility responses

Aug 27, 2025

Guide

If you want to get benefits data, eligibility checks are usually the best place to start. They’re fast, accurate, inexpensive, and easy to automate. In most cases, eligibility responses give you everything you need.

But not always. While there is some required data, payers mostly decide what benefits to include in their eligibility responses. Benefits for some services – like medical nutrition therapy – might be hidden in free-text fields or missing entirely. If the payer leaves information you need out, it can create a gap in your workflow.

Stedi has worked with teams who have filled these gaps – for medical nutritional therapy and other services –  to keep their workflows running.

This guide covers how you can follow their practices to get the most out of eligibility responses and what to do when you need more information. It uses medical nutrition therapy benefits as a running example.

Eligibility responses

Eligibility responses organize benefits by Service Type Codes (STCs), which group services into broad categories like "office visit" or "surgery." You can get the full STC list in our docs.

If you use Stedi’s JSON-based Eligibility API, these benefit details are in the benefitsInformation object array. Each object in the array includes a serviceTypeCodes field with the related STC:

{
  ...
  "benefitsInformation": [
    {
      "code": "1",                        // Active coverage
      "serviceTypeCodes": ["30"],         // General medical
      "timeQualifierCode": "23",          // Calendar year
      "inPlanNetworkIndicatorCode": "Y",  // Applies to in-network services
      "additionalInformation": [
        {
          "description": "Preauthorization required for imaging services."
        }
      ]
    },
    {
      "code": "C",                        // Deductible
      "serviceTypeCodes": ["30"],         // General medical
      "benefitAmount": "1000",            // $1000 annual deductible
      "timeQualifierCode": "23",          // Calendar year
      "inPlanNetworkIndicatorCode": "N"   // Applies to out-of-network services
    },
    {
      "code": "D",                        // Benefit Description
      "serviceTypeCodes": ["30"],
      "additionalInformation": [
        {
          "description": "EXCLUSIONS: COSMETIC SURGERY, EXPERIMENTAL TREATMENTS"
        }
      ]
    }
  ],
  ...
}

For more information on interpreting eligibility responses, see How to read a 271 eligibility response in plain English.

Why gaps can happen

Though not a one-to-one mapping, the STC you send in the eligibility request determines the benefits you get back in the response.

The problem is that X12 5010 – the X12 version mandated by HIPAA –  doesn’t have a specific STC for medical nutrition therapy or some other healthcare services.

If a payer includes benefits for these services in their eligibility responses, it’s usually under a generic STC like 30 (Health Benefit Plan Coverage) or 98 (Professional Physician Visit - Office), often as a free-text description.

These descriptions appear in the additionalInformation.description field of benefitsInformation objects. Look for them with a code of 1 (Active Coverage), D (Benefit Description), or F (Limitations), but they can also show up in other entries too.

Example: Co-pay with free-text note
For example, the following entries relate to a generic STC – BZ (Physician Visit - Office: Well). The additionalInformation.description values indicate they relate to nutritional therapy.

{
  "code": "1",                               // Active coverage
  "serviceTypeCodes": ["BZ"],                // Physician Visit - Office: Well
  "inPlanNetworkIndicatorCode": "W",         // Both in and out-of-network
  "additionalInformation": [
    {
      "description": "NUTRITIONAL THERAPY AND COUNSELING"
  ]
},
{
  "code": "B",                               // Co-pay
  "serviceTypeCodes": ["BZ"],                // Physician Visit - Office: Well
  "benefitAmount": "20",                     // $20 co-pay amount
  "timeQualifierCode": "27",                 // Per visit
  "coverageLevelCode": "IND",                // Individual coverage
  "inPlanNetworkIndicatorCode": "Y",         // In-network benefits
  "additionalInformation": [
    {
      "description": "NUTRITIONAL THERAPY AND COUNSELING"
    }
  ]
},
{
  "code": "B",                               // Co-pay
  "serviceTypeCodes": ["BZ"],                // Physician Visit - Office: Well
  "benefitAmount": "30",                     // $30 co-pay
  "timeQualifierCode": "27",                 // Per visit
  "coverageLevelCode": "IND",                // Individual coverage
  "inPlanNetworkIndicatorCode": "N",         // Out-of-network benefits
  "additionalInformation": [
    {
      "description": "NUTRITIONAL THERAPY AND COUNSELING"
    }
  ]
}

Example: Service limitations using codes
The following example is a bit more complex. One entry (code = D) defines abbreviations like AQ and 086 for Nutritionist. Another entry (code = A) uses these codes to show that nutritionists and other services are excluded from co-insurance for emergency hospital coverage.

{
  "code": "D", // Benefit description. Contains details or notes about the coverage.
  "additionalInformation": [
    {
      // List of abbreviations and their definitions for various codes.
      "description": "BENEFIT ABBREVIATIONS - B0 = NAPRAPATH - IL1, BY = NAPRAPATH GRP - IL1, D0 = VIRTUAL VISITS VENDOR - IL1, D7 = TELEMEDICINE - IL1, MT1, NM1, OK1, TX1, 097 = NAPRAPATH - IL1, 0I = +NON-PLN FOREIGN CLMS - IL1, MT1, NM1, TX1,"
    },
    ...
    {
      // More abbreviations and definitions
      // Note `AQ` is used for nutritionist.
      "description": "AC = AMBULANCE SERV - IL1, MT1, TX1, AG = OPTICIAN (IND) - IL1, MT1, AH = HEARING AID SUPPLIER - IL1, MT1, AM = PHARMACY - IL1, AQ = NUTRITIONIST - IL1, MT1, AX = SKILLED NURSE GRP - IL1, MT1, BG = OPTICIAN GRP - IL1, MT1, 071 = AMBULANCE SERVICES - IL1, MT1, TX1,"
    },
    {
      // More abbreviations and definitions.
      // Note `086` is also used for nutritionist.
      "description": "076 = HEARING AID & SUPPLIES - IL1, MT1, 080 = REGISTERED NURSE (RN) - IL1, 081 = LICENSED PRACTICAL NURSE (LPN) - IL1, OK1, 086 = NUTRITIONIST - IL1, MT1, 094 = PHARMACY - IL1"
    }
  ]
},
{
  "code": "A",                         // Co-insurance
  "serviceTypeCodes": [
     "51",                             // Hospital - Emergency Accident
     "52"                              // Hospital - Emergency Medical
   ],    
  "benefitPercent": "0.2",             // 20% co-insurance
  "timeQualifierCode": "23",           // Calendar year
  "coverageLevelCode": "IND",          // Individual coverage
  "inPlanNetworkIndicatorCode": "N",   // Out-of-network benefits
  "additionalInformation": [
    ...
    {
      // These provider specialties are NOT covered under this benefit.
      // The list includes `086` (Nutritionist) from the prior entry.
      "description": "EXCLUDED PROVIDER SPECIALTIES - 071, 076, 080, 081, 086, 094, 097,"
    },
    {
      // More provider specialties NOT covered under this benefit.
      // The list includes `AQ` (Nutritionist) from the prior entry.
      "description": "EXCLUDED PROVIDER TYPES - 0I, 0N, 0Q, 0T, 0U, 0V, A9, AC, AG, AH, AM, AQ, AX, B0, BG, BY, D0, D7, D7,"
    }
  ],
  ...
}

Missing benefits
In some cases, eligibility responses like the ones above may provide everything you need. However, sometimes, the payer doesn’t include the benefit at all – even if it’s covered by the patient’s plan. This makes it hard to know what’s covered, which STC to check, or how to automate parsing.

How to get the most from eligibility responses

Eligibility responses vary by payer. The best way to check for the benefit details you need is to test likely STCs with each payer. For each payer:

  1. Compile a list of STCs to test.
    Use our list of STCs for common services as a starting point. For example, for medical nutritional therapy, try 98 (Professional Physician Visit - Office), MH (Mental Health), 1 (Medical Care),  and BZ (Physician Visit - Office: Well).

  2. Send a baseline eligibility request.
    Use STC 30 (Health Benefit Plan Coverage) for general medical benefits or 35 (Dental Care) for general dental benefits.

  3. Compare the baseline response with the response to the specific STC.
    Save the benefitsInformation array for each STC and diff them. If they're different, the payer may include information about your service in the response.

  4. Search the response.
    Look for keywords related to your service in free-text fields. For medical nutrition therapy, you can match on nutrition, dietitian, and MNT.

As a test, we checked recent responses from Stedi’s top eligibility payers to see which returned benefits related to medical nutrition therapy. Out of the 140 we checked, about 40% did. That group included several major payers – like UnitedHealthcare and Blue Shield of California – who make up about 82% of our transaction volume.

There are exceptions. For example, some major payers like Cigna and Blue Cross Blue Shield of Texas didn’t appear to include nutrition therapy benefits in their responses at all.

How to fill in gaps

If the eligibility response is missing benefits you need, you can still reliably get the information. Here’s what we’ve seen work with our most successful customers:

  1. Contact the payer.
    Call or use the payer’s portal to get any missing benefits information you need. You can do this manually or use an AI voice agent or screen scraper to do it programmatically.

  2. Record what you learn.
    Regardless of the method you use, create a system to track the information you get by payer and plan. Depending on your needs, this could just be a database, spreadsheet, or JSON file.

  3. Use the collected data to enrich your eligibility responses.
    Plan benefits for the same payer and plan usually don’t vary from member to member. You can reuse the information you collect to enrich eligibility responses across patients for that plan.

    Even when plan benefits are the same, eligibility checks are still useful for things that change by member like active coverage or service history.

Get expert support

Eligibility checks are a good first line of defense for fetching benefits data. They work for most cases and help automate your workflow. But when gaps appear, you can still get answers.

Support often plays a key role in filling those gaps. Stedi has helped several companies, like Berry Street and others, interpret eligibility responses and optimize their workflows for medical nutrition therapy and more.

Request a free trial and see our support for yourself.

Share

Twitter
LinkedIn

Get started with Stedi

Get started with Stedi

Automate healthcare transactions with developer-friendly APIs that support thousands of payers. Contact us to learn more and speak to the team.

Get updates on what’s new at Stedi

Get updates on what’s new at Stedi

Get updates on what’s new at Stedi

Get updates on what’s new at Stedi

Backed by

Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.

Get updates on what’s new at Stedi

Backed by

Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.

Get updates on what’s new at Stedi

Backed by

Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.