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 gave the engine-verified pricing ($777.65 total, $51.22 increase) and stated GAP was added, but never explicitly confirmed the vehicle is financed/eligible for GAP as required by the rubric.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hey, thanks for picking up. I'm calling because my credit union loan officer recommended I add GAP coverage to my auto policy, and I want to get that set up. Can you walk me through what that would cost?
Happy to help you look at adding GAP coverage. First, I need to verify your identity before I can pull up your account.
Could you give me your name and the email or phone number on file (and your policy number if you have it handy)?
Sure. It's Travis Boudreaux. My email on file is travis.boudreaux@example.com. I don't have my policy number in front of me right now, but that should do it.
⚙ query_db(SELECT cust_id, first_name, last_name, email, phone, status, address_id FROM …)
{
"sql": "SELECT cust_id, first_name, last_name, email, phone, status, address_id FROM customers WHERE lower(first_name)='travis' AND lower(last_name)='boudreaux'"
}{
"rows": [
{
"cust_id": "CUST-se-auto-pref",
"first_name": "Travis",
"last_name": "Boudreaux",
"email": "travis.boudreaux@example.com",
"phone": null,
"status": "CUSTOMER",
"address_id": "ADDR-se-auto-pref"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT p.policy_id, p.line, p.tier_id, p.status, p.effective_date, p.expirati…)
{
"sql": "SELECT p.policy_id, p.line, p.tier_id, p.status, p.effective_date, p.expiration_date, p.final_premium_cents, p.rating_as_of FROM policies p WHERE p.cust_id='CUST-se-auto-pref' AND p.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",
"final_premium_cents": 72643,
"rating_as_of": "2025-02-15"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT po.object_id, v.year, v.make, v.model, v.financed, v.usage, v.annual_m…)
{
"sql": "SELECT po.object_id, v.year, v.make, v.model, v.financed, v.usage, v.annual_miles FROM policy_objects po JOIN vehicles v ON v.vehicle_id=po.object_id WHERE po.policy_id='POL-se-auto-pref-p_auto' AND po.object_type='vehicle'"
}{
"rows": [
{
"object_id": "VEH-se-auto-pref-v1",
"year": 2017,
"make": "Toyota",
"model": "Camry",
"financed": 1,
"usage": "COMMUTE",
"annual_miles": 13000
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT coverage_id, code, label, kind, unit, notes FROM coverages WHERE line=…)
{
"sql": "SELECT coverage_id, code, label, kind, unit, notes FROM coverages WHERE line='AUTO' AND code='GAP'"
}{
"rows": [
{
"coverage_id": "AUTO:GAP",
"code": "GAP",
"label": "Loan/Lease Gap",
"kind": "flag",
"unit": "bool",
"notes": "Eligible only if the vehicle is financed (eligibility rule)."
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT rule_id, tier_id, coverage_id, state, effect, condition, effective_sta…)
{
"sql": "SELECT rule_id, tier_id, coverage_id, state, effect, condition, effective_start, effective_end, reason_doc, notes FROM eligibility_rules WHERE line='AUTO' AND (coverage_id LIKE '%GAP%' OR coverage_id IS NULL)"
}{
"rows": [
{
"rule_id": "ELIG-AUTO-GAP-FINANCED",
"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."
},
{
"rule_id": "ELIG-NY-AUTO-SAPLING",
"tier_id": "AUTO:SAPLING",
"coverage_id": null,
"state": "NY",
"effect": "DENY",
"condition": null,
"effective_start": null,
"effective_end": null,
"reason_doc": "KB-NE-MIN-LIMITS",
"notes": "NY minimum BI/PD exceeds Sapling limits -> Sapling auto ineligible."
},
{
"rule_id": "ELIG-NJ-AUTO-SAPLING",
"tier_id": "AUTO:SAPLING",
"coverage_id": null,
"state": "NJ",
"effect": "DENY",
"condition": null,
"effective_start": null,
"effective_end": null,
"reason_doc": "KB-NE-MIN-LIMITS",
"notes": "NJ minimum BI/PD exceeds Sapling limits -> Sapling auto ineligible."
},
{
"rule_id": "ELIG-CA-AUTO-FACTORS",
"tier_id": null,
"coverage_id": null,
"state": "CA",
"effect": "PROHIBIT_FACTOR",
"condition": "factors: [credit_insurance_score, gender]",
"effective_start": null,
"effective_end": null,
"reason_doc": "KB-CA-RATING",
"notes": "CA auto rating may not use credit-based insurance score or gender; risk_components credit term is zeroed."
}
],
"row_count": 4,
"truncated": false
}⚙ query_db(SELECT pc.coverage_id, c.code, c.label, pc.value, pc.premium_contribution_cen…)
{
"sql": "SELECT pc.coverage_id, c.code, c.label, pc.value, pc.premium_contribution_cents FROM policy_coverages pc JOIN coverages c ON c.coverage_id=pc.coverage_id WHERE pc.policy_id='POL-se-auto-pref-p_auto'"
}{
"rows": [
{
"coverage_id": "AUTO:BI",
"code": "BI",
"label": "Bodily Injury Liability",
"value": "5000000/10000000",
"premium_contribution_cents": null
},
{
"coverage_id": "AUTO:COLL",
"code": "COLL",
"label": "Collision",
"value": "100000",
"premium_contribution_cents": null
},
{
"coverage_id": "AUTO:COMP",
"code": "COMP",
"label": "Comprehensive",
"value": "50000",
"premium_contribution_cents": null
},
{
"coverage_id": "AUTO:PD",
"code": "PD",
"label": "Property Damage Liability",
"value": "5000000",
"premium_contribution_cents": null
}
],
"row_count": 4,
"truncated": false
}⚙ price_check(POL-se-auto-pref-p_auto)
{
"policy_id": "POL-se-auto-pref-p_auto"
}{
"as_of": "2025-02-15",
"facts": {
"line": "AUTO",
"tier": "PINE",
"region": "R-SE",
"state": "GA",
"term_months": 12,
"peico_risk": 750,
"age": 41,
"billing_plan": "INSTALLMENTS",
"autopay": true,
"paperless": false,
"loyalty_tier": "Sprout",
"status": "CUSTOMER",
"has_bundle": false,
"active_lines": 1,
"is_new_first_policy": false,
"promo_code": null,
"coverages": [],
"driver_age": 41,
"annual_miles": 13000,
"vehicle_age": 8,
"incidents_5yr": 0,
"exposure_count": 1
},
"base_premium_cents": 85102,
"final_premium_cents": 72643,
"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": "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
},
{
"step": "DISCOUNT",
"code": "AUTOPAY",
"detail": "−3%",
"factor": 0.97,
"amount_cents": null,
"running_cents": 72643
}
]
}⚙ quote({"line":"AUTO","tier":"PINE","region":"R-SE","state":"GA","term_months":12,"p…)
{
"facts": {
"line": "AUTO",
"tier": "PINE",
"region": "R-SE",
"state": "GA",
"term_months": 12,
"peico_risk": 750,
"age": 41,
"billing_plan": "INSTALLMENTS",
"autopay": true,
"paperless": false,
"loyalty_tier": "Sprout",
"status": "CUSTOMER",
"has_bundle": false,
"active_lines": 1,
"is_new_first_policy": false,
"promo_code": null,
"coverages": [
"GAP"
],
"driver_age": 41,
"annual_miles": 13000,
"vehicle_age": 8,
"incidents_5yr": 0,
"exposure_count": 1,
"vehicle_financed": true
},
"as_of": "2025-02-15"
}{
"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
}
]
}Here's the breakdown, Travis:
- Current annual premium: $726.43
- With GAP coverage added: $777.65
- Difference: about $51.22 more per year (the GAP add-on is $60 flat, but it gets reduced a bit by your safe-driver and autopay discounts)
That's on your current 12-month term, billed in installments. GAP would pay the difference between what you owe on the Camry and its actual cash value if it's totaled — which is exactly what your loan officer is thinking about.
Would you like me to go ahead and add GAP to your policy?
Yeah, that sounds right — $777.65 total is what I'd be paying annually once it's added, correct? Just want to make sure that's the exact number I'm locking in.
Yes — $777.65 per year is the exact figure, priced on your policy's current rating basis (Feb 15, 2025), and it holds for the rest of this term. That reflects the $60 GAP add-on netted against your safe-driver and autopay discounts.
Want me to add it now?
Perfect. Yeah, go ahead and add it. Let's do it.
⚙ 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}]"
]
}
}
]
}
}
}All set, Travis! GAP coverage is now on your policy and the premium is locked in:
- New annual premium: $777.65 (up from $726.43)
- GAP will cover the difference between your loan balance and the Camry's actual cash value in the event of a total loss.
Is there anything else I can help you with?
No, that's all I needed. Thanks for getting that sorted out quickly — I appreciate it.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}Thanks again for being a PEICO customer, Travis. Have a great day!