Stedi’s Eligibility Check APIs let you get Medicare 271 eligibility responses as JSON. But your system – or one downstream – might need to display that JSON data in Common Working File (CWF) fields. Many providers still expect a CWF-style layout.
This guide shows how to map Stedi’s JSON 271 eligibility responses to CWF fields. It also covers what the CWF was, how Medicare eligibility checks work today, and why the CWF format still persists.
The Centers for Medicare & Medicaid Services (CMS) built the CWF in the 1980s to centrally manage Medicare eligibility. It was the source of truth for who was covered, when, and under which Medicare part.
The system produced fixed-format text files – also called “CWFs” – for mainframe terminals and printed reports. Each file had a set layout, with fields like member ID, coverage type, and benefit dates. For example:

CMS replaced the CWF in 2019 with the HIPAA Eligibility Transaction System (HETS). HETS returns standard 271 eligibility responses, the same as commercial insurers. Medicare 271s include a lot of Medicare-specific info, including:
-
Medicare Part A and Part B entitlements and dates
-
Part C (Medicare Advantage) and Part D (Prescription Drug) plan info
-
Deductibles, copays, and benefit limits
-
Remaining Skilled Nursing Facility (SNF) days
-
ESRD transplant or dialysis dates
-
Smoking cessation visits and therapy caps
-
Qualified Medicare Beneficiary (QMB), secondary payers, Medicaid crossover, and other coordination of benefits information.
In Stedi’s JSON 271 eligibility responses, that data lives under benefitsInformation. Each object describes a specific coverage, limit, or service type. For example:
Stedi’s JSON 271 eligibility response is easier to use in modern applications. But if your customers need the old CWF layout, you’ll need to map each field from JSON.
This guide isn’t an official spec. It’s a practical reference. Each section shows a CWF-style layout, a table of field mappings, and notes on when to use each field. For details on our JSON 271 eligibility responses, see our API documentation.

CWF field | JSON 271 eligibility response property |
|---|
Organization Name | provider.providerOrgName
|
NPI ID | provider.npi
|
The following table includes patient demographics from the SUBMITTED TO PAYER and RETURNED BY PAYER sections of the sample CWF.

CWF field | JSON 271 eligibility response property | When to use |
|---|
SUBMITTED TO PAYER |
|
|
First Name | subscriber.firstName
|
|
Last Name | subscriber.lastName
|
|
Member ID (MBI) | subscriber.memberId
|
|
D.O.B. | subscriber.dateOfBirth
|
|
Eligibility Date(From) | planDateInformation.eligibility (first date)
| planDateInformation.eligibility can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Eligibility Date(To) | planDateInformation.eligibility (second date, if present)
| planDateInformation.eligibility can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Service Types(s) | benefitsInformation.serviceTypeCodes
benefitsInformation.compositeMedicalProcedureIdentifier.procedureCode
benefitsInformation.compositeMedicalProcedureIdentifier.procedureModifiers
|
|
RETURNED TO PAYER |
|
|
First Name | subscriber.firstName
|
|
Middle Name | subscriber.middleName
|
|
Last Name | subscriber.lastName
|
|
Suffix | subscriber.suffix
|
|
Member ID (MBI) | subscriber.memberId
|
|
D.O.B. | subscriber.dateOfBirth
|
|
Gender | subscriber.gender
|
|
Address Line 1 | subscriber.address.address1
|
|
Address Line 2 | subscriber.address.address2
|
|
City | subscriber.address.city
|
|
State | subscriber.address.state
|
|
Zip Code | subscriber.address.postalCode
|
|
In the JSON 271 eligibility response, benefitsInformation objects contain most of the benefits information.
The benefitsInformation.insuranceTypeCode property indicates the type of insurance policy within a program, such as Medicare. A code of MA indicates Medicare Part A. A code of MB indicates Medicare Part B. For a complete list of insurance type codes, see Insurance Type Codes in our docs.
The benefitsInformation.serviceTypeCodes property identifies the type of healthcare services the benefits information relates to. A Service Type Code (STC) of 30 relates to general benefits information. For a complete list of STCs, see Service Type Codes in our docs.

