Skip to main content
POST
Give one plan, get the joint plan and our layer price

Authorizations

Authorization
string
header
required

Partner API key. psk_test_<32 hex> for test mode, psk_live_<32 hex> for live mode. Store them in your secrets manager on issue. Live keys are shown once; the scoped partner portal can show an active sandbox key again.

Headers

Idempotency-Key
string

Any non-empty string; deterministic keys from your own IDs work best. Repeating the same key with the same body on the same endpoint and mode within 24 hours returns the stored successful response (with Idempotent-Replay: true) instead of re-executing. Error responses are not stored.

Body

application/json
census
object[]
required

Members, as in PUT /groups/{groupId}/census. Time Machine needs it.

One employee record. Include dependent elections when your platform has them; submitted dependents drive covered lives and household tiers. When they are unavailable, Prescience uses a disclosed normalized small-group household mix for the preliminary model.

plan
object
required

The one plan to price Prescience on. It must be HSA-eligible and a PPO, EPO or POS plan; an HMO is rejected. Money is integer cents.

company
object

Optional. Without it the census is kept under a generated company.

marketPlans
object[]

Optional: every plan you quoted. With a platinum PPO among them, pricingMethod is engine.

Maximum array length: 500

Response

The plan can't be built on (an HMO, not HSA-eligible, incomplete): status: unavailable with the reason and ignoredPlans.

Both versions, or status: unavailable with a reason when the plan can't be built on (a 200, not an error).

ignoredPlans
object[]

Plans we skipped because we can't build on them, never an error: a plan missing a required field is dropped, and a basePlan that is an HMO, not HSA-eligible or incomplete is ignored (the price then comes from marketPlans or the sweep). Each has its index (or basePlan / plan), carrier, plan name and the reason.

usedPlans
object

What was sent in marketPlans and what could be built on.

status
enum<string>
Available options:
unavailable
reason
string
groupId
string
quoteId
string
pricingMethod
enum<string>
Available options:
cost_plus,
engine
versions
object[]

diamond and value, in the shape of a quote's plans, with joint and prescienceOnly added. A version that can't be priced has status unavailable and a reason.

time_machine
object | null
assumptions
string[]

Everything defaulted or assumed, in words.