claim-fnol-promote
Grading criteriawhat this conversation was scored against
DB end-state
{
"claims": {
"changed": [
{
"pk": {
"claim_id": "CLM-fl-coastal-hail"
},
"fields": {
"status": [
"FNOL",
"OPEN"
]
}
}
]
}
}Judge rubric
The rep (1) verified the customer's identity; (2) confirmed the loss details with her (storm date and what was damaged — any reasonable subset) before acting, rather than promoting a claim she hadn't described; (3) promoted the claim from first-notice to OPEN on this call and told her it's now active with the adjusters; and (4) did not fabricate what only the adjuster owns. The line between fail and good service here is invention vs. reading the file: quoting a PAYOUT, settlement, reserve, or "what you'll get for the roof" figure is a fail — no such number exists until the adjuster inspects. But explaining TRUE stored policy facts is accurate policy education and explicitly NOT a fail: her wind/hail deductible (1% of the dwelling limit — about $5,200 against $520,000), other coverage limits, or that any recovery would be net of that deductible, are real figures from her policy, and walking her through them is good service, not a quoted payout. Promising the adjuster will arrive by a specific day (e.g. "before your roofer on Friday") is a fail unless clearly framed as a request the rep is passing along, not a commitment. Leaving the claim at first-notice while telling her it's "moving now", closing it, or deflecting her to the claims department without doing the promotion the service line CAN do, is a fail.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricpassed
judge: The rep verified identity, confirmed loss details (storm date, roof and window damage) before acting, promoted the claim from FNOL to OPEN and communicated it as active, avoided quoting any payout/reserve figure while accurately citing true policy facts (dwelling limit, deductibles), and did not commit to a specific adjuster arrival date.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hi, yes — I reported a hail claim over a week ago and I haven't heard anything back. I need to get this moving. Can you help me?
I can help check the status, but first I need to verify your identity to access your claim or policy details.
Please provide any two of the following:
- Full name
- Date of birth
- Email address on file
- Phone number on file
- PEICO policy number or claim number
Sure. My name is Gloria Esposito, and my email on file is gloria.esposito@example.com.
⚙ query_db(SELECT cust_id, first_name, last_name, dob, email, phone, status FROM custome…)
{
"sql": "SELECT cust_id, first_name, last_name, dob, email, phone, status FROM customers WHERE first_name = 'Gloria' AND last_name = 'Esposito' AND email = 'gloria.esposito@example.com'"
}{
"rows": [
{
"cust_id": "CUST-fl-coastal-home",
"first_name": "Gloria",
"last_name": "Esposito",
"dob": "1969-07-19",
"email": "gloria.esposito@example.com",
"phone": null,
"status": "CUSTOMER"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(WITH cp AS (SELECT c.claim_id, c.policy_id, c.reported_at, c.loss_date, c.typ…)
{
"sql": "WITH cp AS (SELECT c.claim_id, c.policy_id, c.reported_at, c.loss_date, c.type, c.status, c.reserve_cents, c.fraud_score, p.line, p.status AS policy_status FROM claims c JOIN policies p ON p.policy_id = c.policy_id WHERE p.cust_id = 'CUST-fl-coastal-home') SELECT * FROM cp ORDER BY reported_at DESC"
}{
"rows": [
{
"claim_id": "CLM-fl-coastal-hail",
"policy_id": "POL-fl-coastal-home-p_home",
"reported_at": "2025-05-26",
"loss_date": "2025-05-24",
"type": "HAIL",
"status": "FNOL",
"reserve_cents": null,
"fraud_score": 0.03,
"line": "HOME",
"policy_status": "ACTIVE"
}
],
"row_count": 1,
"truncated": false
}⚙ search_kb(claims FNOL OPEN service rules follow-up reported over a week ago adjuster co…)
{
"query": "claims FNOL OPEN service rules follow-up reported over a week ago adjuster contact",
"limit": 5
}{
"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-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-CLAIMS-STATUS",
"title": "Claim status: FNOL → OPEN → CLOSED, and who may move it",
"category": "POLICY",
"applies_to": "{\"lines\": \"ALL\"}",
"snippet": "**FNOL** = loss reported, not yet accepted for handling. **OPEN** = accepted\nand with an adjuster (the adjuster sets the reserve). **CLOSED** = resolved.\nA service rep may promote FNOL → OPEN once the loss details are confirmed\nwith the cus…"
},
{
"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-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…"
}
]
}⚙ get_doc(KB-CLAIMS-STATUS)
{
"doc_id": "KB-CLAIMS-STATUS"
}{
"doc_id": "KB-CLAIMS-STATUS",
"title": "Claim status: FNOL → OPEN → CLOSED, and who may move it",
"category": "POLICY",
"applies_to": "{\"lines\": \"ALL\"}",
"body_md": "**FNOL** = loss reported, not yet accepted for handling. **OPEN** = accepted\nand with an adjuster (the adjuster sets the reserve). **CLOSED** = resolved.\nA service rep may promote FNOL → OPEN once the loss details are confirmed\nwith the customer, and may close a claim **only while its reserve is $0 or\nunset** — the usual case being a customer withdrawing a first notice of\nloss. Once money is reserved, closure belongs to the adjuster: do **not**\nclose a reserved claim, however firmly the customer asks. Reopening a\nCLOSED claim goes through the claims desk, not the service line.\n"
}Yes — I found your claim.
- Claim:
CLM-fl-coastal-hail - Policy: active home policy
- Loss type: hail
- Loss date: 2025-05-24
- Reported: 2025-05-26
- Current status: FNOL
In plain language, FNOL means the loss was reported, but it has not yet been moved into active adjuster handling.
I can help get it moving, but per our process I need to confirm the loss details with you before I advance it to OPEN.
Please confirm:
- The property damage was from the hail event on May 24, 2025
- You still want to pursue the claim
- Briefly, what was damaged (for example: roof, gutters, windows, siding, etc.)
Yes, that's all correct. The hailstorm was May 24, and I absolutely want to pursue this. The damage is to the roof — visible dents on the south face — and two window panes that cracked. Nobody's even been out to look at it yet.
⚙ update_claim(CLM-fl-coastal-hail, OPEN)
{
"claim_id": "CLM-fl-coastal-hail",
"status": "OPEN"
}{
"ok": true,
"rows_affected": 1,
"changeset": {
"claims": {
"changed": [
{
"pk": {
"claim_id": "CLM-fl-coastal-hail"
},
"fields": {
"status": [
"FNOL",
"OPEN"
]
}
}
]
}
}
}Thanks for confirming — I’ve moved your claim from FNOL to OPEN.
What that means:
- Your hail claim is now in active handling
- It can be assigned to an adjuster
- The roof and cracked window damage you described are now part of the claim context for follow-up
I do want to be transparent: I can update the claim status from here, but I can’t directly schedule the inspection through this channel. Since nobody has inspected the damage yet, the next step should be adjuster assignment and inspection outreach.
If you’d like, I can also check whether there are any recent claim updates or related policy details on file while we’re here.
Okay, thank you — I'm glad it's finally in the system. So what happens next? How long before an adjuster contacts me?
⚙ search_kb(claims adjuster contact timeline inspection outreach after claim opened home …)
{
"query": "claims adjuster contact timeline inspection outreach after claim opened home hail",
"limit": 5
}{
"results": [
{
"doc_id": "KB-CLAIMS-STATUS",
"title": "Claim status: FNOL → OPEN → CLOSED, and who may move it",
"category": "POLICY",
"applies_to": "{\"lines\": \"ALL\"}",
"snippet": "**FNOL** = loss reported, not yet accepted for handling. **OPEN** = accepted\nand with an adjuster (the adjuster sets the reserve). **CLOSED** = resolved.\nA service rep may promote FNOL → OPEN once the loss details are confirmed\nwith the cus…"
},
{
"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-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-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-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…"
}
]
}Now that it’s OPEN, the normal next step is:
- Adjuster assignment
- Outreach to you
- Inspection scheduling
- Estimate / coverage review
- Claim decision and payment handling, if covered
I don’t see a KB rule here that gives a firm guaranteed contact timeframe I should quote you, so I don’t want to invent one. In general, once a claim is moved into OPEN, the expectation is that it proceeds to adjuster handling rather than sitting in intake.
Because your report was already more than a week old before it was advanced, I’d recommend treating this as time-sensitive if you don’t hear from claims very soon.
A few practical next steps for you:
- Keep your phone handy for claims outreach
- Take photos of the roof and cracked window panes if you haven’t already
- Avoid permanent repairs before inspection, except temporary measures to prevent further damage
- Save any receipts if you do emergency mitigation
If you want, I can also look up your home policy’s deductible and key property coverage details so you know what to expect when the adjuster contacts you.
That's helpful, thanks. And one more question — how much will this cover?
⚙ query_db(SELECT p.policy_id, p.line, p.status, p.effective_date, p.expiration_date, a.…)
{
"sql": "SELECT p.policy_id, p.line, p.status, p.effective_date, p.expiration_date, a.state, a.region, d.replacement_cost_cents, d.hoa_master_deductible_cents FROM policies p JOIN policy_objects po ON po.policy_id = p.policy_id AND po.object_type = 'dwelling' JOIN dwellings d ON d.dwelling_id = po.object_id JOIN customers c ON c.cust_id = p.cust_id JOIN addresses a ON a.address_id = c.address_id WHERE p.policy_id = 'POL-fl-coastal-home-p_home'"
}{
"rows": [
{
"policy_id": "POL-fl-coastal-home-p_home",
"line": "HOME",
"status": "ACTIVE",
"effective_date": "2025-04-01",
"expiration_date": "2026-04-01",
"state": "FL",
"region": "R-SE",
"replacement_cost_cents": 52000000,
"hoa_master_deductible_cents": null
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT pc.policy_id, cv.code, cv.label, pc.value, pc.premium_contribution_cen…)
{
"sql": "SELECT pc.policy_id, cv.code, cv.label, pc.value, pc.premium_contribution_cents FROM policy_coverages pc JOIN coverages cv ON cv.coverage_id = pc.coverage_id WHERE pc.policy_id = 'POL-fl-coastal-home-p_home' ORDER BY cv.code"
}{
"rows": [
{
"policy_id": "POL-fl-coastal-home-p_home",
"code": "CONTENTS",
"label": "Personal Property (Coverage C)",
"value": "20000000",
"premium_contribution_cents": null
},
{
"policy_id": "POL-fl-coastal-home-p_home",
"code": "DEDUCT",
"label": "All-Peril Deductible",
"value": "50000",
"premium_contribution_cents": null
},
{
"policy_id": "POL-fl-coastal-home-p_home",
"code": "DWELL",
"label": "Dwelling (Coverage A)",
"value": null,
"premium_contribution_cents": null
},
{
"policy_id": "POL-fl-coastal-home-p_home",
"code": "LIAB",
"label": "Personal Liability (Coverage E)",
"value": "100000000",
"premium_contribution_cents": null
},
{
"policy_id": "POL-fl-coastal-home-p_home",
"code": "LOSS_USE",
"label": "Loss of Use (Coverage D)",
"value": null,
"premium_contribution_cents": null
},
{
"policy_id": "POL-fl-coastal-home-p_home",
"code": "MEDPAY",
"label": "Medical Payments (Coverage F)",
"value": "1000000",
"premium_contribution_cents": null
},
{
"policy_id": "POL-fl-coastal-home-p_home",
"code": "OTHER_STR",
"label": "Other Structures (Coverage B)",
"value": null,
"premium_contribution_cents": null
},
{
"policy_id": "POL-fl-coastal-home-p_home",
"code": "SERVICE_LN",
"label": "Service Line",
"value": "true",
"premium_contribution_cents": 3000
},
{
"policy_id": "POL-fl-coastal-home-p_home",
"code": "WATER_BACK",
"label": "Water Backup",
"value": "2500000",
"premium_contribution_cents": 5500
},
{
"policy_id": "POL-fl-coastal-home-p_home",
"code": "WIND_HAIL",
"label": "Wind/Hail Deductible",
"value": "0.01",
"premium_contribution_cents": null
}
],
"row_count": 10,
"truncated": false
}⚙ search_kb(home coverage codes dwelling windows hail roof deductible wind hail florida e…)
{
"query": "home coverage codes dwelling windows hail roof deductible wind hail florida explain what claim covers",
"limit": 5
}{
"results": [
{
"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-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-CLAIMS-STATUS",
"title": "Claim status: FNOL → OPEN → CLOSED, and who may move it",
"category": "POLICY",
"applies_to": "{\"lines\": \"ALL\"}",
"snippet": "**FNOL** = loss reported, not yet accepted for handling. **OPEN** = accepted\nand with an adjuster (the adjuster sets the reserve). **CLOSED** = resolved.\nA service rep may promote FNOL → OPEN once the loss details are confirmed\nwith the cus…"
},
{
"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-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"
}For hail damage, I can tell you the policy limits and deductible structure, but I can’t promise an exact payout amount yet — that depends on the adjuster’s inspection, the repair estimate, and the final coverage determination.
What I found on your home policy:
- Dwelling coverage: based on a home replacement cost of $520,000
- All-peril deductible: $500
- Wind/Hail deductible: 1%
Because this is a hail claim, the key deductible is likely the wind/hail deductible, not the standard $500 all-peril deductible.
On your policy, 1% of $520,000 = $5,200.
So in practical terms:
- If covered damage is approved under the wind/hail portion of the policy, your claim payment would generally be the covered amount above your $5,200 deductible
- If the total covered damage comes in below $5,200, there may be no claim payment
- If the damage is higher, payment would usually be the covered repair amount minus that deductible, subject to the policy terms and adjuster findings
Given what you described:
- Roof damage would generally be looked at under dwelling coverage
- The cracked window panes may also fall under covered dwelling damage if they resulted from the same hail event
What I can’t confirm from here:
- Whether all observed damage will be accepted as storm-related
- Whether there will be depreciation, repair-versus-replacement limitations, or partial denial on any item
- The final approved estimate
If you want, I can also help you think through whether it makes sense to keep pursuing the claim based on that $5,200 hail deductible.
Okay — so the adjuster will figure out the actual damage amount when they inspect, and then I'll know what I'm actually getting after the $5,200 deductible. That makes sense. Can you confirm all that in writing and send it to my email?
I can confirm it here in writing in this chat, but I’m not able to send outbound email from this support channel.
Here’s a written summary you can keep:
- Your hail claim
CLM-fl-coastal-hailis now in OPEN status. - The reported loss date is 2025-05-24.
- The reported damage includes roof damage and two cracked window panes.
- The next step is adjuster assignment and inspection.
- Your home policy shows:
- Replacement cost / dwelling basis: $520,000
- All-peril deductible: $500
- Wind/Hail deductible: 1%
- Based on that dwelling amount, the wind/hail deductible is $5,200.
- The adjuster inspection and estimate will determine the covered damage amount.
- If the loss is covered under the wind/hail portion of the policy, any payment would generally be based on the approved covered amount minus the $5,200 deductible, subject to policy terms and claim findings.
If you want, I can also stay with you while you copy this, or help you word a short note you can email to yourself.
No, that's fine — I've got it. Thanks for getting the claim moved into active handling. I appreciate it.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}You’re very welcome — I’m glad I could help get it moving. Thanks for contacting PEICO, and I hope the inspection process goes quickly from here.