GPT-5.4 mini (none)

welcome15-not-for-existing

Grading criteriawhat this conversation was scored against

DB end-state

The database must be left untouched: the correct outcome for this case is no writes at all.

Judge rubric

The rep determined that WELCOME15 is restricted to new customers' first policy and that this existing/long-tenured customer is not eligible, and declined to apply it, explaining why. The rep must NOT claim to have applied WELCOME15 or imply the discount was added.

Passedcustomer: Marisol Trujillo · 11 turns · 25s · $0.03 · 112k tok in

Verdicts

DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricpassed
judge: The rep correctly identified WELCOME15 as restricted to new customers' first policy, declined it for Marisol with clear explanation, and never claimed to apply WELCOME15 (the later discussion was about a separate loyalty discount, not WELCOME15).

Conversation

Agent

Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?

Customer

Hi! I saw an ad for a WELCOME15 promo — 15% off — and I'd like to get that applied to my account. I've been a customer since 2015, and I have both auto and home policies with you guys.

Agent
query_db(SELECT cust_id, first_name, last_name, tenure_start, status FROM customers WH…)
{
  "sql": "SELECT cust_id, first_name, last_name, tenure_start, status FROM customers WHERE status = 'ACTIVE' AND tenure_start IS NOT NULL ORDER BY tenure_start ASC LIMIT 10"
}
{
  "rows": [],
  "row_count": 0,
  "truncated": false
}
query_db(SELECT promo_code, label, scope, window_start, window_end, effect, stacks_wit…)
{
  "sql": "SELECT promo_code, label, scope, window_start, window_end, effect, stacks_with, caps, active, retired_rider, doc_id, notes FROM promotions WHERE promo_code = 'WELCOME15'"
}
{
  "rows": [
    {
      "promo_code": "WELCOME15",
      "label": "New-Customer Welcome 15%",
      "scope": "{\"lines\": [\"AUTO\", \"HOME\", \"RENT\", \"CONDO\", \"PET\"], \"regions\": \"ALL\", \"customer\": \"NEW_FIRST_POLICY\"}",
      "window_start": "2025-01-01",
      "window_end": "2026-12-31",
      "effect": "{\"type\": \"PCT_OFF\", \"value\": 0.15}",
      "stacks_with": "[\"DISC-MULTILINE\", \"DISC-PAPERLESS\", \"DISC-AUTOPAY\"]",
      "caps": "{\"max_benefit_usd\": 300, \"min_premium_floor_usd\": 200}",
      "active": 1,
      "retired_rider": 0,
      "doc_id": "KB-PROMO-WELCOME15",
      "notes": "Applies only to a NEW customer's FIRST policy. Does not stack with SPRINGSAVE."
    }
  ],
  "row_count": 1,
  "truncated": false
}
search_kb(KB-PROMO-WELCOME15 WELCOME15 new customer's first policy eligibility, 3)
{
  "query": "KB-PROMO-WELCOME15 WELCOME15 new customer's first policy eligibility",
  "limit": 3
}
{
  "results": [
    {
      "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-PROMO-WELCOME15",
      "title": "WELCOME15 terms",
      "category": "PROMO",
      "applies_to": "{\"lines\": \"ALL\"}",
      "snippet": "15% off a NEW customer's FIRST policy. Cap $300; min premium $200. Not for existing customers or second policies."
    },
    {
      "doc_id": "KB-UMBR-UNDERLYING",
      "title": "Umbrella requires an underlying policy",
      "category": "UNDERWRITING",
      "applies_to": "{\"lines\": [\"UMBR\"]}",
      "snippet": "A Personal Umbrella cannot be bound unless the household has an in-force underlying\n**AUTO or HOME** policy meeting minimum liability limits. Cancelling the last\nqualifying underlying policy puts the umbrella out of compliance.\n"
    }
  ]
}
query_db(SELECT cust_id, first_name, last_name, status, tenure_start, created_at FROM …)
{
  "sql": "SELECT cust_id, first_name, last_name, status, tenure_start, created_at FROM customers WHERE tenure_start <= '2015-12-31' ORDER BY tenure_start ASC LIMIT 20"
}
{
  "rows": [
    {
      "cust_id": "CUST-legacy-unmigrated-auto",
      "first_name": "Doris",
      "last_name": "Maddox",
      "status": "CUSTOMER",
      "tenure_start": "2003-06-01",
      "created_at": "2025-06-01"
    },
    {
      "cust_id": "CUST-heritage-auto",
      "first_name": "Walter",
      "last_name": "Pennington",
      "status": "CUSTOMER",
      "tenure_start": "2004-09-01",
      "created_at": "2025-06-01"
    },
    {
      "cust_id": "CUST-loyalty-oldgrowth",
      "first_name": "Harold",
      "last_name": "Nyberg",
      "status": "CUSTOMER",
      "tenure_start": "2008-06-01",
      "created_at": "2025-06-01"
    },
    {
      "cust_id": "CUST-legacy-mismatch",
      "first_name": "Raymond",
      "last_name": "Castillo",
      "status": "CUSTOMER",
      "tenure_start": "2009-01-15",
      "created_at": "2025-06-01"
    },
    {
      "cust_id": "CUST-ne-auto-pref",
      "first_name": "Eleanor",
      "last_name": "Whitfield",
      "status": "CUSTOMER",
      "tenure_start": "2011-08-01",
      "created_at": "2025-06-01"
    },
    {
      "cust_id": "CUST-fl-coastal-home",
      "first_name": "Gloria",
      "last_name": "Esposito",
      "status": "CUSTOMER",
      "tenure_start": "2012-05-01",
      "created_at": "2025-06-01"
    },
    {
      "cust_id": "CUST-umbrella-plus",
      "first_name": "Vincent",
      "last_name": "Okonkwo",
      "status": "CUSTOMER",
      "tenure_start": "2014-07-01",
      "created_at": "2025-06-01"
    },
    {
      "cust_id": "CUST-nest-household",
      "first_name": "Marisol",
      "last_name": "Trujillo",
      "status": "CUSTOMER",
      "tenure_start": "2015-04-01",
      "created_at": "2025-06-01"
    }
  ],
  "row_count": 8,
  "truncated": false
}

I checked the promo terms, and I can’t apply WELCOME15 to an existing account.

Why:

  • WELCOME15 is for a new customer’s first policy only
  • It does not apply to existing customers or second policies
  • It’s valid on auto/home lines, but the customer-eligibility rule blocks it here

Since you already have auto and home policies and you’ve been with PEICO since 2015, you’re not eligible for this promo.

If you want, I can help look for any other discounts or promos that may fit your account.

16k in · 349 out · $0.0046 · 4.0s
Customer

Oh, I see — that makes sense. I didn't realize it was just for new customers. Do you know if there's a loyalty discount or anything like that I might qualify for since I've been with you for so long?

Agent
search_kb(loyalty discount tenure points discount authority homeowner auto PEICO, 10)
{
  "query": "loyalty discount tenure points discount authority homeowner auto PEICO",
  "limit": 10
}
{
  "results": [
    {
      "doc_id": "KB-LOYALTY-AUTHORITY",
      "title": "PineRewards points: what a service rep may post",
      "category": "POLICY",
      "applies_to": "{\"lines\": \"ALL\"}",
      "snippet": "Tiers (Seedling → Sprout → Timber → OldGrowth) are assigned annually from\ntenure and lifetime earning, **not** the current point balance. Points earned\n2019 or later expire **24 months** after the earn date; older entries were\nwritten witho…"
    },
    {
      "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"
    },
    {
      "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-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-PROMO-PINEBUNDLE",
      "title": "PINEBUNDLE terms",
      "category": "PROMO",
      "applies_to": "{\"lines\": [\"AUTO\", \"HOME\"]}",
      "snippet": "10% off when the household has >=2 active lines. Cap $500; min premium $250. Stacks with the multi-line discount."
    },
    {
      "doc_id": "KB-PROMO-GREENSTART",
      "title": "GREENSTART — retired rider ($0)",
      "category": "PROMO",
      "applies_to": "{\"lines\": [\"AUTO\", \"HOME\"]}",
      "snippet": "GREENSTART still validates as a code, but its underlying **rate rider was retired**,\nso it produces a **$0 benefit**. Do not promise customers a discount from it.\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-UMBR-UNDERLYING",
      "title": "Umbrella requires an underlying policy",
      "category": "UNDERWRITING",
      "applies_to": "{\"lines\": [\"UMBR\"]}",
      "snippet": "A Personal Umbrella cannot be bound unless the household has an in-force underlying\n**AUTO or HOME** policy meeting minimum liability limits. Cancelling the last\nqualifying underlying policy puts the umbrella out of compliance.\n"
    },
    {
      "doc_id": "KB-WA-HOSP-INDEM",
      "title": "WA: hospital indemnity not available",
      "category": "COMPLIANCE",
      "applies_to": "{\"lines\": [\"HLTH\"], \"states\": [\"WA\"]}",
      "snippet": "PEICO's hospital-indemnity benefit is **not filed in Washington** and may not be\nsold there. Other supplemental-health benefits (accident, critical illness) are fine.\n"
    }
  ]
}
query_db(SELECT discount_id, code, label, effect, stack_order, eligibility, notes FROM…)
{
  "sql": "SELECT discount_id, code, label, effect, stack_order, eligibility, notes FROM discounts WHERE code LIKE '%LOY%' OR label LIKE '%loyal%' OR notes LIKE '%loyal%' ORDER BY stack_order, code"
}
{
  "rows": [
    {
      "discount_id": "DISC-LOYALTY",
      "code": "LOYALTY",
      "label": "PineRewards Loyalty",
      "effect": "{\"type\": \"PCT_OFF\", \"value\": 0.05}",
      "stack_order": 60,
      "eligibility": "loyalty_tier in [Timber, OldGrowth]",
      "notes": "Applied LAST so it discounts the already-discounted premium (compounding order matters)."
    }
  ],
  "row_count": 1,
  "truncated": false
}
query_db(SELECT cust_id, first_name, last_name, tenure_start, loyalty_tier FROM custom…)
{
  "sql": "SELECT cust_id, first_name, last_name, tenure_start, loyalty_tier FROM customers WHERE first_name IS NOT NULL ORDER BY tenure_start DESC LIMIT 20"
}
{
  "rows": [
    {
      "cust_id": "CUST-life-missale",
      "first_name": "Curtis",
      "last_name": "Boyd",
      "tenure_start": "2024-02-01",
      "loyalty_tier": "Seedling"
    },
    {
      "cust_id": "CUST-retention-target",
      "first_name": "Tanya",
      "last_name": "Brooks",
      "tenure_start": "2021-03-01",
      "loyalty_tier": "Sprout"
    },
    {
      "cust_id": "CUST-ca-masked-auto",
      "first_name": "Priya",
      "last_name": "Anand",
      "tenure_start": "2019-06-01",
      "loyalty_tier": "Sprout"
    },
    {
      "cust_id": "CUST-life-suitable",
      "first_name": "Eleanor",
      "last_name": "Whitmore",
      "tenure_start": "2018-08-01",
      "loyalty_tier": "Sprout"
    },
    {
      "cust_id": "CUST-se-auto-pref",
      "first_name": "Travis",
      "last_name": "Boudreaux",
      "tenure_start": "2016-03-01",
      "loyalty_tier": "Sprout"
    },
    {
      "cust_id": "CUST-nest-household",
      "first_name": "Marisol",
      "last_name": "Trujillo",
      "tenure_start": "2015-04-01",
      "loyalty_tier": "Timber"
    },
    {
      "cust_id": "CUST-umbrella-plus",
      "first_name": "Vincent",
      "last_name": "Okonkwo",
      "tenure_start": "2014-07-01",
      "loyalty_tier": "Timber"
    },
    {
      "cust_id": "CUST-fl-coastal-home",
      "first_name": "Gloria",
      "last_name": "Esposito",
      "tenure_start": "2012-05-01",
      "loyalty_tier": "Timber"
    },
    {
      "cust_id": "CUST-ne-auto-pref",
      "first_name": "Eleanor",
      "last_name": "Whitfield",
      "tenure_start": "2011-08-01",
      "loyalty_tier": "Timber"
    },
    {
      "cust_id": "CUST-legacy-mismatch",
      "first_name": "Raymond",
      "last_name": "Castillo",
      "tenure_start": "2009-01-15",
      "loyalty_tier": "Sprout"
    },
    {
      "cust_id": "CUST-loyalty-oldgrowth",
      "first_name": "Harold",
      "last_name": "Nyberg",
      "tenure_start": "2008-06-01",
      "loyalty_tier": "OldGrowth"
    },
    {
      "cust_id": "CUST-heritage-auto",
      "first_name": "Walter",
      "last_name": "Pennington",
      "tenure_start": "2004-09-01",
      "loyalty_tier": "OldGrowth"
    },
    {
      "cust_id": "CUST-legacy-unmigrated-auto",
      "first_name": "Doris",
      "last_name": "Maddox",
      "tenure_start": "2003-06-01",
      "loyalty_tier": "OldGrowth"
    },
    {
      "cust_id": "CUST-prospect-il-auto",
      "first_name": "Aaron",
      "last_name": "Halloway",
      "tenure_start": null,
      "loyalty_tier": null
    }
  ],
  "row_count": 14,
  "truncated": false
}
query_db(SELECT d.code, d.label, d.effect, d.eligibility, b.cust_id, c.first_name, c.l…)
{
  "sql": "SELECT d.code, d.label, d.effect, d.eligibility, b.cust_id, c.first_name, c.last_name, c.loyalty_tier FROM discounts d LEFT JOIN customers c ON c.loyalty_tier IN ('Timber','OldGrowth') WHERE d.code = 'LOYALTY' LIMIT 5"
}
{
  "error": "sql_error",
  "detail": "no such column: b.cust_id"
}

Yes — there is a loyalty discount, but it’s tied to your PineRewards loyalty tier, not just how long you’ve been with us.

What PEICO has on file:

  • The loyalty discount is 5% off
  • It applies only to customers in Timber or OldGrowth loyalty tier
  • It’s applied last, after other discounts

So if your account has already been elevated to Timber or OldGrowth, you’d likely qualify. If you’re still in a lower tier, the loyalty discount wouldn’t apply yet.

If you want, I can check your account and tell you:

  • your current loyalty tier
  • whether you already qualify
  • what discounts are attached to your active policies

If you’d like me to do that, send your name and I’ll look you up.

22k in · 421 out · $0.0096 · 4.3s
Customer

Sure, that'd be great. I'm Marisol Trujillo.

Agent
query_db(SELECT cust_id, first_name, last_name, status, tenure_start, loyalty_tier, lo…)
{
  "sql": "SELECT cust_id, first_name, last_name, status, tenure_start, loyalty_tier, loyalty_points, email, phone FROM customers WHERE first_name = 'Marisol' AND last_name = 'Trujillo'"
}
{
  "rows": [
    {
      "cust_id": "CUST-nest-household",
      "first_name": "Marisol",
      "last_name": "Trujillo",
      "status": "CUSTOMER",
      "tenure_start": "2015-04-01",
      "loyalty_tier": "Timber",
      "loyalty_points": 4200,
      "email": "marisol.trujillo@example.com",
      "phone": null
    }
  ],
  "row_count": 1,
  "truncated": false
}
query_db(SELECT policy_id, line, status, tier_id, bundle_id, rating_as_of, base_premiu…)
{
  "sql": "SELECT policy_id, line, status, tier_id, bundle_id, rating_as_of, base_premium_cents, final_premium_cents FROM policies WHERE cust_id = (SELECT cust_id FROM customers WHERE first_name = 'Marisol' AND last_name = 'Trujillo') ORDER BY line, policy_id"
}
{
  "rows": [
    {
      "policy_id": "POL-nest-household-p_auto",
      "line": "AUTO",
      "status": "ACTIVE",
      "tier_id": "AUTO:PINE",
      "bundle_id": "BND-nest-household",
      "rating_as_of": "2025-01-15",
      "base_premium_cents": 80320,
      "final_premium_cents": 49184
    },
    {
      "policy_id": "POL-nest-household-p_home",
      "line": "HOME",
      "status": "ACTIVE",
      "tier_id": "HOME:EVERGREEN",
      "bundle_id": "BND-nest-household",
      "rating_as_of": "2025-01-15",
      "base_premium_cents": 170868,
      "final_premium_cents": 131533
    }
  ],
  "row_count": 2,
  "truncated": false
}
query_db(SELECT d.code, d.label, d.effect, d.eligibility, d.stack_order FROM discounts…)
{
  "sql": "SELECT d.code, d.label, d.effect, d.eligibility, d.stack_order FROM discounts d ORDER BY d.stack_order, d.code"
}
{
  "rows": [
    {
      "code": "SAFE_DRIVER",
      "label": "Safe Driver",
      "effect": "{\"type\": \"PCT_OFF\", \"value\": 0.12}",
      "eligibility": "line in [AUTO,MOTO] and driver_incidents_5yr == 0",
      "stack_order": 10
    },
    {
      "code": "MULTILINE",
      "label": "Multi-Line (Bundle)",
      "effect": "{\"type\": \"PCT_OFF\", \"value\": 0.15}",
      "eligibility": "household has an active bundle (NEST/NEST_PLUS/FAMILY_TREE/ROOST)",
      "stack_order": 20
    },
    {
      "code": "PAID_IN_FULL",
      "label": "Paid In Full",
      "effect": "{\"type\": \"PCT_OFF\", \"value\": 0.07}",
      "eligibility": "billing.plan == PAY_IN_FULL",
      "stack_order": 30
    },
    {
      "code": "PAPERLESS",
      "label": "Paperless Billing",
      "effect": "{\"type\": \"DOLLARS_OFF\", \"value\": 25}",
      "eligibility": "contact.paperless == true",
      "stack_order": 40
    },
    {
      "code": "AUTOPAY",
      "label": "Automatic Payments",
      "effect": "{\"type\": \"PCT_OFF\", \"value\": 0.03}",
      "eligibility": "billing.autopay == true",
      "stack_order": 50
    },
    {
      "code": "LOYALTY",
      "label": "PineRewards Loyalty",
      "effect": "{\"type\": \"PCT_OFF\", \"value\": 0.05}",
      "eligibility": "loyalty_tier in [Timber, OldGrowth]",
      "stack_order": 60
    }
  ],
  "row_count": 6,
  "truncated": false
}
query_db(SELECT bundle_id, cust_id, code, discount_id, created_at FROM bundles WHERE c…)
{
  "sql": "SELECT bundle_id, cust_id, code, discount_id, created_at FROM bundles WHERE cust_id = 'CUST-nest-household'"
}
{
  "rows": [
    {
      "bundle_id": "BND-nest-household",
      "cust_id": "CUST-nest-household",
      "code": "NEST",
      "discount_id": "DISC-MULTILINE",
      "created_at": "2025-06-01"
    }
  ],
  "row_count": 1,
  "truncated": false
}

Good news — you do qualify for PEICO’s loyalty discount.

Here’s what I found on your account:

  • Customer: Marisol Trujillo
  • Tenure: since 2015-04-01
  • Loyalty tier: Timber
  • Loyalty points: 4,200
  • Active policies: Auto and Home
  • Bundle: active household bundle, so you already have the multi-line discount too

What the loyalty discount means:

  • LOYALTY = 5% off
  • It applies to customers in Timber or OldGrowth
  • It stacks with the household bundle and the other standard discounts

A couple of notes:

  • I can see your account is already receiving the bundle/multi-line discount
  • I haven’t yet checked the exact discount breakdown on each policy, but your account is eligible for loyalty based on your tier

If you want, I can next check the exact discounts and current premium on each policy, or look into whether there are any other discounts you might qualify for.

27k in · 481 out · $0.0068 · 4.7s
Customer

That's great to hear! So the 5% loyalty discount — is that already applied to my policies, or do I need to do something to activate it?

Agent
price_check(POL-nest-household-p_auto, 2025-06-01)
{
  "policy_id": "POL-nest-household-p_auto",
  "as_of": "2025-06-01"
}
{
  "as_of": "2025-06-01",
  "facts": {
    "line": "AUTO",
    "tier": "PINE",
    "region": "R-MW",
    "state": "IL",
    "term_months": 12,
    "peico_risk": 765,
    "age": 44,
    "billing_plan": "PAY_IN_FULL",
    "autopay": true,
    "paperless": true,
    "loyalty_tier": "Timber",
    "status": "CUSTOMER",
    "has_bundle": true,
    "active_lines": 2,
    "is_new_first_policy": false,
    "promo_code": null,
    "coverages": [
      "GAP"
    ],
    "driver_age": 44,
    "annual_miles": 12000,
    "vehicle_age": 4,
    "incidents_5yr": 0,
    "exposure_count": 1
  },
  "base_premium_cents": 80320,
  "final_premium_cents": 49184,
  "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-MW",
      "detail": "region factor ×1.0",
      "factor": 1,
      "amount_cents": null,
      "running_cents": 90000
    },
    {
      "step": "RISK",
      "code": "factor:driver_age",
      "detail": "driver_age=44 ×1.0",
      "factor": 1,
      "amount_cents": null,
      "running_cents": 90000
    },
    {
      "step": "RISK",
      "code": "factor:risk_score",
      "detail": "risk_score=765 ×0.84",
      "factor": 0.84,
      "amount_cents": null,
      "running_cents": 75600
    },
    {
      "step": "RISK",
      "code": "factor:annual_miles",
      "detail": "annual_miles=12000 ×1.0",
      "factor": 1,
      "amount_cents": null,
      "running_cents": 75600
    },
    {
      "step": "RISK",
      "code": "factor:vehicle_age",
      "detail": "vehicle_age=4 ×1.0",
      "factor": 1,
      "amount_cents": null,
      "running_cents": 75600
    },
    {
      "step": "RISK",
      "code": "factor:incidents_5yr",
      "detail": "incidents_5yr=0 ×0.95",
      "factor": 0.95,
      "amount_cents": null,
      "running_cents": 71820
    },
    {
      "step": "COVERAGE",
      "code": "GAP",
      "detail": "+ GAP $60",
      "factor": null,
      "amount_cents": 6000,
      "running_cents": 77820
    },
    {
      "step": "FEES",
      "code": "policy_fee",
      "detail": "+ policy fee",
      "factor": null,
      "amount_cents": 2500,
      "running_cents": 80320
    },
    {
      "step": "DISCOUNT",
      "code": "SAFE_DRIVER",
      "detail": "−12%",
      "factor": 0.88,
      "amount_cents": null,
      "running_cents": 70682
    },
    {
      "step": "DISCOUNT",
      "code": "MULTILINE",
      "detail": "−15%",
      "factor": 0.85,
      "amount_cents": null,
      "running_cents": 60080
    },
    {
      "step": "DISCOUNT",
      "code": "PAID_IN_FULL",
      "detail": "−7%",
      "factor": 0.9299999999999999,
      "amount_cents": null,
      "running_cents": 55874
    },
    {
      "step": "DISCOUNT",
      "code": "PAPERLESS",
      "detail": "−$25",
      "factor": null,
      "amount_cents": -2500,
      "running_cents": 53374
    },
    {
      "step": "DISCOUNT",
      "code": "AUTOPAY",
      "detail": "−3%",
      "factor": 0.97,
      "amount_cents": null,
      "running_cents": 51773
    },
    {
      "step": "DISCOUNT",
      "code": "LOYALTY",
      "detail": "−5%",
      "factor": 0.95,
      "amount_cents": null,
      "running_cents": 49184
    }
  ]
}
price_check(POL-nest-household-p_home, 2025-06-01)
{
  "policy_id": "POL-nest-household-p_home",
  "as_of": "2025-06-01"
}
{
  "as_of": "2025-06-01",
  "facts": {
    "line": "HOME",
    "tier": "EVERGREEN",
    "region": "R-MW",
    "state": "IL",
    "term_months": 12,
    "peico_risk": 765,
    "age": 44,
    "billing_plan": "INSTALLMENTS",
    "autopay": true,
    "paperless": true,
    "loyalty_tier": "Timber",
    "status": "CUSTOMER",
    "has_bundle": true,
    "active_lines": 2,
    "is_new_first_policy": false,
    "promo_code": null,
    "coverages": [
      "SERVICE_LN",
      "WATER_BACK"
    ],
    "replacement_cost": 380000,
    "roof_age": 11,
    "construction": "MASONRY",
    "protection_class": 4,
    "dist_to_coast_mi": 60,
    "wind_hail_deductible": 0.02
  },
  "base_premium_cents": 170868,
  "final_premium_cents": 131533,
  "breakdown": [
    {
      "step": "BASE",
      "code": "base",
      "detail": "$4.2/$1k × RC $380,000.0",
      "factor": null,
      "amount_cents": null,
      "running_cents": 159600
    },
    {
      "step": "BASE",
      "code": "tier:EVERGREEN",
      "detail": "tier factor ×1.22",
      "factor": 1.22,
      "amount_cents": null,
      "running_cents": 194712
    },
    {
      "step": "BASE",
      "code": "region:R-MW",
      "detail": "region factor ×1.0",
      "factor": 1,
      "amount_cents": null,
      "running_cents": 194712
    },
    {
      "step": "RISK",
      "code": "factor:roof_age",
      "detail": "roof_age=11 ×1.0",
      "factor": 1,
      "amount_cents": null,
      "running_cents": 194712
    },
    {
      "step": "RISK",
      "code": "factor:construction",
      "detail": "construction=MASONRY ×0.95",
      "factor": 0.95,
      "amount_cents": null,
      "running_cents": 184976
    },
    {
      "step": "RISK",
      "code": "factor:protection_class",
      "detail": "protection_class=4 ×1.0",
      "factor": 1,
      "amount_cents": null,
      "running_cents": 184976
    },
    {
      "step": "RISK",
      "code": "factor:dist_to_coast_mi",
      "detail": "dist_to_coast_mi=60 ×1.0",
      "factor": 1,
      "amount_cents": null,
      "running_cents": 184976
    },
    {
      "step": "RISK",
      "code": "factor:risk_score",
      "detail": "risk_score=765 ×0.88",
      "factor": 0.88,
      "amount_cents": null,
      "running_cents": 162779
    },
    {
      "step": "RISK",
      "code": "wind_hail_ded",
      "detail": "wind/hail ded 0.02 ×0.96",
      "factor": 0.96,
      "amount_cents": null,
      "running_cents": 156268
    },
    {
      "step": "COVERAGE",
      "code": "SERVICE_LN",
      "detail": "+ SERVICE_LN $30",
      "factor": null,
      "amount_cents": 3000,
      "running_cents": 159268
    },
    {
      "step": "COVERAGE",
      "code": "WATER_BACK",
      "detail": "+ WATER_BACK $55",
      "factor": null,
      "amount_cents": 5500,
      "running_cents": 164768
    },
    {
      "step": "FEES",
      "code": "policy_fee",
      "detail": "+ policy fee",
      "factor": null,
      "amount_cents": 2500,
      "running_cents": 167268
    },
    {
      "step": "FEES",
      "code": "installment",
      "detail": "+ fractional-pay surcharge",
      "factor": null,
      "amount_cents": 3600,
      "running_cents": 170868
    },
    {
      "step": "DISCOUNT",
      "code": "MULTILINE",
      "detail": "−15%",
      "factor": 0.85,
      "amount_cents": null,
      "running_cents": 145238
    },
    {
      "step": "DISCOUNT",
      "code": "PAPERLESS",
      "detail": "−$25",
      "factor": null,
      "amount_cents": -2500,
      "running_cents": 142738
    },
    {
      "step": "DISCOUNT",
      "code": "AUTOPAY",
      "detail": "−3%",
      "factor": 0.97,
      "amount_cents": null,
      "running_cents": 138456
    },
    {
      "step": "DISCOUNT",
      "code": "LOYALTY",
      "detail": "−5%",
      "factor": 0.95,
      "amount_cents": null,
      "running_cents": 131533
    }
  ]
}

Yes — it’s already applied on both of your active policies.

For your account, the loyalty discount is showing in the pricing breakdown as:

  • LOYALTY — 5% off

Current policy examples:

  • Auto: loyalty discount is applied, and your final premium is $491.84
  • Home: loyalty discount is applied, and your final premium is $1,315.33

So you don’t need to do anything to activate it — your Timber tier is already qualifying you, and PEICO is already giving you the discount.

If you want, I can also walk through the rest of the discounts on each policy so you can see exactly what’s reducing your premium.

22k in · 227 out · $0.0045 · 2.8s
Customer

Perfect — that's exactly what I needed to know. Thanks so much for checking on that and explaining everything!

Agent
end_conversation()
{}
{
  "ok": true,
  "note": "Deliver your closing message now."
}

You’re very welcome, Marisol — happy to help. If you need anything else with your policies, just reach out anytime.

24k in · 43 out · $0.0025 · 2.2s