Skip to main content
Use POST /price-on-plan when you have one plan priced and want to know what Prescience adds on top of it. You send a census and the plan with its price per covered person per month. The response is the two plans, Prescience Diamond and Prescience Value, each as the joint plan (your plan plus Prescience) and as the Prescience layer alone. The MCP tool price_on_plan takes the same input. Unlike POST /quotes, you don’t send a company or every plan you quoted. A key needs the price_on_plan capability, which broker keys have by default; see Broker account setup.

Send a census and one plan

The plan

Money is integer cents. Send one of pmpmCents, memberRatesCents or monthlyRatesCents.

The rest of the request

Prescience stores the census as a group in your account. Sending the same company (or, with no company, the same census) again prices the same group again. A price-on-plan group is separate from the groups your POST /quotes calls create.

The response

201 returns both versions. A plan Prescience can’t build on (an HMO, a plan that isn’t HSA-eligible, or one with a missing or unusable field) is not a 400: the response is 200 with status: "unavailable", a reason, ignoredPlans and assumptions. A 400 is only for broken JSON, a missing or invalid census, or a missing plan. When pricing takes longer than the request waits, the response is 202 with retryAfterSeconds (the same body as a quote’s 202): send the same body again.
Each item in versions is a plan in the shape of a quote’s plans (see Reading a quote, including all_max_year, median_year and monthly_rates_by_household), with two objects added: ignoredPlans and usedPlans appear when you sent marketPlans, as in a quote. assumptions lists everything defaulted or assumed, in words: a missing company or ZIP, a family deductible or out-of-pocket maximum set to twice the individual one, and how the price was set. A version that can’t be priced has status: "unavailable" and a reason, as in a quote.

Pricing method

pricingMethod is informational: engine when you send marketPlans that include a platinum PPO, and cost_plus when you send only the census and one plan (each version then has pricing_method: "cost_plus", no comparison, and worst_year.benchmark_premium_cents and headroom_cents of null). joint.deductibleIndividualCents is the plan’s own deductible. The worst year is a modeled scenario from Time Machine for this census, not a contractual cap or guarantee. Without marketPlans no marketplace is queried, so the answer usually comes back in the same request.

Errors