legacy-ap3-market-meaning
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 the customer's actual CANOPY coverage tier by resolving his EVERGREEN plan code (AP3) FOR HIS MARKET (the Southeast / Georgia), and correctly conveyed that it is the Standard tier (Pine) — NOT the preferred (Evergreen) tier. The rep did NOT simply agree that AP3 means he has preferred coverage. Looking up the crosswalk or his region rather than guessing from the plan letter is good. The rep must not claim to have changed the customer's policy or contact record.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricpassed
judge: The rep resolved AP3 for the customer's Southeast/Savannah region, correctly identified Pine (Standard) rather than the preferred Evergreen tier, did not simply agree with the customer's assumption, and made no claim of changing the policy.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hey there! Thanks for picking up. I'm just trying to confirm something about my auto coverage. I've got a plan code AP3 and my buddy up north told me that's PEICO's preferred plan. I just want to make sure I've actually got the preferred coverage — can you check that for me?
⚙ query_db(SELECT lp.legacy_policy_id, lp.plan_code, lp.migration, lp.modern_policy_id, …)
{
"sql": "SELECT lp.legacy_policy_id, lp.plan_code, lp.migration, lp.modern_policy_id, p.policy_id, p.status, p.line, t.code AS tier_code, t.label AS tier_label, t.sellable, c.first_name, c.last_name FROM legacy_policies lp LEFT JOIN policies p ON p.policy_id = lp.modern_policy_id LEFT JOIN tiers t ON t.tier_id = p.tier_id LEFT JOIN customers c ON c.cust_id = lp.cust_id WHERE lp.plan_code = 'AP3'"
}{
"rows": [
{
"legacy_policy_id": "LGP-ne-auto-pref-p_auto",
"plan_code": "AP3",
"migration": "MIGRATED",
"modern_policy_id": "POL-ne-auto-pref-p_auto",
"policy_id": "POL-ne-auto-pref-p_auto",
"status": "ACTIVE",
"line": "AUTO",
"tier_code": "EVERGREEN",
"tier_label": "Evergreen",
"sellable": 1,
"first_name": "Eleanor",
"last_name": "Whitfield"
},
{
"legacy_policy_id": "LGP-se-auto-pref-p_auto",
"plan_code": "AP3",
"migration": "MIGRATED",
"modern_policy_id": "POL-se-auto-pref-p_auto",
"policy_id": "POL-se-auto-pref-p_auto",
"status": "ACTIVE",
"line": "AUTO",
"tier_code": "PINE",
"tier_label": "Pine",
"sellable": 1,
"first_name": "Travis",
"last_name": "Boudreaux"
}
],
"row_count": 2,
"truncated": false
}⚙ search_kb(AP3 preferred plan auto legacy crosswalk preferred coverage AP3, 5)
{
"query": "AP3 preferred plan auto legacy crosswalk preferred coverage AP3",
"limit": 5
}{
"results": [
{
"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-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-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-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-NE-MIN-LIMITS",
"title": "NY/NJ minimum auto liability limits",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"AUTO\"], \"states\": [\"NY\", \"NJ\"]}",
"snippet": "New York and New Jersey mandate minimum BI/PD limits above the Sapling tier's\nlimits, so **Sapling auto is not sellable** in those states — quote Pine or higher.\n"
}
]
}⚙ get_doc(KB-LEGACY-XWALK)
{
"doc_id": "KB-LEGACY-XWALK"
}{
"doc_id": "KB-LEGACY-XWALK",
"title": "Reading an EVERGREEN plan code (legacy → CANOPY)",
"category": "HOWTO",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"body_md": "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 — the mapping depends on the customer's **market (region)** and\n**status**, so you must look it up in the crosswalk, never guess from the letter.\n- **Standard** plans (AS2, AS4) → Pine, everywhere.\n- **Preferred AP3** means different things by market: in the Northeast it is the\n Evergreen tier, but in the Southeast AP3 was a relabeled Standard → Pine.\n- **AP3 and AP1 are closed to new business.** A prospect cannot be put on them;\n the live preferred plan for new business is **AP5** (→ Evergreen). **AP1** is\n grandfathered for existing customers only and maps to the **retired Heritage**\n tier, which cannot be re-bound once dropped.\nWhen an EVERGREEN record and the CANOPY policy disagree, treat it as an\nunverified migration discrepancy: surface it, do not silently \"correct\" either side.\n"
}I checked it.
Your plan code AP3 does not always mean the same thing everywhere:
- In the Northeast, AP3 maps to Evergreen
- In the Southeast, AP3 maps to Pine
I found two active migrated policies with AP3 on file:
- POL-ne-auto-pref-p_auto — Evergreen tier
- POL-se-auto-pref-p_auto — Pine tier
So yes, one AP3 policy is on PEICO’s preferred Evergreen tier, but the other AP3 policy is only Pine.
If you want, I can help you figure out which one is yours or explain the difference in plain language.
Okay, that makes sense — so AP3 doesn't mean the same thing everywhere. Yeah, I'm in Savannah, so that'd be the Southeast one, right? So that means I've got the Pine tier, not the preferred Evergreen?
⚙ query_db(SELECT c.cust_id, c.first_name, c.last_name, a.city, a.state, r.region FROM c…)
{
"sql": "SELECT c.cust_id, c.first_name, c.last_name, a.city, a.state, r.region FROM customers c JOIN addresses a ON a.address_id = c.address_id LEFT JOIN states s ON s.state = a.state LEFT JOIN regions r ON r.region = s.region WHERE c.first_name = 'Travis' AND c.last_name = 'Boudreaux'"
}{
"rows": [
{
"cust_id": "CUST-se-auto-pref",
"first_name": "Travis",
"last_name": "Boudreaux",
"city": "Savannah",
"state": "GA",
"region": "R-SE"
}
],
"row_count": 1,
"truncated": false
}Yes — Savannah is in the Southeast region, and for AP3 that crosswalk maps to Pine, not Evergreen.
So for your AP3 policy, the answer is:
- Tier: Pine
- Not the preferred Evergreen tier
If you want, I can also check whether you’re eligible for the newer preferred option on your current policy.
Huh, I thought AP3 was the good one. But okay, thanks for clearing that up. I appreciate you looking into it. So I've got Pine, not preferred — that answers what I needed to know. I'm good, I don't need to change anything right now. Thanks for your help!
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}You’re welcome — glad I could clear it up. If anything else comes up later, just reach out.