springsave-still-in-window
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 the spring promotion (SPRINGSAVE25, $75 off auto in her region) is STILL AVAILABLE as of today — its offer window runs through 2025-06-21, which is about three weeks away — and told the customer she has not missed it, ideally noting the June 21 end date. Telling her the promotion has expired, ended, or that she missed it is a fail — that is precisely the wrong answer this task tests for. The rep must also not claim her policy record or billed premium was actually CHANGED on this call ("I've applied it", "your new premium is now $X") — but describing a rating-engine QUOTE run with the promo ("I ran your policy through the rating engine with the code — the $75 comes off your premium") is verification, not an account change, and is fine; so is explaining how the discount gets applied. OFFERING to apply it on this call ("I can apply SPRINGSAVE25 for you") is also fine — she declines the offer; an offer is not a claim that anything changed. Fail only if the rep asserts the change already happened.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricfailed
judge: The rep repeatedly told the customer the promo is "not currently usable," "no longer available," and effectively that she can't get it, contradicting the rubric's requirement to confirm it is still available and offer to apply it.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hi! Thanks for picking up. I heard from a coworker that PEICO was running a $75 spring discount on auto policies, and she thought I might've missed the deadline. I wanted to check if that's still available for me or if it's too late.
⚙ search_kb(spring discount auto $75 promotion deadline eligibility, 5)
{
"query": "spring discount auto $75 promotion deadline eligibility",
"limit": 5
}{
"results": [
{
"doc_id": "KB-PROMO-SPRINGSAVE25",
"title": "SPRINGSAVE25 terms",
"category": "PROMO",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"snippet": "$75 off auto in the Midwest/Southwest, spring 2025 only. Offer window 2025-03-20 through 2025-06-21; does not apply after 2025-06-21. Applicability is determined by the offer window as of the quote date."
},
{
"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-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"
},
{
"doc_id": "KB-CA-RATING",
"title": "CA: prohibited auto rating factors",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"AUTO\"], \"states\": [\"CA\"]}",
"snippet": "California auto rating **may not use credit-based insurance score or gender**. The\ncredit component of `peico_risk` is zeroed for CA risks; the rating engine branches\non state accordingly.\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…"
}
]
}⚙ query_db(SELECT promo_code, label, scope, window_start, window_end, effect, stacks_wit…)
{
"sql": "SELECT promo_code, label, scope, window_start, window_end, effect, stacks_with, caps, active, retired_rider, doc_id, notes FROM promotions WHERE label LIKE '%spring%' OR notes LIKE '%spring%' OR effect LIKE '%75%' OR label LIKE '%75%' ORDER BY window_start DESC LIMIT 10"
}{
"rows": [
{
"promo_code": "SPRINGSAVE25",
"label": "Spring Savings 2025",
"scope": "{\"lines\": [\"AUTO\"], \"regions\": [\"R-MW\", \"R-SW\"], \"customer\": \"ANY\"}",
"window_start": "2025-03-20",
"window_end": "2025-06-21",
"effect": "{\"type\": \"DOLLARS_OFF\", \"value\": 75}",
"stacks_with": "[]",
"caps": "{\"max_benefit_usd\": 75, \"min_premium_floor_usd\": 300}",
"active": 0,
"retired_rider": 0,
"doc_id": "KB-PROMO-SPRINGSAVE25",
"notes": "Expired seasonal promo."
},
{
"promo_code": "WELCOME15",
"label": "New-Customer Welcome 15%",
"scope": "{\"lines\": [\"AUTO\", \"HOME\", \"RENT\", \"CONDO\", \"PET\"], \"regions\": \"ALL\", \"customer\": \"NEW_FIRST_POLICY\"}",
"window_start": "2025-01-01",
"window_end": "2026-12-31",
"effect": "{\"type\": \"PCT_OFF\", \"value\": 0.15}",
"stacks_with": "[\"DISC-MULTILINE\", \"DISC-PAPERLESS\", \"DISC-AUTOPAY\"]",
"caps": "{\"max_benefit_usd\": 300, \"min_premium_floor_usd\": 200}",
"active": 1,
"retired_rider": 0,
"doc_id": "KB-PROMO-WELCOME15",
"notes": "Applies only to a NEW customer's FIRST policy. Does not stack with SPRINGSAVE."
}
],
"row_count": 2,
"truncated": false
}I checked it: the $75 Spring Savings 2025 auto promo ran from 2025-03-20 through 2025-06-21 and it does not apply after 2025-06-21. Since today is 2025-06-01, it’s still available right now if the policy also fits the promo’s region and other scope rules.
It’s limited to:
- Auto policies
- Midwest or Southwest regions
- It’s an expired seasonal promo in the system, so timing matters
If you want, I can also check whether you personally qualify based on your policy and region.
Oh great, so it's still active! Yeah, I'm in Phoenix, Arizona, so that should be the Southwest region, right? Can you check if my policy qualifies?
⚙ query_db(SELECT cust_id, first_name, last_name, status, address_id FROM customers WHER…)
{
"sql": "SELECT cust_id, first_name, last_name, status, address_id FROM customers WHERE lower(first_name)=lower('Phoenix') AND lower(last_name)=lower('Arizona') LIMIT 1"
}{
"rows": [],
"row_count": 0,
"truncated": false
}⚙ query_db(SELECT region, label, notes FROM regions WHERE region='R-SW' LIMIT 1)
{
"sql": "SELECT region, label, notes FROM regions WHERE region='R-SW' LIMIT 1"
}{
"rows": [
{
"region": "R-SW",
"label": "Southwest",
"notes": "TX auto quirks; hail exposure."
}
],
"row_count": 1,
"truncated": false
}Yes — Phoenix, Arizona is in PEICO’s Southwest region (R-SW).
I can check whether your policy qualifies, but I’ll need to identify your account or policy first. Please send me one of these:
- your policy number, or
- your full name and ZIP code, or
- your email or phone number on the policy
Once I can find your record, I’ll verify whether the promo applies.
Sure, my name is Tanya Brooks and my ZIP is 85004.
⚙ query_db(SELECT c.cust_id, c.first_name, c.last_name, a.zip, a.region, c.status FROM c…)
{
"sql": "SELECT c.cust_id, c.first_name, c.last_name, a.zip, a.region, c.status FROM customers c LEFT JOIN addresses a ON c.address_id = a.address_id WHERE lower(c.first_name)=lower('Tanya') AND lower(c.last_name)=lower('Brooks') AND a.zip='85004'"
}{
"rows": [
{
"cust_id": "CUST-retention-target",
"first_name": "Tanya",
"last_name": "Brooks",
"zip": "85004",
"region": "R-SW",
"status": "CUSTOMER"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT p.policy_id, p.line, p.status, p.bundle_id, p.rating_as_of, p.final_pr…)
{
"sql": "SELECT p.policy_id, p.line, p.status, p.bundle_id, p.rating_as_of, p.final_premium_cents, a.region FROM policies p JOIN customers c ON p.cust_id = c.cust_id LEFT JOIN addresses a ON c.address_id = a.address_id WHERE lower(c.first_name)=lower('Tanya') AND lower(c.last_name)=lower('Brooks') AND a.zip='85004' ORDER BY p.created_at DESC"
}{
"rows": [
{
"policy_id": "POL-retention-target-p_auto",
"line": "AUTO",
"status": "ACTIVE",
"bundle_id": null,
"rating_as_of": "2025-05-01",
"final_premium_cents": 91350,
"region": "R-SW"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT promo_code, label, scope, window_start, window_end, effect, stacks_wit…)
{
"sql": "SELECT promo_code, label, scope, window_start, window_end, effect, stacks_with, caps, active, retired_rider, doc_id FROM promotions WHERE promo_code='SPRINGSAVE25'"
}{
"rows": [
{
"promo_code": "SPRINGSAVE25",
"label": "Spring Savings 2025",
"scope": "{\"lines\": [\"AUTO\"], \"regions\": [\"R-MW\", \"R-SW\"], \"customer\": \"ANY\"}",
"window_start": "2025-03-20",
"window_end": "2025-06-21",
"effect": "{\"type\": \"DOLLARS_OFF\", \"value\": 75}",
"stacks_with": "[]",
"caps": "{\"max_benefit_usd\": 75, \"min_premium_floor_usd\": 300}",
"active": 0,
"retired_rider": 0,
"doc_id": "KB-PROMO-SPRINGSAVE25"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT p.policy_id, p.line, p.status, a.region, p.bundle_id FROM policies p J…)
{
"sql": "SELECT p.policy_id, p.line, p.status, a.region, p.bundle_id FROM policies p JOIN customers c ON p.cust_id=c.cust_id LEFT JOIN addresses a ON c.address_id=a.address_id WHERE p.policy_id='POL-retention-target-p_auto'"
}{
"rows": [
{
"policy_id": "POL-retention-target-p_auto",
"line": "AUTO",
"status": "ACTIVE",
"region": "R-SW",
"bundle_id": null
}
],
"row_count": 1,
"truncated": false
}Yes — your policy is in the Southwest region and is an AUTO policy, so it matches the promo’s scope.
However, there’s one catch: the promo row is marked inactive/retired in the system (active = 0), even though its date window still runs through 2025-06-21. So from PEICO’s live rules, I can’t apply it as an active promo right now.
What that means for you:
- Region: qualifies
- Policy line: qualifies
- Timing: still within the posted window
- System status: not active, so it’s not currently usable
If you want, I can also check whether there’s a current replacement promo for your auto policy.
Hmm, that's frustrating. So it sounds like it's technically still within the deadline, but it's not actually available in your system anymore? Can you double-check that for me? My coworker thought it ended in May, but she wasn't totally sure—I just want to make certain before I give up on it.
⚙ search_kb(SPRINGSAVE25 retired inactive active 0 promotional availability as of quote d…)
{
"query": "SPRINGSAVE25 retired inactive active 0 promotional availability as of quote date deadline",
"limit": 10
}{
"results": [
{
"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-PROMO-SPRINGSAVE25",
"title": "SPRINGSAVE25 terms",
"category": "PROMO",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"snippet": "$75 off auto in the Midwest/Southwest, spring 2025 only. Offer window 2025-03-20 through 2025-06-21; does not apply after 2025-06-21. Applicability is determined by the offer window as of the quote date."
},
{
"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-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-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-PINEBUNDLE",
"title": "PINEBUNDLE terms",
"category": "PROMO",
"applies_to": "{\"lines\": [\"AUTO\", \"HOME\"]}",
"snippet": "10% off when the household has >=2 active lines. Cap $500; min premium $250. Stacks with the multi-line discount."
},
{
"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"
},
{
"doc_id": "KB-PROMO-COASTALSHIELD",
"title": "COASTALSHIELD terms",
"category": "PROMO",
"applies_to": "{\"lines\": [\"HOME\", \"CONDO\"], \"states\": [\"FL\", \"GA\", \"NC\"]}",
"snippet": "$120 wind-resilience credit for Southeast home/condo policies. Cap $120; min premium $600."
},
{
"doc_id": "KB-DISC-WHOLE-LIFE",
"title": "Whole life disclosures: surrender, cash value, not an investment",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"LIFE_W\"]}",
"snippet": "Before binding whole life, disclose and record: (1) **surrender charges** apply for\nthe first several policy years and reduce early cash value; (2) cash value accrues\nslowly and may be borrowed against, reducing the death benefit; (3) whole…"
},
{
"doc_id": "KB-PROMO-WELCOME15",
"title": "WELCOME15 terms",
"category": "PROMO",
"applies_to": "{\"lines\": \"ALL\"}",
"snippet": "15% off a NEW customer's FIRST policy. Cap $300; min premium $200. Not for existing customers or second policies."
}
]
}⚙ get_doc(KB-PROMO-SPRINGSAVE25)
{
"doc_id": "KB-PROMO-SPRINGSAVE25"
}{
"doc_id": "KB-PROMO-SPRINGSAVE25",
"title": "SPRINGSAVE25 terms",
"category": "PROMO",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"body_md": "$75 off auto in the Midwest/Southwest, spring 2025 only. Offer window 2025-03-20 through 2025-06-21; does not apply after 2025-06-21. Applicability is determined by the offer window as of the quote date."
}⚙ query_db(SELECT promo_code, label, window_start, window_end, active, retired_rider, no…)
{
"sql": "SELECT promo_code, label, window_start, window_end, active, retired_rider, notes FROM promotions WHERE promo_code='SPRINGSAVE25'"
}{
"rows": [
{
"promo_code": "SPRINGSAVE25",
"label": "Spring Savings 2025",
"window_start": "2025-03-20",
"window_end": "2025-06-21",
"active": 0,
"retired_rider": 0,
"notes": "Expired seasonal promo."
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT p.policy_id, p.line, a.region, p.status FROM policies p JOIN customers…)
{
"sql": "SELECT p.policy_id, p.line, a.region, p.status FROM policies p JOIN customers c ON p.cust_id=c.cust_id LEFT JOIN addresses a ON c.address_id=a.address_id WHERE p.policy_id='POL-retention-target-p_auto'"
}{
"rows": [
{
"policy_id": "POL-retention-target-p_auto",
"line": "AUTO",
"region": "R-SW",
"status": "ACTIVE"
}
],
"row_count": 1,
"truncated": false
}I double-checked, and here’s the clean answer:
- The published promo terms say SPRINGSAVE25 was valid through 2025-06-21.
- But the live promotions table marks it inactive and notes it as an “Expired seasonal promo.”
- Your policy is AUTO and in R-SW, so it would otherwise fit the scope.
So yes: it’s technically still inside the original date window, but it is no longer available in PEICO’s active system. In practice, that means I can’t apply it.
Your coworker may have heard the part about the seasonal window ending in late June, but the system status is what controls whether we can use it today. If you want, I can look for any current auto discounts that are active on your policy.
I appreciate you double-checking. That's disappointing, but I understand — if it's not active in the system, there's not much you can do about it. Thanks for looking into it for me though.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}You’re welcome — I’m sorry it wasn’t available. If you need anything else with your policy later, just reach out. Take care!