CWF field | JSON 271 eligibility response property | When to use |
|---|
Effective Date | benefitsInformation.benefitsDateInformation.plan (first date)
| All of the following must be true:
benefitsInformation.benefitsDateInformation.plan can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Termination Date | benefitsInformation.benefitsDateInformation.plan (second date, if present)
| All of the following must be true:
benefitsInformation.benefitsDateInformation.plan can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Ineligible Start | benefitsInformation.benefitsDateInformation.plan (first date)
| All of the following must be true:
benefitsInformation.benefitsDateInformation.plan can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Ineligible End | benefitsInformation.benefitsDateInformation.plan (second date, if present)
| All of the following must be true:
benefitsInformation.benefitsDateInformation.plan can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Date of Death | planDateInformation.dateOfDeath
|
|
Lifetime Psychiatric Days | benefitsInformation.benefitQuantity
| All of the following must be true: benefitsInformation.code = K (Reserve)
benefitsInformation.serviceTypeCodes = A7 (Psychiatric - Inpatient)
benefitsInformation.timeQualifierCode = 32 (Lifetime)
benefitsInformation.quantityQualifierCode = DY (Days)
|
Lifetime Reserve Days | benefitsInformation.benefitQuantity
| All of the following must be true: benefitsInformation.code = K (Reserve)
benefitsInformation.serviceTypeCodes = 30 (Health Benefit Plan Coverage)
benefitsInformation.insuranceTypeCode = MA (Medicare Part A)
benefitsInformation.timeQualifierCode = 32 (Lifetime)
benefitsInformation.quantityQualifierCode = DY (Days)
|
Smoking Cessation Days | benefitsInformation.benefitQuantity
| All of the following must be true: benefitsInformation.code = F (Limitations)
benefitsInformation.serviceTypeCodes = 67 (Smoking Cessation)
benefitsInformation.insuranceTypeCode = MB (Medicare Part B)
benefitsInformation.timeQualifierCode = 22 (Service Year)
benefitsInformation.quantityQualifierCode = VS (Visits)
benefitsInformation.benefitsServiceDelivery.timePeriodQualifierCode = 29 (Remaining)
|
Initial Cessation Date | benefitsInformation.benefitsDateInformation.plan
| This information is only available if an initial counseling visit was used in the past 12 months. All of the following must be true: benefitsInformation.code = F (Limitations)
benefitsInformation.serviceTypeCodes = 67 (Smoking Cessation)
benefitsInformation.insuranceTypeCode = MB (Medicare Part B)
benefitsInformation.timeQualifierCode = 22 (Service Year)
benefitsInformation.quantityQualifierCode = VS (Visits)
benefitsInformation.benefitsServiceDelivery.timePeriodQualifierCode = 29 (Remaining)
|
ESRD Dialysis Date | benefitsInformation.benefitsDateInformation.discharge
| All of the following must be true: |
ESRD Transplant Date | benefitsInformation.benefitsDateInformation.service
| All of the following must be true: |
ESRD Coverage Period | benefitsInformation.benefitsDateInformation.plan
| All of the following must be true: |

