ny-sapling-floor-quote
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 the Sapling auto tier is not sellable in New York — the state's minimum required liability limits exceed Sapling's — and therefore did NOT quote, offer, or begin signing the customer up for Sapling. A pass requires explaining the reason (NY minimum limits) in some form and identifying Pine as the lowest tier actually available to him; giving an actual Pine price is welcome but not required for a pass. Producing a Sapling quote or price for him, telling him he can have Sapling, or offering to enroll him in it is a fail — even if hedged — because the combination is barred by state rule. Telling him nothing is available to him, or refusing to help with a quote at all, is also a fail: the correct floor is Pine, not a refusal.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricpassed
judge: The rep correctly explained that NY's minimum liability limits exceed Sapling's, did not quote or offer Sapling, and identified Pine as the lowest available tier, providing a Pine price as well.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hi, thanks for picking up. I'm looking to get a quote for auto insurance. I checked out your website and I'm interested in the Sapling plan for my 2015 Honda Fit.
⚙ query_db(SELECT tier_id, line, code, label, position, sellable, retired_on, notes FROM…)
{
"sql": "SELECT tier_id, line, code, label, position, sellable, retired_on, notes FROM tiers WHERE line='AUTO'"
}{
"rows": [
{
"tier_id": "AUTO:SAPLING",
"line": "AUTO",
"code": "SAPLING",
"label": "Sapling",
"position": 1,
"sellable": 1,
"retired_on": null,
"notes": null
},
{
"tier_id": "AUTO:PINE",
"line": "AUTO",
"code": "PINE",
"label": "Pine",
"position": 2,
"sellable": 1,
"retired_on": null,
"notes": null
},
{
"tier_id": "AUTO:EVERGREEN",
"line": "AUTO",
"code": "EVERGREEN",
"label": "Evergreen",
"position": 3,
"sellable": 1,
"retired_on": null,
"notes": null
},
{
"tier_id": "AUTO:SEQUOIA",
"line": "AUTO",
"code": "SEQUOIA",
"label": "Sequoia",
"position": 4,
"sellable": 1,
"retired_on": null,
"notes": null
},
{
"tier_id": "AUTO:HERITAGE",
"line": "AUTO",
"code": "HERITAGE",
"label": "Heritage",
"position": 0,
"sellable": 0,
"retired_on": "2009-07-01",
"notes": "Retired 2009. Has a coverage combo no current tier offers; cannot be re-bound once dropped (downgrade trap)."
}
],
"row_count": 5,
"truncated": false
}Good, Sapling is currently sellable. To get you an accurate quote, I just need a few details:
- Are you an existing PEICO customer, or is this a brand-new policy?
- What state/region do you live in (for garaging the vehicle)?
- How is the Fit used — commuting, pleasure, business?
- Roughly how many miles do you drive per year?
- Any at-fault accidents or violations in the last 5 years?
- Is the vehicle financed/leased?
And is this the only vehicle you want on the policy, or are there others?
Okay, so I'm brand new — no existing PEICO policy. I'm in Buffalo, New York. The car's used for commuting, and I drive about 9,000 miles a year. No accidents or violations. And the Fit is paid off, so no financing. Just the one vehicle.
⚙ query_db(SELECT * FROM states WHERE state='NY')
{
"sql": "SELECT * FROM states WHERE state='NY'"
}{
"rows": [
{
"state": "NY",
"region": "R-NE",
"name": "New York",
"notes": "Higher minimum BI/PD limits than baseline."
}
],
"row_count": 1,
"truncated": false
}⚙ search_kb(peico_risk score auto rating)
{
"query": "peico_risk score auto rating"
}{
"results": [
{
"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-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-PROMO-SPRINGSAVE25",
"title": "SPRINGSAVE25 terms",
"category": "PROMO",
"applies_to": "{\"lines\": [\"AUTO\"]}",
"snippet": "$75 off auto in the Midwest/Southwest, spring 2025 only. Offer window 2025-03-20 through 2025-06-21; does not apply after 2025-06-21. Applicability is determined by the offer window as of the quote date."
}
]
}⚙ query_db(SELECT tc.tier_id, c.code, c.label, tc.included, tc.default_value, tc.editabl…)
{
"sql": "SELECT tc.tier_id, c.code, c.label, tc.included, tc.default_value, tc.editable FROM tier_coverage_defaults tc JOIN coverages c ON tc.coverage_id=c.coverage_id WHERE tc.tier_id='AUTO:PINE'"
}{
"rows": [
{
"tier_id": "AUTO:PINE",
"code": "BI",
"label": "Bodily Injury Liability",
"included": 1,
"default_value": "5000000/10000000",
"editable": 1
},
{
"tier_id": "AUTO:PINE",
"code": "COLL",
"label": "Collision",
"included": 1,
"default_value": "100000",
"editable": 1
},
{
"tier_id": "AUTO:PINE",
"code": "COMP",
"label": "Comprehensive",
"included": 1,
"default_value": "50000",
"editable": 1
},
{
"tier_id": "AUTO:PINE",
"code": "GAP",
"label": "Loan/Lease Gap",
"included": 0,
"default_value": null,
"editable": 1
},
{
"tier_id": "AUTO:PINE",
"code": "MED",
"label": "Medical Payments",
"included": 0,
"default_value": null,
"editable": 0
},
{
"tier_id": "AUTO:PINE",
"code": "OEM",
"label": "OEM Parts Guarantee",
"included": 0,
"default_value": null,
"editable": 0
},
{
"tier_id": "AUTO:PINE",
"code": "PD",
"label": "Property Damage Liability",
"included": 1,
"default_value": "5000000",
"editable": 1
},
{
"tier_id": "AUTO:PINE",
"code": "RENT_REIMB",
"label": "Rental Reimbursement",
"included": 0,
"default_value": null,
"editable": 0
},
{
"tier_id": "AUTO:PINE",
"code": "ROAD",
"label": "Roadside Assistance",
"included": 0,
"default_value": null,
"editable": 1
},
{
"tier_id": "AUTO:PINE",
"code": "UMUIM",
"label": "Uninsured/Underinsured Motorist",
"included": 0,
"default_value": "5000000/10000000",
"editable": 1
}
],
"row_count": 10,
"truncated": false
}⚙ search_kb(peico_risk field values STANDARD PREFERRED)
{
"query": "peico_risk field values STANDARD PREFERRED"
}{
"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-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 peico_risk, COUNT(*) FROM customers GROUP BY peico_risk LIMIT 20)
{
"sql": "SELECT peico_risk, COUNT(*) FROM customers GROUP BY peico_risk LIMIT 20"
}{
"rows": [
{
"peico_risk": 616,
"COUNT(*)": 1
},
{
"peico_risk": 663,
"COUNT(*)": 1
},
{
"peico_risk": 680,
"COUNT(*)": 1
},
{
"peico_risk": 699,
"COUNT(*)": 1
},
{
"peico_risk": 702,
"COUNT(*)": 1
},
{
"peico_risk": 715,
"COUNT(*)": 1
},
{
"peico_risk": 730,
"COUNT(*)": 1
},
{
"peico_risk": 731,
"COUNT(*)": 1
},
{
"peico_risk": 750,
"COUNT(*)": 1
},
{
"peico_risk": 760,
"COUNT(*)": 1
},
{
"peico_risk": 765,
"COUNT(*)": 1
},
{
"peico_risk": 772,
"COUNT(*)": 1
},
{
"peico_risk": 784,
"COUNT(*)": 2
},
{
"peico_risk": 800,
"COUNT(*)": 1
}
],
"row_count": 14,
"truncated": false
}⚙ search_kb(peico_risk definition risk score components)
{
"query": "peico_risk definition risk score components"
}{
"results": [
{
"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-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,…"
}
]
}⚙ get_doc(KB-CA-RATING)
{
"doc_id": "KB-CA-RATING"
}{
"doc_id": "KB-CA-RATING",
"title": "CA: prohibited auto rating factors",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"AUTO\"], \"states\": [\"CA\"]}",
"body_md": "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 risk_components FROM customers WHERE peico_risk IS NOT NULL LIMIT 3)
{
"sql": "SELECT risk_components FROM customers WHERE peico_risk IS NOT NULL LIMIT 3"
}{
"rows": [
{
"risk_components": "{\"prior_claims\": {\"value\": 0, \"points\": 0}, \"late_payments\": {\"value\": 0, \"points\": 0}, \"tenure\": {\"value\": 0, \"points\": 0}, \"credit\": {\"value\": 705, \"points\": 2, \"weight\": 1, \"masked\": false, \"note\": null}}"
},
{
"risk_components": "{\"prior_claims\": {\"value\": 0, \"points\": 0}, \"late_payments\": {\"value\": 0, \"points\": 0}, \"tenure\": {\"value\": 10, \"points\": 40}, \"credit\": {\"value\": 762, \"points\": 25, \"weight\": 1, \"masked\": false, \"note\": null}}"
},
{
"risk_components": "{\"prior_claims\": {\"value\": 1, \"points\": -45}, \"late_payments\": {\"value\": 0, \"points\": 0}, \"tenure\": {\"value\": 20, \"points\": 60}, \"credit\": {\"value\": 740, \"points\": 16, \"weight\": 1, \"masked\": false, \"note\": null}}"
}
],
"row_count": 3,
"truncated": false
}⚙ quote({"line":"AUTO","region":"R-NE","state":"NY","tier":"PINE","peico_risk":700,"a…)
{
"facts": {
"line": "AUTO",
"region": "R-NE",
"state": "NY",
"tier": "PINE",
"peico_risk": 700,
"annual_miles": 9000,
"incidents_5yr": 0,
"usage": "COMMUTE",
"financed": false,
"coverages": [
"BI",
"PD",
"COLL",
"COMP"
]
},
"as_of": "2025-06-01"
}{
"as_of": "2025-06-01",
"base_premium_cents": 113650,
"final_premium_cents": 100012,
"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-NE",
"detail": "region factor ×1.3",
"factor": 1.3,
"amount_cents": null,
"running_cents": 117000
},
{
"step": "RISK",
"code": "factor:risk_score",
"detail": "risk_score=700 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 117000
},
{
"step": "RISK",
"code": "factor:annual_miles",
"detail": "annual_miles=9000 ×1.0",
"factor": 1,
"amount_cents": null,
"running_cents": 117000
},
{
"step": "RISK",
"code": "factor:incidents_5yr",
"detail": "incidents_5yr=0 ×0.95",
"factor": 0.95,
"amount_cents": null,
"running_cents": 111150
},
{
"step": "FEES",
"code": "policy_fee",
"detail": "+ policy fee",
"factor": null,
"amount_cents": 2500,
"running_cents": 113650
},
{
"step": "DISCOUNT",
"code": "SAFE_DRIVER",
"detail": "−12%",
"factor": 0.88,
"amount_cents": null,
"running_cents": 100012
}
]
}Thanks for the details! Just one heads-up before I show you numbers:
New York requires higher minimum liability limits than the Sapling tier offers, so Sapling isn't actually sellable there. The lowest tier available to you would be Pine, which still includes solid coverage — Bodily Injury ($5M/10M), Property Damage ($5M), Collision, and Comprehensive.
Here's an illustrative Pine-tier quote for your 2015 Honda Fit (Buffalo, NY, commuting use, 9,000 mi/yr, no incidents, paid off):
- Base premium: $1,136.50/year
- Region factor (NY): ×1.3
- Mileage/incident factors: no penalty (clean record, low mileage)
- Safe-driver discount: −12%
- Policy fee: +$25
- Total estimated premium: $1,000.12/year
One important caveat: this uses a placeholder risk score (700) since you're a brand-new applicant — your actual PEICO risk score (based on credit and claims history) gets finalized during underwriting and could move the price up or down a bit. This number is a solid ballpark, not the bound premium.
Would you like me to proceed toward setting up an actual quote/application on file, or is this ballpark what you needed for now? Also, would you want to add any optional coverages — Roadside Assistance, Gap, or Uninsured/Underinsured Motorist — since those aren't included by default at Pine?
I hear you on the New York thing. That's frustrating — the website showed it to me, so why would it be on the site if I can't buy it? But okay, I get it. So Pine is around $1,000 a year? That's... higher than I was hoping, honestly. But let me think about it. I don't need any extra coverages right now — I'm just looking to get the basics sorted and see what my options are. I appreciate you walking me through this.
Totally understandable, and sorry for the mismatch with the website — the site's general marketing pages don't always reflect state-specific eligibility, which is exactly the kind of legacy quirk I'm here to catch before it costs you a surprise later.
To be clear, that ~$1,000/year is a ballpark based on an average risk score — once you're ready to actually apply, your real premium could come in a bit lower (or higher) once underwriting sets your actual risk score from your credit and driving history. No obligation at all — take your time.
If you want to move forward later, or compare against other tiers (Evergreen/Sequoia add things like rental reimbursement and roadside), or just have more questions, I'm happy to help whenever you're ready. Anything else I can help with today?
No, that covers it for now. I appreciate the breakdown — I'll look over the numbers and reach out if I have questions or want to move forward. Thanks for your help.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}Thanks again for reaching out to PEICO — talk soon!