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 rubricpassed
judge: The rep confirmed eligibility due to financing, initially quoted a wrong pay-in-full estimate but then corrected course, executed the addition, and gave the correct engine-verified final figures ($777.65 new premium, $51.22 increase) matching the reference answer.
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 suggested it, and I want to get that set up. Can you walk me through what that'll cost?
⚙ query_db(SELECT p.policy_id, p.cust_id, p.line, p.status, p.rating_as_of, p.base_premi…)
{
"sql": "SELECT p.policy_id, p.cust_id, p.line, p.status, p.rating_as_of, p.base_premium_cents, p.final_premium_cents, c.state, c.region\nFROM policies p\nJOIN customers c ON c.cust_id = p.cust_id\nWHERE p.status IN ('ACTIVE','QUOTE','PENDING') AND p.line LIKE 'AUTO%'\nORDER BY p.created_at DESC\nLIMIT 10"
}{
"error": "sql_error",
"detail": "no such column: c.state"
}⚙ search_kb(auto GAP coverage eligibility pricing underwriting rule GAP coverage, 5)
{
"query": "auto GAP coverage eligibility pricing underwriting rule GAP coverage",
"limit": 5
}{
"results": [
{
"doc_id": "KB-GLOSSARY-AUTO",
"title": "Auto coverage codes, decoded",
"category": "GLOSSARY",
"applies_to": "{\"lines\": [\"AUTO\", \"MOTO\", \"RV\", \"BOAT\", \"CLSC\"]}",
"snippet": "EVERGREEN stores auto coverages under terse codes. Plain-language meanings:\n- **BI** — Bodily Injury liability (per-person / per-accident).\n- **PD** — Property Damage liability.\n- **UM/UIM** (`UMUIM`) — Uninsured / Underinsured Motorist.\n- …"
},
{
"doc_id": "KB-AUTO-GAP",
"title": "GAP coverage eligibility",
"category": "UNDERWRITING",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"snippet": "Loan/Lease GAP is available only on **financed or leased** vehicles. It cannot be\nadded to a vehicle owned outright.\n"
},
{
"doc_id": "KB-AUTO-TIERS",
"title": "Auto tiers: Sapling → Pine → Evergreen → Sequoia",
"category": "POLICY",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"snippet": "Tiers bundle coverages. Higher tiers raise liability limits, lower deductibles,\nand add coverages: **MED** and **RENT_REIMB** appear at Evergreen and above;\n**OEM** is Sequoia-only; **ROAD** is included at Sequoia (an add-on below it).\n"
},
{
"doc_id": "KB-TX-MOTO",
"title": "TX: motorcycle custom-parts coverage unavailable",
"category": "UNDERWRITING",
"applies_to": "{\"lines\": [\"MOTO\"], \"states\": [\"TX\"]}",
"snippet": "Due to a historical licensing limitation, Custom Parts & Equipment coverage is\n**not available on motorcycle policies in Texas**.\n"
},
{
"doc_id": "KB-DISC-HLTH-SUPP",
"title": "Supplemental health: not major-medical; pre-existing limits",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"HLTH\"]}",
"snippet": "Disclose and record that this is **supplemental** coverage (accident / critical\nillness / hospital indemnity) and **NOT ACA major-medical** — it does not satisfy a\ncoverage mandate and does not replace health insurance. Pre-existing conditi…"
}
]
}⚙ query_db(SELECT p.policy_id, p.cust_id, p.line, p.status, p.rating_as_of, p.base_premi…)
{
"sql": "SELECT p.policy_id, p.cust_id, p.line, p.status, p.rating_as_of, p.base_premium_cents, p.final_premium_cents, a.state, a.region\nFROM policies p\nJOIN customers c ON c.cust_id = p.cust_id\nLEFT JOIN addresses a ON a.address_id = c.address_id\nWHERE p.status IN ('ACTIVE','QUOTE','PENDING') AND p.line LIKE 'AUTO%'\nORDER BY p.created_at DESC\nLIMIT 10"
}{
"rows": [
{
"policy_id": "POL-nest-household-p_auto",
"cust_id": "CUST-nest-household",
"line": "AUTO",
"status": "ACTIVE",
"rating_as_of": "2025-01-15",
"base_premium_cents": 80320,
"final_premium_cents": 49184,
"state": "IL",
"region": "R-MW"
},
{
"policy_id": "POL-heritage-auto-p_auto",
"cust_id": "CUST-heritage-auto",
"line": "AUTO",
"status": "ACTIVE",
"rating_as_of": "2025-02-01",
"base_premium_cents": 199544,
"final_premium_cents": 176297,
"state": "OH",
"region": "R-MW"
},
{
"policy_id": "POL-ca-masked-auto-p_auto",
"cust_id": "CUST-ca-masked-auto",
"line": "AUTO",
"status": "ACTIVE",
"rating_as_of": "2025-03-10",
"base_premium_cents": 175080,
"final_premium_cents": 147023,
"state": "CA",
"region": "R-W"
},
{
"policy_id": "POL-legacy-mismatch-p_auto",
"cust_id": "CUST-legacy-mismatch",
"line": "AUTO",
"status": "ACTIVE",
"rating_as_of": "2025-02-20",
"base_premium_cents": 120468,
"final_premium_cents": 120468,
"state": "TX",
"region": "R-SW"
},
{
"policy_id": "POL-ne-auto-pref-p_auto",
"cust_id": "CUST-ne-auto-pref",
"line": "AUTO",
"status": "ACTIVE",
"rating_as_of": "2025-01-10",
"base_premium_cents": 144108,
"final_premium_cents": 114557,
"state": "NJ",
"region": "R-NE"
},
{
"policy_id": "POL-se-auto-pref-p_auto",
"cust_id": "CUST-se-auto-pref",
"line": "AUTO",
"status": "ACTIVE",
"rating_as_of": "2025-02-15",
"base_premium_cents": 85102,
"final_premium_cents": 72643,
"state": "GA",
"region": "R-SE"
},
{
"policy_id": "POL-retention-target-p_auto",
"cust_id": "CUST-retention-target",
"line": "AUTO",
"status": "ACTIVE",
"rating_as_of": "2025-05-01",
"base_premium_cents": 106648,
"final_premium_cents": 91350,
"state": "AZ",
"region": "R-SW"
},
{
"policy_id": "POL-loyalty-oldgrowth-p_auto",
"cust_id": "CUST-loyalty-oldgrowth",
"line": "AUTO",
"status": "ACTIVE",
"rating_as_of": "2025-01-20",
"base_premium_cents": 122123,
"final_premium_cents": 89796,
"state": "MI",
"region": "R-MW"
},
{
"policy_id": "POL-umbrella-plus-p_auto",
"cust_id": "CUST-umbrella-plus",
"line": "AUTO",
"status": "ACTIVE",
"rating_as_of": "2025-02-10",
"base_premium_cents": 138236,
"final_premium_cents": 86310,
"state": "GA",
"region": "R-SE"
}
],
"row_count": 9,
"truncated": false
}I can help with GAP, but I need to pull up your auto policy first to confirm eligibility and give you an exact price.
GAP is only available on a financed or leased vehicle. If you’d like, send me:
- your policy number, or
- the name on the policy and the vehicle details
Once I locate the policy, I’ll check whether GAP can be added and tell you the cost before we make any change.
Sure, I can give you that. It's Travis Boudreaux — that's the name on the policy. The vehicle is a 2017 Toyota Camry, and it's financed through my credit union. I'm in Savannah, Georgia if that helps.
⚙ query_db(SELECT c.cust_id, c.first_name, c.last_name, c.status, c.address_id, a.state,…)
{
"sql": "SELECT c.cust_id, c.first_name, c.last_name, c.status, c.address_id, a.state, a.city, a.region\nFROM customers c\nLEFT JOIN addresses a ON a.address_id = c.address_id\nWHERE c.first_name = 'Travis' AND c.last_name = 'Boudreaux'"
}{
"rows": [
{
"cust_id": "CUST-se-auto-pref",
"first_name": "Travis",
"last_name": "Boudreaux",
"status": "CUSTOMER",
"address_id": "ADDR-se-auto-pref",
"state": "GA",
"city": "Savannah",
"region": "R-SE"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT v.vehicle_id, v.cust_id, v.year, v.make, v.model, v.financed, v.usage,…)
{
"sql": "SELECT v.vehicle_id, v.cust_id, v.year, v.make, v.model, v.financed, v.usage, v.annual_miles, v.garaging_address_id, c.first_name, c.last_name\nFROM vehicles v\nJOIN customers c ON c.cust_id = v.cust_id\nWHERE v.year = 2017 AND v.make = 'Toyota' AND v.model = 'Camry' AND c.last_name = 'Boudreaux'"
}{
"rows": [
{
"vehicle_id": "VEH-se-auto-pref-v1",
"cust_id": "CUST-se-auto-pref",
"year": 2017,
"make": "Toyota",
"model": "Camry",
"financed": 1,
"usage": "COMMUTE",
"annual_miles": 13000,
"garaging_address_id": "ADDR-se-auto-pref",
"first_name": "Travis",
"last_name": "Boudreaux"
}
],
"row_count": 1,
"truncated": false
}⚙ search_kb(AUTO GAP financed leased vehicle add coverage endorsement tier required discl…)
{
"query": "AUTO GAP financed leased vehicle add coverage endorsement tier required disclosures GAP pricing",
"limit": 10
}{
"results": [
{
"doc_id": "KB-AUTO-GAP",
"title": "GAP coverage eligibility",
"category": "UNDERWRITING",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"snippet": "Loan/Lease GAP is available only on **financed or leased** vehicles. It cannot be\nadded to a vehicle owned outright.\n"
},
{
"doc_id": "KB-AUTO-TIERS",
"title": "Auto tiers: Sapling → Pine → Evergreen → Sequoia",
"category": "POLICY",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"snippet": "Tiers bundle coverages. Higher tiers raise liability limits, lower deductibles,\nand add coverages: **MED** and **RENT_REIMB** appear at Evergreen and above;\n**OEM** is Sequoia-only; **ROAD** is included at Sequoia (an add-on below it).\n"
},
{
"doc_id": "KB-GLOSSARY-AUTO",
"title": "Auto coverage codes, decoded",
"category": "GLOSSARY",
"applies_to": "{\"lines\": [\"AUTO\", \"MOTO\", \"RV\", \"BOAT\", \"CLSC\"]}",
"snippet": "EVERGREEN stores auto coverages under terse codes. Plain-language meanings:\n- **BI** — Bodily Injury liability (per-person / per-accident).\n- **PD** — Property Damage liability.\n- **UM/UIM** (`UMUIM`) — Uninsured / Underinsured Motorist.\n- …"
},
{
"doc_id": "KB-LEGACY-XWALK",
"title": "Reading an EVERGREEN plan code (legacy → CANOPY)",
"category": "HOWTO",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"snippet": "PEICO is migrating from the legacy **EVERGREEN** mainframe to **CANOPY**. An\nEVERGREEN auto policy is stored as one **plan code** `A<class><gen>` (class\nB=Basic, S=Standard, P=Preferred). A plan code does NOT map to a CANOPY tier on\nits own…"
},
{
"doc_id": "KB-HERITAGE",
"title": "Heritage tier (retired 2009) — do not drop without disclosure",
"category": "UNDERWRITING",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"snippet": "Heritage was retired on 2009-07-01 and cannot be sold or re-bound. It carries a\ncoverage combination no current tier offers (Sequoia-level MED/RENT_REIMB/ROAD/OEM\non a mid liability base). A customer who drops Heritage **loses that combinat…"
},
{
"doc_id": "KB-SUITABILITY",
"title": "Suitability requirement for Life & Health",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"LIFE_T\", \"LIFE_W\", \"HLTH\"]}",
"snippet": "Before binding any Life or Supplemental Health policy you must complete a\n**suitability record** (income, existing coverage, dependents, stated need,\nhorizon, risk tolerance) with outcome SUITABLE. Selling **whole life** to a\nshort-horizon,…"
},
{
"doc_id": "KB-NE-MIN-LIMITS",
"title": "NY/NJ minimum auto liability limits",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"AUTO\"], \"states\": [\"NY\", \"NJ\"]}",
"snippet": "New York and New Jersey mandate minimum BI/PD limits above the Sapling tier's\nlimits, so **Sapling auto is not sellable** in those states — quote Pine or higher.\n"
},
{
"doc_id": "KB-DISC-WHOLE-LIFE",
"title": "Whole life disclosures: surrender, cash value, not an investment",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"LIFE_W\"]}",
"snippet": "Before binding whole life, disclose and record: (1) **surrender charges** apply for\nthe first several policy years and reduce early cash value; (2) cash value accrues\nslowly and may be borrowed against, reducing the death benefit; (3) whole…"
},
{
"doc_id": "KB-TX-MOTO",
"title": "TX: motorcycle custom-parts coverage unavailable",
"category": "UNDERWRITING",
"applies_to": "{\"lines\": [\"MOTO\"], \"states\": [\"TX\"]}",
"snippet": "Due to a historical licensing limitation, Custom Parts & Equipment coverage is\n**not available on motorcycle policies in Texas**.\n"
},
{
"doc_id": "KB-CA-RATING",
"title": "CA: prohibited auto rating factors",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"AUTO\"], \"states\": [\"CA\"]}",
"snippet": "California auto rating **may not use credit-based insurance score or gender**. The\ncredit component of `peico_risk` is zeroed for CA risks; the rating engine branches\non state accordingly.\n"
}
]
}⚙ query_db(SELECT p.policy_id, p.cust_id, p.line, p.status, p.tier_id, p.rating_as_of, p…)
{
"sql": "SELECT p.policy_id, p.cust_id, p.line, p.status, p.tier_id, p.rating_as_of, p.base_premium_cents, p.final_premium_cents, a.state, a.region\nFROM policies p\nJOIN customers c ON c.cust_id = p.cust_id\nLEFT JOIN addresses a ON a.address_id = c.address_id\nWHERE p.cust_id = 'CUST-se-auto-pref' AND p.line = 'AUTO'"
}{
"rows": [
{
"policy_id": "POL-se-auto-pref-p_auto",
"cust_id": "CUST-se-auto-pref",
"line": "AUTO",
"status": "ACTIVE",
"tier_id": "AUTO:PINE",
"rating_as_of": "2025-02-15",
"base_premium_cents": 85102,
"final_premium_cents": 72643,
"state": "GA",
"region": "R-SE"
}
],
"row_count": 1,
"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\nFROM policy_coverages pc\nJOIN coverages c ON c.coverage_id = pc.coverage_id\nWHERE pc.policy_id = 'POL-se-auto-pref-p_auto'\nORDER BY c.code"
}{
"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
}⚙ quote(2025-06-01, {"line":"AUTO","region":"R-SE","state":"GA","tier":"AUTO:PINE","c…)
{
"as_of": "2025-06-01",
"facts": {
"line": "AUTO",
"region": "R-SE",
"state": "GA",
"tier": "AUTO:PINE",
"coverages": [
"BI",
"PD",
"COLL",
"COMP",
"GAP"
],
"vehicle": {
"year": 2017,
"make": "Toyota",
"model": "Camry",
"financed": true,
"usage": "COMMUTE",
"annual_miles": 13000
},
"billing_plan": "PAY_IN_FULL"
}
}{
"as_of": "2025-06-01",
"base_premium_cents": 107500,
"final_premium_cents": 87978,
"breakdown": [
{
"step": "BASE",
"code": "base",
"detail": "base_rate $900",
"factor": null,
"amount_cents": null,
"running_cents": 90000
},
{
"step": "BASE",
"code": "tier:AUTO: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": "COVERAGE",
"code": "GAP",
"detail": "+ GAP $60",
"factor": null,
"amount_cents": 6000,
"running_cents": 105000
},
{
"step": "FEES",
"code": "policy_fee",
"detail": "+ policy fee",
"factor": null,
"amount_cents": 2500,
"running_cents": 107500
},
{
"step": "DISCOUNT",
"code": "SAFE_DRIVER",
"detail": "−12%",
"factor": 0.88,
"amount_cents": null,
"running_cents": 94600
},
{
"step": "DISCOUNT",
"code": "PAID_IN_FULL",
"detail": "−7%",
"factor": 0.9299999999999999,
"amount_cents": null,
"running_cents": 87978
}
]
}Good news — your auto policy is eligible for GAP because the 2017 Toyota Camry is financed.
Here’s the cost estimate for adding GAP:
- Current estimated premium: $726.43
- Estimated new premium with GAP: $879.78
- Estimated increase: $153.35
That estimate is based on your current policy facts and pricing as of today. GAP itself is adding about $60 before discounts, and the final amount also reflects your current policy discounts.
If you want, I can add GAP to the policy and reprice it so the new premium is saved on the account.
Okay, so my new annual total would be $879.78 — is that right? That's the number I'd be paying going forward?
⚙ price_check(POL-se-auto-pref-p_auto, 2025-06-01)
{
"policy_id": "POL-se-auto-pref-p_auto",
"as_of": "2025-06-01"
}{
"as_of": "2025-06-01",
"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
}
]
}Not quite — $879.78 was the estimated premium with GAP added under a pay-in-full assumption.
Your policy is currently priced on installments, and the current annual premium on file is $726.43.
So there are two different numbers here:
- Current annual premium: $726.43
- Estimated annual premium with GAP added: $879.78 if the billing plan stayed pay-in-full
- On your current installment plan, the exact new total could be a bit different
If you want, I can add GAP and then reprice the policy so I can give you the exact annual total that would be stored on the policy.
Yeah, that makes sense. Go ahead and add it, and then give me the exact new annual total on my installment plan — I need to know what I'm actually paying.
⚙ 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, 2025-06-01)
{
"policy_id": "POL-se-auto-pref-p_auto",
"as_of": "2025-06-01"
}{
"ok": true,
"as_of": "2025-06-01",
"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": {
"rating_as_of": [
"2025-02-15",
"2025-06-01"
],
"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}]"
]
}
}
]
}
}
}Done — GAP has been added and the policy was repriced.
Your new annual premium on the installment plan is $777.65.
For reference:
- Previous annual premium: $726.43
- New annual premium with GAP: $777.65
- Increase: $51.22
If you want, I can also break down how that increase is showing up in the rating steps.
Perfect, that's what I needed. $777.65 annually — I'm good with that. Thanks for getting that done and for the exact number upfront.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}You’re welcome — glad I could help. If you need anything else with your policy, just let us know.