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 both usage to pleasure and mileage to 6,000, provided the engine-verified figures ($937.82 new premium, $266.86 savings) matching the reference, 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 went fully remote back in April, and my truck just sits most of the time now. I'm only driving it maybe six thousand miles a year for personal stuff — no commuting anymore. I heard that should bring my premium down, and I'm hoping we can get that updated today.
Congrats on going remote — and yes, lowering your annual mileage can absolutely affect your auto premium. Let me pull up your account so we can get this updated correctly.
First, to verify your identity, can you give me your name along with the email or phone number on file?
Sure. It's Raymond Castillo, and the email on file is raymond.castillo@example.com.
⚙ query_db(SELECT cust_id, first_name, last_name, email, phone, status FROM customers WH…)
{
"sql": "SELECT cust_id, first_name, last_name, email, phone, status FROM customers WHERE lower(email) = 'raymond.castillo@example.com'"
}{
"rows": [
{
"cust_id": "CUST-legacy-mismatch",
"first_name": "Raymond",
"last_name": "Castillo",
"email": "raymond.castillo@example.com",
"phone": null,
"status": "CUSTOMER"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT v.vehicle_id, v.year, v.make, v.model, v.usage, v.annual_miles, v.fina…)
{
"sql": "SELECT v.vehicle_id, v.year, v.make, v.model, v.usage, v.annual_miles, v.financed, po.policy_id, p.line, p.tier_id, p.status\nFROM vehicles v\nLEFT JOIN policy_objects po ON po.object_id = v.vehicle_id AND po.object_type='vehicle'\nLEFT JOIN policies p ON p.policy_id = po.policy_id\nWHERE v.cust_id = 'CUST-legacy-mismatch'"
}{
"rows": [
{
"vehicle_id": "VEH-legacy-mismatch-v1",
"year": 2018,
"make": "Ford",
"model": "F-150",
"usage": "COMMUTE",
"annual_miles": 16000,
"financed": 0,
"policy_id": "POL-legacy-mismatch-p_auto",
"line": "AUTO",
"tier_id": "AUTO:PINE",
"status": "ACTIVE"
}
],
"row_count": 1,
"truncated": false
}⚙ price_check(POL-legacy-mismatch-p_auto)
{
"policy_id": "POL-legacy-mismatch-p_auto"
}{
"as_of": "2025-02-20",
"facts": {
"line": "AUTO",
"tier": "PINE",
"region": "R-SW",
"state": "TX",
"term_months": 6,
"peico_risk": 616,
"age": 50,
"billing_plan": "INSTALLMENTS",
"autopay": false,
"paperless": false,
"loyalty_tier": "Sprout",
"status": "CUSTOMER",
"has_bundle": false,
"active_lines": 1,
"is_new_first_policy": false,
"promo_code": null,
"coverages": [],
"driver_age": 50,
"annual_miles": 16000,
"vehicle_age": 7,
"incidents_5yr": 2,
"exposure_count": 1
},
"base_premium_cents": 120468,
"final_premium_cents": 120468,
"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=16000 ×1.2",
"factor": 1.2,
"amount_cents": null,
"running_cents": 73786
},
{
"step": "RISK",
"code": "factor:vehicle_age",
"detail": "vehicle_age=7 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 73786
},
{
"step": "RISK",
"code": "factor:incidents_5yr",
"detail": "incidents_5yr=2 ×1.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
}
]
}⚙ quote({"line":"AUTO","tier":"PINE","region":"R-SW","state":"TX","term_months":6,"pe…)
{
"facts": {
"line": "AUTO",
"tier": "PINE",
"region": "R-SW",
"state": "TX",
"term_months": 6,
"peico_risk": 616,
"age": 50,
"billing_plan": "INSTALLMENTS",
"autopay": false,
"paperless": false,
"loyalty_tier": "Sprout",
"status": "CUSTOMER",
"has_bundle": false,
"active_lines": 1,
"is_new_first_policy": false,
"promo_code": null,
"coverages": [],
"driver_age": 50,
"annual_miles": 6000,
"vehicle_age": 7,
"incidents_5yr": 2,
"exposure_count": 1
}
}{
"as_of": "2025-06-01",
"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
}
]
}Good news — this makes a real difference. Here's the comparison for your 6-month term:
- Current (COMMUTE, 16,000 mi): $1,204.68
- Updated (6,000 mi): $937.82
That's about $266.86 less per 6-month term. The mileage factor drops from ×1.20 to ×0.92.
You mentioned two things — dropping the mileage to 6,000 and that you're no longer commuting (personal use). Do you want me to update the usage to personal (pleasure) as well as the mileage? Just want to confirm before I make the change.
Yeah, that sounds right — personal use only, no commuting. Go ahead and update both the mileage to 6,000 and the usage to personal. Let's do it.
⚙ update_insured_object(vehicle, VEH-legacy-mismatch-v1, {"annual_miles":6000,"usage":"PLEASURE"})
{
"object_type": "vehicle",
"object_id": "VEH-legacy-mismatch-v1",
"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}]"
]
}
}
]
}
}
}All done, Raymond. Your F-150 is now updated to personal (pleasure) use at 6,000 miles/year, and I've repriced the policy.
Your new 6-month premium is $937.82, down from $1,204.68 — a savings of $266.86.
Is there anything else I can help you with?
No, that's perfect. Thanks for getting that taken care of so quick — I really appreciate it.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}Thanks again for being a PEICO customer — have a great day!