Plans and Eligibility - synthetichealth/synthea GitHub Wiki

Insurance Plans

By default, the project contains Insurance Plans in the src/main/resources/payers/insurance_plans.csv file. This file defines insurance plans which can be linked to the payers defined in #Payer Data.

The default financial numbers (e.g. premiums and copays) are not necessarily accurate. However, they are based on the sources linked in the Notes column of the file.

You can modify the insurance plans file or have Synthea use an alternative payer file by altering the src/main/resources/synthea.properties file:

# Payers
generate.payers.insurance_companies.default_file = payers/insurance_companies.csv
**generate.payers.insurance_plans.default_file = payers/insurance_plans.csv**
generate.payers.insurance_plans.eligibilities_file = payers/insurance_eligibilities.csv

Insurance Plans File Format

The plans file is a CSV file, with a single row for each plan.

Column Header Description
Plan ID The unique ID to use for this plan.
Payer Id This is the ID of the payer, defined in insurance_companies.csv, that this plan should be linked to.
Name The name of the plan.
Services Covered The services covered (i.e. paid for) by this payer. Use * to signify all services. Otherwise, used a quoted comma-separated string. e.g. "wellness,medications,emergency"
Deductible The amount required out of pocket from patients before the payer will reimburse.
Default Coinsurance Coinsurance as a percentage. 0.0 - 1.0. Currently unused. Maybe used in future versions.
Default Copay The amount required out of pocket from patients at each encounter.
Monthly Premium The monthly fee paid by the patient to have coverage from this insurance plan.
Medicare Supplement A true/false boolean that defines whether this is a Medicare Supplement Plan.
Eligibility Policy A String that defines this plan's patient eligibility criteria by linking to an eligibility in the eligibility file. See #Eligibility for more details.
Start Year The initial year that this plan is available. Inclusive.
End Year The final year that this plan is available. Inclusive.
Notes Notes and sources associated with the plan data.

Eligibility

By default, the project contains Insurance Plan Patient Eligibility Criteria in the src/main/resources/payers/insurance_eligibilities.csv file. This file defines patient eligibility criteria which can be linked to previously defined insurance plans, as described in #Insurance Plans.

The default eligibility criteria for Medicare and Medicaid are not necessarily complete. Social Security eligibility is missing conditions not featured in Synthea and Medicare income thresholds are accurate by-age, but are missing parental Medicaid. However, they are based on the sources linked in the Notes column of the file.

You can modify the eligibility criteria file or have Synthea use an alternative eligibility file by altering the src/main/resources/synthea.properties file:

# Payers
generate.payers.insurance_companies.default_file = payers/insurance_companies.csv
generate.payers.insurance_plans.default_file = payers/insurance_plans.csv
**generate.payers.insurance_plans.eligibilities_file = payers/insurance_eligibilities.csv**

Eligibility Criteria File Format

The eligibility file is a CSV file, with a single row for each eligibility criteria.

Any column can be left blank (except Name). Blank eligibility columns will not be used. Multiple previously defined eligibilities can be mixed and matched using the Sub-Eligibilities column. This can be combined with the Logical Operator column to have nested logic.

Column Header Description
Name The name of this eligibility criteria. It must be unique and is used to link insurance plans with an eligibility type in ##Insurance Plan file.
Poverty Multiplier A simple decimal multiplier that defines what income threshold multiple of the federal poverty level is required to be below for the person to be eligible. For instance, if the poverty multiplier is 1.5, and the federal poverty level is $10,000, then anyone making less than $15,000 will be eligible.
Income Threshold A number that dictates the maximum yearly income a person can have to be eligible.
Age Threshold A number that dictates the minimum age person can be to be eligible.
Qualifying Codes A set of medical codes (SNOMED/RxNorm/LOINC) that, should a person have an active condition that matches that code, will make the person eligible. Can be input either as a pipe-separated set of codes or via an input csv file under a codes column. View the ssd_eligibility.csv file as an example of qualifying conditions for Social Security Disability can be defined using a file.
Qualifying Attributes A set of attribute logics that, should a person satisfy one of those attribute conditions, will make the person eligible. Attribute logics are input as: {attribute}{operator}{value}. For example, to check if a person is blind you can input "blindness=true". To check if a person's bmi is above a certain value, you can input "bmi_percentile >= 23.5". These inputs are not space or case sensitive. Can be input either as a pipe-separated set of logical attribute statement or via an input csv file under an attributes column. View test_attributes_eligiblity.csv for an example of the input file method.
Poverty Multiplier File A String that links to a file that describes by-state and by-age poverty multipliers. View the `medicaid_income_eligibilities.csv' file as a real-world data example for how this works. If a state has "0" as the maximum poverty multiplier for adults, that means it has not expanded Medicaid to adults.
Spenddown File There is a path to Medicaid that can be reached based on Spenddowns - that is, if your income is above Medicaid's limit, but your income is spent down to a certain level because of high medical bills, you can become eligible for Medicaid. Each state defines its own spenddowns and whether spenddown eligibility is valid. View the medicaid_mnil_eligibilities.csv file as an example which defines the real-world by-state spenddown requirements for Medicaid spenddown eligibilities. Medicaid calls this program "Medically Needy Income Limits (MNIL)".
Acceptance Likelihood A number from 0-1 that dictates how likely a person will be accepted by this eligibility should they satisfy the other condition(s). This is provided as an option because there is data that shows that not everyone who is eligible will be accepted. For instance, as many as 10% of SSD eligible people will not be accepted (NOTE: Add a source).
Sub-Eligibilities This links to a pipe-separated set of eligibilities previously defined in this file. It must match the Name field exactly. With this column, you can define criteria based on mixes of previous eligibilities. For instance, if you are eligible for Medicaid and Medicare than you can set this column to `Medicaid
Logical operator A string that defines the logical operator to use for this eligibilities columns. Can be either "AND" or "OR". It is not case-sensitive. "AND" dictates that all of the column criteria must be satisfied to allow eligibility. "OR" dictates that only one or more of the column criteria must be satisfied to allow eligibility.