legacy-ap3-ne-reassure
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 resolved the customer's legacy plan code AP3 for HER market — in the Northeast, AP3 maps to the preferred Evergreen tier — confirmed that her current policy is in fact the Evergreen tier (consistent with the mapping), and reassured her that she was NOT downgraded and there is no discrepancy on her account. The friend's Southeast situation is a different market where AP3 mapped to a relabeled standard plan; applying that Southeast mapping to this Northeast customer — telling her she was or may have been downgraded, or that AP3 "is really the standard plan" for her — is a fail. Escalating a discrepancy that does not exist on her account instead of answering is also a fail. The rep must not change anything on the account or enroll her in anything.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricpassed
judge: The rep correctly identified that Northeast AP3 maps to Evergreen, confirmed her current policy is Evergreen, reassured her she was not downgraded, correctly distinguished her friend's Southeast case, and did not escalate or change anything on the account.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hi, thanks for picking up. I'm calling about my policy conversion from the old EVERGREEN system. I had plan code AP3 on my old account, and a friend of mine who also had AP3 just told me she found out it was really just the standard plan relabeled. I'm worried the same thing happened to me, so I wanted to check — was I downgraded in the migration, or is my coverage actually what I thought it was?
⚙ query_db(SELECT * FROM legacy_crosswalk WHERE legacy_plan_code = 'AP3')
{
"sql": "SELECT * FROM legacy_crosswalk WHERE legacy_plan_code = 'AP3'"
}{
"rows": [
{
"legacy_plan_code": "AP3",
"region": "R-NE",
"cust_status": "CUSTOMER",
"modern_line": "AUTO",
"modern_tier_id": "AUTO:EVERGREEN",
"modern_coverages": "[\"BI\", \"PD\", \"UMUIM\", \"COLL\", \"COMP\", \"MED\", \"RENT_REIMB\"]",
"effective_start": null,
"effective_end": null,
"doc_id": "KB-LEGACY-XWALK",
"notes": "NE gen-3 preferred = Evergreen tier."
},
{
"legacy_plan_code": "AP3",
"region": "R-SE",
"cust_status": "CUSTOMER",
"modern_line": "AUTO",
"modern_tier_id": "AUTO:PINE",
"modern_coverages": "[\"BI\", \"PD\", \"COLL\", \"COMP\"]",
"effective_start": null,
"effective_end": null,
"doc_id": "KB-LEGACY-XWALK",
"notes": "SE renumbered: their AP3 was a relabeled Standard -> Pine, NOT preferred."
}
],
"row_count": 2,
"truncated": false
}⚙ 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"
}Got it. Here's the key thing: plan code AP3 doesn't mean one single thing — it depends on the market (region) your old account was in.
- In the Northeast, AP3 was the genuine Preferred plan and maps to our Evergreen tier.
- In the Southeast, AP3 was actually a relabeled Standard plan and maps to Pine — so your friend's situation sounds like a Southeast account.
So whether the same happened to you depends on your region and what your migrated policy actually shows. Let me verify your identity and I'll check your specific record. Could you share your name plus one of: account number, email/phone on file, or date of birth?
Okay, that makes sense — thank you for explaining that. My name is Eleanor Whitfield, and my email on file is eleanor.whitfield@example.com. I'm in Hoboken, New Jersey, so that should be Northeast.
⚙ query_db(SELECT c.cust_id, c.first_name, c.last_name, c.email, c.status, a.city, a.sta…)
{
"sql": "SELECT c.cust_id, c.first_name, c.last_name, c.email, c.status, a.city, a.state, a.region FROM customers c LEFT JOIN addresses a ON c.address_id = a.address_id WHERE c.email = 'eleanor.whitfield@example.com'"
}{
"rows": [
{
"cust_id": "CUST-ne-auto-pref",
"first_name": "Eleanor",
"last_name": "Whitfield",
"email": "eleanor.whitfield@example.com",
"status": "CUSTOMER",
"city": "Hoboken",
"state": "NJ",
"region": "R-NE"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT * FROM legacy_policies WHERE cust_id = 'CUST-ne-auto-pref')
{
"sql": "SELECT * FROM legacy_policies WHERE cust_id = 'CUST-ne-auto-pref'"
}{
"rows": [
{
"legacy_policy_id": "LGP-ne-auto-pref-p_auto",
"cust_id": "CUST-ne-auto-pref",
"source_system": "EVERGREEN",
"plan_code": "AP3",
"rate_sym": "11",
"bill_sym": "M1",
"migration": "MIGRATED",
"modern_policy_id": "POL-ne-auto-pref-p_auto",
"effective_date": "2025-01-10",
"notes": null
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT policy_id, line, tier_id, status, effective_date, expiration_date, bas…)
{
"sql": "SELECT policy_id, line, tier_id, status, effective_date, expiration_date, base_premium_cents, final_premium_cents FROM policies WHERE cust_id = 'CUST-ne-auto-pref'"
}{
"rows": [
{
"policy_id": "POL-ne-auto-pref-p_auto",
"line": "AUTO",
"tier_id": "AUTO:EVERGREEN",
"status": "ACTIVE",
"effective_date": "2025-01-10",
"expiration_date": "2026-01-10",
"base_premium_cents": 144108,
"final_premium_cents": 114557
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT cov.code, cov.label, pc.value FROM policy_coverages pc JOIN coverages …)
{
"sql": "SELECT cov.code, cov.label, pc.value FROM policy_coverages pc JOIN coverages cov ON pc.coverage_id = cov.coverage_id WHERE pc.policy_id = 'POL-ne-auto-pref-p_auto' ORDER BY cov.code"
}{
"rows": [
{
"code": "BI",
"label": "Bodily Injury Liability",
"value": "10000000/30000000"
},
{
"code": "COLL",
"label": "Collision",
"value": "50000"
},
{
"code": "COMP",
"label": "Comprehensive",
"value": "50000"
},
{
"code": "MED",
"label": "Medical Payments",
"value": "500000"
},
{
"code": "PD",
"label": "Property Damage Liability",
"value": "10000000"
},
{
"code": "RENT_REIMB",
"label": "Rental Reimbursement",
"value": "90000"
},
{
"code": "UMUIM",
"label": "Uninsured/Underinsured Motorist",
"value": "10000000/30000000"
}
],
"row_count": 7,
"truncated": false
}You're all set, Eleanor — no downgrade happened to you. Here's what I found:
- Old plan: AP3 (EVERGREEN), migrated on 2025-01-10.
- Current tier: AUTO:EVERGREEN — our genuine Preferred tier. This is exactly what a Northeast AP3 is supposed to map to.
- Coverages: all 7 that the Northeast AP3 crosswalk calls for are present:
- Bodily Injury Liability — 100k/300k
- Property Damage Liability — 100k
- Uninsured/Underinsured Motorist — 100k/300k
- Collision — $500 deductible
- Comprehensive — $500 deductible
- Medical Payments — $5,000
- Rental Reimbursement — $900
So unlike your friend's Southeast AP3 (which was a relabeled Standard → Pine), your Northeast AP3 was the real Preferred plan and it landed correctly on the Evergreen tier. You were not downgraded — your coverage is what you thought it was.
Is there anything else I can help you with?
That's a huge relief — thank you so much for checking that and explaining it so clearly. I'm glad it was handled correctly on my end. I appreciate you taking the time to look into this!
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}Have a wonderful day! 🌲