Eligibility Policies
How eligibility policies control waiting periods and employee classifications to determine when employees become benefits-eligible.
An eligibility policy defines the rules that determine when an employee becomes eligible for benefits after being added to an employer’s roster. Each policy specifies a waiting period and an employee classification, and Vitable evaluates these rules automatically when employees are created through census sync.
You create eligibility policies as part of employer setup, before submitting your first census sync. Once a policy is in place, Vitable applies it to every matching employee and fires the employee.eligibility_granted webhook when an employee satisfies the waiting period.
Quick Reference
Section titled “Quick Reference”Waiting Period Values
Section titled “Waiting Period Values”| Value | Meaning |
|---|---|
None | Eligible immediately on hire date |
1st of the following month | Eligible on the first day of the month after hire |
30 days | Eligible 30 days after hire date |
60 days | Eligible 60 days after hire date |
Classification Values
Section titled “Classification Values”| Value | Applies To |
|---|---|
Full time | Full Time employees only |
Part time | Part Time employees only |
All | All employee classes |
Policy Fields
Section titled “Policy Fields”| Field | Description |
|---|---|
id | Unique identifier for the policy |
employer_id | The employer this policy belongs to |
waiting_period | One of None, 1st of the following month, 30 days, 60 days |
classification | One of Full time, Part time, All |
active | Whether the policy is currently in effect |
created_at | When the policy was created |
updated_at | When the policy was last modified |
Understanding the Policy Creation Flow
Section titled “Understanding the Policy Creation Flow”sequenceDiagram
participant P as Partner
participant V as Vitable API
P->>V: POST /v1/employers/{id}/benefit-eligibility-policies
V-->>P: 200 Policy created
Note over V: Employees evaluated against policy
alt Waiting period: None
V--)P: webhook: employee.eligibility_granted (immediate)
else Waiting period: 1st of following month / 30 days / 60 days
Note over V: Waiting period elapses
V--)P: webhook: employee.eligibility_granted
end
Diagram summary: When you create a policy and employees are synced, Vitable checks the waiting period. If None, employees are eligible immediately. If 1st of the following month, they become eligible on the first of the month following their hire date. If 30 days or 60 days, they become eligible after that number of days. In all cases, Vitable fires the employee.eligibility_granted webhook once the waiting period is satisfied.
Creating a Policy
Section titled “Creating a Policy”To create an eligibility policy, send a request to POST /v1/employers/{id}/benefit-eligibility-policies with the waiting_period and classification fields. Vitable responds with the created policy and fires the employer.eligibility_policy_created webhook.
curl -X POST https://api.vitablehealth.com/v1/employers/empr_abc123/benefit-eligibility-policies \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "waiting_period": "1st of the following month", "classification": "Full time" }'You should create your eligibility policy after creating the employer and before submitting a census sync. This ensures that employees are evaluated against the policy as soon as they are created.
Changing an Existing Policy
Section titled “Changing an Existing Policy”Eligibility policies cannot be updated in place. To change an employer’s policy, archive the current policy, then create a new one. Archived policies remain in the system for historical reference but no longer affect eligibility evaluation.
Understanding Waiting Periods
Section titled “Understanding Waiting Periods”The waiting_period field controls how long after an employee’s hire date they must wait before becoming benefits-eligible. Vitable calculates the eligibility date automatically based on the employee’s start_date submitted during census sync (returned as hire_date on the employee record).
Here is a concrete example. An employee hired on January 15 would become eligible on the following dates depending on the policy:
| Waiting Period | Hire Date | Eligibility Date |
|---|---|---|
None | January 15 | January 15 |
1st of the following month | January 15 | February 1 |
30 days | January 15 | February 14 |
60 days | January 15 | March 16 |
When the eligibility date arrives, Vitable fires the employee.eligibility_granted webhook. This is the signal that the employee’s enrollment window is open and they can begin selecting benefits.
Understanding Classifications
Section titled “Understanding Classifications”The classification field determines which employees the policy applies to, based on the employee_class value submitted during census sync.
Census sync accepts six employee class values: Full Time, Part Time, Temporary, Intern, Seasonal, and Individual Contractor. The policy classification maps to these classes as follows:
| Policy Classification | Matching Employee Classes |
|---|---|
Full time | Full Time |
Part time | Part Time |
All | Full Time, Part Time, Temporary, Intern, Seasonal, Individual Contractor |
When Vitable processes a census sync, it matches each employee’s employee_class against the classification of active policies for that employer. Only employees whose class matches an active policy are evaluated for benefits eligibility.
Troubleshooting
Section titled “Troubleshooting”No matching policy for an employee class. If an employee is synced with an employee_class that does not match any active eligibility policy, that employee will not become benefits-eligible. You will not receive an employee.eligibility_granted webhook for them. Verify that your policies cover the employee classes present in your census data.
Policy created after census sync. If you submit a census sync before creating an eligibility policy, the synced employees will receive immediate eligibility if the company already has benefits configured. To apply specific waiting period rules, always create your eligibility policy before submitting census data.
Missed webhook events. If your endpoint was down when the employer.eligibility_policy_created or employee.eligibility_granted webhook was sent, you can query GET /v1/webhook-events to retrieve missed events. You can also check delivery status for a specific event using GET /v1/webhook-events/{event_id}/deliveries. See the Reliability guide for details on retry behavior.
Related Webhooks
Section titled “Related Webhooks”| Event | Description |
|---|---|
employer.eligibility_policy_created | Fired when a new eligibility policy is created for an employer. Learn more |
employee.eligibility_granted | Fired when an employee satisfies the waiting period and becomes benefits-eligible. Learn more |
employee.eligibility_terminated | Fired when an employee’s benefits eligibility is revoked. Learn more |
Related API Endpoints
Section titled “Related API Endpoints”POST /v1/employers/{id}/benefit-eligibility-policies— Create an eligibility policy for an employerGET /v1/benefit-eligibility-policies/{id}— Retrieve a specific eligibility policyGET /v1/webhook-events— Query webhook events to check for missed notificationsGET /v1/webhook-events/{event_id}/deliveries— Check delivery status for a specific webhook event