> For the complete documentation index, see [llms.txt](https://ideonapi.gitbook.io/enrollment/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ideonapi.gitbook.io/enrollment/implementation-resources/mapping-guides/qualifying-life-events/plan-elections.md).

# Plan Elections

Each plan election entry can be either an <mark style="color:green;">Election</mark> of coverage, or a <mark style="color:yellow;">Waiver</mark> of coverage.&#x20;

## Example JSON

The plan elections object contains:

* a product line (`medical`)
* one plan\_id per product line, *or*
* one plan\_id listed with each member\_id,&#x20;
  * Note: This is only for some product lines and benefit status combinations
* a `type` of either election or waiver
  * the combination of this Type and the Product Line determine the schema used for `coverages`
* an array of `coverages`&#x20;
  * each entry in `coverages` represents a unique covered member for that given product line
  * each coverage is associated with several coverage date fields&#x20;
  * each coverage has a benefit `status` of either `employer_sponsored` or `cobra`

{% tabs %}
{% tab title="Election" %}

```json
"plan_elections": {
      "medical": {
        "plan_id": "e45tcd06-5d97-46e4-9b4e-dcde6a03246f", 
        "type": "election",
        "coverages": [
          {
            "member_id": "a37ecd06-5d97-46e4-9b4e-dcde6a03246f",
            "start_date": "2020-01-01",
            "status": "employer_sponsored"
          }
        ]
      }
    },
```

{% endtab %}

{% tab title="Waiver" %}

<pre class="language-json"><code class="lang-json"><strong>"plan_elections": {
</strong>      "dental": {
            "type": "waiver",
            "waiver_signature_date": "2024-07-01",
            "waiver_reason": "not reelecting"
       }  
    },
</code></pre>

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="1 plan uuid per family" %}

```json
"plan_elections": {
      "medical": {
        "plan_id": "468ecd06-5d97-46e4-9b4e-dcder45t03246f", 
        "type": "election",
        "coverages": [
          {
            "member_id": "a37ecd06-5d97-46e4-9b4e-dcde6a03246f",
            "start_date": "2020-01-01",
            "status": "employer_sponsored"
          },
           {
            "member_id": "3411cd06-5d97-46e4-9b4e-dcde6a03246f",
            "start_date": "2020-01-01",
            "status": "employer_sponsored"
          }
        ]
     }
   }  
     
```

{% endtab %}

{% tab title="1 plan id per member" %}

```json
   "plan_elections": {
      "voluntary_life": {
        "type": "election",
        "coverages": [
          {
            "member_id": "a37ecd06-5d97-46e4-9b4e-dcde6a03246f",
            "plan_id": "468ecd06-5d97-46e4-9b4e-dcder45t03246f", 
            "start_date": "2020-01-01",
            "status": "employer_sponsored"
          },
           {
            "member_id": "3411cd06-5d97-46e4-9b4e-dcde6a03246f",
            "plan_id": "o98ycd06-5d97-46e4-9b4e-dcder45t03246f", 
            "start_date": "2020-01-01",
            "status": "employer_sponsored"
          }
        ]
      }
    }
   
```

{% endtab %}
{% endtabs %}

## Required Fields - Elections

The fields listed below are <mark style="background-color:red;">Required</mark> to create plan elections of the `election` type&#x20;

<table><thead><tr><th width="225">Field</th><th>Description</th></tr></thead><tbody><tr><td>type</td><td>Provide the text "election"</td></tr><tr><td>coverages</td><td>This object contains information for each covered member under the product line. <br><br>Each <code>coverage</code> will contain a <code>member_id</code>, <code>start_date</code>, and <code>status</code> which create a specific coverage record in our system.</td></tr><tr><td>plan_id</td><td>This can be provided at the plan level, or at the member level in each entry to <code>coverages</code></td></tr></tbody></table>

Within `coverages`, each product line has specific requirements based on what carriers require to process elections. Here is a summary of these differences and schemas:

<table><thead><tr><th width="225">Field</th><th>Description</th></tr></thead><tbody><tr><td>member_id</td><td>This field holds the uuid for the given covered member<br><br>Each <code>plan election</code> entry will likely have an <code>employee</code> member_id<br><br>In the case of dependent only <code>cobra</code> coverages, you can send a dependent as the sole (and primary) electee of the coverage</td></tr><tr><td>start_date</td><td><p>This is the most recent effective date with the carrier for that member_id and product line combination<br><br>Start Dates can be updated at carriers by the following events:</p><ul><li>Re-hires</li><li>Eligibility changes</li><li>Plan or Classification changes</li><li>Changes to the benefit amount<br></li></ul><p>Our <a href="/pages/3j1O41lRy6OJX1lEc7Ql">scenario guide for Plan Start Dates</a> has a complete description of the desired behavior. </p></td></tr><tr><td>volume</td><td><p>This is the Approved benefit amount for a given plan. <br><br>Required for the following plan election product lines:<br><br>- voluntary_life<br>- voluntary_accidental_death_dismemberment<br>- voluntary_life_accidental_death_dismemberment<br>- critical_illness<br><br>Occasionally carriers require this element for other product lines i.e., short term disability elections, based on plan design. </p><p></p><p>When a member's benefit amount is reduced due to age, please send the unreduced amount. This ensures that carriers don't apply a second reduction of the amount, and that the full approved amount is visible from the carrier data.<br><br>Example: Plan designs which allows employees to elect 10k increments up to 50k. In this case, provide the specific benefit amount approved per member.<br></p></td></tr><tr><td>status</td><td><p>Required element that provides a benefit status of either Employer Sponsored or COBRA.</p><p></p><p>If your platform system does not administer COBRA coverages, you can always supply a value of <code>employer_sponsored</code>.<br><br>Accepted values: employer_sponsored, cobra</p></td></tr></tbody></table>

