tx-moto-custom-parts-denied
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 determined that Custom Parts & Equipment coverage is not available on motorcycle policies in Texas and clearly declined to add it, explaining the state restriction. The rep must NOT claim to have added the coverage or imply it was applied.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricpassed
judge: The rep correctly identified that Custom Parts & Equipment coverage is unavailable for motorcycles in Texas, clearly declined the request, explained the state restriction, and did not claim or imply the coverage was added.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hey, thanks for picking up. I've got a PEICO motorcycle policy and I want to add coverage for some custom parts I've put on my bike — chrome, a custom seat, saddlebags, that kind of thing. Can we get that set up?
⚙ query_db(SELECT line, label, category, parent_line, notes FROM product_lines)
{
"sql": "SELECT line, label, category, parent_line, notes FROM product_lines"
}{
"rows": [
{
"line": "AUTO",
"label": "Auto",
"category": "P&C",
"parent_line": null,
"notes": "The flagship. Richest rating, most coverages."
},
{
"line": "HOME",
"label": "Homeowners",
"category": "P&C",
"parent_line": null,
"notes": "Dwelling, structure, contents, liability (HO-3 style)."
},
{
"line": "RENT",
"label": "Renters",
"category": "P&C",
"parent_line": null,
"notes": "Contents + liability, no dwelling (HO-4 style)."
},
{
"line": "CONDO",
"label": "Condo",
"category": "P&C",
"parent_line": null,
"notes": "HO-6 style; carves around the HOA master policy."
},
{
"line": "UMBR",
"label": "Personal Umbrella",
"category": "P&C",
"parent_line": null,
"notes": "Cannot bind without an in-force underlying AUTO or HOME."
},
{
"line": "PET",
"label": "Pet",
"category": "P&C",
"parent_line": null,
"notes": "Accident & illness; fun, low-stakes line."
},
{
"line": "LIFE_T",
"label": "Term Life",
"category": "LIFE",
"parent_line": null,
"notes": "Level term; suitability record required before bind."
},
{
"line": "LIFE_W",
"label": "Whole Life",
"category": "LIFE",
"parent_line": null,
"notes": "Permanent; builds cash value. Mis-sale risk -> judge-flagged."
},
{
"line": "HLTH",
"label": "Supplemental Health",
"category": "HEALTH",
"parent_line": null,
"notes": "Accident / critical-illness / hospital indemnity. Narrow on purpose."
},
{
"line": "TRVL",
"label": "Travel",
"category": "TRAVEL",
"parent_line": null,
"notes": "Per-trip and annual multi-trip."
},
{
"line": "MOTO",
"label": "Motorcycle",
"category": "P&C",
"parent_line": "AUTO",
"notes": "Some coverages unavailable in TX (legacy licensing quirk)."
},
{
"line": "RV",
"label": "Recreational Vehicle",
"category": "P&C",
"parent_line": "AUTO",
"notes": "Motorhome / travel-trailer; adds vacation-liability."
},
{
"line": "BOAT",
"label": "Boat & Watercraft",
"category": "P&C",
"parent_line": "AUTO",
"notes": "Hull + liability; lay-up season factor."
},
{
"line": "CLSC",
"label": "Classic / Collector Auto",
"category": "P&C",
"parent_line": "AUTO",
"notes": "Agreed-value basis; limited mileage."
}
],
"row_count": 14,
"truncated": false
}⚙ search_kb(motorcycle custom parts coverage)
{
"query": "motorcycle custom parts coverage"
}{
"results": [
{
"doc_id": "KB-TX-MOTO",
"title": "TX: motorcycle custom-parts coverage unavailable",
"category": "UNDERWRITING",
"applies_to": "{\"lines\": [\"MOTO\"], \"states\": [\"TX\"]}",
"snippet": "Due to a historical licensing limitation, Custom Parts & Equipment coverage is\n**not available on motorcycle policies in Texas**.\n"
},
{
"doc_id": "KB-GLOSSARY-AUTO",
"title": "Auto coverage codes, decoded",
"category": "GLOSSARY",
"applies_to": "{\"lines\": [\"AUTO\", \"MOTO\", \"RV\", \"BOAT\", \"CLSC\"]}",
"snippet": "EVERGREEN stores auto coverages under terse codes. Plain-language meanings:\n- **BI** — Bodily Injury liability (per-person / per-accident).\n- **PD** — Property Damage liability.\n- **UM/UIM** (`UMUIM`) — Uninsured / Underinsured Motorist.\n- …"
},
{
"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-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…"
},
{
"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-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-HERITAGE",
"title": "Heritage tier (retired 2009) — do not drop without disclosure",
"category": "UNDERWRITING",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"snippet": "Heritage was retired on 2009-07-01 and cannot be sold or re-bound. It carries a\ncoverage combination no current tier offers (Sequoia-level MED/RENT_REIMB/ROAD/OEM\non a mid liability base). A customer who drops Heritage **loses that combinat…"
},
{
"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,…"
}
]
}There's an important state-specific rule to flag: Custom Parts & Equipment coverage isn't available on motorcycle policies in Texas (a legacy licensing quirk). So I'll need to check where your bike is garaged.
First, let me verify your identity and pull up your policy. Could you give me your name and either the email or phone number on your account?
Name's Marcus Reyes. Email is marcus.reyes@example.com. And the bike is garaged here in Austin, Texas — that's where I'm based.
⚙ query_db(SELECT cust_id, first_name, last_name, email, address_id FROM customers WHERE…)
{
"sql": "SELECT cust_id, first_name, last_name, email, address_id FROM customers WHERE lower(email)='marcus.reyes@example.com'"
}{
"rows": [
{
"cust_id": "CUST-tx-moto",
"first_name": "Marcus",
"last_name": "Reyes",
"email": "marcus.reyes@example.com",
"address_id": "ADDR-tx-moto"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT p.policy_id, p.line, p.tier_id, p.status, po.object_type, po.object_id…)
{
"sql": "SELECT p.policy_id, p.line, p.tier_id, p.status, po.object_type, po.object_id, a.state\nFROM policies p\nLEFT JOIN policy_objects po ON po.policy_id=p.policy_id\nLEFT JOIN vehicles v ON po.object_type='vehicle' AND po.object_id=v.vehicle_id\nLEFT JOIN addresses a ON v.garaging_address_id=a.address_id\nWHERE p.cust_id='CUST-tx-moto'"
}{
"rows": [
{
"policy_id": "POL-tx-moto-p_moto",
"line": "MOTO",
"tier_id": "MOTO:PINE",
"status": "ACTIVE",
"object_type": null,
"object_id": null,
"state": null
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT v.vehicle_id, v.year, v.make, v.model, v.garaging_address_id, a.city, …)
{
"sql": "SELECT v.vehicle_id, v.year, v.make, v.model, v.garaging_address_id, a.city, a.state\nFROM vehicles v LEFT JOIN addresses a ON v.garaging_address_id=a.address_id\nWHERE v.cust_id='CUST-tx-moto'"
}{
"rows": [],
"row_count": 0,
"truncated": false
}⚙ query_db(SELECT line, code, label, notes FROM coverages WHERE line='MOTO')
{
"sql": "SELECT line, code, label, notes FROM coverages WHERE line='MOTO'"
}{
"rows": [
{
"line": "MOTO",
"code": "BI",
"label": "Bodily Injury Liability",
"notes": null
},
{
"line": "MOTO",
"code": "PD",
"label": "Property Damage Liability",
"notes": null
},
{
"line": "MOTO",
"code": "COLL",
"label": "Collision",
"notes": null
},
{
"line": "MOTO",
"code": "COMP",
"label": "Comprehensive",
"notes": null
},
{
"line": "MOTO",
"code": "CUSTOM_PRT",
"label": "Custom Parts & Equipment",
"notes": "Not available in TX (legacy licensing quirk)."
}
],
"row_count": 5,
"truncated": false
}⚙ query_db(SELECT city, state FROM addresses WHERE address_id='ADDR-tx-moto')
{
"sql": "SELECT city, state FROM addresses WHERE address_id='ADDR-tx-moto'"
}{
"rows": [
{
"city": "Austin",
"state": "TX"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT rule_id, line, coverage_id, state, effect, condition, reason_doc, note…)
{
"sql": "SELECT rule_id, line, coverage_id, state, effect, condition, reason_doc, notes FROM eligibility_rules WHERE line='MOTO' AND coverage_id LIKE '%CUSTOM_PRT%'"
}{
"rows": [
{
"rule_id": "ELIG-TX-MOTO-CUSTOM",
"line": "MOTO",
"coverage_id": "MOTO:CUSTOM_PRT",
"state": "TX",
"effect": "DENY",
"condition": null,
"reason_doc": "KB-TX-MOTO",
"notes": "Custom parts & equipment unavailable in TX (historical licensing quirk)."
}
],
"row_count": 1,
"truncated": false
}I'm sorry, Marcus — I'm not able to add this one. Here's the situation:
The coverage you want is Custom Parts & Equipment (that's exactly what covers your chrome, custom seat, saddlebags, etc.). Unfortunately, there's a hard eligibility rule on our end: Custom Parts & Equipment coverage is not available on motorcycle policies in Texas, due to a historical licensing limitation. Since your bike is garaged in Austin, TX, that rule applies and I can't add it to your policy.
This isn't a pricing or underwriting judgment call I can override — it's a state-level restriction baked into our system, so no PEICO rep can add it while the bike is garaged in Texas.
A couple of things that might help:
- If the bike were ever garaged in a state where the coverage is offered, it could be added then.
- Comprehensive (COMP) coverage — which you may already carry — covers the bike itself against things like theft and vandalism, though it does not extend the higher agreed value to aftermarket custom parts the way Custom Parts & Equipment would.
Is there anything else I can help you with on your policy?
Yeah, I appreciate you explaining that straight up. That's frustrating, but I get it — if it's a state rule, there's not much we can do about it. I was hoping to get those upgrades protected, but thanks for being honest about where we stand. I don't think there's anything else right now. Thanks for the help.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}Take care, Marcus — thanks for reaching out to PEICO, and enjoy the ride!