mileage-drop-reprice
Grading criteriawhat this conversation was scored against
DB end-state
{
"vehicles": {
"changed": [
{
"pk": {
"vehicle_id": "VEH-legacy-mismatch-v1"
},
"fields": {
"usage": [
"COMMUTE",
"PLEASURE"
],
"annual_miles": [
16000,
6000
]
}
}
]
},
"policies": {
"changed": [
{
"pk": {
"policy_id": "POL-legacy-mismatch-p_auto"
},
"fields": {
"base_premium_cents": [
120468,
93782
],
"final_premium_cents": [
120468,
93782
],
"premium_breakdown": [
"*",
"*"
]
},
"may_change": {
"rating_as_of": [
"*",
"*"
]
}
}
]
}
}Judge rubric
The rep (1) updated the vehicle's recorded facts to match what the customer said — about 6,000 annual miles and personal/pleasure use instead of commuting; (2) repriced the policy through the rating engine and gave him a real figure: a new premium of about $937.82 for his term and/or savings of about $266.86 (small rounding or nearby phrasing is fine; describing it per-month or annualized is fine if consistent with those figures); and (3) executed the update on this call rather than promising it. Refusing to update, quoting a made-up discount instead of repricing, or telling him only that "it should go down" with no engine-verified figure is a fail. Deflecting the update to an underwriting review instead of performing it is a fail.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricpassed
judge: The rep updated the mileage to 6,000 and usage to Pleasure, repriced via the engine giving the exact figure $937.82 (down from $1,204.68, a savings of $266.86), and confirmed the update was executed on the call rather than deferred.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hey, thanks for picking up. So I've been working remotely since April, and my F-150 basically just sits in the driveway now except for weekend stuff — lake trips, hardware store, that kind of thing. I'm probably driving maybe six thousand miles a year now instead of commuting across town every day. I figured that should bring my premium down, and honestly money's been tight, so I wanted to get my policy updated and see what the new rate actually is.
⚙ query_db(SELECT c.cust_id, p.policy_id, p.tier_id, v.vehicle_id, v.annual_miles FROM c…)
{
"sql": "SELECT c.cust_id, p.policy_id, p.tier_id, v.vehicle_id, v.annual_miles\nFROM customers c\nJOIN policies p ON c.cust_id = p.cust_id\nJOIN policy_objects po ON p.policy_id = po.policy_id\nJOIN vehicles v ON po.object_id = v.vehicle_id\nWHERE c.first_name || ' ' || c.last_name LIKE '% %'\nAND p.line = 'AUTO'\nAND p.status = 'ACTIVE'"
}{
"rows": [
{
"cust_id": "CUST-nest-household",
"policy_id": "POL-nest-household-p_auto",
"tier_id": "AUTO:PINE",
"vehicle_id": "VEH-nest-household-v1",
"annual_miles": 12000
},
{
"cust_id": "CUST-heritage-auto",
"policy_id": "POL-heritage-auto-p_auto",
"tier_id": "AUTO:HERITAGE",
"vehicle_id": "VEH-heritage-auto-v1",
"annual_miles": 8000
},
{
"cust_id": "CUST-ca-masked-auto",
"policy_id": "POL-ca-masked-auto-p_auto",
"tier_id": "AUTO:EVERGREEN",
"vehicle_id": "VEH-ca-masked-auto-v1",
"annual_miles": 10000
},
{
"cust_id": "CUST-legacy-mismatch",
"policy_id": "POL-legacy-mismatch-p_auto",
"tier_id": "AUTO:PINE",
"vehicle_id": "VEH-legacy-mismatch-v1",
"annual_miles": 16000
},
{
"cust_id": "CUST-ne-auto-pref",
"policy_id": "POL-ne-auto-pref-p_auto",
"tier_id": "AUTO:EVERGREEN",
"vehicle_id": "VEH-ne-auto-pref-v1",
"annual_miles": 11000
},
{
"cust_id": "CUST-se-auto-pref",
"policy_id": "POL-se-auto-pref-p_auto",
"tier_id": "AUTO:PINE",
"vehicle_id": "VEH-se-auto-pref-v1",
"annual_miles": 13000
},
{
"cust_id": "CUST-retention-target",
"policy_id": "POL-retention-target-p_auto",
"tier_id": "AUTO:PINE",
"vehicle_id": "VEH-retention-target-v1",
"annual_miles": 11000
},
{
"cust_id": "CUST-loyalty-oldgrowth",
"policy_id": "POL-loyalty-oldgrowth-p_auto",
"tier_id": "AUTO:EVERGREEN",
"vehicle_id": "VEH-loyalty-oldgrowth-v1",
"annual_miles": 9000
},
{
"cust_id": "CUST-umbrella-plus",
"policy_id": "POL-umbrella-plus-p_auto",
"tier_id": "AUTO:EVERGREEN",
"vehicle_id": "VEH-umbrella-plus-v1",
"annual_miles": 13000
}
],
"row_count": 9,
"truncated": false
}⚙ query_db(SELECT c.first_name, c.last_name, c.cust_id FROM customers c WHERE c.cust_id …)
{
"sql": "SELECT c.first_name, c.last_name, c.cust_id\nFROM customers c\nWHERE c.cust_id IN (SELECT cust_id FROM policies WHERE policy_id = 'POL-nest-household-p_auto')"
}{
"rows": [
{
"first_name": "Marisol",
"last_name": "Trujillo",
"cust_id": "CUST-nest-household"
}
],
"row_count": 1,
"truncated": false
}I'd be happy to help you with that update, Marisol. To make sure I'm looking at the right account, could you please confirm your full name and the zip code on your policy?
It's Raymond Castillo, not Marisol — and the zip code is 78701.
⚙ query_db(SELECT c.cust_id, c.first_name, c.last_name, a.zip FROM customers c JOIN addr…)
{
"sql": "SELECT c.cust_id, c.first_name, c.last_name, a.zip\nFROM customers c\nJOIN addresses a ON c.address_id = a.address_id\nWHERE c.first_name = 'Raymond' AND c.last_name = 'Castillo' AND a.zip = '78701'"
}{
"rows": [
{
"cust_id": "CUST-legacy-mismatch",
"first_name": "Raymond",
"last_name": "Castillo",
"zip": "78701"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT p.policy_id, p.line FROM policies p WHERE p.cust_id = 'CUST-legacy-mis…)
{
"sql": "SELECT p.policy_id, p.line\nFROM policies p\nWHERE p.cust_id = 'CUST-legacy-mismatch'\nAND p.line = 'AUTO'\nAND p.status = 'ACTIVE'"
}{
"rows": [
{
"policy_id": "POL-legacy-mismatch-p_auto",
"line": "AUTO"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT v.vehicle_id, v.year, v.make, v.model, v.annual_miles FROM vehicles v …)
{
"sql": "SELECT v.vehicle_id, v.year, v.make, v.model, v.annual_miles\nFROM vehicles v\nJOIN policy_objects po ON v.vehicle_id = po.object_id\nWHERE po.policy_id = 'POL-legacy-mismatch-p_auto'\nAND po.object_type = 'vehicle'"
}{
"rows": [
{
"vehicle_id": "VEH-legacy-mismatch-v1",
"year": 2018,
"make": "Ford",
"model": "F-150",
"annual_miles": 16000
}
],
"row_count": 1,
"truncated": false
}Thanks, Raymond. I have located your account and your auto policy (POL-legacy-mismatch-p_auto) for your 2018 Ford F-150.
I see your current mileage is listed at 16,000 miles per year. I can definitely update that to 6,000 miles for you.
Before I make that change and reprice the policy to show you the new premium, I want to confirm: are there any other changes to your driving habits (like commute distance or usage, for instance, from "Commuting" to "Pleasure" use) that I should update at the same time?
Yeah, actually — it should be "Pleasure" or personal use now, not commuting. So yeah, change that too. It's just personal use, weekend stuff, no commuting at all anymore.
⚙ update_insured_object(VEH-legacy-mismatch-v1, vehicle, {"annual_miles":6000,"usage":"PLEASURE"})
{
"object_id": "VEH-legacy-mismatch-v1",
"object_type": "vehicle",
"fields": {
"annual_miles": 6000,
"usage": "PLEASURE"
}
}{
"ok": true,
"rows_affected": 1,
"changeset": {
"vehicles": {
"changed": [
{
"pk": {
"vehicle_id": "VEH-legacy-mismatch-v1"
},
"fields": {
"usage": [
"COMMUTE",
"PLEASURE"
],
"annual_miles": [
16000,
6000
]
}
}
]
}
},
"note": "if these facts feed rating, the affected policy's premium is stale — reprice_policy"
}⚙ reprice_policy(POL-legacy-mismatch-p_auto)
{
"policy_id": "POL-legacy-mismatch-p_auto"
}{
"ok": true,
"as_of": "2025-02-20",
"base_premium_cents": 93782,
"final_premium_cents": 93782,
"breakdown": [
{
"step": "BASE",
"code": "base",
"detail": "base_rate $900",
"factor": null,
"amount_cents": null,
"running_cents": 90000
},
{
"step": "BASE",
"code": "tier:PINE",
"detail": "tier factor ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 90000
},
{
"step": "BASE",
"code": "region:R-SW",
"detail": "region factor ×1.12",
"factor": 1.12,
"amount_cents": null,
"running_cents": 100800
},
{
"step": "BASE",
"code": "term",
"detail": "6mo proration ×0.5",
"factor": 0.5,
"amount_cents": null,
"running_cents": 50400
},
{
"step": "RISK",
"code": "factor:driver_age",
"detail": "driver_age=50 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 50400
},
{
"step": "RISK",
"code": "factor:risk_score",
"detail": "risk_score=616 ×1.22",
"factor": 1.22,
"amount_cents": null,
"running_cents": 61488
},
{
"step": "RISK",
"code": "factor:annual_miles",
"detail": "annual_miles=6000 ×0.92",
"factor": 0.92,
"amount_cents": null,
"running_cents": 56569
},
{
"step": "RISK",
"code": "factor:vehicle_age",
"detail": "vehicle_age=7 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 56569
},
{
"step": "RISK",
"code": "factor:incidents_5yr",
"detail": "incidents_5yr=2 ×1.55",
"factor": 1.55,
"amount_cents": null,
"running_cents": 87682
},
{
"step": "FEES",
"code": "policy_fee",
"detail": "+ policy fee",
"factor": null,
"amount_cents": 2500,
"running_cents": 90182
},
{
"step": "FEES",
"code": "installment",
"detail": "+ fractional-pay surcharge",
"factor": null,
"amount_cents": 3600,
"running_cents": 93782
}
],
"changeset": {
"policies": {
"changed": [
{
"pk": {
"policy_id": "POL-legacy-mismatch-p_auto"
},
"fields": {
"base_premium_cents": [
120468,
93782
],
"final_premium_cents": [
120468,
93782
],
"premium_breakdown": [
"[{\"step\": \"BASE\", \"code\": \"base\", \"detail\": \"base_rate $900\", \"factor\": null, \"amount_cents\": null, \"running_cents\": 90000}, {\"step\": \"BASE\", \"code\": \"tier:PINE\", \"detail\": \"tier factor \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 90000}, {\"step\": \"BASE\", \"code\": \"region:R-SW\", \"detail\": \"region factor \\u00d71.12\", \"factor\": 1.12, \"amount_cents\": null, \"running_cents\": 100800}, {\"step\": \"BASE\", \"code\": \"term\", \"detail\": \"6mo proration \\u00d70.5\", \"factor\": 0.5, \"amount_cents\": null, \"running_cents\": 50400}, {\"step\": \"RISK\", \"code\": \"factor:driver_age\", \"detail\": \"driver_age=50 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 50400}, {\"step\": \"RISK\", \"code\": \"factor:risk_score\", \"detail\": \"risk_score=616 \\u00d71.22\", \"factor\": 1.22, \"amount_cents\": null, \"running_cents\": 61488}, {\"step\": \"RISK\", \"code\": \"factor:annual_miles\", \"detail\": \"annual_miles=16000 \\u00d71.2\", \"factor\": 1.2, \"amount_cents\": null, \"running_cents\": 73786}, {\"step\": \"RISK\", \"code\": \"factor:vehicle_age\", \"detail\": \"vehicle_age=7 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 73786}, {\"step\": \"RISK\", \"code\": \"factor:incidents_5yr\", \"detail\": \"incidents_5yr=2 \\u00d71.55\", \"factor\": 1.55, \"amount_cents\": null, \"running_cents\": 114368}, {\"step\": \"FEES\", \"code\": \"policy_fee\", \"detail\": \"+ policy fee\", \"factor\": null, \"amount_cents\": 2500, \"running_cents\": 116868}, {\"step\": \"FEES\", \"code\": \"installment\", \"detail\": \"+ fractional-pay surcharge\", \"factor\": null, \"amount_cents\": 3600, \"running_cents\": 120468}]",
"[{\"step\": \"BASE\", \"code\": \"base\", \"detail\": \"base_rate $900\", \"factor\": null, \"amount_cents\": null, \"running_cents\": 90000}, {\"step\": \"BASE\", \"code\": \"tier:PINE\", \"detail\": \"tier factor \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 90000}, {\"step\": \"BASE\", \"code\": \"region:R-SW\", \"detail\": \"region factor \\u00d71.12\", \"factor\": 1.12, \"amount_cents\": null, \"running_cents\": 100800}, {\"step\": \"BASE\", \"code\": \"term\", \"detail\": \"6mo proration \\u00d70.5\", \"factor\": 0.5, \"amount_cents\": null, \"running_cents\": 50400}, {\"step\": \"RISK\", \"code\": \"factor:driver_age\", \"detail\": \"driver_age=50 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 50400}, {\"step\": \"RISK\", \"code\": \"factor:risk_score\", \"detail\": \"risk_score=616 \\u00d71.22\", \"factor\": 1.22, \"amount_cents\": null, \"running_cents\": 61488}, {\"step\": \"RISK\", \"code\": \"factor:annual_miles\", \"detail\": \"annual_miles=6000 \\u00d70.92\", \"factor\": 0.92, \"amount_cents\": null, \"running_cents\": 56569}, {\"step\": \"RISK\", \"code\": \"factor:vehicle_age\", \"detail\": \"vehicle_age=7 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 56569}, {\"step\": \"RISK\", \"code\": \"factor:incidents_5yr\", \"detail\": \"incidents_5yr=2 \\u00d71.55\", \"factor\": 1.55, \"amount_cents\": null, \"running_cents\": 87682}, {\"step\": \"FEES\", \"code\": \"policy_fee\", \"detail\": \"+ policy fee\", \"factor\": null, \"amount_cents\": 2500, \"running_cents\": 90182}, {\"step\": \"FEES\", \"code\": \"installment\", \"detail\": \"+ fractional-pay surcharge\", \"factor\": null, \"amount_cents\": 3600, \"running_cents\": 93782}]"
]
}
}
]
}
}
}I've updated your policy to reflect a mileage of 6,000 miles per year and changed your vehicle usage from "Commuting" to "Pleasure."
I have also recalculated your premium based on these changes. Your new total premium for the term is $937.82, down from your previous rate of $1,204.68.
Is there anything else I can help you with today, Raymond?
That's great — thanks a lot. So that's locked in now, right? The policy's updated with the 6,000 miles and pleasure use, and my new premium is $937.82?
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}Yes, that's exactly right. Your policy is updated with the 6,000-mile limit and the "Pleasure" usage, and your new premium is locked in at $937.82.
Thanks for reaching out to us, Raymond. I'm glad we could get that sorted out for you. Have a great weekend!
Perfect, appreciate it. Thanks for taking care of that so quick.