GET /groups/{groupId}/account: the employer’s plan (for your plan card), population, funding, premium totals and claims spend totals.GET /groups/{groupId}/members: the roster, with each employee’s coverage and payrolldeduction. See Payroll deductions.
Aggregate and de-identified by design. The account payload never contains named claims, diagnoses, or any individual’s health data. See Compliance.
404 not_found until the group is enrolled. Pre-enrollment, use GET /census for roster display.
The account payload
This is real output for a synthetic four-employee sandbox group whose plan terms are approved. The employer covers 100% of employee-only premium and 90% of the added premium for dependents.services is shortened here, and plans (a list whose first entry is plan) is left out.
Before the plan terms are approved
Prescience approves each employer’s plan terms during onboarding. Until thenplan.planStatus is terms_pending, plan.source is plan_config, only the plan configuration fields are present, and plan.employeePremiumCents, plan.tiers, plan.employerContribution and premiums.employeeContributionCents are null. Show the plan as pending rather than as $0.
Rendering the plan card
Render the employer’s plan in your own UI fromplan, or from plans if you want to be ready for more than one plan level. Everything comes from the approved plan terms, the same ones employees see when they enroll.
plan.deductibleIndividualCents, deductibleFamilyCents, oopMaxIndividualCents, oopMaxFamilyCents and employeePremiumCents are deprecated: they repeat tiers for employee_only and family and stay only for integrations built against them. Before the plan terms are approved they are the only plan amounts.
Tiers
The plan prices three tiers; a household maps to one by its covered dependents: 0 →employee_only, 1 → employee_plus_one, 2 or more → family. A spouse, domestic partner and child each count as one. Quotes and the census count four household shapes, so “employee + spouse” and “employee + one child” are both employee_plus_one here. See Payroll deductions.
Showing the plan in your product
The plan card for your Benefits page: Prescience’s plan shown like a plan you provide, with its price, its terms and what each employee pays. Every value comes fromGET /groups/{groupId}/account, GET /groups/{groupId}/members and, for the mark, GET /plans. The only arithmetic is one sum and currency formatting.
What to show
The Diamond card
To show Prescience’s benefits card next to the plan, draw it fromlisting.card in GET /plans:
- Draw
card.artUrl(a text-free SVG) atcard.aspectRatio, with corners ofcard.cornerRadiusPctpercent of the card’s width. - Print
card.kicker,card.badgeandcard.planNameincard.textColor. - For each entry in
card.fields, printlabeland the live value atsourceinGET /groups/{groupId}/account, formatted as currency.companyNamehas no label.
listing.card, so it always matches the employer’s plan.
Label the monthly premium by its source:
The company’s share is the sum over enrolled members, so it follows actual elections. With
premiums.source rate_schedule and plan.rateSources.mismatchedMembers 0, it equals monthlyPremiumEquivalentCents − employeeContributionCents. Skip the sum, and show “Being finalized”, while any enrolled member’s medical.employerMonthlyCents is null.
Example
Rendered from the example payloads on this page:plan.networkCarrier) only as the network: the employer self-funds the plan and Prescience administers it, so never call Prescience the carrier or the insurer. Show plan.services[] (service and memberCost, display strings) on a detail view if you have room.
States
Format cents with your currency utility (
61200 → $612.00) and dates in the employer’s locale. Poll /account for plan.termsRevision; when it increases, the card and every deduction have changed.
Other fields
All money is integer cents. Format with your standard currency utility, never floats.
The account payload does not include spend by category or a savings figure. Neither can be derived from real records today, so the API does not return them.
The roster
GET /groups/{groupId}/members returns every employee. Two from the same synthetic group, one covering a spouse and one who waived:
Freshness
asOf timestamps every account read. The data behind it updates as pulls settle, claims process and employees enroll. Cache for minutes, not days. Both endpoints fall under the standard 120 req/min rate limit.
Offer letters and careers pages
GET /groups/{groupId}/benefits-summary returns the employer’s approved
employee plan terms in one payload built for offer-letter and careers-page
templates: plan name and plan year, eligibility rule, network, monthly employee
contributions by tier, deductible, out-of-pocket maximum, coinsurance, the
covered-care schedule, and the disclosures to print alongside them.
- It returns
404 not_founduntil the group is enrolled and409 conflictuntil Prescience approves the plan terms during onboarding. revisionincreases whenever Prescience approves new terms. Store it with each generated letter and regenerate when it changes.- Employer plan cost is never part of this payload. Use
GET /groups/{groupId}/accountfor the employer view.