CWF field | JSON 271 eligibility response property | When to use |
|---|
Medicare Part A |
|
|
Type | Use Base when all of the following are true: benefitsInformation.timeQualifierCode = 7 (Day)
benefitsInformation.benefitsDateInformation.admission contains a full year date range, such as 20980101-20991231.
Use Spell when all of the following are true: benefitsInformation.timeQualifierCode = 7 (Day)
benefitsInformation.benefitsDateInformation.admission contains a partial year date range, such as 20980506-20980508.
|
|
First Bill | benefitsInformation.benefitsDateInformation.admissions.startDate
|
|
Last Bill | benefitsInformation.benefitsDateInformation.admissions.endDate
|
|
Hospital Days Full | For a Type of Base, use benefitsInformation.BenefitsServiceDelivery.numOfPeriods when benefitsInformation.BenefitsServiceDelivery.timePeriodQualifierCode = 31 (Not Exceeded).
For a Type of Base, use benefitsInformation.BenefitsServiceDelivery.numOfPeriods when benefitsInformation.BenefitsServiceDelivery.timePeriodQualifierCode = 29 (Remaining). |
|
Hospital Days Colns | For a Type of Base, use benefitsInformation.BenefitsServiceDelivery.numOfPeriods when: For a Type of Base, use benefitsInformation.BenefitsServiceDelivery.numOfPeriods when: |
|
Hospital Days Base | benefitsInformation.benefitAmount
|
|
SNF Days Full | benefitsInformation.BenefitsServiceDelivery.numOfPeriods
| All of the following must be true: benefitsInformation.code = B (Co-Payment)
benefitsInformation.serviceTypeCodes = AG (Skilled Nursing Care)
benefitsInformation.insuranceTypeCode = MA (Medicare Part A)
benefitsInformation.benefitsServiceDelivery.timePeriodQualifierCode = 31 (Not Exceeded)
|
SNF Days Colns | benefitsInformation.BenefitsServiceDelivery.numOfPeriods
| All of the following must be true: benefitsInformation.code = B (Co-Payment)
benefitsInformation.serviceTypeCodes = AG (Skilled Nursing Care)
benefitsInformation.insuranceTypeCode = MA (Medicare Part A)
benefitsInformation.benefitsServiceDelivery.timePeriodQualifierCode = 30 (Exceeded)
|
SNF Days Base | benefitsInformation.benefitAmount
| All of the following must be true: benefitsInformation.code = B (Co-Payment)
benefitsInformation.serviceTypeCodes = AG (Skilled Nursing Care)
benefitsInformation.insuranceTypeCode = MA (Medicare Part A)
benefitsInformation.timeQualifierCode = 7 (Day)
|
Inpatient Deductible | benefitsInformation.benefitAmount
| All of the following must be true: benefitsInformation.code = C (Deductible)
benefitsInformation.serviceTypeCodes = 30 (Health Benefit Plan Coverage)
benefitsInformation.insuranceTypeCode = MA (Medicare Part A)
benefitsInformation.timeQualifierCode = 29 (Remaining)
|
Medicare Part B |
|
|
Deductible Remaining | benefitsInformation.benefitAmount
| All of the following must be true: benefitsInformation.code = C (Deductible)
benefitsInformation.serviceTypeCodes = 30 (Health Benefit Plan Coverage)
benefitsInformation.insuranceTypeCode = MB (Medicare Part B)
benefitsInformation.timeQualifierCode = 23 (Calendar Year)
|
Physical Therapy | benefitsInformation.benefitAmount
| All of the following must be true: benefitsInformation.code = D (Benefit Description)
benefitsInformation.serviceTypeCodes = AE (Physical Medicine)
benefitsInformation.insuranceTypeCode = MB (Medicare Part B)
benefitsInformation.timeQualifierCode = 23 (Calendar Year)
|
Occupational Therapy | benefitsInformation.benefitAmount
| All of the following must be true: benefitsInformation.code = D (Benefit Description)
benefitsInformation.serviceTypeCodes = AD (Occupational Therapy)
benefitsInformation.insuranceTypeCode = MB (Medicare Part B)
benefitsInformation.timeQualifierCode = 23 (Calendar Year)
|
Blood Pints Part A/B | benefitsInformation.benefitAmount
| All of the following must be true: benefitsInformation.code = E (Exclusions)
benefitsInformation.serviceTypeCodes = 10 (Blood Charges)
benefitsInformation.quantityQualifierCode = DB (Deductible Blood Units)
benefitsInformation.benefitQuantity = Blood Units Excluded
benefitsInformation.benefitsServiceDelivery.quantityQualifierCode = FL (Units)
benefitsInformation.benefitsServiceDelivery.timePeriodQualifier = Blood Units Remaining
benefitsInformation.benefitsDateInformation.plan = A date or date range in the current calendar year
|
Medicare Part A Stays |
|
|
Type | Use Hospital when:
Use Hospital Stay when:
Use SNF Stay when: | The following must be true: |
Start Date | benefitsInformation.benefitsDateInformation.plan (first date)
| benefitsInformation.benefitsDateInformation.plan can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
End Date | benefitsInformation.benefitsDateInformation.plan (second date, if present)
| benefitsInformation.benefitsDateInformation.plan can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Billing NPI | benefitsInformation.benefitsRelatedEntities.entityIdentificationValue
| The following must be true: |
In the JSON 271 eligibility response, this information is only available when all of the following is true:
-
benefitsInformation.code = R (Other or Additional Payor)
-
benefitsInformation.insuranceTypeCode = QM (Qualified Medicare Beneficiary)

CWF field | JSON 271 eligibility response property | When to use |
Period From | benefitsInformation.benefitsDateInformation.coordinationOfBenefits (first date)
| benefitsDateInformation.coordinationOfBenefits can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Period Through | benefitsInformation.benefitsDateInformation.coordinationOfBenefits (second date, if present)
| benefitsDateInformation.coordinationOfBenefits can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
QMB Plan | benefitsInformation.planCoverage
|
|

