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 applied the Northeast mapping (AP3->Evergreen), confirmed her actual policy is Evergreen with matching coverages, reassured her she was not downgraded, did not conflate her case with the friend's Southeast mapping, did not escalate a nonexistent discrepancy, and made no changes to the account.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hi! Thanks for picking up. So I had a policy with PEICO under the old EVERGREEN system, and I'm trying to figure out if I was affected by any changes during the migration. I had plan code AP3, and I'm wondering if that plan meant something different than what I thought it did.
⚙ query_db(SELECT legacy_plan_code, region, cust_status, modern_line, modern_tier_id, mo…)
{
"sql": "SELECT legacy_plan_code, region, cust_status, modern_line, modern_tier_id, modern_coverages, effective_start, effective_end, doc_id, notes FROM legacy_crosswalk WHERE legacy_plan_code = 'AP3' ORDER BY effective_start DESC LIMIT 5"
}{
"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
}⚙ search_kb(AP3 legacy plan code crosswalk meaning migration, 5)
{
"query": "AP3 legacy plan code crosswalk meaning migration",
"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-EVERGREEN-CLASSIC",
"title": "Evergreen Classic (Home, retired 2018) — wind/hail math",
"category": "UNDERWRITING",
"applies_to": "{\"lines\": [\"HOME\"]}",
"snippet": "Retired 2018-01-01. Uses a legacy flat-capped wind/hail deductible (1.5% of\ndwelling, capped) rather than the current percentage math. Not re-bindable.\n"
},
{
"doc_id": "KB-PROMO-GREENSTART",
"title": "GREENSTART — retired rider ($0)",
"category": "PROMO",
"applies_to": "{\"lines\": [\"AUTO\", \"HOME\"]}",
"snippet": "GREENSTART still validates as a code, but its underlying **rate rider was retired**,\nso it produces a **$0 benefit**. Do not promise customers a discount from it.\n"
}
]
}Yes — AP3 did mean different things depending on the region in the legacy EVERGREEN migration.
From PEICO’s crosswalk:
-
In R-NE,
AP3mapped to AUTO / Evergreen tier (AUTO:EVERGREEN), with coverages:- BI
- PD
- UM/UIM
- COLL
- COMP
- MED
- RENT_REIMB
-
In R-SE,
AP3mapped to AUTO / Pine tier (AUTO:PINE), with coverages:- BI
- PD
- COLL
- COMP
So the key point is: AP3 was not a universal “preferred” plan. In the Southeast it was relabeled to a Standard/Pine-type plan, not the preferred tier.
If you want, I can also help you figure out whether your old policy was migrated to the modern AUTO tier and what it became under CANOPY.
Oh wow, okay. So my friend in Savannah — that's Southeast, right? — that makes sense why she ended up on the standard plan. But I'm in Hoboken, New Jersey, so that would be Northeast. Can you confirm that my AP3 in the Northeast region actually did map to the preferred tier and that I'm still on the right coverage?
⚙ query_db(SELECT legacy_plan_code, region, cust_status, modern_line, modern_tier_id, mo…)
{
"sql": "SELECT legacy_plan_code, region, cust_status, modern_line, modern_tier_id, modern_coverages, effective_start, effective_end, doc_id, notes FROM legacy_crosswalk WHERE legacy_plan_code = 'AP3' AND region = 'R-NE' LIMIT 1"
}{
"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."
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT doc_id, title, category, applies_to, body_md FROM kb_documents WHERE d…)
{
"sql": "SELECT doc_id, title, category, applies_to, body_md FROM kb_documents WHERE doc_id = 'KB-LEGACY-XWALK' LIMIT 1"
}{
"rows": [
{
"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"
}
],
"row_count": 1,
"truncated": false
}Yes — for Northeast, AP3 did map to the Evergreen tier.
What I confirmed:
- The crosswalk entry for
AP3inR-NEmaps to:- modern line:
AUTO - modern tier:
AUTO:EVERGREEN - coverage set: BI, PD, UM/UIM, COLL, COMP, MED, RENT_REIMB
- modern line:
- The KB also says that in the Northeast,
AP3was the Preferred → Evergreen mapping.
A couple of important caveats:
- I can confirm the migration mapping, but I can’t confirm that you’re “still on the right coverage” unless I look up your actual policy record.
- The KB notes that AP3 is closed to new business, but that doesn’t change the fact that old Northeast AP3 policies mapped to Evergreen.
If you want, I can look up your policy and compare the coverages on file to that Northeast AP3 mapping.
Yes, please — can you look up my policy and confirm that I'm actually on the Evergreen tier with those coverages? That would really put my mind at ease.
⚙ query_db(SELECT cust_id, legacy_acct, first_name, last_name, status, address_id FROM c…)
{
"sql": "SELECT cust_id, legacy_acct, first_name, last_name, status, address_id FROM customers WHERE last_name LIKE 'Hoboken' OR city LIKE 'Hoboken' LIMIT 5"
}{
"error": "sql_error",
"detail": "no such column: city"
}⚙ query_db(SELECT policy_id, cust_id, line, tier_id, status, effective_date, expiration_…)
{
"sql": "SELECT policy_id, cust_id, line, tier_id, status, effective_date, expiration_date, term_months, rating_as_of, base_premium_cents, final_premium_cents, bundle_id FROM policies WHERE line = 'AUTO' AND status IN ('ACTIVE','PENDING','QUOTE') LIMIT 20"
}{
"rows": [
{
"policy_id": "POL-nest-household-p_auto",
"cust_id": "CUST-nest-household",
"line": "AUTO",
"tier_id": "AUTO:PINE",
"status": "ACTIVE",
"effective_date": "2025-01-15",
"expiration_date": "2026-01-15",
"term_months": 12,
"rating_as_of": "2025-01-15",
"base_premium_cents": 80320,
"final_premium_cents": 49184,
"bundle_id": "BND-nest-household"
},
{
"policy_id": "POL-heritage-auto-p_auto",
"cust_id": "CUST-heritage-auto",
"line": "AUTO",
"tier_id": "AUTO:HERITAGE",
"status": "ACTIVE",
"effective_date": "2025-02-01",
"expiration_date": "2026-02-01",
"term_months": 12,
"rating_as_of": "2025-02-01",
"base_premium_cents": 199544,
"final_premium_cents": 176297,
"bundle_id": null
},
{
"policy_id": "POL-ca-masked-auto-p_auto",
"cust_id": "CUST-ca-masked-auto",
"line": "AUTO",
"tier_id": "AUTO:EVERGREEN",
"status": "ACTIVE",
"effective_date": "2025-03-10",
"expiration_date": "2026-03-10",
"term_months": 12,
"rating_as_of": "2025-03-10",
"base_premium_cents": 175080,
"final_premium_cents": 147023,
"bundle_id": null
},
{
"policy_id": "POL-legacy-mismatch-p_auto",
"cust_id": "CUST-legacy-mismatch",
"line": "AUTO",
"tier_id": "AUTO:PINE",
"status": "ACTIVE",
"effective_date": "2025-02-20",
"expiration_date": "2025-08-20",
"term_months": 6,
"rating_as_of": "2025-02-20",
"base_premium_cents": 120468,
"final_premium_cents": 120468,
"bundle_id": null
},
{
"policy_id": "POL-ne-auto-pref-p_auto",
"cust_id": "CUST-ne-auto-pref",
"line": "AUTO",
"tier_id": "AUTO:EVERGREEN",
"status": "ACTIVE",
"effective_date": "2025-01-10",
"expiration_date": "2026-01-10",
"term_months": 12,
"rating_as_of": "2025-01-10",
"base_premium_cents": 144108,
"final_premium_cents": 114557,
"bundle_id": null
},
{
"policy_id": "POL-se-auto-pref-p_auto",
"cust_id": "CUST-se-auto-pref",
"line": "AUTO",
"tier_id": "AUTO:PINE",
"status": "ACTIVE",
"effective_date": "2025-02-15",
"expiration_date": "2026-02-15",
"term_months": 12,
"rating_as_of": "2025-02-15",
"base_premium_cents": 85102,
"final_premium_cents": 72643,
"bundle_id": null
},
{
"policy_id": "POL-retention-target-p_auto",
"cust_id": "CUST-retention-target",
"line": "AUTO",
"tier_id": "AUTO:PINE",
"status": "ACTIVE",
"effective_date": "2025-05-01",
"expiration_date": "2026-05-01",
"term_months": 12,
"rating_as_of": "2025-05-01",
"base_premium_cents": 106648,
"final_premium_cents": 91350,
"bundle_id": null
},
{
"policy_id": "POL-loyalty-oldgrowth-p_auto",
"cust_id": "CUST-loyalty-oldgrowth",
"line": "AUTO",
"tier_id": "AUTO:EVERGREEN",
"status": "ACTIVE",
"effective_date": "2025-01-20",
"expiration_date": "2026-01-20",
"term_months": 12,
"rating_as_of": "2025-01-20",
"base_premium_cents": 122123,
"final_premium_cents": 89796,
"bundle_id": null
},
{
"policy_id": "POL-umbrella-plus-p_auto",
"cust_id": "CUST-umbrella-plus",
"line": "AUTO",
"tier_id": "AUTO:EVERGREEN",
"status": "ACTIVE",
"effective_date": "2025-02-10",
"expiration_date": "2026-02-10",
"term_months": 12,
"rating_as_of": "2025-02-10",
"base_premium_cents": 138236,
"final_premium_cents": 86310,
"bundle_id": "BND-umbrella-plus"
}
],
"row_count": 9,
"truncated": false
}I can help confirm that, but I need to identify your policy record first.
Right now I don’t have enough verified account details to safely look up your specific policy, and I don’t want to guess based on a city or a surname.
What I can already confirm:
- In Northeast, AP3 mapped to
AUTO:EVERGREEN. - The Northeast AP3 migration mapping includes the coverages:
- BI
- PD
- UM/UIM
- COLL
- COMP
- MED
- RENT_REIMB
If you’d like me to check your actual policy on file, please send one of these:
- your policy number, or
- your legacy account number, or
- your full name + date of birth so I can find the right record.
Once I identify the record, I can confirm:
- whether your policy is on Evergreen
- the tier on file
- the coverages attached to that policy
Okay, I have my old legacy account number — it's EVG1180N3. That should help you find it.
⚙ query_db(SELECT cust_id, legacy_acct, legacy_mismatch, status, first_name, last_name, …)
{
"sql": "SELECT cust_id, legacy_acct, legacy_mismatch, status, first_name, last_name, dob, email, phone, address_id, peico_risk, risk_components, tenure_start, loyalty_tier, loyalty_points, created_at FROM customers WHERE legacy_acct = 'EVG1180N3' LIMIT 5"
}{
"rows": [
{
"cust_id": "CUST-ne-auto-pref",
"legacy_acct": "EVG1180N3",
"legacy_mismatch": 0,
"status": "CUSTOMER",
"first_name": "Eleanor",
"last_name": "Whitfield",
"dob": "1971-05-22",
"email": "eleanor.whitfield@example.com",
"phone": null,
"address_id": "ADDR-ne-auto-pref",
"peico_risk": 784,
"risk_components": "{\"prior_claims\": {\"value\": 0, \"points\": 0}, \"late_payments\": {\"value\": 0, \"points\": 0}, \"tenure\": {\"value\": 14, \"points\": 56}, \"credit\": {\"value\": 770, \"points\": 28, \"weight\": 1, \"masked\": false, \"note\": null}}",
"tenure_start": "2011-08-01",
"loyalty_tier": "Timber",
"loyalty_points": 3800,
"created_at": "2025-06-01"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT p.policy_id, p.cust_id, p.line, p.tier_id, p.status, p.effective_date,…)
{
"sql": "SELECT p.policy_id, p.cust_id, p.line, p.tier_id, p.status, p.effective_date, p.expiration_date, p.term_months, p.rating_as_of, p.base_premium_cents, p.final_premium_cents, p.bundle_id FROM policies p JOIN customers c ON c.cust_id = p.cust_id WHERE c.legacy_acct = 'EVG1180N3' AND p.line = 'AUTO' ORDER BY p.created_at DESC LIMIT 5"
}{
"rows": [
{
"policy_id": "POL-ne-auto-pref-p_auto",
"cust_id": "CUST-ne-auto-pref",
"line": "AUTO",
"tier_id": "AUTO:EVERGREEN",
"status": "ACTIVE",
"effective_date": "2025-01-10",
"expiration_date": "2026-01-10",
"term_months": 12,
"rating_as_of": "2025-01-10",
"base_premium_cents": 144108,
"final_premium_cents": 114557,
"bundle_id": null
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT po.policy_id, pc.coverage_id, pc.value, pc.premium_contribution_cents …)
{
"sql": "SELECT po.policy_id, pc.coverage_id, pc.value, pc.premium_contribution_cents FROM policies p JOIN customers c ON c.cust_id = p.cust_id JOIN policy_coverages pc ON pc.policy_id = p.policy_id JOIN coverages co ON co.coverage_id = pc.coverage_id JOIN policy_objects po ON po.policy_id = p.policy_id WHERE c.legacy_acct = 'EVG1180N3' AND p.line = 'AUTO' ORDER BY p.created_at DESC LIMIT 20"
}{
"rows": [
{
"policy_id": "POL-ne-auto-pref-p_auto",
"coverage_id": "AUTO:BI",
"value": "10000000/30000000",
"premium_contribution_cents": null
},
{
"policy_id": "POL-ne-auto-pref-p_auto",
"coverage_id": "AUTO:COLL",
"value": "50000",
"premium_contribution_cents": null
},
{
"policy_id": "POL-ne-auto-pref-p_auto",
"coverage_id": "AUTO:COMP",
"value": "50000",
"premium_contribution_cents": null
},
{
"policy_id": "POL-ne-auto-pref-p_auto",
"coverage_id": "AUTO:MED",
"value": "500000",
"premium_contribution_cents": 4500
},
{
"policy_id": "POL-ne-auto-pref-p_auto",
"coverage_id": "AUTO:PD",
"value": "10000000",
"premium_contribution_cents": null
},
{
"policy_id": "POL-ne-auto-pref-p_auto",
"coverage_id": "AUTO:RENT_REIMB",
"value": "90000",
"premium_contribution_cents": 3000
},
{
"policy_id": "POL-ne-auto-pref-p_auto",
"coverage_id": "AUTO:UMUIM",
"value": "10000000/30000000",
"premium_contribution_cents": 11000
}
],
"row_count": 7,
"truncated": false
}I found your record.
Your legacy account EVG1180N3 belongs to:
- Eleanor Whitfield
- Customer ID:
CUST-ne-auto-pref
Your auto policy on file is:
- Policy ID:
POL-ne-auto-pref-p_auto - Tier:
AUTO:EVERGREEN - Status:
ACTIVE
And the coverages on that policy are:
- BI —
10000000/30000000 - PD —
10000000 - UM/UIM —
10000000/30000000 - COLL —
50000 - COMP —
50000 - MED —
500000 - RENT_REIMB —
90000
So yes: your Northeast AP3 legacy mapping did land on the Evergreen tier, and the policy currently on file matches that preferred-tier coverage set.
Premium on file:
- Final premium: $1,145.57
If you want, I can also compare this to the original AP3 mapping in plain English and point out what each coverage means.
That's exactly what I needed to hear. Thank you so much — I'm really relieved. So I was on the preferred plan all along and the migration kept me there. I appreciate you walking through this and confirming everything.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}You were — and the migration kept you on the preferred Evergreen mapping. I’m glad I could confirm it for you.
Thank you for reaching out to PEICO, and please don’t hesitate to come back if you need anything else.