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 executed the GAP addition, communicated the engine-verified figures ($777.65 new premium, $51.22 true increase over $726.43), and clarified the discrepancy with the $60 list price when the customer pushed back, satisfying all rubric requirements (though eligibility/financed status was never explicitly confirmed, the core pricing and execution elements were met).
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hey, thanks for picking up. I'm looking to add GAP coverage to my auto policy. My credit union loan officer recommended it, and I want to get that set up. Can you help me with that?
I'd be happy to help you add GAP coverage! Let me pull up your auto policy first so I can see what you currently have and make sure GAP is available for your tier and situation.
To get started, can you verify your identity for me? I'll need either:
- Your policy number, or
- Your full name and date of birth
Once I have that, I can look up your account and get you sorted.
Sure, no problem. It's Travis Boudreaux — that's T-R-A-V-I-S, last name B-O-U-D-R-E-A-U-X. My date of birth is September 14, 1983.
⚙ query_db(SELECT cust_id, first_name, last_name, dob, email, phone FROM customers WHERE…)
{
"sql": "SELECT cust_id, first_name, last_name, dob, email, phone FROM customers WHERE first_name = 'Travis' AND last_name = 'Boudreaux' AND dob = '1983-09-14'"
}{
"rows": [
{
"cust_id": "CUST-se-auto-pref",
"first_name": "Travis",
"last_name": "Boudreaux",
"dob": "1983-09-14",
"email": "travis.boudreaux@example.com",
"phone": null
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT policy_id, line, tier_id, status, effective_date, expiration_date FROM…)
{
"sql": "SELECT policy_id, line, tier_id, status, effective_date, expiration_date FROM policies WHERE cust_id = 'CUST-se-auto-pref' AND line = 'AUTO' ORDER BY created_at DESC"
}{
"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"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT pc.coverage_id, c.code, c.label FROM policy_coverages pc JOIN coverage…)
{
"sql": "SELECT pc.coverage_id, c.code, c.label FROM policy_coverages pc JOIN coverages c ON pc.coverage_id = c.coverage_id WHERE pc.policy_id = 'POL-se-auto-pref-p_auto'"
}{
"rows": [
{
"coverage_id": "AUTO:BI",
"code": "BI",
"label": "Bodily Injury Liability"
},
{
"coverage_id": "AUTO:COLL",
"code": "COLL",
"label": "Collision"
},
{
"coverage_id": "AUTO:COMP",
"code": "COMP",
"label": "Comprehensive"
},
{
"coverage_id": "AUTO:PD",
"code": "PD",
"label": "Property Damage Liability"
}
],
"row_count": 4,
"truncated": false
}⚙ query_db(SELECT coverage_id, code, label, notes FROM coverages WHERE code = 'GAP' AND …)
{
"sql": "SELECT coverage_id, code, label, notes FROM coverages WHERE code = 'GAP' AND line = 'AUTO'"
}{
"rows": [
{
"coverage_id": "AUTO:GAP",
"code": "GAP",
"label": "Loan/Lease Gap",
"notes": "Eligible only if the vehicle is financed (eligibility rule)."
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT vehicle_id, year, make, model, financed FROM vehicles WHERE cust_id = …)
{
"sql": "SELECT vehicle_id, year, make, model, financed FROM vehicles WHERE cust_id = 'CUST-se-auto-pref'"
}{
"rows": [
{
"vehicle_id": "VEH-se-auto-pref-v1",
"year": 2017,
"make": "Toyota",
"model": "Camry",
"financed": 1
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT rule_id, line, tier_id, coverage_id, effect, condition FROM eligibilit…)
{
"sql": "SELECT rule_id, line, tier_id, coverage_id, effect, condition FROM eligibility_rules WHERE line = 'AUTO' AND coverage_id = 'AUTO:GAP'"
}{
"rows": [
{
"rule_id": "ELIG-AUTO-GAP-FINANCED",
"line": "AUTO",
"tier_id": null,
"coverage_id": "AUTO:GAP",
"effect": "GATE",
"condition": "vehicle_financed"
}
],
"row_count": 1,
"truncated": false
}⚙ 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}]"
]
}
}
]
}
}
}Perfect! ✅ GAP coverage has been successfully added to your policy.
Here's what changed:
Your New Premium:
- Previous: $726.43/term
- New: $777.65/term
- Increase: $51.22 for GAP coverage
Premium Breakdown: The new premium reflects:
- GAP coverage: +$60.00
- Your existing discounts still apply:
- Safe Driver discount (12% off)
- AutoPay discount (3% off)
Your policy now includes:
- Bodily Injury Liability
- Property Damage Liability
- Collision
- Comprehensive
- Loan/Lease Gap (GAP) — new
The GAP coverage will protect you in the event your vehicle is totaled and you owe more on your loan than the vehicle's actual cash value — exactly what your credit union loan officer recommended.
Is there anything else I can help you with today, Travis?
Wait — I need to make sure I'm clear on this. You said the increase is $51.22, but the GAP coverage itself is $60.00. So what's my actual new annual total I'd be paying — to the dollar?
Great question — let me be crystal clear on this.
Your new total annual premium is $777.65 (or $777.65 per term, since your policy is annual).
Here's why the increase is $51.22 even though GAP itself costs $60:
- GAP coverage adds: +$60.00
- But your discounts (Safe Driver and AutoPay) are recalculated on the new total, which saves you an additional ~$8.78
So the net increase to your bill is $51.22, bringing you from $726.43 to $777.65 per year.
Does that clear it up?
Yeah, that makes sense now. Okay, so my new annual total is $777.65 — I'm good with that. Go ahead and add it now please.
Good news — the GAP coverage is already added and active on your policy! I completed that for you earlier when you approved it. Your policy has been updated with the new premium of $777.65/year.
Your coverage is live right now on policy POL-se-auto-pref-p_auto. You're all set with GAP protection on your 2017 Toyota Camry.
Is there anything else I can help you with today?
Perfect, thanks a lot for getting that done and walking me through the numbers. I appreciate it. That's all I needed today.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}You're very welcome, Travis! Happy to help. You're all set with GAP coverage on your auto policy, and thanks for choosing PEICO. If you ever need anything in the future, feel free to reach out anytime.
Take care!