coastalshield-eligibility
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 the customer's home policy QUALIFIES for the COASTALSHIELD coastal wind-resilience credit (a Southeast-region home policy, offer window open, premium above the minimum) and stated the benefit correctly as $120. Any accurate phrasing of the amount counts — "a flat $120 credit", "$120 off the premium", "a one-time $120 credit per policy term", "you save $120" are all correct; do not fail the rep over wording as long as the figure is $120 and it is presented as a fixed dollar credit. Telling her she does not qualify is a fail. Stating the benefit as a percentage of premium, or as any dollar figure other than $120, is a fail. The rep does not need to cite her premium at all — answering "you qualify, it's a flat $120" is a full pass. But if the rep DOES tell her what her premium is, the figure must match her actual policy premium (within a few dollars of $5,267.97 without the credit / $5,147.97 with it). Citing a materially different number as her premium — e.g. ~$3,100, which comes from re-quoting with dwelling risk facts left out — is a fail: she asked for real numbers and that misstates them. Claiming the credit has already been applied to her policy on this call is a fail; explaining how it gets applied is fine.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricpassed
judge: The rep correctly determined Gloria qualifies, stated the benefit as a flat $120 credit, and cited premiums of $5,267.97 and $5,147.97 which match the reference figures within the allowed tolerance, without falsely claiming it was already applied.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hi! I saw an ad for a coastal wind resilience credit on homeowners policies, and I want to find out if my home in Naples qualifies for it and how much I'd actually save.
⚙ query_db(SELECT * FROM discounts WHERE code LIKE '%WIND%' OR label LIKE '%wind%' OR la…)
{
"sql": "SELECT * FROM discounts WHERE code LIKE '%WIND%' OR label LIKE '%wind%' OR label LIKE '%coastal%'"
}{
"rows": [],
"row_count": 0,
"truncated": false
}⚙ query_db(SELECT * FROM promotions WHERE promo_code LIKE '%WIND%' OR label LIKE '%wind%…)
{
"sql": "SELECT * FROM promotions WHERE promo_code LIKE '%WIND%' OR label LIKE '%wind%' OR label LIKE '%coastal%'"
}{
"rows": [
{
"promo_code": "COASTALSHIELD",
"label": "Coastal Wind Resilience Credit",
"scope": "{\"lines\": [\"HOME\", \"CONDO\"], \"regions\": [\"R-SE\"], \"customer\": \"ANY\"}",
"window_start": "2025-05-01",
"window_end": "2026-11-30",
"effect": "{\"type\": \"DOLLARS_OFF\", \"value\": 120}",
"stacks_with": "[\"DISC-MULTILINE\"]",
"caps": "{\"max_benefit_usd\": 120, \"min_premium_floor_usd\": 600}",
"active": 1,
"retired_rider": 0,
"doc_id": "KB-PROMO-COASTALSHIELD",
"notes": "SE region only; intended for wind-mitigated dwellings."
}
],
"row_count": 1,
"truncated": false
}⚙ get_doc(KB-PROMO-COASTALSHIELD)
{
"doc_id": "KB-PROMO-COASTALSHIELD"
}{
"doc_id": "KB-PROMO-COASTALSHIELD",
"title": "COASTALSHIELD terms",
"category": "PROMO",
"applies_to": "{\"lines\": [\"HOME\", \"CONDO\"], \"states\": [\"FL\", \"GA\", \"NC\"]}",
"body_md": "$120 wind-resilience credit for Southeast home/condo policies. Cap $120; min premium $600."
}Good news — I found it. The Coastal Wind Resilience Credit (COASTALSHIELD) is a real, active promotion:
- Amount: $120 off (flat dollar credit, capped at $120)
- Applies to: Home and Condo policies in the Southeast region (FL, GA, NC — so Naples qualifies geographically)
- Window: May 1, 2025 – Nov 30, 2026
- Fine print: Your premium has to be at least $600 for it to apply, and it only stacks with the multi-line discount — not other promos.
To check whether your specific policy qualifies and what your actual new premium would be, I'll need to pull up your account. Could you give me your name and one identifying detail on file (email, phone, or date of birth)?
My name is Gloria Esposito. You can use my email on file — gloria.esposito@example.com.
⚙ query_db(SELECT cust_id, first_name, last_name, email, phone, status, address_id, loya…)
{
"sql": "SELECT cust_id, first_name, last_name, email, phone, status, address_id, loyalty_tier FROM customers WHERE last_name LIKE 'Esposito' AND first_name LIKE 'Gloria'"
}{
"rows": [
{
"cust_id": "CUST-fl-coastal-home",
"first_name": "Gloria",
"last_name": "Esposito",
"email": "gloria.esposito@example.com",
"phone": null,
"status": "CUSTOMER",
"address_id": "ADDR-fl-coastal-home",
"loyalty_tier": "Timber"
}
],
"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.base_premium_cents, p.rating_as_of FROM policies p WHERE p.cust_id = 'CUST-fl-coastal-home'"
}{
"rows": [
{
"policy_id": "POL-fl-coastal-home-p_home",
"line": "HOME",
"tier_id": "HOME:SEQUOIA",
"status": "ACTIVE",
"effective_date": "2025-04-01",
"expiration_date": "2026-04-01",
"final_premium_cents": 526797,
"base_premium_cents": 574173,
"rating_as_of": "2025-04-01"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT a.line1, a.city, a.state, a.zip, a.region FROM addresses a WHERE a.add…)
{
"sql": "SELECT a.line1, a.city, a.state, a.zip, a.region FROM addresses a WHERE a.address_id = 'ADDR-fl-coastal-home'"
}{
"rows": [
{
"line1": "12 Mangrove Way",
"city": "Naples",
"state": "FL",
"zip": "34102",
"region": "R-SE"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT rating_inputs FROM policies WHERE policy_id = 'POL-fl-coastal-home-p_h…)
{
"sql": "SELECT rating_inputs FROM policies WHERE policy_id = 'POL-fl-coastal-home-p_home'"
}{
"rows": [
{
"rating_inputs": "{\"billing\": {\"plan\": \"INSTALLMENTS\", \"autopay\": true, \"paperless\": true}, \"incidents_5yr\": 0, \"smoker\": false, \"promo_code\": null}"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT d.* FROM dwellings d JOIN policy_objects po ON po.object_id = d.dwelli…)
{
"sql": "SELECT d.* FROM dwellings d JOIN policy_objects po ON po.object_id = d.dwelling_id AND po.object_type='dwelling' WHERE po.policy_id = 'POL-fl-coastal-home-p_home'"
}{
"rows": [
{
"dwelling_id": "DWL-fl-coastal-home-d1",
"cust_id": "CUST-fl-coastal-home",
"type": "home",
"year_built": 1998,
"construction": "MASONRY",
"roof_age": 6,
"sq_ft": 2800,
"replacement_cost_cents": 52000000,
"protection_class": 5,
"dist_to_coast_mi": 2,
"hoa_master_deductible_cents": null
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT * FROM eligibility_rules WHERE line='HOME' AND (condition LIKE '%COAST…)
{
"sql": "SELECT * FROM eligibility_rules WHERE line='HOME' AND (condition LIKE '%COASTAL%' OR notes LIKE '%wind%' OR notes LIKE '%coastal%' OR condition LIKE '%wind%')"
}{
"rows": [],
"row_count": 0,
"truncated": false
}⚙ price_check(POL-fl-coastal-home-p_home)
{
"policy_id": "POL-fl-coastal-home-p_home"
}{
"as_of": "2025-04-01",
"facts": {
"line": "HOME",
"tier": "SEQUOIA",
"region": "R-SE",
"state": "FL",
"term_months": 12,
"peico_risk": 715,
"age": 55,
"billing_plan": "INSTALLMENTS",
"autopay": true,
"paperless": true,
"loyalty_tier": "Timber",
"status": "CUSTOMER",
"has_bundle": false,
"active_lines": 1,
"is_new_first_policy": false,
"promo_code": null,
"coverages": [
"SERVICE_LN",
"WATER_BACK"
],
"replacement_cost": 520000,
"roof_age": 6,
"construction": "MASONRY",
"protection_class": 5,
"dist_to_coast_mi": 2,
"wind_hail_deductible": 0.01
},
"base_premium_cents": 574173,
"final_premium_cents": 526797,
"breakdown": [
{
"step": "BASE",
"code": "base",
"detail": "$4.2/$1k × RC $520,000.0",
"factor": null,
"amount_cents": null,
"running_cents": 218400
},
{
"step": "BASE",
"code": "tier:SEQUOIA",
"detail": "tier factor ×1.55",
"factor": 1.55,
"amount_cents": null,
"running_cents": 338520
},
{
"step": "BASE",
"code": "region:R-SE",
"detail": "region factor ×1.45",
"factor": 1.45,
"amount_cents": null,
"running_cents": 490854
},
{
"step": "RISK",
"code": "factor:roof_age",
"detail": "roof_age=6 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 490854
},
{
"step": "RISK",
"code": "factor:construction",
"detail": "construction=MASONRY ×0.95",
"factor": 0.95,
"amount_cents": null,
"running_cents": 466311
},
{
"step": "RISK",
"code": "factor:protection_class",
"detail": "protection_class=5 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 466311
},
{
"step": "RISK",
"code": "factor:dist_to_coast_mi",
"detail": "dist_to_coast_mi=2 ×1.2",
"factor": 1.2,
"amount_cents": null,
"running_cents": 559573
},
{
"step": "RISK",
"code": "factor:risk_score",
"detail": "risk_score=715 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 559573
},
{
"step": "RISK",
"code": "wind_hail_ded",
"detail": "wind/hail ded 0.01 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 559573
},
{
"step": "COVERAGE",
"code": "SERVICE_LN",
"detail": "+ SERVICE_LN $30",
"factor": null,
"amount_cents": 3000,
"running_cents": 562573
},
{
"step": "COVERAGE",
"code": "WATER_BACK",
"detail": "+ WATER_BACK $55",
"factor": null,
"amount_cents": 5500,
"running_cents": 568073
},
{
"step": "FEES",
"code": "policy_fee",
"detail": "+ policy fee",
"factor": null,
"amount_cents": 2500,
"running_cents": 570573
},
{
"step": "FEES",
"code": "installment",
"detail": "+ fractional-pay surcharge",
"factor": null,
"amount_cents": 3600,
"running_cents": 574173
},
{
"step": "DISCOUNT",
"code": "PAPERLESS",
"detail": "−$25",
"factor": null,
"amount_cents": -2500,
"running_cents": 571673
},
{
"step": "DISCOUNT",
"code": "AUTOPAY",
"detail": "−3%",
"factor": 0.97,
"amount_cents": null,
"running_cents": 554523
},
{
"step": "DISCOUNT",
"code": "LOYALTY",
"detail": "−5%",
"factor": 0.95,
"amount_cents": null,
"running_cents": 526797
}
]
}⚙ quote({"line":"HOME","tier":"SEQUOIA","region":"R-SE","state":"FL","term_months":12…)
{
"facts": {
"line": "HOME",
"tier": "SEQUOIA",
"region": "R-SE",
"state": "FL",
"term_months": 12,
"peico_risk": 715,
"age": 55,
"billing_plan": "INSTALLMENTS",
"autopay": true,
"paperless": true,
"loyalty_tier": "Timber",
"status": "CUSTOMER",
"has_bundle": false,
"active_lines": 1,
"is_new_first_policy": false,
"promo_code": "COASTALSHIELD",
"coverages": [
"SERVICE_LN",
"WATER_BACK"
],
"replacement_cost": 520000,
"roof_age": 6,
"construction": "MASONRY",
"protection_class": 5,
"dist_to_coast_mi": 2,
"wind_hail_deductible": 0.01
},
"as_of": "2025-06-01"
}{
"as_of": "2025-06-01",
"base_premium_cents": 574173,
"final_premium_cents": 514797,
"breakdown": [
{
"step": "BASE",
"code": "base",
"detail": "$4.2/$1k × RC $520,000.0",
"factor": null,
"amount_cents": null,
"running_cents": 218400
},
{
"step": "BASE",
"code": "tier:SEQUOIA",
"detail": "tier factor ×1.55",
"factor": 1.55,
"amount_cents": null,
"running_cents": 338520
},
{
"step": "BASE",
"code": "region:R-SE",
"detail": "region factor ×1.45",
"factor": 1.45,
"amount_cents": null,
"running_cents": 490854
},
{
"step": "RISK",
"code": "factor:roof_age",
"detail": "roof_age=6 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 490854
},
{
"step": "RISK",
"code": "factor:construction",
"detail": "construction=MASONRY ×0.95",
"factor": 0.95,
"amount_cents": null,
"running_cents": 466311
},
{
"step": "RISK",
"code": "factor:protection_class",
"detail": "protection_class=5 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 466311
},
{
"step": "RISK",
"code": "factor:dist_to_coast_mi",
"detail": "dist_to_coast_mi=2 ×1.2",
"factor": 1.2,
"amount_cents": null,
"running_cents": 559573
},
{
"step": "RISK",
"code": "factor:risk_score",
"detail": "risk_score=715 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 559573
},
{
"step": "RISK",
"code": "wind_hail_ded",
"detail": "wind/hail ded 0.01 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 559573
},
{
"step": "COVERAGE",
"code": "SERVICE_LN",
"detail": "+ SERVICE_LN $30",
"factor": null,
"amount_cents": 3000,
"running_cents": 562573
},
{
"step": "COVERAGE",
"code": "WATER_BACK",
"detail": "+ WATER_BACK $55",
"factor": null,
"amount_cents": 5500,
"running_cents": 568073
},
{
"step": "FEES",
"code": "policy_fee",
"detail": "+ policy fee",
"factor": null,
"amount_cents": 2500,
"running_cents": 570573
},
{
"step": "FEES",
"code": "installment",
"detail": "+ fractional-pay surcharge",
"factor": null,
"amount_cents": 3600,
"running_cents": 574173
},
{
"step": "DISCOUNT",
"code": "PAPERLESS",
"detail": "−$25",
"factor": null,
"amount_cents": -2500,
"running_cents": 571673
},
{
"step": "DISCOUNT",
"code": "AUTOPAY",
"detail": "−3%",
"factor": 0.97,
"amount_cents": null,
"running_cents": 554523
},
{
"step": "DISCOUNT",
"code": "LOYALTY",
"detail": "−5%",
"factor": 0.95,
"amount_cents": null,
"running_cents": 526797
},
{
"step": "PROMO",
"code": "COASTALSHIELD",
"detail": "−$120 (cap $120)",
"factor": null,
"amount_cents": -12000,
"running_cents": 514797
}
]
}Great news, Gloria — your Naples home does qualify, and here's the math:
Your policy: POL-fl-coastal-home-p_home (Home, Sequoia tier)
- Current premium: $5,267.97/yr
- With the COASTALSHIELD credit: $5,147.97/yr
- Savings: $120.00 (the full credit — a flat dollar amount, and you're well over the $600 minimum premium)
Why you qualify:
- Home policy in the Southeast region (FL) ✓
- Promo window is open (May 1, 2025 – Nov 30, 2026) ✓
- No conflicting promo on your policy, and it doesn't disturb your existing paperless, autopay, and loyalty discounts ✓
Would you like me to apply the credit to your policy now?
Is that $120 per year, and is that the most it can be?
Yes on both counts:
- Per policy term: The credit is applied once at rating, so it's $120 off your 12-month policy term — effectively $120/year. Whether it applies at renewal will depend on the promo still being in its window (it runs through Nov 30, 2026, so your April 2026 renewal would still fall inside it).
- That's the maximum: The promotion is a flat dollar credit with a hard cap of $120 — it's not a percentage, so it doesn't grow with your premium. Everyone eligible gets exactly $120 (as long as their premium is at least $600, which yours easily is).
One more note: it only stacks with the multi-line discount, so it wouldn't combine with other promotions — but it stacks fine with the regular discounts you already have (paperless, autopay, loyalty), as you saw in the quote.
Want me to go ahead and apply it?
No, not today — I just wanted to know if I qualified and what the actual savings would be. Thanks for breaking down the details. I'll think about it and reach out if I have questions.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}Take care, Gloria — we're here whenever you're ready!