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-statefailed
DB end-state did not match.
expected: {"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": ["*", "*"]}}]}}
actual: {"policies": {"changed": [{"pk": {"policy_id": "POL-legacy-mismatch-p_auto"}, "fields": {"rating_as_of": ["2025-02-20", "2025-06-01"], "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}]"]}}]}, "vehicles": {"changed": [{"pk": {"vehicle_id": "VEH-legacy-mismatch-v1"}, "fields": {"usage": ["COMMUTE", "PERSONAL_NO_COMMUTE"], "annual_miles": [16000, 6000]}}]}}Judge rubricpassed
judge: The rep updated the vehicle to personal/pleasure use at 6,000 miles, repriced through the engine to $937.82 (matching the reference's $266.86 savings), and executed the change on the call rather than deferring it, satisfying all rubric requirements.
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 remote since April, and my truck just sits most of the time now. I'm only driving maybe six thousand miles a year, just personal stuff — no commute anymore. I heard that should bring my premium down, so I want to get my policy updated to reflect that.
⚙ query_db(SELECT policy_id, line, status, effective_date, expiration_date, rating_as_of…)
{
"sql": "SELECT policy_id, line, status, effective_date, expiration_date, rating_as_of, tier_id FROM policies WHERE cust_id = (SELECT cust_id FROM customers WHERE phone = 'UNKNOWN') LIMIT 1"
}{
"rows": [],
"row_count": 0,
"truncated": false
}Absolutely — reducing annual mileage and changing usage from commute/regular to mostly personal/low-mileage often lowers the rate.
To update it correctly, I just need to make sure I’m editing the right vehicle and policy. Could you share either:
- your policy number (policy_id like POL-...), or
- the customer info you used with us (the email or phone on the account),
and confirm one detail:
- For your “no commute” change, is your truck personal use only and parked most of the time (i.e., no work/commercial driving)?
Yeah, it's personal use only — no work driving, just weekends really. Hardware store, the lake, that kind of thing. My email on file is raymond.castillo@example.com, and my name is Raymond Castillo.
⚙ query_db(SELECT cust_id, first_name, last_name, email, phone, address_id FROM customer…)
{
"sql": "SELECT cust_id, first_name, last_name, email, phone, address_id FROM customers WHERE email = 'raymond.castillo@example.com' AND first_name = 'Raymond' AND last_name = 'Castillo'"
}{
"rows": [
{
"cust_id": "CUST-legacy-mismatch",
"first_name": "Raymond",
"last_name": "Castillo",
"email": "raymond.castillo@example.com",
"phone": null,
"address_id": "ADDR-legacy-mismatch"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT p.policy_id, p.line, p.status, p.effective_date, p.rating_as_of, p.und…)
{
"sql": "SELECT p.policy_id, p.line, p.status, p.effective_date, p.rating_as_of, p.underlying_policy_id, p.bundle_id, p.tier_id, p.rep_id FROM policies p WHERE p.cust_id = 'CUST-legacy-mismatch' AND p.line LIKE 'AUTO%' ORDER BY p.effective_date DESC LIMIT 5"
}{
"rows": [
{
"policy_id": "POL-legacy-mismatch-p_auto",
"line": "AUTO",
"status": "ACTIVE",
"effective_date": "2025-02-20",
"rating_as_of": "2025-02-20",
"underlying_policy_id": null,
"bundle_id": null,
"tier_id": "AUTO:PINE",
"rep_id": "REP-1008"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT v.vehicle_id, v.year, v.make, v.model, v.annual_miles, v.usage, v.fina…)
{
"sql": "SELECT v.vehicle_id, v.year, v.make, v.model, v.annual_miles, v.usage, v.financed, v.vin, vo.policy_id FROM vehicles v JOIN policy_objects vo ON vo.object_type='vehicle' AND vo.object_id=v.vehicle_id WHERE v.cust_id='CUST-legacy-mismatch' AND vo.policy_id='POL-legacy-mismatch-p_auto'"
}{
"rows": [
{
"vehicle_id": "VEH-legacy-mismatch-v1",
"year": 2018,
"make": "Ford",
"model": "F-150",
"annual_miles": 16000,
"usage": "COMMUTE",
"financed": 0,
"vin": "VINFAKELEGv1",
"policy_id": "POL-legacy-mismatch-p_auto"
}
],
"row_count": 1,
"truncated": false
}⚙ update_insured_object(vehicle, VEH-legacy-mismatch-v1, {"annual_miles":6000,"usage":"PERSONAL_NO_CO…)
{
"object_type": "vehicle",
"object_id": "VEH-legacy-mismatch-v1",
"fields": {
"annual_miles": 6000,
"usage": "PERSONAL_NO_COMMUTE"
}
}{
"ok": true,
"rows_affected": 1,
"changeset": {
"vehicles": {
"changed": [
{
"pk": {
"vehicle_id": "VEH-legacy-mismatch-v1"
},
"fields": {
"usage": [
"COMMUTE",
"PERSONAL_NO_COMMUTE"
],
"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, 2025-06-01)
{
"policy_id": "POL-legacy-mismatch-p_auto",
"as_of": "2025-06-01"
}{
"ok": true,
"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
}
],
"changeset": {
"policies": {
"changed": [
{
"pk": {
"policy_id": "POL-legacy-mismatch-p_auto"
},
"fields": {
"rating_as_of": [
"2025-02-20",
"2025-06-01"
],
"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}]"
]
}
}
]
}
}
}Got it, Raymond — I found your active auto policy (POL-legacy-mismatch-p_auto) and updated your truck’s usage from COMMUTE / 16,000 miles to PERSONAL (no commute) / 6,000 miles per year.
✅ Premium updated (as of 2025-06-01):
- New premium: $937.82 (was $1,204.68 on the prior rating)
The main driver for the change is the annual miles factor (6,000 miles uses a lower mileage multiplier).
If you’d like, I can also double-check whether the policy is currently set to weekend/personal-only usage for all vehicles on your account (in case there are multiple). Would you like me to review other vehicles too?
No, that's all good — just the truck. And that savings looks great, thanks for getting that done. So my new premium is $937.82 a month, right?
You’re welcome—and yes, $937.82 is the new premium on file.
Quick clarification: the system’s value we updated is the policy premium for the term as currently rated. To confirm whether it’s per month on your billing schedule, can you tell me your billing plan (e.g., monthly / installments / pay in full) or whether you see $937.82 as a recurring payment on your statement? If you want, I can look up your latest payment/billing record next.
Honestly, I'm not sure off the top of my head — I'd have to check my statements. But the main thing I wanted was to get the mileage updated and know what I'm paying now, and you've done that. So I'm all set. Thanks for taking care of it.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}Great — glad we got it updated.
Your policy has been repriced with 6,000 miles/year and the new premium is $937.82 on the updated rating. Thanks for confirming it was just the one truck, and if anything else changes, just reach out!