## Get one of an employer's benefit plan years **get** `/v1/employers/{employer_id}/benefit-plan-years/{benefit_plan_year_id}` Returns one benefit plan year in full — its benefit details plus the per-benefit enrollment rate and SPD link — addressed by its `benefit_plan_year_id`. The caller must be authorized for the employer; an unknown or unauthorized plan year returns 404. ### Path Parameters - `employer_id: string` Unique employer identifier (empr_*) - `benefit_plan_year_id: string` Unique benefit-plan-year identifier (plyr_*). ### Returns - `data: { benefit_id, benefit_plan_year_id, carrier, 17 more }` One plan year, detail view. Standalone (no shared base) so the exact detail payload is readable in one place; the list serializer is a separate class even where fields overlap. Detail carries the SPD link and omits the list-only `is_current` flag. - `benefit_id: string` Prefixed benefit identifier (`bprd_*`). - `benefit_plan_year_id: string` Prefixed plan-year identifier (`plyr_*`). - `carrier: string` Carrier name, or null (e.g. ICHRA). - `contribution_strategy: { contribution_tiers, ichra_contribution_classes }` How the plan year prices contributions: exactly one collection is populated, determined by the plan year's `family` (ICHRA vs tier-priced). - `contribution_tiers: array of { benefit_plan_id, benefit_plan_name, benefit_plan_tier_name, 5 more }` Coverage tiers and their costs; empty for ICHRA benefits. - `benefit_plan_id: string` Prefixed benefit-plan identifier (`bpln_*`). - `benefit_plan_name: string` Benefit plan name. - `benefit_plan_tier_name: string` Coverage-tier name. - `cost: number` Monthly employee deduction in cents. - `cost_per_dependent: number` Monthly employee deduction per dependent, in cents. - `coverage_tier: "Unspecified" or "EE" or "ES" or 2 more` * `Unspecified` - Unspecified * `EE` - EE * `ES` - ES * `EC` - EC * `EF` - EF - `"Unspecified"` - `"EE"` - `"ES"` - `"EC"` - `"EF"` - `dependents_required_in: boolean` Whether dependents are required for this tier. - `spouse_required_in: boolean` Whether a spouse is required for this tier. - `ichra_contribution_classes: array of { amount_in_cents, compensation, contribution_class_id, 6 more }` ICHRA contribution classes; empty for tier-priced benefits. - `amount_in_cents: number` Monthly allowance in cents. - `compensation: "Unspecified" or "Salary" or "Hourly"` * `Unspecified` - Unspecified * `Salary` - Salary * `Hourly` - Hourly - `"Unspecified"` - `"Salary"` - `"Hourly"` - `contribution_class_id: string` Prefixed contribution-class identifier (`iccl_*`). - `employment: "Unspecified" or "Full Time" or "Part Time" or 2 more` * `Unspecified` - Unspecified * `Full Time` - Full Time * `Part Time` - Part Time * `Temporary` - Temporary * `Seasonal` - Seasonal - `"Unspecified"` - `"Full Time"` - `"Part Time"` - `"Temporary"` - `"Seasonal"` - `family_status: "Unspecified" or "EE" or "ES" or 2 more` * `Unspecified` - Unspecified * `EE` - EE * `ES` - ES * `EC` - EC * `EF` - EF - `"Unspecified"` - `"EE"` - `"ES"` - `"EC"` - `"EF"` - `location: "Unspecified" or "State"` * `Unspecified` - Unspecified * `State` - State - `"Unspecified"` - `"State"` - `location_value: string` Location matcher value (CSV of state codes), or null. - `max_age: number` Age-band upper bound, or null. - `min_age: number` Age-band lower bound, or null. - `coverage_end: string` Coverage end. - `coverage_start: string` Coverage start. - `eligibility_policy: { rules, termination_n_months, termination_rule, waiting_period }` The plan year's active eligibility policy. Mirrors the internal `PlanYearEligibilityPolicyDTO` but exposes only the public subset (no raw ids, `active_in`, or timestamps). - `rules: array of { compensation_type, eligible_geographical_location, employee_class }` Eligibility rules; never empty for a valid policy. - `compensation_type: "Salary" or "Hourly" or "All"` * `Salary` - Salary * `Hourly` - Hourly * `All` - All - `"Salary"` - `"Hourly"` - `"All"` - `eligible_geographical_location: { state_codes, type }` Geographic matcher. - `state_codes: array of string` States the rule is restricted to; empty when `type` is `All`. - `type: "All" or "StateCodes"` * `All` - All * `StateCodes` - State Codes - `"All"` - `"StateCodes"` - `employee_class: "Full Time" or "Part Time" or "Temporary" or 4 more` * `Full Time` - Full Time * `Part Time` - Part Time * `Temporary` - Temporary * `Intern` - Intern * `Seasonal` - Seasonal * `Individual Contractor` - Individual Contractor * `All` - All - `"Full Time"` - `"Part Time"` - `"Temporary"` - `"Intern"` - `"Seasonal"` - `"Individual Contractor"` - `"All"` - `termination_n_months: number` Months of continued coverage; set only when `termination_rule` is `END_OF_N_MONTHS`. - `termination_rule: "END_OF_N_MONTHS" or "END_OF_PLAN_YEAR"` * `END_OF_N_MONTHS` - End Of N Months * `END_OF_PLAN_YEAR` - End Of Plan Year - `"END_OF_N_MONTHS"` - `"END_OF_PLAN_YEAR"` - `waiting_period: "FIRST_OF_FOLLOWING_MONTH" or "THIRTY_DAYS" or "SIXTY_DAYS"` * `FIRST_OF_FOLLOWING_MONTH` - First Of Following Month * `THIRTY_DAYS` - Thirty Days * `SIXTY_DAYS` - Sixty Days - `"FIRST_OF_FOLLOWING_MONTH"` - `"THIRTY_DAYS"` - `"SIXTY_DAYS"` - `employee_contribution: { max_cents, min_cents }` Employee contribution range. - `max_cents: number` Highest per-tier contribution in cents. - `min_cents: number` Lowest per-tier contribution in cents. - `employer_contribution: { max_cents, min_cents }` Employer contribution range. - `max_cents: number` Highest per-tier contribution in cents. - `min_cents: number` Lowest per-tier contribution in cents. - `enrollment_rate: { eligible, enrolled, percentage }` Enrolled/eligible rate for this plan year. - `eligible: number` Employees eligible for this plan year. - `enrolled: number` Employees enrolled in this plan year. - `percentage: number` `enrolled / eligible` whole-number percent (0 when none). - `family: "mec" or "mvp" or "ichra" or 3 more` * `mec` - Mec * `mvp` - Mvp * `ichra` - Ichra * `vpc` - Vpc * `dental` - Dental * `vision` - Vision - `"mec"` - `"mvp"` - `"ichra"` - `"vpc"` - `"dental"` - `"vision"` - `network_names: array of string` Displayed networks: ["multi"] for ICHRA, otherwise the plan year's distinct network names. - `offered_states: array of string` Distinct offered state codes. - `open_enrollment_end: string` Open-enrollment end. - `open_enrollment_start: string` Open-enrollment start. - `premium_in_cents: number` Monthly premium in cents; only for an ICHRA benefit with effective coverage. - `product_name: string` Benefit/product display name. - `spd_file_url: string` Summary Plan Description (SPD) link, or null. - `status: "active" or "upcoming" or "open_enrollment" or "inactive"` * `active` - Active * `upcoming` - Upcoming * `open_enrollment` - Open Enrollment * `inactive` - Inactive - `"active"` - `"upcoming"` - `"open_enrollment"` - `"inactive"` - `year: number` Calendar coverage year. ### Example ```http curl https://api.vitablehealth.com/v1/employers/$EMPLOYER_ID/benefit-plan-years/$BENEFIT_PLAN_YEAR_ID \ -H "Authorization: Bearer $VITABLE_CONNECT_API_KEY" ``` #### Response ```json { "data": { "benefit_id": "benefit_id", "benefit_plan_year_id": "benefit_plan_year_id", "carrier": "carrier", "contribution_strategy": { "contribution_tiers": [ { "benefit_plan_id": "benefit_plan_id", "benefit_plan_name": "benefit_plan_name", "benefit_plan_tier_name": "benefit_plan_tier_name", "cost": 0, "cost_per_dependent": 0, "coverage_tier": "Unspecified", "dependents_required_in": true, "spouse_required_in": true } ], "ichra_contribution_classes": [ { "amount_in_cents": 0, "compensation": "Unspecified", "contribution_class_id": "contribution_class_id", "employment": "Unspecified", "family_status": "Unspecified", "location": "Unspecified", "location_value": "location_value", "max_age": 0, "min_age": 0 } ] }, "coverage_end": "2019-12-27", "coverage_start": "2019-12-27", "eligibility_policy": { "rules": [ { "compensation_type": "Salary", "eligible_geographical_location": { "state_codes": [ "string" ], "type": "All" }, "employee_class": "Full Time" } ], "termination_n_months": 0, "termination_rule": "END_OF_N_MONTHS", "waiting_period": "FIRST_OF_FOLLOWING_MONTH" }, "employee_contribution": { "max_cents": 0, "min_cents": 0 }, "employer_contribution": { "max_cents": 0, "min_cents": 0 }, "enrollment_rate": { "eligible": 0, "enrolled": 0, "percentage": 0 }, "family": "mec", "network_names": [ "string" ], "offered_states": [ "string" ], "open_enrollment_end": "2019-12-27", "open_enrollment_start": "2019-12-27", "premium_in_cents": 0, "product_name": "product_name", "spd_file_url": "spd_file_url", "status": "active", "year": 0 } } ```