Active coverage
After you send a successful eligibility or insurance discovery check, the payer sends back an X12 271 Eligibility Benefit Response containing the patient’s benefits information. Stedi transforms the 271 response from the original X12 EDI into JSON, making it easier to read, understand, and ingest into your system.
You can find the full benefits response shape in the Real-Time Eligibility Check and Insurance Discovery Check API references. This documentation describes how to use the benefits response to determine the patient’s active coverage, plan details, and specific benefits.
When is the patient eligible for benefits?
The planDateInformation
object contains dates related to the patient’s coverage under their health plan. Most commercial payers only return information for the current calendar year.
You can use these dates to determine the patient’s eligibility for benefits.
- The dates in
planDateInformation
apply to every benefit within the patient’s health plan unless specifically overridden within abenefitsInformation.benefitsDateInformation
object. Visit Benefit-specific eligibility dates for more details. - The patient likely doesn’t have active coverage if the date of service is after the earliest ending
plan
,eligibility
planEnd
,eligibilityEnd
,policyEffective
, orpolicyExpiration
value.
The following example shows part of the benefits response for a health plan that began on January 1, 2024 and ended on December 31, 2024. The patient was eligible for benefits under that health plan starting on January 2, 2024.
Plan dates for dependents
Dependents can have different coverage dates than the subscriber due to qualifying life events, such as starting a new job or passing the age limit for coverage through their parent’s plan.
When the patient is a dependent, and the payer sends back date(s) that are different for the subscriber and dependent, Stedi includes only the dates for the dependent and omits the subscriber’s date(s).
What are the patient’s benefits?
The vast majority of the information you need to determine a patient’s benefits under their health plan is contained in the benefitsInformation
array. Each object in this array contains information about a specific benefit type, such as co-payments, deductibles, and exclusions.
The benefitsInformation.code
property indicates the type of benefits information described in the benefitsInformation
object. Sometimes, the code simply indicates that the patient has active coverage for the serviceTypes
listed. For example, the following excerpt shows a member with active coverage for service type code 30
(Health Benefit Plan Coverage).
In other array entries, the code indicates that the benefitsInformation
object contains details about specific benefits, such as co-payments, deductibles, and exclusions.
The following example shows a patient’s co-payment for psychiatric, psychotherapy, and social work in-office visits.
- The copayment is $20 for providers considered in-network, as indicated by the
Y
in theinPlanNetworkIndicatorCode
property. - Note that the
inPlanNetworkIndicatorCode
doesn’t tell you whether the provider that requested the eligibility check is in-network for the health plan, so you shouldn’t assume a $20 copay for that provider until you can verify that they are in-network. Visit Provider network status, authorizations, referrals for more details about verifying a provider’s network status.
Benefit type codes
The following is a complete list of codes that can be returned in the benefitsInformation.code
property.
1
- Active Coverage2
- Active - Full Risk Capitation3
- Active - Services Capitated4
- Active - Services Capitated to Primary Care Physician5
- Active - Pending Investigation6
- Inactive7
- Inactive - Pending Eligibility Update8
- Inactive - Pending InvestigationA
- Co-InsuranceB
- Co-PaymentC
- DeductibleCB
- Coverage BasisD
- Benefit DescriptionE
- ExclusionsF
- LimitationsG
- Out of Pocket (Stop Loss)H
- UnlimitedI
- Non-CoveredJ
- Cost ContainmentK
- ReserveL
- Primary Care ProviderM
- Pre-existing ConditionMC
- Managed Care CoordinatorN
- Services Restricted to Following ProviderO
- Not Deemed a Medical NecessityP
- Benefit DisclaimerQ
- Second Surgical Opinion RequiredR
- Other or Additional PayorS
- Prior Year(s) HistoryT
- Card(s) Reported Lost/Stolen | Typically used by Medicaid to indicate to a provider that the person who has presented the ID card is using a stolen ID card.U
- Contact Following Entity for Eligibility or Benefit InformationV
- Cannot ProcessW
- Other Source of DataX
- Health Care FacilityY
- Spend Down
Code V
- Cannot Process
These are the most common reasons a payer may return a benefitsInformation.code
of V
:
- Request errors: The payer didn’t actually return any benefits information because of errors in the request - listed in the
errors
object. You should ignore the stub benefits data in thebenefitsInformation
object, correct the errors, and resubmit the eligibility check. - Wrong submission method: The payer doesn’t support automated X12 EDI eligibility checks for the service type code you provided and requires that you obtain benefits information through a different channel, such as by phone or online portal. The
benefitsInformation.additionalInformation.description
typically contains an explanation. The payer may also include contact information inpayer.contactInformation
. - Unable to interpret: The payer located the member but couldn’t make sense of the request. For example, a dental payer can’t return benefits information for a vision service type code.
- Alternate service type code: The payer has grouped the service type code you submitted into a different one. In this case, the payer typically returns a
benefitsInformation
entry withcode
=V
immediately followed by an entry with an active code andbenefitsInformation.serviceTypeCodes
set to the preferred service type code.
Active and inactive coverage
You can quickly determine whether a patient has active coverage for specific service types when the benefitsInformation.code
is set to 1
(Active Coverage). The following example shows a member with active coverage for service type code 30
(Health Benefit Plan Coverage).
Likewise, you can quickly determine when a patient has inactive coverage for a service type when the benefitsInformation.code
is set to 6
(Inactive). The following example shows a member with inactive coverage for service type code 30
(Health Plan Benefit Coverage).
Benefit-specific eligibility dates
When present, the benefitsInformation.benefitsDateInformation
object contains dates that determine the patient’s eligibility for a specific type of benefits. You should use these dates to determine the patient’s eligibility for that specific benefit type instead of the dates in the planDateInformation
object.
Payers send benefit-specific dates when certain benefits within a plan have different activation rules or waiting periods than the overall plan coverage. This can happen in a variety of scenarios, including:
- Employers may offer plans with benefits that activate based on employment duration or role. For example, Medical coverage may start on your hire date, but life insurance or disability coverage begins after 90 days.
- Some plans require a delay before certain benefits start, even though your general plan is active. For example, dental insurance may have a 6-month waiting period for major services (like crowns), but basic services (like cleanings) are covered immediately.
- Some government programs like Medicare split coverage (Part A, B, D, etc.), each with its own effective date.
- You may switch plans during open enrollment, and new benefits might have different effective dates.
What’s the plan name?
The only standard property that contains a health plan product or program name is benefitsInformation.planCoverage
. However, payers are only required to provide this information for service type code (STC) 30
. They may provide it for other STCs, but they don’t have to.
The benefitsInformation
array can contain many entries for multiple plans, such as medical, dental, and vision. You may want to filter benefitsInformation
objects for certain STCs before checking for the plan name.
In the following example, the plan name is Open Access Plus
:
You may also be able to identify the plan name through the following properties, but they’re not as reliable as planCoverage.
Payers aren’t required to return information for these properties, so behavior can vary by payer or even by plan.
- Some properties may contain a name for the group (often named for the employer if they sponsor the plan), insurance policy, or network. These properties are:
groupDescription
,planDescription
, andplanNetworkIdDescription
. These properties may be included in thesubscriber
,dependents
, orbenefitsInformation.benefitsAdditionalInformation
objects, depending on where the payer places this information in the benefit response. - Some payers may send something like a plan name in
planInformation.planDescription
or as unstructured text inbenefitsInformation.additionalInformation.description
.
Was this page helpful?