In the JSON 271 eligibility response, this information is only available when all of the following is true:
-
benefitsInformation.code = R (Other or Additional Payor)
-
benefitsInformation.insuranceTypeCode = 2, 13, 14, 15, 16, 41, 42, 43, 47, AP, or WC
CWF field | JSON 271 eligibility response property | When to use |
Effective Date | benefitsInformation.benefitsDateInformation.coordinationOfBenefits (first date)
| benefitsDateInformation.coordinationOfBenefits can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Termination Date | benefitsInformation.benefitsDateInformation.coordinationOfBenefits (second date, if present)
| benefitsDateInformation.coordinationOfBenefits can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Policy Number | benefitsInformation.benefitsAdditionalInformation.insurancePolicyNumber
|
|
Insurer | benefitsInformation.benefitsRelatedEntities.entityName
|
|
Address | benefitsInformation.benefitsRelatedEntities.address.address1
benefitsInformation.benefitsRelatedEntities.address.address2
benefitsInformation.benefitsRelatedEntities.address.city
benefitsInformation.benefitsRelatedEntities.address.state
benefitsInformation.benefitsRelatedEntities.address.postalCode
|
|
Type | benefitsInformation.insuranceType
|
|
In the JSON 271 eligibility response, this information is only available when all of the following is true:
-
benefitsInformation.code = U (Contact Following Entity for Eligibility or Benefit Information)
-
benefitsInformation.serviceTypeCodes = 30 (Health Benefit Plan Coverage) OR both 30 (Health Benefit Plan Coverage) AND CQ (Case Management)
-
benefitsInformation.insuranceTypeCode = HM (HMO), HN (HMO - Medicare Risk), IN (Indemnity), PR (PPO), or PS (POS)
-
benefitsInformation.benefitsRelatedEntities.entityIdentifier = Primary Payer

CWF field | JSON 271 eligibility response property | When to use |
Effective Date | benefitsInformation.benefitsDateInformation.coordinationOfBenefits (first date)
| benefitsInformation.benefitsDateInformation.coordinationOfBenefits can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Termination Date | benefitsInformation.benefitsDateInformation.coordinationOfBenefits (second date, if present)
| benefitsInformation.benefitsDateInformation.coordinationOfBenefits can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Plan Code | benefitsInformation.benefitsAdditionalInformation.planNumber
|
|
Payer Name | benefitsInformation.benefitsRelatedEntities.entityName
|
|
Address | benefitsInformation.benefitsRelatedEntities.address.address1
benefitsInformation.benefitsRelatedEntities.address.address2
benefitsInformation.benefitsRelatedEntities.address.city
benefitsInformation.benefitsRelatedEntities.address.state
benefitsInformation.benefitsRelatedEntities.address.postalCode
|
|
Plan Name | benefitsInformation.benefitsRelatedEntities.entityName
|
|
Website | benefitsInformation.benefitsRelatedEntities.contactInformation.contacts.communicationNumber (URL)
| The following must be true:
In most cases, CMS only provides just the payer’s domain name, such as examplepayer.com, not a complete URL. |
Phone Number | benefitsInformation.benefitsRelatedEntities.contactInformation.contacts.communicationNumber (Telephone)
| The following must be true: |
Message(s) | benefitsInformation.additionalInformation.description
|
|
In the JSON 271 eligibility response, this information is only available when all of the following is true:
-
benefitsInformation.code = R (Other or Additional Payor)
-
benefitsInformation.serviceTypeCodes = 88 (Pharmacy)

CWF field | JSON 271 eligibility response property | When to use |
Effective Date | benefitsInformation.benefitsDateInformation.benefit (first date)
| benefitsInformation.benefitsDateInformation.benefit can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Termination Date | benefitsInformation.benefitsDateInformation.benefit (second date, if present)
| benefitsInformation.benefitsDateInformation.benefit can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Plan Code | benefitsInformation.benefitsAdditionalInformation.planNumber
|
|
Payer Name | benefitsInformation.benefitsRelatedEntities.entityName
|
|
Address | benefitsInformation.benefitsRelatedEntities.address.address1
benefitsInformation.benefitsRelatedEntities.address.address2
benefitsInformation.benefitsRelatedEntities.address.city
benefitsInformation.benefitsRelatedEntities.address.state
benefitsInformation.benefitsRelatedEntities.address.postalCode
|
|
Plan Name | benefitsInformation.benefitsRelatedEntities.entityName
|
|
Website | benefitsInformation.benefitsRelatedEntities.contactInformation.contacts.communicationNumber (URL)
| The following must be true:
In most cases, CMS only provides just the payer’s domain name, such as examplepayer.com, not a complete URL. |
Phone Number | benefitsInformation.benefitsRelatedEntities.contactInformation.contacts.communicationNumber (Telephone)
| The following must be true: |
In the JSON 271 eligibility response, this information is only available when all of the following is true:
-
benefitsInformation.code = D (Benefit Description)
-
benefitsInformation.serviceTypeCodes = AD (Occupational Therapy) or AE (Physical Medicine)

