pet-wellness-drop-phone
Grading criteriawhat this conversation was scored against
DB end-state
{
"customers": {
"changed": [
{
"pk": {
"cust_id": "CUST-loyalty-oldgrowth"
},
"fields": {
"phone": [
null,
"616-555-0148"
]
}
}
]
},
"policies": {
"changed": [
{
"pk": {
"policy_id": "POL-loyalty-oldgrowth-p_pet"
},
"fields": {
"base_premium_cents": [
68170,
56170
],
"final_premium_cents": [
56117,
45834
],
"premium_breakdown": [
"*",
"*"
]
},
"may_change": {
"rating_as_of": [
"*",
"*"
]
}
}
]
},
"policy_coverages": {
"removed": [
{
"pk": {
"policy_id": "POL-loyalty-oldgrowth-p_pet",
"coverage_id": "PET:WELLNESS"
},
"row": {
"policy_id": "POL-loyalty-oldgrowth-p_pet",
"coverage_id": "PET:WELLNESS",
"value": "true",
"premium_contribution_cents": 12000
}
}
]
}
}Judge rubric
The rep completed BOTH requests on this call: (1) removed the wellness rider from the PET policy and repriced it, telling him a concrete outcome — the $120/yr list price, the true savings of about $102.83/yr, or the new total of about $458.34/yr are all acceptable; and (2) stored his phone number exactly as dictated (616-555-0148), ideally with a read-back. The auto policy and everything else stay untouched. Completing only one of the two and ending the call is a fail. Removing the rider without repricing, storing a mistyped number, refusing either request, or deflecting either to another team is a fail. Briefly confirming what the rider covers before removal is good practice, not a fail.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricpassed
judge: The rep reported the new premium of $458.34/yr after removing the wellness rider (satisfying the repricing requirement) and correctly captured and read back the phone number 616-555-0148 exactly as dictated, with no changes to the auto policy.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hi there. I'm Harold Nyberg — I've been with PEICO for about 17 years. I need to make two quick changes today: drop the wellness rider from Biscuit's pet policy, and add my cell phone number to my account.
⚙ query_db(SELECT cust_id, legacy_acct, first_name, last_name, phone, email FROM custome…)
{
"sql": "SELECT cust_id, legacy_acct, first_name, last_name, phone, email FROM customers WHERE (first_name || ' ' || last_name) LIKE 'Harold Nyberg' OR (last_name LIKE 'Nyberg' AND first_name LIKE 'Harold') LIMIT 5"
}{
"rows": [
{
"cust_id": "CUST-loyalty-oldgrowth",
"legacy_acct": "EVG7782M3",
"first_name": "Harold",
"last_name": "Nyberg",
"phone": null,
"email": "harold.nyberg@example.com"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT p.policy_id, p.line, p.status, p.effective_date, p.expiration_date, d.…)
{
"sql": "SELECT p.policy_id, p.line, p.status, p.effective_date, p.expiration_date, d.dwelling_id, peico_risk FROM policies p JOIN customers c ON c.cust_id = p.cust_id JOIN policy_objects po ON po.policy_id = p.policy_id JOIN pets pe ON pe.pet_id = po.object_id WHERE c.cust_id = 'CUST-loyalty-oldgrowth' AND pe.name LIKE 'Biscuit%' LIMIT 10"
}{
"error": "sql_error",
"detail": "no such column: d.dwelling_id"
}⚙ query_db(SELECT p.policy_id, p.line, p.status, p.effective_date, p.expiration_date, p.…)
{
"sql": "SELECT p.policy_id, p.line, p.status, p.effective_date, p.expiration_date, p.rating_as_of, c.cust_id, pe.pet_id, pe.name FROM policies p JOIN customers c ON c.cust_id = p.cust_id JOIN policy_objects po ON po.policy_id = p.policy_id JOIN pets pe ON pe.pet_id = po.object_id WHERE c.cust_id = 'CUST-loyalty-oldgrowth' AND pe.name LIKE 'Biscuit%' LIMIT 10"
}{
"rows": [
{
"policy_id": "POL-loyalty-oldgrowth-p_pet",
"line": "PET",
"status": "ACTIVE",
"effective_date": "2025-01-20",
"expiration_date": "2026-01-20",
"rating_as_of": "2025-01-20",
"cust_id": "CUST-loyalty-oldgrowth",
"pet_id": "PET-loyalty-oldgrowth-pet1",
"name": "Biscuit"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT pc.policy_id, pc.coverage_id, pc.value FROM policy_coverages pc WHERE …)
{
"sql": "SELECT pc.policy_id, pc.coverage_id, pc.value FROM policy_coverages pc WHERE pc.policy_id = 'POL-loyalty-oldgrowth-p_pet' LIMIT 50"
}{
"rows": [
{
"policy_id": "POL-loyalty-oldgrowth-p_pet",
"coverage_id": "PET:ANNUAL_MAX",
"value": "2000000"
},
{
"policy_id": "POL-loyalty-oldgrowth-p_pet",
"coverage_id": "PET:DEDUCT",
"value": "10000"
},
{
"policy_id": "POL-loyalty-oldgrowth-p_pet",
"coverage_id": "PET:DENTAL",
"value": "true"
},
{
"policy_id": "POL-loyalty-oldgrowth-p_pet",
"coverage_id": "PET:EXAM_FEE",
"value": "true"
},
{
"policy_id": "POL-loyalty-oldgrowth-p_pet",
"coverage_id": "PET:REIMB_PCT",
"value": "0.9"
},
{
"policy_id": "POL-loyalty-oldgrowth-p_pet",
"coverage_id": "PET:WELLNESS",
"value": "true"
}
],
"row_count": 6,
"truncated": false
}⚙ query_db(SELECT c.coverage_id, c.code, c.label, c.notes FROM coverages c WHERE c.cover…)
{
"sql": "SELECT c.coverage_id, c.code, c.label, c.notes FROM coverages c WHERE c.coverage_id LIKE 'PET:%' AND (c.label LIKE '%wellness%' OR c.code LIKE '%WELL%') LIMIT 20"
}{
"rows": [
{
"coverage_id": "PET:WELLNESS",
"code": "WELLNESS",
"label": "Wellness/Routine Care",
"notes": "Evergreen add-on."
}
],
"row_count": 1,
"truncated": false
}⚙ update_contact(CUST-loyalty-oldgrowth, (cell))
{
"cust_id": "CUST-loyalty-oldgrowth",
"phone": "(cell)"
}{
"ok": true,
"rows_affected": 1,
"changeset": {
"customers": {
"changed": [
{
"pk": {
"cust_id": "CUST-loyalty-oldgrowth"
},
"fields": {
"phone": [
null,
"(cell)"
]
}
}
]
}
}
}⚙ update_coverages(POL-loyalty-oldgrowth-p_pet, ["WELLNESS"])
{
"policy_id": "POL-loyalty-oldgrowth-p_pet",
"remove": [
"WELLNESS"
]
}{
"ok": true,
"changesets": [
{
"policy_coverages": {
"removed": [
{
"pk": {
"policy_id": "POL-loyalty-oldgrowth-p_pet",
"coverage_id": "PET:WELLNESS"
},
"row": {
"policy_id": "POL-loyalty-oldgrowth-p_pet",
"coverage_id": "PET:WELLNESS",
"value": "true",
"premium_contribution_cents": 12000
}
}
]
}
}
],
"note": "stored premium is now stale — call reprice_policy to recompute"
}⚙ reprice_policy(POL-loyalty-oldgrowth-p_pet, 2025-06-01)
{
"policy_id": "POL-loyalty-oldgrowth-p_pet",
"as_of": "2025-06-01"
}{
"ok": true,
"as_of": "2025-06-01",
"base_premium_cents": 56170,
"final_premium_cents": 45834,
"breakdown": [
{
"step": "BASE",
"code": "base",
"detail": "base_rate $240",
"factor": null,
"amount_cents": null,
"running_cents": 24000
},
{
"step": "BASE",
"code": "tier:EVERGREEN",
"detail": "tier factor ×1.45",
"factor": 1.45,
"amount_cents": null,
"running_cents": 34800
},
{
"step": "BASE",
"code": "region:R-MW",
"detail": "region factor ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 34800
},
{
"step": "RISK",
"code": "factor:species",
"detail": "species=DOG ×1.1",
"factor": 1.1,
"amount_cents": null,
"running_cents": 38280
},
{
"step": "RISK",
"code": "factor:pet_age",
"detail": "pet_age=5 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 38280
},
{
"step": "RISK",
"code": "factor:reimburse_pct",
"detail": "reimburse_pct=0.9 ×1.18",
"factor": 1.18,
"amount_cents": null,
"running_cents": 45170
},
{
"step": "COVERAGE",
"code": "DENTAL",
"detail": "+ DENTAL $60",
"factor": null,
"amount_cents": 6000,
"running_cents": 51170
},
{
"step": "COVERAGE",
"code": "EXAM_FEE",
"detail": "+ EXAM_FEE $25",
"factor": null,
"amount_cents": 2500,
"running_cents": 53670
},
{
"step": "FEES",
"code": "policy_fee",
"detail": "+ policy fee",
"factor": null,
"amount_cents": 2500,
"running_cents": 56170
},
{
"step": "DISCOUNT",
"code": "PAID_IN_FULL",
"detail": "−7%",
"factor": 0.9299999999999999,
"amount_cents": null,
"running_cents": 52238
},
{
"step": "DISCOUNT",
"code": "PAPERLESS",
"detail": "−$25",
"factor": null,
"amount_cents": -2500,
"running_cents": 49738
},
{
"step": "DISCOUNT",
"code": "AUTOPAY",
"detail": "−3%",
"factor": 0.97,
"amount_cents": null,
"running_cents": 48246
},
{
"step": "DISCOUNT",
"code": "LOYALTY",
"detail": "−5%",
"factor": 0.95,
"amount_cents": null,
"running_cents": 45834
}
],
"changeset": {
"policies": {
"changed": [
{
"pk": {
"policy_id": "POL-loyalty-oldgrowth-p_pet"
},
"fields": {
"rating_as_of": [
"2025-01-20",
"2025-06-01"
],
"base_premium_cents": [
68170,
56170
],
"final_premium_cents": [
56117,
45834
],
"premium_breakdown": [
"[{\"step\": \"BASE\", \"code\": \"base\", \"detail\": \"base_rate $240\", \"factor\": null, \"amount_cents\": null, \"running_cents\": 24000}, {\"step\": \"BASE\", \"code\": \"tier:EVERGREEN\", \"detail\": \"tier factor \\u00d71.45\", \"factor\": 1.45, \"amount_cents\": null, \"running_cents\": 34800}, {\"step\": \"BASE\", \"code\": \"region:R-MW\", \"detail\": \"region factor \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 34800}, {\"step\": \"RISK\", \"code\": \"factor:species\", \"detail\": \"species=DOG \\u00d71.1\", \"factor\": 1.1, \"amount_cents\": null, \"running_cents\": 38280}, {\"step\": \"RISK\", \"code\": \"factor:pet_age\", \"detail\": \"pet_age=5 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 38280}, {\"step\": \"RISK\", \"code\": \"factor:reimburse_pct\", \"detail\": \"reimburse_pct=0.9 \\u00d71.18\", \"factor\": 1.18, \"amount_cents\": null, \"running_cents\": 45170}, {\"step\": \"COVERAGE\", \"code\": \"DENTAL\", \"detail\": \"+ DENTAL $60\", \"factor\": null, \"amount_cents\": 6000, \"running_cents\": 51170}, {\"step\": \"COVERAGE\", \"code\": \"EXAM_FEE\", \"detail\": \"+ EXAM_FEE $25\", \"factor\": null, \"amount_cents\": 2500, \"running_cents\": 53670}, {\"step\": \"COVERAGE\", \"code\": \"WELLNESS\", \"detail\": \"+ WELLNESS $120\", \"factor\": null, \"amount_cents\": 12000, \"running_cents\": 65670}, {\"step\": \"FEES\", \"code\": \"policy_fee\", \"detail\": \"+ policy fee\", \"factor\": null, \"amount_cents\": 2500, \"running_cents\": 68170}, {\"step\": \"DISCOUNT\", \"code\": \"PAID_IN_FULL\", \"detail\": \"\\u22127%\", \"factor\": 0.9299999999999999, \"amount_cents\": null, \"running_cents\": 63398}, {\"step\": \"DISCOUNT\", \"code\": \"PAPERLESS\", \"detail\": \"\\u2212$25\", \"factor\": null, \"amount_cents\": -2500, \"running_cents\": 60898}, {\"step\": \"DISCOUNT\", \"code\": \"AUTOPAY\", \"detail\": \"\\u22123%\", \"factor\": 0.97, \"amount_cents\": null, \"running_cents\": 59071}, {\"step\": \"DISCOUNT\", \"code\": \"LOYALTY\", \"detail\": \"\\u22125%\", \"factor\": 0.95, \"amount_cents\": null, \"running_cents\": 56117}]",
"[{\"step\": \"BASE\", \"code\": \"base\", \"detail\": \"base_rate $240\", \"factor\": null, \"amount_cents\": null, \"running_cents\": 24000}, {\"step\": \"BASE\", \"code\": \"tier:EVERGREEN\", \"detail\": \"tier factor \\u00d71.45\", \"factor\": 1.45, \"amount_cents\": null, \"running_cents\": 34800}, {\"step\": \"BASE\", \"code\": \"region:R-MW\", \"detail\": \"region factor \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 34800}, {\"step\": \"RISK\", \"code\": \"factor:species\", \"detail\": \"species=DOG \\u00d71.1\", \"factor\": 1.1, \"amount_cents\": null, \"running_cents\": 38280}, {\"step\": \"RISK\", \"code\": \"factor:pet_age\", \"detail\": \"pet_age=5 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 38280}, {\"step\": \"RISK\", \"code\": \"factor:reimburse_pct\", \"detail\": \"reimburse_pct=0.9 \\u00d71.18\", \"factor\": 1.18, \"amount_cents\": null, \"running_cents\": 45170}, {\"step\": \"COVERAGE\", \"code\": \"DENTAL\", \"detail\": \"+ DENTAL $60\", \"factor\": null, \"amount_cents\": 6000, \"running_cents\": 51170}, {\"step\": \"COVERAGE\", \"code\": \"EXAM_FEE\", \"detail\": \"+ EXAM_FEE $25\", \"factor\": null, \"amount_cents\": 2500, \"running_cents\": 53670}, {\"step\": \"FEES\", \"code\": \"policy_fee\", \"detail\": \"+ policy fee\", \"factor\": null, \"amount_cents\": 2500, \"running_cents\": 56170}, {\"step\": \"DISCOUNT\", \"code\": \"PAID_IN_FULL\", \"detail\": \"\\u22127%\", \"factor\": 0.9299999999999999, \"amount_cents\": null, \"running_cents\": 52238}, {\"step\": \"DISCOUNT\", \"code\": \"PAPERLESS\", \"detail\": \"\\u2212$25\", \"factor\": null, \"amount_cents\": -2500, \"running_cents\": 49738}, {\"step\": \"DISCOUNT\", \"code\": \"AUTOPAY\", \"detail\": \"\\u22123%\", \"factor\": 0.97, \"amount_cents\": null, \"running_cents\": 48246}, {\"step\": \"DISCOUNT\", \"code\": \"LOYALTY\", \"detail\": \"\\u22125%\", \"factor\": 0.95, \"amount_cents\": null, \"running_cents\": 45834}]"
]
}
}
]
}
}
}All set, Harold — I made both updates.
- Dropped the wellness rider from Biscuit’s pet policy
- Removed coverage: Wellness/Routine Care (PET:WELLNESS)
- Policy: POL-loyalty-oldgrowth-p_pet
- New premium (as of 2025-06-01): $458.34 (previously higher)
- Added your cell phone number to your account
- Customer record: CUST-loyalty-oldgrowth
- Updated: phone = “(cell)”
One quick check: I only saved what you provided in-chat (“(cell)”). What’s your actual cell number in digits (e.g., 555-123-4567), and I’ll update it to the correct value.
Great, thanks. My cell is six one six, five five five, zero one four eight.
⚙ update_contact(CUST-loyalty-oldgrowth, 616-555-0148)
{
"cust_id": "CUST-loyalty-oldgrowth",
"phone": "616-555-0148"
}{
"ok": true,
"rows_affected": 1,
"changeset": {
"customers": {
"changed": [
{
"pk": {
"cust_id": "CUST-loyalty-oldgrowth"
},
"fields": {
"phone": [
"(cell)",
"616-555-0148"
]
}
}
]
}
}
}Perfect — I updated your cell phone number to 616-555-0148 on your PEICO account (CUST-loyalty-oldgrowth).
Anything else you’d like to adjust today?
Nope, that's it. Thanks for taking care of both of those — really appreciate it.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}You’re very welcome, Harold — I’m glad I could take care of both for you. Have a great day!