Skip to main content
Employers choose, during Prescience setup, how much of each premium they cover: between 50% and 100% of the employee-only premium, and between 50% and 100% of the added premium for dependents. Employees pay the rest through payroll. If your platform runs payroll, you deduct that share. Everything you need is on two endpoints you already call:
  • GET /groups/{groupId}/members: each employee’s coverage and deduction.
  • GET /groups/{groupId}/account: the plan, including the per-tier premium split (plan.tiers) and the employer’s chosen percentages (plan.employerContribution).
Both return 404 not_found until the group is enrolled.

One employee’s deduction

From GET /groups/{groupId}/members, for an employee covering a spouse and a child under a plan where the employer covers 100% of employee-only premium and 90% of the added premium for dependents:
  • deduction.medical.employeeMonthlyCents is the employee’s monthly medical share. It comes from the employer’s approved plan terms, the same amount the employee saw when enrolling.
  • deduction.dentalVision is set when the employee has active dental or vision coverage with an employee contribution.
  • deduction.perPaycheck.employeeCents is what to deduct from each paycheck: the monthly total (medical plus dental and vision) converted with the payroll calendar Prescience has on file: monthly × 12 ÷ 52 for weekly, × 12 ÷ 26 for biweekly, and divided by the pay days in a month for days_of_month. perPaycheck is null when no payroll calendar is on file; use the monthly amounts with your own calendar instead.
  • deduction.perPaycheck.employerCents is the company’s medical contribution per paycheck (medical.employerMonthlyCents, converted and rounded the same way). Post it as the employer contribution for the pay period, for example as company_contribution_amount on the employee’s Check benefit. It is 0 for a waiver.
  • deduction.perPaycheck.paychecksPerYear is the number of pay runs a year on that calendar (52, 26, or 12 × the pay days in a month). employeeCents × paychecksPerYear ÷ 12 matches the monthly total to within rounding; see Rounding.
  • deduction.preTax is true when the employer runs a Section 125 premium-only plan, so the deduction is pre-tax.
  • deduction.billing is what the employer is billed each month for this household, from Prescience’s verified rate schedule. It is there so both sides can reconcile; don’t deduct from it. deduction.rateMismatch is true when it differs from medical.totalMonthlyCents by more than $1. The deduction still applies, but tell Prescience. When there’s no billed rate, billing is null and billingReason says why (no_rate_schedule, billing_baseline_pending or household_not_billable). Both are null for members who aren’t enrolled.

Rounding

Each per-paycheck amount is rounded once, to whole cents: round(monthly ÷ paychecks per month), where paychecks per month is 52/12 for weekly, 26/12 for biweekly, or the pay days in a month for days_of_month. The same amount applies to every paycheck, so a year of paychecks can differ from 12 × the monthly amount by a few cents. For Tom above, 26 × 56.49=56.49 = 1,468.74 against 12 × 122.40=122.40 = 1,468.80, six cents short. The monthly amounts (medical, dentalVision) are the source of truth. Pick one:
  • Accept the drift. At most half a cent per paycheck, so under $0.27 a year on a weekly calendar. Prescience does not reconcile employee deductions against the monthly amount.
  • True up on the last paycheck of the plan year. Deduct 12 × monthly − employeeCents × (paychecksPerYear − 1) on the final paycheck before plan.coverageEnd, and do the same for employerCents against medical.employerMonthlyCents.

Coverage tiers

The plan prices three tiers. coverage.tier on /members and plan.tiers[].tier on /account use the same three values, set by how many dependents the employee covers: A spouse, domestic partner and child each count as one dependent. Quotes and the census count four household shapes (employeeOnly, employeeSpouse, employeeChildren, family); on the plan, “employee + spouse” and “employee + one child” are both employee_plus_one, and an employee with two or more children and no spouse is family. To find what an employee pays, match coverage.tier to the plan.tiers entry with the same tier, or read the employee’s own deduction directly.

When there’s nothing to deduct, or no amount yet

coverage.status and deduction.reason tell you why. Never treat null as zero.

The plan-level split

plan.tiers on GET /groups/{groupId}/account gives the monthly split, deductible and out-of-pocket maximum for every tier, which is what you show the employer. For the same synthetic plan:
plan.employerContribution holds the percentages the employer chose (employeePct, dependentPct) and the allowed range. policyMismatch is true when the approved per-tier amounts differ from what those percentages imply by more than $1; the approved amounts still apply, but tell Prescience.

HSA elections

Each employee chooses in Prescience how much of their pay goes into their HSA, pre-tax, for the rest of the tax year. GET /groups/{groupId}/members returns that choice as hsaElection. Add it to their payroll:
  • targetCents is the total to withhold from effectiveDate through December 31 of contributionYear. Split it across the employee’s remaining paychecks on your calendar: you know the real pay dates, locked payrolls, missed checks and terminations.
  • contributionLimit is Check’s hsa_contribution_limit (single or family) for the employee’s hsa benefit.
  • version changes whenever the employee saves a new election. Apply each version once; when it changes, recompute the split from the new effectiveDate.
  • hsaElection is null when the employee hasn’t made an election. targetCents: 0 means they elected nothing. Don’t treat the two the same.
  • It is the saved election only. It doesn’t say what was withheld or deposited, and reading it doesn’t authorize Prescience to collect anything.
Who does what: Check records the deduction and lowers take-home pay; it doesn’t deposit the money. Prescience deposits only what you report as withheld. How those results reach Prescience is agreed during onboarding.

Keeping deductions current

Sync GET /groups/{groupId}/members daily and before each payroll run. A deduction changes when an employee enrolls, waives, adds or removes a dependent, or when Prescience approves new plan terms (plan.termsRevision on /account increases). New hires and terminations still originate in your platform and reach Prescience through census sync.