CWF field | JSON 271 eligibility response property | When to use |
Period Begin | benefitsInformation.benefitsDateInformation.benefit
| benefitsInformation.benefitsDateInformation.benefit can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Period End | benefitsInformation.benefitsDateInformation.benefit
| benefitsInformation.benefitsDateInformation.benefit can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
PT/ST Applied | benefitsInformation.additionalInformation.description
|
|
OT Applied | benefitsInformation.additionalInformation.description
|
|
In the JSON 271 eligibility response, this information is only available when all of the following is true:
-
benefitsInformation.code = X (Health Care Facility)
-
benefitsInformation.serviceTypeCodes = 45 (Hospice)

CWF field | JSON 271 eligibility response property | When to use |
Benefit Period | No direct mapping. Calculated by ordering the episodes by date for the calendar year. |
|
Benefit Period Start Date | benefitsInformation.benefitsDateInformation.benefit (first date)
| benefitsInformation.benefitsDateInformation.benefit can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Benefit Period End Date | benefitsInformation.benefitsDateInformation.benefit (second date, if present)
| benefitsInformation.benefitsDateInformation.benefit can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD). |
Provider | benefitsInformation.benefitsRelatedEntities.entityIdentificationValue
| The following must be true: |
Provider Name | benefitsInformation.benefitsRelatedEntities.entityName
| The following must be true: |
Hospice Elections |
|
|
Election Date | benefitsInformation.benefitsDateInformation.benefit (first date)
| benefitsInformation.benefitsDateInformation.benefit can be either a single date (YYYYMMDD) or a date range (YYYYMMDD-YYYYMMDD).
|
Election Receipt Date | benefitsInformation.benefitsDateInformation.added
|
|
Election Revocation Date | benefitsInformation.benefitsDateInformation.benefitEnd
|
|
Election Revocation Code | benefitsInformation.additionalInformation.description
|
|
Election NPI | benefitsRelatedEntities.entityIdentificationValue
|
|

In the JSON 271 eligibility response, this information is only available when all of the following is true:
-
benefitsInformation.code = X (Health Care Facility)
-
benefitsInformation.compositeMedicalProcedureIdentifier.procedureCode = G0180
CWF field | JSON 271 eligibility response property |
Certification HCPCS Code | compositeMedicalProcedureIdentifier.procedureCode
|
Process Date | benefitsDateInformation.periodStart
|

CWF field | JSON 271 eligibility response property | When to use |
Pulmonary Remaining (G0424) Technical | benefitsInformation.benefitQuantity
| All of the following must be true: benefitsInformation.code = F (Limitations)
benefitsInformation.serviceTypeCodes = BF (Pulmonary Rehabilitation)
benefitsInformation.timeQualifierCode = 29 (Remaining)
additionalInformation.description = Technical
|
Pulmonary Remaining (G0424) Professional | benefitsInformation.benefitQuantity
| All of the following must be true: benefitsInformation.code = F (Limitations)
benefitsInformation.serviceTypeCodes = BF (Pulmonary Rehabilitation)
benefitsInformation.timeQualifierCode = 29 (Remaining)
additionalInformation.description = Professional
|
Cardiac Applied (93797, 93798) Technical | benefitsInformation.benefitQuantity
| All of the following must be true: benefitsInformation.code = F (Limitations)
benefitsInformation.serviceTypeCodes = BG (Cardiac Rehabilitation)
benefitsInformation.timeQualifierCode = 99 (Quantity Used)
additionalInformation.description = Technical
|
Cardiac Applied (93797, 93798) Professional | benefitsInformation.benefitQuantity
| All of the following must be true: benefitsInformation.code = F (Limitations)
benefitsInformation.serviceTypeCodes = BG (Cardiac Rehabilitation)
benefitsInformation.timeQualifierCode = 99 (Quantity Used)
additionalInformation.description = Professional
|
Intensive Cardiac Applied (G0422, G0423) Technical | benefitsInformation.benefitQuantity
| All of the following must be true: benefitsInformation.code = F (Limitations)
benefitsInformation.serviceTypeCodes = BG (Cardiac Rehabilitation)
benefitsInformation.timeQualifierCode = 99 (Quantity Used)
additionalInformation.description = Intensive Cardiac Rehabilitation - Technical
|
Intensive Cardiac Applied (G0422, G0423) Professional | benefitsInformation.benefitQuantity
| All of the following must be true: benefitsInformation.code = F (Limitations)
benefitsInformation.serviceTypeCodes = BG (Cardiac Rehabilitation)
benefitsInformation.timeQualifierCode = 99 (Quantity Used)
additionalInformation.description = Intensive Cardiac Rehabilitation - Professional
|