gap-add-true-price
Grading criteriawhat this conversation was scored against
DB end-state
{
"policies": {
"changed": [
{
"pk": {
"policy_id": "POL-se-auto-pref-p_auto"
},
"fields": {
"base_premium_cents": [
85102,
91102
],
"final_premium_cents": [
72643,
77765
],
"premium_breakdown": [
"*",
"*"
]
},
"may_change": {
"rating_as_of": [
"*",
"*"
]
}
}
]
},
"policy_coverages": {
"added": [
{
"pk": {
"policy_id": "POL-se-auto-pref-p_auto",
"coverage_id": "AUTO:GAP"
},
"row": {
"policy_id": "POL-se-auto-pref-p_auto",
"coverage_id": "AUTO:GAP",
"value": "*",
"premium_contribution_cents": "*"
}
}
]
}
}Judge rubric
The rep (1) confirmed the customer's vehicle is financed and therefore GAP is available to him (GAP is gated on financed/leased vehicles — he qualifies); (2) gave engine-verified pricing for the addition: his new annual premium of about $777.65, and/or the true increase of about $51.22 per year over his current $726.43 (small rounding or nearby phrasing of these figures is fine); and (3) actually executed the addition on this call and told him so. Telling him only the coverage's list price (about $60/yr) as his actual cost increase — without ever producing the discount-adjusted total or increase — is a fail: his discounts scale the true increase down, and verifying with the rating engine is the behavior under test. Refusing GAP, telling him he is ineligible, or deflecting the add to another team/process instead of performing it is a fail. Quoting one price and then a different one without acknowledging and resolving the discrepancy is sloppy but passable ONLY if the final stated total/increase is the correct engine figure.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricfailed
judge: The rep never confirmed the vehicle was financed/eligible for GAP, gave several inconsistent price quotes before landing on the correct engine figures ($777.65 new premium, $51.22 increase), and did eventually state the correct final numbers and confirm the addition was executed, but the missing eligibility confirmation is a required element that was never spoken.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hi, thanks for picking up. I'd like to add GAP coverage to my auto policy. My credit union loan officer recommended it, and I want to know exactly what it'll cost — what my new annual premium would be with it included.
I can help with that. First I need to verify your identity and locate your policy — could you give me your name and either your customer ID or the auto policy number? A date of birth also works for verification.
Sure. Name is Travis Boudreaux, and my date of birth is September 14, 1983. I don't have my policy number handy right now, but I can give you my email on file — travis.boudreaux@example.com.
⚙ query_db(SELECT cust_id, first_name, last_name, dob, email FROM customers WHERE lower(…)
{
"sql": "SELECT cust_id, first_name, last_name, dob, email FROM customers WHERE lower(email) = lower('travis.boudreaux@example.com')"
}{
"rows": [
{
"cust_id": "CUST-se-auto-pref",
"first_name": "Travis",
"last_name": "Boudreaux",
"dob": "1983-09-14",
"email": "travis.boudreaux@example.com"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT policy_id, line, tier_id, status, effective_date, expiration_date, bas…)
{
"sql": "SELECT policy_id, line, tier_id, status, effective_date, expiration_date, base_premium_cents, final_premium_cents FROM policies WHERE cust_id='CUST-se-auto-pref' AND line='AUTO'"
}{
"rows": [
{
"policy_id": "POL-se-auto-pref-p_auto",
"line": "AUTO",
"tier_id": "AUTO:PINE",
"status": "ACTIVE",
"effective_date": "2025-02-15",
"expiration_date": "2026-02-15",
"base_premium_cents": 85102,
"final_premium_cents": 72643
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT c.coverage_id, c.code, c.label, c.kind, c.unit FROM coverages c WHERE …)
{
"sql": "SELECT c.coverage_id, c.code, c.label, c.kind, c.unit FROM coverages c WHERE c.line='AUTO' AND c.code='GAP'"
}{
"rows": [
{
"coverage_id": "AUTO:GAP",
"code": "GAP",
"label": "Loan/Lease Gap",
"kind": "flag",
"unit": "bool"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT cust_id, address_id, peico_risk FROM customers WHERE cust_id='CUST-se-…)
{
"sql": "SELECT cust_id, address_id, peico_risk FROM customers WHERE cust_id='CUST-se-auto-pref'"
}{
"rows": [
{
"cust_id": "CUST-se-auto-pref",
"address_id": "ADDR-se-auto-pref",
"peico_risk": 750
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT er.*, s.region FROM eligibility_rules er, addresses a, states s WHERE …)
{
"sql": "SELECT er.*, s.region FROM eligibility_rules er, addresses a, states s WHERE a.address_id='ADDR-se-auto-pref' AND s.state=a.state AND er.line='AUTO' AND er.coverage_id='AUTO:GAP'"
}{
"rows": [
{
"rule_id": "ELIG-AUTO-GAP-FINANCED",
"line": "AUTO",
"tier_id": null,
"coverage_id": "AUTO:GAP",
"state": null,
"effect": "GATE",
"condition": "vehicle_financed",
"effective_start": null,
"effective_end": null,
"reason_doc": "KB-AUTO-GAP",
"notes": "GAP eligible only when the vehicle is financed/leased.",
"region": "R-SE"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT a.state, a.region FROM addresses a WHERE a.address_id='ADDR-se-auto-pref')
{
"sql": "SELECT a.state, a.region FROM addresses a WHERE a.address_id='ADDR-se-auto-pref'"
}{
"rows": [
{
"state": "GA",
"region": "R-SE"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT v.* FROM vehicles v JOIN policy_objects po ON po.object_id=v.vehicle_i…)
{
"sql": "SELECT v.* FROM vehicles v JOIN policy_objects po ON po.object_id=v.vehicle_id AND po.object_type='vehicle' WHERE po.policy_id='POL-se-auto-pref-p_auto'"
}{
"rows": [
{
"vehicle_id": "VEH-se-auto-pref-v1",
"cust_id": "CUST-se-auto-pref",
"year": 2017,
"make": "Toyota",
"model": "Camry",
"vin": "VINFAKESE-v1",
"usage": "COMMUTE",
"annual_miles": 13000,
"financed": 1,
"garaging_address_id": "ADDR-se-auto-pref"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT policy_id, tier_id, rating_as_of, rating_inputs, base_premium_cents, f…)
{
"sql": "SELECT policy_id, tier_id, rating_as_of, rating_inputs, base_premium_cents, final_premium_cents FROM policies WHERE policy_id='POL-se-auto-pref-p_auto'"
}{
"rows": [
{
"policy_id": "POL-se-auto-pref-p_auto",
"tier_id": "AUTO:PINE",
"rating_as_of": "2025-02-15",
"rating_inputs": "{\"billing\": {\"plan\": \"INSTALLMENTS\", \"autopay\": true, \"paperless\": false}, \"incidents_5yr\": 0, \"smoker\": false, \"promo_code\": null}",
"base_premium_cents": 85102,
"final_premium_cents": 72643
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT pc.coverage_id, pc.value FROM policy_coverages pc WHERE pc.policy_id='…)
{
"sql": "SELECT pc.coverage_id, pc.value FROM policy_coverages pc WHERE pc.policy_id='POL-se-auto-pref-p_auto'"
}{
"rows": [
{
"coverage_id": "AUTO:BI",
"value": "5000000/10000000"
},
{
"coverage_id": "AUTO:COLL",
"value": "100000"
},
{
"coverage_id": "AUTO:COMP",
"value": "50000"
},
{
"coverage_id": "AUTO:PD",
"value": "5000000"
}
],
"row_count": 4,
"truncated": false
}⚙ quote({"line":"AUTO","tier":"PINE","region":"R-SE","peico_risk":750,"annual_miles":…)
{
"facts": {
"line": "AUTO",
"tier": "PINE",
"region": "R-SE",
"peico_risk": 750,
"annual_miles": 13000,
"incidents_5yr": 0,
"smoker": false,
"vehicle_financed": true,
"coverages": [
"BI",
"COLL",
"COMP",
"PD",
"GAP"
],
"billing_plan": "INSTALLMENTS"
},
"as_of": "2025-06-01"
}{
"as_of": "2025-06-01",
"base_premium_cents": 91102,
"final_premium_cents": 80170,
"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-SE",
"detail": "region factor ×1.1",
"factor": 1.1,
"amount_cents": null,
"running_cents": 99000
},
{
"step": "RISK",
"code": "factor:risk_score",
"detail": "risk_score=750 ×0.84",
"factor": 0.84,
"amount_cents": null,
"running_cents": 83160
},
{
"step": "RISK",
"code": "factor:annual_miles",
"detail": "annual_miles=13000 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 83160
},
{
"step": "RISK",
"code": "factor:incidents_5yr",
"detail": "incidents_5yr=0 ×0.95",
"factor": 0.95,
"amount_cents": null,
"running_cents": 79002
},
{
"step": "COVERAGE",
"code": "GAP",
"detail": "+ GAP $60",
"factor": null,
"amount_cents": 6000,
"running_cents": 85002
},
{
"step": "FEES",
"code": "policy_fee",
"detail": "+ policy fee",
"factor": null,
"amount_cents": 2500,
"running_cents": 87502
},
{
"step": "FEES",
"code": "installment",
"detail": "+ fractional-pay surcharge",
"factor": null,
"amount_cents": 3600,
"running_cents": 91102
},
{
"step": "DISCOUNT",
"code": "SAFE_DRIVER",
"detail": "−12%",
"factor": 0.88,
"amount_cents": null,
"running_cents": 80170
}
]
}⚙ quote({"line":"AUTO","tier":"PINE","region":"R-SE","peico_risk":750,"annual_miles":…)
{
"facts": {
"line": "AUTO",
"tier": "PINE",
"region": "R-SE",
"peico_risk": 750,
"annual_miles": 13000,
"incidents_5yr": 0,
"smoker": false,
"vehicle_financed": true,
"coverages": [
"BI",
"COLL",
"COMP",
"PD"
],
"billing_plan": "INSTALLMENTS"
},
"as_of": "2025-06-01"
}{
"as_of": "2025-06-01",
"base_premium_cents": 85102,
"final_premium_cents": 74890,
"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-SE",
"detail": "region factor ×1.1",
"factor": 1.1,
"amount_cents": null,
"running_cents": 99000
},
{
"step": "RISK",
"code": "factor:risk_score",
"detail": "risk_score=750 ×0.84",
"factor": 0.84,
"amount_cents": null,
"running_cents": 83160
},
{
"step": "RISK",
"code": "factor:annual_miles",
"detail": "annual_miles=13000 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 83160
},
{
"step": "RISK",
"code": "factor:incidents_5yr",
"detail": "incidents_5yr=0 ×0.95",
"factor": 0.95,
"amount_cents": null,
"running_cents": 79002
},
{
"step": "FEES",
"code": "policy_fee",
"detail": "+ policy fee",
"factor": null,
"amount_cents": 2500,
"running_cents": 81502
},
{
"step": "FEES",
"code": "installment",
"detail": "+ fractional-pay surcharge",
"factor": null,
"amount_cents": 3600,
"running_cents": 85102
},
{
"step": "DISCOUNT",
"code": "SAFE_DRIVER",
"detail": "−12%",
"factor": 0.88,
"amount_cents": null,
"running_cents": 74890
}
]
}Good, that confirms the base setup matches your policy. Here's what adding GAP coverage would look like:
Adding GAP (Loan/Lease Gap) coverage:
- GAP adds $60/month → $600/year to the coverage cost
- Your current annual premium: $748.90
- New annual premium with GAP: $801.70
That's an increase of about $52.80/year (installment billing, with policy fee and safe-driver discount already applied).
Would you like me to go ahead and add GAP coverage to your policy and lock in this new premium?
Wait, I'm seeing two different numbers there. You said GAP is $60 a month, which would be $720 a year, but then you're saying the increase is only $52.80. Can you clarify that for me? What's the actual new annual total I'd be paying — to the dollar?
Good catch — that was my error, sorry for the confusion. Let me clarify:
The "$60" for GAP is a flat annual coverage charge, not monthly. It gets added to your base premium before the policy fee, installment surcharge, and your 12% safe-driver discount are applied — so the discount actually reduces part of that $60 too, which is why your net increase isn't a clean $60.
Here's the exact math:
- Current annual premium (no GAP): $748.90
- New annual premium (with GAP): $801.70
- Net increase: $52.80/year
So to the dollar, your new annual total with GAP coverage added would be $801.70.
Would you like me to go ahead and add it?
Okay, that makes sense now. Yeah, $801.70 annual is fine with me. Go ahead and add the GAP coverage.
⚙ update_coverages(POL-se-auto-pref-p_auto, ["GAP"])
{
"policy_id": "POL-se-auto-pref-p_auto",
"add": [
"GAP"
]
}{
"ok": true,
"changesets": [
{
"policy_coverages": {
"added": [
{
"pk": {
"policy_id": "POL-se-auto-pref-p_auto",
"coverage_id": "AUTO:GAP"
},
"row": {
"policy_id": "POL-se-auto-pref-p_auto",
"coverage_id": "AUTO:GAP",
"value": null,
"premium_contribution_cents": null
}
}
]
}
}
],
"note": "stored premium is now stale — call reprice_policy to recompute"
}⚙ reprice_policy(POL-se-auto-pref-p_auto)
{
"policy_id": "POL-se-auto-pref-p_auto"
}{
"ok": true,
"as_of": "2025-02-15",
"base_premium_cents": 91102,
"final_premium_cents": 77765,
"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-SE",
"detail": "region factor ×1.1",
"factor": 1.1,
"amount_cents": null,
"running_cents": 99000
},
{
"step": "RISK",
"code": "factor:driver_age",
"detail": "driver_age=41 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 99000
},
{
"step": "RISK",
"code": "factor:risk_score",
"detail": "risk_score=750 ×0.84",
"factor": 0.84,
"amount_cents": null,
"running_cents": 83160
},
{
"step": "RISK",
"code": "factor:annual_miles",
"detail": "annual_miles=13000 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 83160
},
{
"step": "RISK",
"code": "factor:vehicle_age",
"detail": "vehicle_age=8 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 83160
},
{
"step": "RISK",
"code": "factor:incidents_5yr",
"detail": "incidents_5yr=0 ×0.95",
"factor": 0.95,
"amount_cents": null,
"running_cents": 79002
},
{
"step": "COVERAGE",
"code": "GAP",
"detail": "+ GAP $60",
"factor": null,
"amount_cents": 6000,
"running_cents": 85002
},
{
"step": "FEES",
"code": "policy_fee",
"detail": "+ policy fee",
"factor": null,
"amount_cents": 2500,
"running_cents": 87502
},
{
"step": "FEES",
"code": "installment",
"detail": "+ fractional-pay surcharge",
"factor": null,
"amount_cents": 3600,
"running_cents": 91102
},
{
"step": "DISCOUNT",
"code": "SAFE_DRIVER",
"detail": "−12%",
"factor": 0.88,
"amount_cents": null,
"running_cents": 80170
},
{
"step": "DISCOUNT",
"code": "AUTOPAY",
"detail": "−3%",
"factor": 0.97,
"amount_cents": null,
"running_cents": 77765
}
],
"changeset": {
"policies": {
"changed": [
{
"pk": {
"policy_id": "POL-se-auto-pref-p_auto"
},
"fields": {
"base_premium_cents": [
85102,
91102
],
"final_premium_cents": [
72643,
77765
],
"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-SE\", \"detail\": \"region factor \\u00d71.1\", \"factor\": 1.1, \"amount_cents\": null, \"running_cents\": 99000}, {\"step\": \"RISK\", \"code\": \"factor:driver_age\", \"detail\": \"driver_age=41 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 99000}, {\"step\": \"RISK\", \"code\": \"factor:risk_score\", \"detail\": \"risk_score=750 \\u00d70.84\", \"factor\": 0.84, \"amount_cents\": null, \"running_cents\": 83160}, {\"step\": \"RISK\", \"code\": \"factor:annual_miles\", \"detail\": \"annual_miles=13000 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 83160}, {\"step\": \"RISK\", \"code\": \"factor:vehicle_age\", \"detail\": \"vehicle_age=8 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 83160}, {\"step\": \"RISK\", \"code\": \"factor:incidents_5yr\", \"detail\": \"incidents_5yr=0 \\u00d70.95\", \"factor\": 0.95, \"amount_cents\": null, \"running_cents\": 79002}, {\"step\": \"FEES\", \"code\": \"policy_fee\", \"detail\": \"+ policy fee\", \"factor\": null, \"amount_cents\": 2500, \"running_cents\": 81502}, {\"step\": \"FEES\", \"code\": \"installment\", \"detail\": \"+ fractional-pay surcharge\", \"factor\": null, \"amount_cents\": 3600, \"running_cents\": 85102}, {\"step\": \"DISCOUNT\", \"code\": \"SAFE_DRIVER\", \"detail\": \"\\u221212%\", \"factor\": 0.88, \"amount_cents\": null, \"running_cents\": 74890}, {\"step\": \"DISCOUNT\", \"code\": \"AUTOPAY\", \"detail\": \"\\u22123%\", \"factor\": 0.97, \"amount_cents\": null, \"running_cents\": 72643}]",
"[{\"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-SE\", \"detail\": \"region factor \\u00d71.1\", \"factor\": 1.1, \"amount_cents\": null, \"running_cents\": 99000}, {\"step\": \"RISK\", \"code\": \"factor:driver_age\", \"detail\": \"driver_age=41 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 99000}, {\"step\": \"RISK\", \"code\": \"factor:risk_score\", \"detail\": \"risk_score=750 \\u00d70.84\", \"factor\": 0.84, \"amount_cents\": null, \"running_cents\": 83160}, {\"step\": \"RISK\", \"code\": \"factor:annual_miles\", \"detail\": \"annual_miles=13000 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 83160}, {\"step\": \"RISK\", \"code\": \"factor:vehicle_age\", \"detail\": \"vehicle_age=8 \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 83160}, {\"step\": \"RISK\", \"code\": \"factor:incidents_5yr\", \"detail\": \"incidents_5yr=0 \\u00d70.95\", \"factor\": 0.95, \"amount_cents\": null, \"running_cents\": 79002}, {\"step\": \"COVERAGE\", \"code\": \"GAP\", \"detail\": \"+ GAP $60\", \"factor\": null, \"amount_cents\": 6000, \"running_cents\": 85002}, {\"step\": \"FEES\", \"code\": \"policy_fee\", \"detail\": \"+ policy fee\", \"factor\": null, \"amount_cents\": 2500, \"running_cents\": 87502}, {\"step\": \"FEES\", \"code\": \"installment\", \"detail\": \"+ fractional-pay surcharge\", \"factor\": null, \"amount_cents\": 3600, \"running_cents\": 91102}, {\"step\": \"DISCOUNT\", \"code\": \"SAFE_DRIVER\", \"detail\": \"\\u221212%\", \"factor\": 0.88, \"amount_cents\": null, \"running_cents\": 80170}, {\"step\": \"DISCOUNT\", \"code\": \"AUTOPAY\", \"detail\": \"\\u22123%\", \"factor\": 0.97, \"amount_cents\": null, \"running_cents\": 77765}]"
]
}
}
]
}
}
}GAP coverage has been added and I've repriced the policy — good news, it came out even better than the estimate because your policy already has autopay enrolled, which adds a 3% discount that my initial quote hadn't accounted for.
Your actual new annual premium is $777.65 (up from $726.43), an increase of about $51.22/year rather than the $801.70 I quoted earlier — my apologies for the discrepancy there.
GAP (Loan/Lease Gap) coverage is now active on your policy POL-se-auto-pref-p_auto. Anything else I can help with?
Perfect, thanks for getting that done and catching the autopay discount. I appreciate it. That works for me. Thank you for your help today.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}Take care!