Big takeaway: Duplicate benefits often aren’t duplicates. They cover different scenarios, like in-network vs. out-of-network care.
Imagine you run an eligibility check. A second or two later, you get back the response. It lists three different co-pays – $15, $30, and $0 – each for a physician office visit.
Which one is right?
They all are. Each co-pay applies to a different situation:
$15 for in-network providers – providers who have a contract with the patient’s payer for their health plan.
$30 for out-of-network providers – providers without a contract.
$0 for specific services, like preventive care or maternity visits, with in-network providers.
If you don't know which fields to check in the response, it’s hard to tell them apart. This guide shows you what to look for with real-life examples.
Where to find benefits
If you’re using Stedi’s JSON eligibility APIs, most of a patient’s benefit information is in the response’s benefitsInformation object array.
Each benefitsInformation object – or benefit entry – tells you about one aspect of the patient’s coverage. One entry indicates active coverage. Another contains a co-pay.
For tips on reading the objects, see How to read a 271 eligibility response in plain English.
{
...
"benefitsInformation": [
{
"serviceTypeCodes": ["30"],
"code": "1",
"timeQualifierCode": "23",
"inPlanNetworkIndicatorCode": "Y",
"additionalInformation": [
{
"description": "Preauthorization required for imaging services."
}
]
},
{
"serviceTypeCodes": ["30"],
"code": "C",
"benefitAmount": "1000",
"timeQualifierCode": "23",
"inPlanNetworkIndicatorCode": "N"
},
{
"serviceTypeCodes": ["30"],
"code": "D",
"additionalInformation": [
{
"description": "EXCLUSIONS: COSMETIC SURGERY, EXPERIMENTAL TREATMENTS"
}
]
},
{
"serviceTypeCodes": ["88"],
"code": "B",
"benefitAmount": "10",
"inPlanNetworkIndicatorCode": "Y"
},
],
...
}{
...
"benefitsInformation": [
{
"serviceTypeCodes": ["30"],
"code": "1",
"timeQualifierCode": "23",
"inPlanNetworkIndicatorCode": "Y",
"additionalInformation": [
{
"description": "Preauthorization required for imaging services."
}
]
},
{
"serviceTypeCodes": ["30"],
"code": "C",
"benefitAmount": "1000",
"timeQualifierCode": "23",
"inPlanNetworkIndicatorCode": "N"
},
{
"serviceTypeCodes": ["30"],
"code": "D",
"additionalInformation": [
{
"description": "EXCLUSIONS: COSMETIC SURGERY, EXPERIMENTAL TREATMENTS"
}
]
},
{
"serviceTypeCodes": ["88"],
"code": "B",
"benefitAmount": "10",
"inPlanNetworkIndicatorCode": "Y"
},
],
...
}{
...
"benefitsInformation": [
{
"serviceTypeCodes": ["30"],
"code": "1",
"timeQualifierCode": "23",
"inPlanNetworkIndicatorCode": "Y",
"additionalInformation": [
{
"description": "Preauthorization required for imaging services."
}
]
},
{
"serviceTypeCodes": ["30"],
"code": "C",
"benefitAmount": "1000",
"timeQualifierCode": "23",
"inPlanNetworkIndicatorCode": "N"
},
{
"serviceTypeCodes": ["30"],
"code": "D",
"additionalInformation": [
{
"description": "EXCLUSIONS: COSMETIC SURGERY, EXPERIMENTAL TREATMENTS"
}
]
},
{
"serviceTypeCodes": ["88"],
"code": "B",
"benefitAmount": "10",
"inPlanNetworkIndicatorCode": "Y"
},
],
...
}{
...
"benefitsInformation": [
{
"serviceTypeCodes": ["30"],
"code": "1",
"timeQualifierCode": "23",
"inPlanNetworkIndicatorCode": "Y",
"additionalInformation": [
{
"description": "Preauthorization required for imaging services."
}
]
},
{
"serviceTypeCodes": ["30"],
"code": "C",
"benefitAmount": "1000",
"timeQualifierCode": "23",
"inPlanNetworkIndicatorCode": "N"
},
{
"serviceTypeCodes": ["30"],
"code": "D",
"additionalInformation": [
{
"description": "EXCLUSIONS: COSMETIC SURGERY, EXPERIMENTAL TREATMENTS"
}
]
},
{
"serviceTypeCodes": ["88"],
"code": "B",
"benefitAmount": "10",
"inPlanNetworkIndicatorCode": "Y"
},
],
...
}{
...
"benefitsInformation": [
{
"serviceTypeCodes": ["30"],
"code": "1",
"timeQualifierCode": "23",
"inPlanNetworkIndicatorCode": "Y",
"additionalInformation": [
{
"description": "Preauthorization required for imaging services."
}
]
},
{
"serviceTypeCodes": ["30"],
"code": "C",
"benefitAmount": "1000",
"timeQualifierCode": "23",
"inPlanNetworkIndicatorCode": "N"
},
{
"serviceTypeCodes": ["30"],
"code": "D",
"additionalInformation": [
{
"description": "EXCLUSIONS: COSMETIC SURGERY, EXPERIMENTAL TREATMENTS"
}
]
},
{
"serviceTypeCodes": ["88"],
"code": "B",
"benefitAmount": "10",
"inPlanNetworkIndicatorCode": "Y"
},
],
...
}Fields to check
Benefit entries often look identical except for one or two fields. Check these fields first to spot the difference:
serviceTypeCodes
The Service Type Code (STC) indicates what type of service the benefit applies to. If two benefitsInformation objects have different serviceTypeCodes values, they apply to different services – like pharmacy and mental health services.
You’ll often see the same serviceTypeCodes in more than one benefitsInformation object. That’s expected. To get the full picture for a service, look at all entries that include the same STC.
coverageLevelCode
Whether the benefit applies to the plan’s subscriber, their family, etc. A $20 individual deductible and $50 family deductible aren't duplicates. They're separate buckets that apply to different members of the patient’s plan.
If coverageLevelCode is missing, assume the benefit entry applies to individual coverage.
inPlanNetworkIndicatorCode
Whether the benefit applies to in-network providers, out-of-network providers, or both. This often explains the biggest price differences in what the patient pays.
timeQualifierCode
The time period for the benefits, such as calendar year, remaining year, or visit. A $500 calendar year maximum is different from a $500 per-visit limit.
additionalInformation.description
Free-text notes – these act as fine print. Payers often use these to include specific procedure codes, exclusions, carve outs, or special rules. As a rule of thumb, more specific descriptions override less specific ones.
In many cases, these descriptions will be in a separate entry for the STC. These entries typically have a code of 1 (Active Coverage) or D (Benefit Description).
eligibilityAdditionalInformation.industryCode
When eligibilityAdditionalInformation.codeListQualifierCode is set to ZZ (Mutually Defined), this field contains a code for where the service takes place. Some payers offer reduced co-pays or coinsurance for telehealth visits.
See Place of Service Code Set on CMS.gov for a list of these codes and their descriptions.
Other fields
The above list isn’t exhaustive. If you’ve checked these fields and still can’t spot differences between similar benefit entries, try diffing the entries in a code editor or a similar tool.
Examples
Here are a few examples of near-identical benefit entries we’ve helped customers interpret.
Multiple co-pays for the same service
The following benefits cover mental health outpatient visits (STC CF).
The difference is in the additionalInformation.description field. Primary care providers (PCPs) have a $25 co-pay. Specialists and other providers have a $75 co-pay.
{
"serviceTypeCodes": ["CF"],
"code": "B",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "Y",
...
"benefitAmount": "25",
"additionalInformation": [
{
"description": "Provider Role PCP"
}
]
}
{
"serviceTypeCodes": ["CF"],
"code": "B",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "Y",
...
"benefitAmount": "75",
"additionalInformation": [
{
"description": "Provider Role OTHER"
}
]
}
{
"serviceTypeCodes": ["CF"],
"code": "B",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "Y",
...
"benefitAmount": "25",
"additionalInformation": [
{
"description": "Provider Role PCP"
}
]
}
{
"serviceTypeCodes": ["CF"],
"code": "B",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "Y",
...
"benefitAmount": "75",
"additionalInformation": [
{
"description": "Provider Role OTHER"
}
]
}
{
"serviceTypeCodes": ["CF"],
"code": "B",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "Y",
...
"benefitAmount": "25",
"additionalInformation": [
{
"description": "Provider Role PCP"
}
]
}
{
"serviceTypeCodes": ["CF"],
"code": "B",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "Y",
...
"benefitAmount": "75",
"additionalInformation": [
{
"description": "Provider Role OTHER"
}
]
}
{
"serviceTypeCodes": ["CF"],
"code": "B",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "Y",
...
"benefitAmount": "25",
"additionalInformation": [
{
"description": "Provider Role PCP"
}
]
}
{
"serviceTypeCodes": ["CF"],
"code": "B",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "Y",
...
"benefitAmount": "75",
"additionalInformation": [
{
"description": "Provider Role OTHER"
}
]
}
{
"serviceTypeCodes": ["CF"],
"code": "B",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "Y",
...
"benefitAmount": "25",
"additionalInformation": [
{
"description": "Provider Role PCP"
}
]
}
{
"serviceTypeCodes": ["CF"],
"code": "B",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "Y",
...
"benefitAmount": "75",
"additionalInformation": [
{
"description": "Provider Role OTHER"
}
]
}Different provider network status, different deductibles
The benefits below both cover general medical care (STC 30). Both have an annual deductible.
The only difference is the provider’s network status. In-network providers have a $1000 deductible. Out-of-network providers have a $2500 deductible.
{
"serviceTypeCodes": ["30"],
"code": "C",
"coverageLevelCode": "IND",
"timeQualifierCode": "23",
...
"benefitAmount": "1000",
"inPlanNetworkIndicatorCode": "Y",
}
{
"serviceTypeCodes": ["30"],
"code": "C",
"coverageLevelCode": "IND",
"timeQualifierCode": "23",
...
"benefitAmount": "2500",
"inPlanNetworkIndicatorCode": "N",
}
{
"serviceTypeCodes": ["30"],
"code": "C",
"coverageLevelCode": "IND",
"timeQualifierCode": "23",
...
"benefitAmount": "1000",
"inPlanNetworkIndicatorCode": "Y",
}
{
"serviceTypeCodes": ["30"],
"code": "C",
"coverageLevelCode": "IND",
"timeQualifierCode": "23",
...
"benefitAmount": "2500",
"inPlanNetworkIndicatorCode": "N",
}
{
"serviceTypeCodes": ["30"],
"code": "C",
"coverageLevelCode": "IND",
"timeQualifierCode": "23",
...
"benefitAmount": "1000",
"inPlanNetworkIndicatorCode": "Y",
}
{
"serviceTypeCodes": ["30"],
"code": "C",
"coverageLevelCode": "IND",
"timeQualifierCode": "23",
...
"benefitAmount": "2500",
"inPlanNetworkIndicatorCode": "N",
}
{
"serviceTypeCodes": ["30"],
"code": "C",
"coverageLevelCode": "IND",
"timeQualifierCode": "23",
...
"benefitAmount": "1000",
"inPlanNetworkIndicatorCode": "Y",
}
{
"serviceTypeCodes": ["30"],
"code": "C",
"coverageLevelCode": "IND",
"timeQualifierCode": "23",
...
"benefitAmount": "2500",
"inPlanNetworkIndicatorCode": "N",
}
{
"serviceTypeCodes": ["30"],
"code": "C",
"coverageLevelCode": "IND",
"timeQualifierCode": "23",
...
"benefitAmount": "1000",
"inPlanNetworkIndicatorCode": "Y",
}
{
"serviceTypeCodes": ["30"],
"code": "C",
"coverageLevelCode": "IND",
"timeQualifierCode": "23",
...
"benefitAmount": "2500",
"inPlanNetworkIndicatorCode": "N",
}Co-insurance for different procedures
These dental benefits all cover adjunctive dental services (STC 28). The coinsurance percentage depends on which procedure codes are billed.
In this case, the procedure codes are CDT (Current Dental Terminology) codes, which are used for dental services.
The codes for each coinsurance are listed in the additionalInformation.description field.
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0",
"additionalInformation": [
{
"description": "D9110 D9912"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0.2",
"additionalInformation": [
{
"description": "D9910 D9911 D9930 D9942 D9943 D9950 D9951 D9952"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0.5",
"additionalInformation": [
{
"description": "D9938 D9939 D9940 D9944 D9945 D9946 D9947 D9948 D9949 D9954 D9955 D9956 D9957 D9959"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0",
"additionalInformation": [
{
"description": "D9110 D9912"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0.2",
"additionalInformation": [
{
"description": "D9910 D9911 D9930 D9942 D9943 D9950 D9951 D9952"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0.5",
"additionalInformation": [
{
"description": "D9938 D9939 D9940 D9944 D9945 D9946 D9947 D9948 D9949 D9954 D9955 D9956 D9957 D9959"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0",
"additionalInformation": [
{
"description": "D9110 D9912"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0.2",
"additionalInformation": [
{
"description": "D9910 D9911 D9930 D9942 D9943 D9950 D9951 D9952"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0.5",
"additionalInformation": [
{
"description": "D9938 D9939 D9940 D9944 D9945 D9946 D9947 D9948 D9949 D9954 D9955 D9956 D9957 D9959"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0",
"additionalInformation": [
{
"description": "D9110 D9912"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0.2",
"additionalInformation": [
{
"description": "D9910 D9911 D9930 D9942 D9943 D9950 D9951 D9952"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0.5",
"additionalInformation": [
{
"description": "D9938 D9939 D9940 D9944 D9945 D9946 D9947 D9948 D9949 D9954 D9955 D9956 D9957 D9959"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0",
"additionalInformation": [
{
"description": "D9110 D9912"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0.2",
"additionalInformation": [
{
"description": "D9910 D9911 D9930 D9942 D9943 D9950 D9951 D9952"
}
]
}
{
"serviceTypeCodes": ["28"],
"code": "A",
"coverageLevelCode": "IND",
"inPlanNetworkIndicatorCode": "W",
"benefitPercent": "0.5",
"additionalInformation": [
{
"description": "D9938 D9939 D9940 D9944 D9945 D9946 D9947 D9948 D9949 D9954 D9955 D9956 D9957 D9959"
}
]
}Get help from eligibility experts
Sometimes, payers do return conflicting benefit entries. We've seen it. In other cases, descriptions aren’t clear about when a benefit applies.
If you need help, reach out. We offer real-time support and answer questions in minutes. Our experts have helped hundreds of teams interpret confusing eligibility responses.