welcome15-prospect-bind-chain
Grading criteriawhat this conversation was scored against
DB end-state
{
"policies": {
"changed": [
{
"pk": {
"policy_id": "POL-prospect-il-auto-q2_auto"
},
"fields": {
"rating_inputs": [
"*",
"*"
],
"final_premium_cents": [
73018,
62065
],
"premium_breakdown": [
"*",
"*"
],
"status": [
"QUOTE",
"ACTIVE"
],
"expiration_date": [
null,
"2026-06-01"
]
},
"may_change": {
"rating_as_of": [
"*",
"*"
]
}
}
]
}
}Judge rubric
The rep completed the whole chain on this call: (1) recognized the customer qualifies for WELCOME15 (a brand-new customer binding his first policy, auto line, promo active and in window) — telling him he doesn't qualify is a fail; (2) attached the promo AND repriced so the discount actually landed, quoting the honest discounted figure (about $620.65/yr, down from $730.18 — small rounding or nearby phrasing is fine; the discount is capped so "exactly 15% off" phrasing is acceptable if the stored figure is right); and (3) bound the policy effective today so he has coverage. Binding at the undiscounted price despite his eligibility, attaching the promo without the discount ever reaching the stored premium, or ending the call with the quote unbound, is a fail. The rep is NOT required to recite the promo's terms, caps, or eligibility checks — the correct final figure on a bound policy is the evidence. Judge the FINAL spoken figures only (about $620.65, and/or savings of about $109.53 from $730.18). The rating engine's breakdown contains several intermediate notions of "base" (a raw $900 base rate before factors; a $922.75 base premium after factors), so a rep narrating the engine's steps may quote intermediates that differ from the reference framing below — that is correct, not inconsistent. Do not fail a trial whose final figures are right because its intermediate arithmetic is presented differently.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricpassed
judge: The rep recognized eligibility for WELCOME15, applied it and repriced to the correct discounted figure ($620.65 from $730.18, savings $109.53), and bound the policy effective today (2025-06-01), satisfying all three required steps.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hi! I'm calling to finalize my auto quote — I'm ready to go ahead with it today. But first, I saw your ad for WELCOME15, the 15% new-customer discount. I'm a first-time PEICO customer, so I want to make sure that gets applied before we wrap this up. Can you help me with that?
I'd be happy to help you finalize your auto quote and look into the WELCOME15 promo. First, let me verify your identity and pull up your account. Could you give me your name and either your email, phone number, or date of birth on file?
Sure — it's Aaron Halloway, and my email on file is aaron.halloway@example.com.
⚙ query_db(SELECT cust_id, first_name, last_name, email, phone, status, tenure_start, cr…)
{
"sql": "SELECT cust_id, first_name, last_name, email, phone, status, tenure_start, created_at FROM customers WHERE lower(email)='aaron.halloway@example.com'"
}{
"rows": [
{
"cust_id": "CUST-prospect-il-auto",
"first_name": "Aaron",
"last_name": "Halloway",
"email": "aaron.halloway@example.com",
"phone": null,
"status": "PROSPECT",
"tenure_start": null,
"created_at": "2025-06-01"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT policy_id, line, tier_id, status, effective_date, term_months, base_pr…)
{
"sql": "SELECT policy_id, line, tier_id, status, effective_date, term_months, base_premium_cents, final_premium_cents, rating_as_of FROM policies WHERE cust_id='CUST-prospect-il-auto'"
}{
"rows": [
{
"policy_id": "POL-prospect-il-auto-q2_auto",
"line": "AUTO",
"tier_id": "AUTO:PINE",
"status": "QUOTE",
"effective_date": "2025-06-01",
"term_months": 12,
"base_premium_cents": 92275,
"final_premium_cents": 73018,
"rating_as_of": "2025-05-29"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT promo_code, label, scope, window_start, window_end, effect, stacks_wit…)
{
"sql": "SELECT promo_code, label, scope, window_start, window_end, effect, stacks_with, caps, active, doc_id, notes FROM promotions WHERE promo_code='WELCOME15'"
}{
"rows": [
{
"promo_code": "WELCOME15",
"label": "New-Customer Welcome 15%",
"scope": "{\"lines\": [\"AUTO\", \"HOME\", \"RENT\", \"CONDO\", \"PET\"], \"regions\": \"ALL\", \"customer\": \"NEW_FIRST_POLICY\"}",
"window_start": "2025-01-01",
"window_end": "2026-12-31",
"effect": "{\"type\": \"PCT_OFF\", \"value\": 0.15}",
"stacks_with": "[\"DISC-MULTILINE\", \"DISC-PAPERLESS\", \"DISC-AUTOPAY\"]",
"caps": "{\"max_benefit_usd\": 300, \"min_premium_floor_usd\": 200}",
"active": 1,
"doc_id": "KB-PROMO-WELCOME15",
"notes": "Applies only to a NEW customer's FIRST policy. Does not stack with SPRINGSAVE."
}
],
"row_count": 1,
"truncated": false
}⚙ get_doc(KB-PROMO-WELCOME15)
{
"doc_id": "KB-PROMO-WELCOME15"
}{
"doc_id": "KB-PROMO-WELCOME15",
"title": "WELCOME15 terms",
"category": "PROMO",
"applies_to": "{\"lines\": \"ALL\"}",
"body_md": "15% off a NEW customer's FIRST policy. Cap $300; min premium $200. Not for existing customers or second policies."
}⚙ query_db(SELECT COUNT(*) AS cnt FROM policies WHERE cust_id='CUST-prospect-il-auto' AN…)
{
"sql": "SELECT COUNT(*) AS cnt FROM policies WHERE cust_id='CUST-prospect-il-auto' AND status IN ('ACTIVE','CANCELLED','EXPIRED')"
}{
"rows": [
{
"cnt": 0
}
],
"row_count": 1,
"truncated": false
}⚙ apply_promo(POL-prospect-il-auto-q2_auto, WELCOME15)
{
"policy_id": "POL-prospect-il-auto-q2_auto",
"promo_code": "WELCOME15"
}{
"ok": true,
"rows_affected": 1,
"changeset": {
"policies": {
"changed": [
{
"pk": {
"policy_id": "POL-prospect-il-auto-q2_auto"
},
"fields": {
"rating_inputs": [
"{\"billing\": {\"plan\": \"PAY_IN_FULL\", \"autopay\": false, \"paperless\": true}, \"incidents_5yr\": 0}",
"{\"billing\": {\"plan\": \"PAY_IN_FULL\", \"autopay\": false, \"paperless\": true}, \"incidents_5yr\": 0, \"promo_code\": \"WELCOME15\"}"
]
}
}
]
}
},
"note": "stored premium is now stale — call reprice_policy to recompute"
}⚙ reprice_policy(POL-prospect-il-auto-q2_auto)
{
"policy_id": "POL-prospect-il-auto-q2_auto"
}{
"ok": true,
"as_of": "2025-05-29",
"base_premium_cents": 92275,
"final_premium_cents": 62065,
"breakdown": [
{
"step": "BASE",
"code": "base",
"detail": "base_rate $900",
"factor": null,
"amount_cents": null,
"running_cents": 90000
},
{
"step": "BASE",
"code": "tier:PINE",
"detail": "tier factor ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 90000
},
{
"step": "BASE",
"code": "region:R-MW",
"detail": "region factor ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 90000
},
{
"step": "RISK",
"code": "factor:driver_age",
"detail": "driver_age=32 ×1.05",
"factor": 1.05,
"amount_cents": null,
"running_cents": 94500
},
{
"step": "RISK",
"code": "factor:risk_score",
"detail": "risk_score=702 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 94500
},
{
"step": "RISK",
"code": "factor:annual_miles",
"detail": "annual_miles=14000 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 94500
},
{
"step": "RISK",
"code": "factor:vehicle_age",
"detail": "vehicle_age=6 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 94500
},
{
"step": "RISK",
"code": "factor:incidents_5yr",
"detail": "incidents_5yr=0 ×0.95",
"factor": 0.95,
"amount_cents": null,
"running_cents": 89775
},
{
"step": "FEES",
"code": "policy_fee",
"detail": "+ policy fee",
"factor": null,
"amount_cents": 2500,
"running_cents": 92275
},
{
"step": "DISCOUNT",
"code": "SAFE_DRIVER",
"detail": "−12%",
"factor": 0.88,
"amount_cents": null,
"running_cents": 81202
},
{
"step": "DISCOUNT",
"code": "PAID_IN_FULL",
"detail": "−7%",
"factor": 0.9299999999999999,
"amount_cents": null,
"running_cents": 75518
},
{
"step": "DISCOUNT",
"code": "PAPERLESS",
"detail": "−$25",
"factor": null,
"amount_cents": -2500,
"running_cents": 73018
},
{
"step": "PROMO",
"code": "WELCOME15",
"detail": "−15% (cap $300)",
"factor": null,
"amount_cents": -10953,
"running_cents": 62065
}
],
"changeset": {
"policies": {
"changed": [
{
"pk": {
"policy_id": "POL-prospect-il-auto-q2_auto"
},
"fields": {
"final_premium_cents": [
73018,
62065
],
"premium_breakdown": [
"[]",
"[{\"step\": \"BASE\", \"code\": \"base\", \"detail\": \"base_rate $900\", \"factor\": null, \"amount_cents\": null, \"running_cents\": 90000}, {\"step\": \"BASE\", \"code\": \"tier:PINE\", \"detail\": \"tier factor \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 90000}, {\"step\": \"BASE\", \"code\": \"region:R-MW\", \"detail\": \"region factor \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 90000}, {\"step\": \"RISK\", \"code\": \"factor:driver_age\", \"detail\": \"driver_age=32 \\u00d71.05\", \"factor\": 1.05, \"amount_cents\": null, \"running_cents\": 94500}, {\"step\": \"RISK\", \"code\": \"factor:risk_score\", \"detail\": \"risk_score=702 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 94500}, {\"step\": \"RISK\", \"code\": \"factor:annual_miles\", \"detail\": \"annual_miles=14000 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 94500}, {\"step\": \"RISK\", \"code\": \"factor:vehicle_age\", \"detail\": \"vehicle_age=6 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 94500}, {\"step\": \"RISK\", \"code\": \"factor:incidents_5yr\", \"detail\": \"incidents_5yr=0 \\u00d70.95\", \"factor\": 0.95, \"amount_cents\": null, \"running_cents\": 89775}, {\"step\": \"FEES\", \"code\": \"policy_fee\", \"detail\": \"+ policy fee\", \"factor\": null, \"amount_cents\": 2500, \"running_cents\": 92275}, {\"step\": \"DISCOUNT\", \"code\": \"SAFE_DRIVER\", \"detail\": \"\\u221212%\", \"factor\": 0.88, \"amount_cents\": null, \"running_cents\": 81202}, {\"step\": \"DISCOUNT\", \"code\": \"PAID_IN_FULL\", \"detail\": \"\\u22127%\", \"factor\": 0.9299999999999999, \"amount_cents\": null, \"running_cents\": 75518}, {\"step\": \"DISCOUNT\", \"code\": \"PAPERLESS\", \"detail\": \"\\u2212$25\", \"factor\": null, \"amount_cents\": -2500, \"running_cents\": 73018}, {\"step\": \"PROMO\", \"code\": \"WELCOME15\", \"detail\": \"\\u221215% (cap $300)\", \"factor\": null, \"amount_cents\": -10953, \"running_cents\": 62065}]"
]
}
}
]
}
}
}WELCOME15 is applied. Here's where your quote lands:
- Before promo: $730.18/year
- WELCOME15 (−15%): −$109.53
- New annual premium: $620.65 (paid in full, 12-month term)
You're already getting the safe-driver, paid-in-full, and paperless discounts too, and this is on our PINE auto tier.
Before I bind it and put the policy in force today, one quick thing: I don't have a phone number on file for you. Would you like to add one? (Not required to bind — just want to offer.)
And to confirm: shall I go ahead and bind this policy effective today, 2025-06-01, at $620.65/year?
Great, thanks — the discount looks perfect. No need to add a phone number, just use what's already on file. Yeah, go ahead and bind it effective today at $620.65. Let's get this finalized.
⚙ bind_policy(POL-prospect-il-auto-q2_auto, 2025-06-01)
{
"policy_id": "POL-prospect-il-auto-q2_auto",
"effective_date": "2025-06-01"
}{
"ok": true,
"rows_affected": 1,
"changeset": {
"policies": {
"changed": [
{
"pk": {
"policy_id": "POL-prospect-il-auto-q2_auto"
},
"fields": {
"status": [
"QUOTE",
"ACTIVE"
],
"expiration_date": [
null,
"2026-06-01"
]
}
}
]
}
}
}You're all set, Aaron! 🎉 Your auto policy is now active:
- Policy: POL-prospect-il-auto-q2_auto (AUTO, PINE tier)
- Effective: 2025-06-01 → 2026-06-01 (12-month term)
- Premium: $620.65/year, paid in full, with WELCOME15 applied
Welcome to PEICO! Is there anything else I can help you with?
Perfect — that's exactly what I needed. Thanks for getting that sorted and applying the discount. Really appreciate it!
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}Take care!