## Situationally Required Fields - Elections

The following fields are <mark style="background-color:purple;">Situationally Required</mark> by carriers on their transmissions. Please include this information as part of your initial implementation, as these fields will be required based on supported lines of coverage, per carrier.

<table><thead><tr><th width="283">Field</th><th>Description</th></tr></thead><tbody><tr><td>requested_volume</td><td><p>This is the elected amount requested by the member, which may differ from the <code>volume</code> amount. <br><br>It is recommended to supply this for the following plan election product lines:<br><br>- voluntary_life<br>- voluntary_accidental_death_dismemberment<br>- voluntary_life_accidental_death_dismemberment<br>- critical_illness<br><br>Occasionally carriers desire this element for other product lines i.e., short term disability elections, based on plan design. </p><p></p><p>When a member's benefit amount is reduced due to age, please send the unreduced amount. This ensures that carriers don't apply a second reduction of the amount, and that the full requested amount is sent for approval to the carrier.<br><br>Example: Plan designs which allows employees to elect 10k increments up to 50k. In this case, provide the specific benefit amount elected and approved per member.</p></td></tr><tr><td>end_date</td><td>This field allows a member to provide a specific end_date for a given election. This is provided per member, per product line. <br><br>For an employee's termination of employment event, please provide an end_date for all employer_sponsored coverages. <br><br>If a member is electing <code>cobra</code> coverages, please provide a termination of employment event, and then a <code>cobra</code> election event with a new benefit start date. </td></tr><tr><td>issued_age</td><td>This integer field is required if a carrier sells products in which premiums are based on Issued Age. </td></tr><tr><td>policy_premium_amount</td><td>This field can be provided when Carriers require a total premium amount on the transmission. Carriers use this amount for reconciliation of the elected option and billing.</td></tr><tr><td>employee_contribution_amount</td><td>This field can be provided when Carriers requires data on the amount an employee pays for the coverage. Carriers use this amount for reconciliation of the elected option and billing.</td></tr><tr><td>employer_contribution_amount</td><td>This field can be provided when Carriers requires data on the amount an employer pays for the coverage. Carriers use this amount for reconciliation of the elected option and billing.</td></tr><tr><td>income_data</td><td>This object allows a platform to send Benefit-specific income data. This is required when different product lines are salary-based, but the "salary" amount is calculated on different bases. </td></tr></tbody></table>

| type\*            | <p>Describes the type of income data:<br>benefit\_salary, base\_salary</p> |
| ----------------- | -------------------------------------------------------------------------- |
| effective\_date\* | Date on which this salary amount becomes effective                         |
| amount\*          | integer amount, in cents                                                   |

## Optional Fields - Elections

These fields are truly <mark style="background-color:green;">Optional</mark> but can be helpful to provide.

<table><thead><tr><th width="283">Field</th><th>Description</th></tr></thead><tbody><tr><td>external_identifier</td><td>This is an identifier that your system can use or generate to identify the plan election. </td></tr><tr><td>signature_date</td><td>This is the date on which the member signed-up for this specific coverage.</td></tr><tr><td>signature_type</td><td>This fields notes the way in which a member signed-up for benefits.<br><br>Accepted values: physical, digital, voice</td></tr><tr><td>carrier_identifiers</td><td>This object allows you to pass carrier_identifiers formatted for transmission to carriers, which allows your team to configure and provide assignments for members. </td></tr><tr><td>providers</td><td>This object holds information regarding a member's known providers, for this product line. </td></tr></tbody></table>

## Required Fields - Waivers

The only required field to send a waiver in the plan elections is `type`

<table><thead><tr><th width="225">Field</th><th width="112">Provide?</th><th>Description</th></tr></thead><tbody><tr><td>type</td><td><mark style="background-color:red;">Required</mark></td><td>Provide the text "waiver"</td></tr><tr><td>waiver_signature_date</td><td><mark style="background-color:green;">Optional</mark></td><td>This field can be used to provide the date that the member waived this product line.</td></tr><tr><td>waiver_reason</td><td><mark style="background-color:green;">Optional</mark></td><td>This is a free text field that allows you to pass a description of why a member waived a coverage, if desired.</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ideonapi.gitbook.io/enrollment/implementation-resources/mapping-guides/qualifying-life-events/plan-elections.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
