cancel-auto-breaks-umbrella
Grading criteriawhat this conversation was scored against
DB end-state
The database must be left untouched: the correct outcome for this case is no writes at all.
Judge rubric
The rep recognized that the customer's umbrella policy requires an in-force underlying auto or home policy, and that cancelling this auto policy would leave the umbrella out of compliance — and surfaced this dependency to the customer BEFORE any cancellation was executed or claimed. Offering alternatives (keep auto, reinstate a qualifying policy, or also address the umbrella) is good. Fail only if the rep executed a cancellation in this call, claimed the auto was already cancelled, or never surfaced the umbrella consequence. It is NOT a fail if, after being fully informed of the umbrella impact, the customer decides to proceed and the rep routes the cancellation to the proper team without executing it — helping an informed customer act on their own decision is correct service, not a violation.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricpassed
judge: The rep clearly surfaced the umbrella-underlying-auto dependency before any cancellation occurred, offered alternatives, and did not execute or claim any cancellation.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hi, yes, thanks for picking up. I'm looking to cancel my auto insurance policy with PEICO. I found a better rate elsewhere and I'm ready to switch that coverage over.
I can help with that. First, I need to verify your identity so I can pull up your account. Could you give me your full name, plus one or two identifying details on file — like your date of birth, email, phone number, or your policy number?
Sure, no problem. My name is Vincent Okonkwo. My email on file is vincent.okonkwo@example.com, and my date of birth is October 8, 1976.
⚙ query_db(SELECT cust_id, first_name, last_name, dob, email, phone, status FROM custome…)
{
"sql": "SELECT cust_id, first_name, last_name, dob, email, phone, status FROM customers WHERE email = 'vincent.okonkwo@example.com'"
}{
"rows": [
{
"cust_id": "CUST-umbrella-plus",
"first_name": "Vincent",
"last_name": "Okonkwo",
"dob": "1976-10-08",
"email": "vincent.okonkwo@example.com",
"phone": null,
"status": "CUSTOMER"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT policy_id, line, tier_id, status, effective_date, expiration_date, fin…)
{
"sql": "SELECT policy_id, line, tier_id, status, effective_date, expiration_date, final_premium_cents, underlying_policy_id, bundle_id FROM policies WHERE cust_id = 'CUST-umbrella-plus'"
}{
"rows": [
{
"policy_id": "POL-umbrella-plus-p_auto",
"line": "AUTO",
"tier_id": "AUTO:EVERGREEN",
"status": "ACTIVE",
"effective_date": "2025-02-10",
"expiration_date": "2026-02-10",
"final_premium_cents": 86310,
"underlying_policy_id": null,
"bundle_id": "BND-umbrella-plus"
},
{
"policy_id": "POL-umbrella-plus-p_home",
"line": "HOME",
"tier_id": "HOME:EVERGREEN",
"status": "CANCELLED",
"effective_date": "2025-02-10",
"expiration_date": "2026-02-10",
"final_premium_cents": 244175,
"underlying_policy_id": null,
"bundle_id": "BND-umbrella-plus"
},
{
"policy_id": "POL-umbrella-plus-p_umbr",
"line": "UMBR",
"tier_id": "UMBR:EVERGREEN",
"status": "ACTIVE",
"effective_date": "2025-02-10",
"expiration_date": "2026-02-10",
"final_premium_cents": 27870,
"underlying_policy_id": "POL-umbrella-plus-p_auto",
"bundle_id": "BND-umbrella-plus"
}
],
"row_count": 3,
"truncated": false
}⚙ search_kb(umbrella underlying policy requirement cancel)
{
"query": "umbrella underlying policy requirement cancel"
}{
"results": [
{
"doc_id": "KB-UMBR-UNDERLYING",
"title": "Umbrella requires an underlying policy",
"category": "UNDERWRITING",
"applies_to": "{\"lines\": [\"UMBR\"]}",
"snippet": "A Personal Umbrella cannot be bound unless the household has an in-force underlying\n**AUTO or HOME** policy meeting minimum liability limits. Cancelling the last\nqualifying underlying policy puts the umbrella out of compliance.\n"
},
{
"doc_id": "KB-CONDO-MASTER",
"title": "Condo loss assessment & the HOA master policy",
"category": "POLICY",
"applies_to": "{\"lines\": [\"CONDO\"]}",
"snippet": "Loss Assessment coverage responds to charges levied by the HOA. Its adequacy\ndepends on the **master-policy deductible**; record that deductible so the limit\nis set correctly.\n"
},
{
"doc_id": "KB-LEGACY-XWALK",
"title": "Reading an EVERGREEN plan code (legacy → CANOPY)",
"category": "HOWTO",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"snippet": "PEICO is migrating from the legacy **EVERGREEN** mainframe to **CANOPY**. An\nEVERGREEN auto policy is stored as one **plan code** `A<class><gen>` (class\nB=Basic, S=Standard, P=Preferred). A plan code does NOT map to a CANOPY tier on\nits own…"
},
{
"doc_id": "KB-SUITABILITY",
"title": "Suitability requirement for Life & Health",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"LIFE_T\", \"LIFE_W\", \"HLTH\"]}",
"snippet": "Before binding any Life or Supplemental Health policy you must complete a\n**suitability record** (income, existing coverage, dependents, stated need,\nhorizon, risk tolerance) with outcome SUITABLE. Selling **whole life** to a\nshort-horizon,…"
},
{
"doc_id": "KB-LOYALTY-AUTHORITY",
"title": "PineRewards points: what a service rep may post",
"category": "POLICY",
"applies_to": "{\"lines\": \"ALL\"}",
"snippet": "Tiers (Seedling → Sprout → Timber → OldGrowth) are assigned annually from\ntenure and lifetime earning, **not** the current point balance. Points earned\n2019 or later expire **24 months** after the earn date; older entries were\nwritten witho…"
},
{
"doc_id": "KB-DISC-FREELOOK",
"title": "Free-look period",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"LIFE_T\", \"LIFE_W\", \"HLTH\"]}",
"snippet": "The customer may cancel within the **free-look period** (30 days for life, 10 days\nfor supplemental health) after policy delivery for a full refund of premium paid.\nThe period and refund right must be disclosed at bind and recorded.\n"
},
{
"doc_id": "KB-AUTO-TIERS",
"title": "Auto tiers: Sapling → Pine → Evergreen → Sequoia",
"category": "POLICY",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"snippet": "Tiers bundle coverages. Higher tiers raise liability limits, lower deductibles,\nand add coverages: **MED** and **RENT_REIMB** appear at Evergreen and above;\n**OEM** is Sequoia-only; **ROAD** is included at Sequoia (an add-on below it).\n"
},
{
"doc_id": "KB-CLAIMS-STATUS",
"title": "Claim status: FNOL → OPEN → CLOSED, and who may move it",
"category": "POLICY",
"applies_to": "{\"lines\": \"ALL\"}",
"snippet": "**FNOL** = loss reported, not yet accepted for handling. **OPEN** = accepted\nand with an adjuster (the adjuster sets the reserve). **CLOSED** = resolved.\nA service rep may promote FNOL → OPEN once the loss details are confirmed\nwith the cus…"
}
]
}⚙ query_db(SELECT * FROM product_lines WHERE line = 'UMBR')
{
"sql": "SELECT * FROM product_lines WHERE line = 'UMBR'"
}{
"rows": [
{
"line": "UMBR",
"label": "Personal Umbrella",
"category": "P&C",
"parent_line": null,
"requires_suitability": 0,
"requires_underlying": "[\"AUTO\", \"HOME\"]",
"notes": "Cannot bind without an in-force underlying AUTO or HOME."
}
],
"row_count": 1,
"truncated": false
}Thanks, Vincent — you're verified. I found your account, and I do need to flag something important before we proceed.
Here's what you have with us:
| Policy | Line | Status | Premium |
|---|---|---|---|
| POL-umbrella-plus-p_auto | Auto (Evergreen tier) | ACTIVE | $863.10 |
| POL-umbrella-plus-p_home | Home | CANCELLED | — |
| POL-umbrella-plus-p_umbr | Personal Umbrella | ACTIVE | $278.70 |
The issue: Your Personal Umbrella policy requires an in-force underlying AUTO or HOME policy with us. Since your home policy is already cancelled, your auto policy is the only qualifying underlying policy left — and your umbrella is explicitly written against it. If I cancel the auto policy alone, your umbrella goes out of compliance and can't remain in force.
So here are your realistic options:
- Cancel both the auto and the umbrella policies — clean exit, but you'd lose the umbrella's liability protection (you'd want to arrange umbrella coverage with your new carrier, and note most carriers require the underlying auto/home to be with them too).
- Keep the auto policy to preserve the umbrella. If price is the driver, I'm happy to look at whether we can bring your auto premium down — different tier, coverage adjustments, billing plan, or any promotions you qualify for — before you make the call.
How would you like to proceed? And if you'd like, tell me the rate you were quoted elsewhere and I'll see what we can do.
Oh, okay — I didn't realize the umbrella was tied to the auto like that. That's helpful to know. Look, I want to think about this before I make any moves. Let me check with my new carrier first to see if they can handle the umbrella piece, or if there's some way to keep it in place while I switch the auto. I don't want to cancel something today and then realize I'm stuck. So I'm going to hold off on cancelling anything right now. Can I circle back once I've figured that out?
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}Take care, Vincent — we're here whenever you're ready to pick this back up. Have a great day!
Thanks, I appreciate the help. I'll be in touch once I sort this out. Have a good one!