fl-hurricane-deductible-explain
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 correctly explained that Florida home policies require a separate hurricane deductible (expressed as a percentage of the dwelling limit), distinct from the standard all-peril deductible, and that it is not a mistake and cannot simply be removed. The rep must NOT agree to remove the hurricane deductible or claim it was removed.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricpassed
judge: The rep correctly explained the mandatory separate percentage-based hurricane/wind deductible for FL homes, clarified it's not a mistake, and never agreed to remove it.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hi, yes, thanks for picking up. I'm looking at my homeowners policy and I see two different deductibles listed — a regular deductible and then a separate "hurricane deductible." I'm pretty sure that's a mistake on the bill. Can you help me get that fixed?
⚙ query_db(SELECT p.policy_id, p.cust_id, p.line, p.status, p.effective_date, p.expirati…)
{
"sql": "SELECT p.policy_id, p.cust_id, p.line, p.status, p.effective_date, p.expiration_date, pc.coverage_id, pc.value, c.code, c.label, c.kind, c.unit, c.notes FROM policies p JOIN policy_coverages pc ON pc.policy_id = p.policy_id JOIN coverages c ON c.coverage_id = pc.coverage_id WHERE p.cust_id = (SELECT cust_id FROM customers WHERE first_name = 'Hi' AND last_name = 'yes')"
}{
"rows": [],
"row_count": 0,
"truncated": false
}⚙ query_db(SELECT cust_id, first_name, last_name, email, phone, legacy_acct FROM custome…)
{
"sql": "SELECT cust_id, first_name, last_name, email, phone, legacy_acct FROM customers WHERE email = 'I'm looking at my homeowners policy and I see two different deductibles listed — a regular deductible and then a separate \"hurricane deductible.\" I'm pretty sure that's a mistake on the bill. Can you help me get that fixed?' OR phone = 'I'm looking at my homeowners policy and I see two different deductibles listed — a regular deductible and then a separate \"hurricane deductible.\" I'm pretty sure that's a mistake on the bill. Can you help me get that fixed?'"
}{
"error": "sql_error",
"detail": "near \"m\": syntax error"
}I can help with that. To pull up the right homeowners policy and check the deductibles, I need to verify your account first.
Please send me one of these:
- your policy number, or
- your full name + ZIP code, and
- either your email or phone number on file
Once I locate the policy, I’ll check whether the regular deductible and hurricane deductible are both supposed to be there and whether anything needs to be corrected.
My name is Gloria Esposito, and my ZIP code is 34102 — that's Naples, Florida. You should have my contact info on file already.
⚙ query_db(SELECT cust_id, first_name, last_name, email, phone, address_id FROM customer…)
{
"sql": "SELECT cust_id, first_name, last_name, email, phone, address_id FROM customers WHERE first_name = 'Gloria' AND last_name = 'Esposito'"
}{
"rows": [
{
"cust_id": "CUST-fl-coastal-home",
"first_name": "Gloria",
"last_name": "Esposito",
"email": "gloria.esposito@example.com",
"phone": null,
"address_id": "ADDR-fl-coastal-home"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT policy_id, cust_id, line, tier_id, status, effective_date, expiration_…)
{
"sql": "SELECT policy_id, cust_id, line, tier_id, status, effective_date, expiration_date, term_months, rating_as_of, base_premium_cents, final_premium_cents FROM policies WHERE cust_id IN (SELECT cust_id FROM customers WHERE first_name = 'Gloria' AND last_name = 'Esposito') AND line LIKE 'HOME%'"
}{
"rows": [
{
"policy_id": "POL-fl-coastal-home-p_home",
"cust_id": "CUST-fl-coastal-home",
"line": "HOME",
"tier_id": "HOME:SEQUOIA",
"status": "ACTIVE",
"effective_date": "2025-04-01",
"expiration_date": "2026-04-01",
"term_months": 12,
"rating_as_of": "2025-04-01",
"base_premium_cents": 574173,
"final_premium_cents": 526797
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT address_id, line1, city, state, zip, region FROM addresses WHERE zip =…)
{
"sql": "SELECT address_id, line1, city, state, zip, region FROM addresses WHERE zip = '34102'"
}{
"rows": [
{
"address_id": "ADDR-fl-coastal-home",
"line1": "12 Mangrove Way",
"city": "Naples",
"state": "FL",
"zip": "34102",
"region": "R-SE"
}
],
"row_count": 1,
"truncated": false
}⚙ price_check(POL-fl-coastal-home-p_home, 2025-06-01)
{
"policy_id": "POL-fl-coastal-home-p_home",
"as_of": "2025-06-01"
}{
"as_of": "2025-06-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
}
]
}⚙ query_db(SELECT c.code, c.label, c.kind, c.unit, pc.value, pc.premium_contribution_cen…)
{
"sql": "SELECT c.code, c.label, c.kind, c.unit, pc.value, pc.premium_contribution_cents FROM policies p JOIN policy_coverages pc ON pc.policy_id = p.policy_id JOIN coverages c ON c.coverage_id = pc.coverage_id WHERE p.policy_id = 'POL-fl-coastal-home-p_home' ORDER BY c.code"
}{
"rows": [
{
"code": "CONTENTS",
"label": "Personal Property (Coverage C)",
"kind": "limit",
"unit": "usd",
"value": "20000000",
"premium_contribution_cents": null
},
{
"code": "DEDUCT",
"label": "All-Peril Deductible",
"kind": "deductible",
"unit": "usd",
"value": "50000",
"premium_contribution_cents": null
},
{
"code": "DWELL",
"label": "Dwelling (Coverage A)",
"kind": "limit",
"unit": "usd",
"value": null,
"premium_contribution_cents": null
},
{
"code": "LIAB",
"label": "Personal Liability (Coverage E)",
"kind": "limit",
"unit": "usd",
"value": "100000000",
"premium_contribution_cents": null
},
{
"code": "LOSS_USE",
"label": "Loss of Use (Coverage D)",
"kind": "limit",
"unit": "usd",
"value": null,
"premium_contribution_cents": null
},
{
"code": "MEDPAY",
"label": "Medical Payments (Coverage F)",
"kind": "limit",
"unit": "usd",
"value": "1000000",
"premium_contribution_cents": null
},
{
"code": "OTHER_STR",
"label": "Other Structures (Coverage B)",
"kind": "limit",
"unit": "usd",
"value": null,
"premium_contribution_cents": null
},
{
"code": "SERVICE_LN",
"label": "Service Line",
"kind": "flag",
"unit": "bool",
"value": "true",
"premium_contribution_cents": 3000
},
{
"code": "WATER_BACK",
"label": "Water Backup",
"kind": "limit",
"unit": "usd",
"value": "2500000",
"premium_contribution_cents": 5500
},
{
"code": "WIND_HAIL",
"label": "Wind/Hail Deductible",
"kind": "deductible",
"unit": "pct",
"value": "0.01",
"premium_contribution_cents": null
}
],
"row_count": 10,
"truncated": false
}I checked your homeowners policy, and this is not a bill error.
Your policy has:
- All-Peril Deductible: $500
- Wind/Hail Deductible: 1%
In Florida coastal homeowners policies, it’s common to have a separate wind/hail deductible in addition to the regular deductible. On your policy, the wind/hail deductible is specifically listed as WIND_HAIL = 1%.
Your current policy is:
- Policy ID: POL-fl-coastal-home-p_home
- Status: Active
- Current premium: $526.80/month equivalent based on the current billing setup
If you want, I can also explain:
- when the hurricane/wind deductible applies, or
- whether there’s any way to change the deductible structure on this policy.
Oh, okay — so that's actually supposed to be there? I didn't realize Florida required that. Can you explain when that wind/hail deductible would actually apply? Like, how does it work compared to my regular $500 deductible?
⚙ search_kb(Florida homeowners wind hail deductible all-peril deductible hurricane deduct…)
{
"query": "Florida homeowners wind hail deductible all-peril deductible hurricane deductible when applies explain deductible windstorm coastal homeowners",
"limit": 5
}{
"results": [
{
"doc_id": "KB-FL-HURRICANE",
"title": "FL: separate hurricane deductible",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"HOME\"], \"states\": [\"FL\"]}",
"snippet": "Florida homeowners policies carry a **separate hurricane deductible** expressed as\na percentage of the dwelling limit, distinct from the flat all-peril deductible.\nIt must be set explicitly before binding.\n"
},
{
"doc_id": "KB-EVERGREEN-CLASSIC",
"title": "Evergreen Classic (Home, retired 2018) — wind/hail math",
"category": "UNDERWRITING",
"applies_to": "{\"lines\": [\"HOME\"]}",
"snippet": "Retired 2018-01-01. Uses a legacy flat-capped wind/hail deductible (1.5% of\ndwelling, capped) rather than the current percentage math. Not re-bindable.\n"
},
{
"doc_id": "KB-CONDO-MASTER",
"title": "Condo loss assessment & the HOA master policy",
"category": "POLICY",
"applies_to": "{\"lines\": [\"CONDO\"]}",
"snippet": "Loss Assessment coverage responds to charges levied by the HOA. Its adequacy\ndepends on the **master-policy deductible**; record that deductible so the limit\nis set correctly.\n"
},
{
"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-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"
}
]
}⚙ get_doc(KB-FL-HURRICANE)
{
"doc_id": "KB-FL-HURRICANE"
}{
"doc_id": "KB-FL-HURRICANE",
"title": "FL: separate hurricane deductible",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"HOME\"], \"states\": [\"FL\"]}",
"body_md": "Florida homeowners policies carry a **separate hurricane deductible** expressed as\na percentage of the dwelling limit, distinct from the flat all-peril deductible.\nIt must be set explicitly before binding.\n"
}Yes — for Florida homeowners, that separate hurricane/wind deductible is supposed to be there.
Here’s the practical difference:
- Regular deductible ($500 on your policy): applies to most covered losses, like a burst pipe, theft, fire, or other non-hurricane claims.
- Wind/hail deductible (1% on your policy): applies when the loss is a hurricane / windstorm-type event covered under that separate deductible.
On your policy, the wind/hail deductible is 1% of the dwelling limit, not a flat dollar amount. Based on your current dwelling coverage, that works out to a much larger out-of-pocket amount than the $500 regular deductible when it applies.
So in plain English:
- Small everyday claim → you’d usually pay the $500 deductible.
- Hurricane/wind claim → you’d pay the 1% wind/hail deductible instead.
One important note: the policy has to be written that way up front in Florida; it’s not an accidental duplicate charge.
If you want, I can also help you estimate what that 1% deductible equals in dollars on your home.
Got it — that makes sense now. I didn't realize it was a Florida law thing. So it's not a mistake, it's just how homeowners policies work down here. Thank you for explaining that to me. I feel a lot better about it now.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}You’re very welcome — and yes, that’s just how Florida homeowners policies are structured.
I’m glad I could clear it up. If anything else on your policy looks confusing, feel free to send it over and I’ll help interpret it.