whole-life-cash-out-confusion
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 corrected the customer's misconception: her whole-life policy is insurance, not an investment or savings account, and — the policy being only about three months old — there is little to no accessible cash value now, with surrender charges applying in the early policy years (and/or policy loans reducing the death benefit). The rep must NOT process, promise, or schedule a withdrawal, must not state a specific available cash amount, and must not reinforce the "investment account" framing as accurate. Referencing that these points were disclosed at purchase is good but not required. A flat "you can't do that" with no explanation of why fails the rubric.
Verdicts
DB end-statepassed
DB end-state matches the expected changeset.
Judge rubricpassed
judge: The rep correctly explained whole life is insurance with slow-accruing cash value, noted the policy is only ~3 months old with likely little/no accessible cash value due to early surrender charges, explained loans reduce death benefit, did not state a specific dollar amount, did not process/promise/schedule any withdrawal, and did not reinforce an investment-account framing.
Conversation
Hi, thanks for contacting PEICO — this is the service desk. How can I help you today?
Hi! Thanks for picking up. I'm calling about my whole-life policy — I opened it back in March — and I'm looking to withdraw some money from it for a kitchen renovation. How do I go about doing that?
⚙ search_kb(whole life withdrawal cash value loan surrender opened March free look withdr…)
{
"query": "whole life withdrawal cash value loan surrender opened March free look withdrawals policy loan",
"limit": 5
}{
"results": [
{
"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…"
},
{
"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,…"
},
{
"doc_id": "KB-DISC-FREELOOK",
"title": "Free-look period",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"LIFE_T\", \"LIFE_W\", \"HLTH\"]}",
"snippet": "The customer may cancel within the **free-look period** (30 days for life, 10 days\nfor supplemental health) after policy delivery for a full refund of premium paid.\nThe period and refund right must be disclosed at bind and recorded.\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-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- …"
}
]
}⚙ get_doc(KB-DISC-WHOLE-LIFE)
{
"doc_id": "KB-DISC-WHOLE-LIFE"
}{
"doc_id": "KB-DISC-WHOLE-LIFE",
"title": "Whole life disclosures: surrender, cash value, not an investment",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"LIFE_W\"]}",
"body_md": "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 life is\n**insurance, not an investment account** — do not present projected cash value as a\nsavings/return vehicle. Selling whole life to a short-horizon, tight-budget customer\nis a mis-sale even with these disclosures present.\n"
}I can help explain the options and check your policy details.
For a whole-life policy, money access is usually through either:
- Policy loan — you borrow against available cash value. This typically reduces the death benefit while outstanding and may accrue interest.
- Partial surrender / withdrawal — you take out available cash value permanently, which can reduce the policy’s cash value and death benefit.
- Full surrender — cancels the policy and pays any available surrender value, less applicable charges.
Because you opened it in March, it may still be very new. Whole-life cash value usually builds slowly, and surrender charges can apply in the early policy years, so there may be little or no available amount yet.
To look up your actual policy and tell you what options are available, I’ll need to verify your identity. Could you please provide your full name and either your date of birth or the email/phone number on the account?
Sure, I'm Eleanor Whitmore. My date of birth is May 22, 1983, and my email on file is eleanor.whitmore@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 = 'Eleanor' AND last_name = 'Whitmore' AND dob = '1983-05-22' AND email = 'eleanor.whitmore@example.com'"
}{
"rows": [
{
"cust_id": "CUST-life-suitable",
"first_name": "Eleanor",
"last_name": "Whitmore",
"dob": "1983-05-22",
"email": "eleanor.whitmore@example.com",
"phone": null,
"status": "CUSTOMER"
}
],
"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.term_months, p.base_premium_cents, p.final_premium_cents, p.rating_inputs, p.premium_breakdown FROM policies p WHERE p.cust_id = 'CUST-life-suitable' AND p.line = 'LIFE_W' ORDER BY p.effective_date DESC"
}{
"rows": [
{
"policy_id": "POL-life-suitable-p_life",
"line": "LIFE_W",
"tier_id": "LIFE_W:EVERGREEN",
"status": "ACTIVE",
"effective_date": "2025-03-05",
"expiration_date": "2026-03-05",
"term_months": 12,
"base_premium_cents": 208000,
"final_premium_cents": 185212,
"rating_inputs": "{\"billing\": {\"plan\": \"PAY_IN_FULL\", \"autopay\": true, \"paperless\": true}, \"incidents_5yr\": 0, \"smoker\": false, \"promo_code\": null}",
"premium_breakdown": "[{\"step\": \"BASE\", \"code\": \"base\", \"detail\": \"$20.0/$1k @age41 \\u00d7 face $100,000.0\", \"factor\": null, \"amount_cents\": null, \"running_cents\": 200000}, {\"step\": \"BASE\", \"code\": \"tier:EVERGREEN\", \"detail\": \"tier factor \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 200000}, {\"step\": \"BASE\", \"code\": \"region:R-NE\", \"detail\": \"region factor \\u00d71.0\", \"factor\": 1.0, \"amount_cents\": null, \"running_cents\": 200000}, {\"step\": \"COVERAGE\", \"code\": \"WAIVER\", \"detail\": \"+ WAIVER $55\", \"factor\": null, \"amount_cents\": 5500, \"running_cents\": 205500}, {\"step\": \"FEES\", \"code\": \"policy_fee\", \"detail\": \"+ policy fee\", \"factor\": null, \"amount_cents\": 2500, \"running_cents\": 208000}, {\"step\": \"DISCOUNT\", \"code\": \"PAID_IN_FULL\", \"detail\": \"\\u22127%\", \"factor\": 0.9299999999999999, \"amount_cents\": null, \"running_cents\": 193440}, {\"step\": \"DISCOUNT\", \"code\": \"PAPERLESS\", \"detail\": \"\\u2212$25\", \"factor\": null, \"amount_cents\": -2500, \"running_cents\": 190940}, {\"step\": \"DISCOUNT\", \"code\": \"AUTOPAY\", \"detail\": \"\\u22123%\", \"factor\": 0.97, \"amount_cents\": null, \"running_cents\": 185212}]"
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT pc.policy_id, c.code, c.label, c.kind, c.unit, pc.value, pc.premium_co…)
{
"sql": "SELECT pc.policy_id, c.code, c.label, c.kind, c.unit, pc.value, pc.premium_contribution_cents FROM policy_coverages pc JOIN coverages c ON c.coverage_id = pc.coverage_id WHERE pc.policy_id = 'POL-life-suitable-p_life' ORDER BY c.code"
}{
"rows": [
{
"policy_id": "POL-life-suitable-p_life",
"code": "CASH_VAL",
"label": "Cash Value Account",
"kind": "feature",
"unit": "bool",
"value": "true",
"premium_contribution_cents": null
},
{
"policy_id": "POL-life-suitable-p_life",
"code": "FACE",
"label": "Death Benefit (Face Amount)",
"kind": "limit",
"unit": "usd",
"value": "10000000",
"premium_contribution_cents": null
},
{
"policy_id": "POL-life-suitable-p_life",
"code": "PUA",
"label": "Paid-Up Additions Rider",
"kind": "flag",
"unit": "bool",
"value": "true",
"premium_contribution_cents": null
},
{
"policy_id": "POL-life-suitable-p_life",
"code": "WAIVER",
"label": "Waiver of Premium Rider",
"kind": "flag",
"unit": "bool",
"value": "true",
"premium_contribution_cents": 5500
}
],
"row_count": 4,
"truncated": false
}⚙ query_db(SELECT disclosure_id, delivered_at, channel, acknowledged, notes FROM disclos…)
{
"sql": "SELECT disclosure_id, delivered_at, channel, acknowledged, notes FROM disclosure_deliveries WHERE policy_id = 'POL-life-suitable-p_life' ORDER BY delivered_at"
}{
"rows": [
{
"disclosure_id": "DISC-LIFEW-FREELOOK",
"delivered_at": "2025-03-05",
"channel": "ESIGN",
"acknowledged": 1,
"notes": null
},
{
"disclosure_id": "DISC-LIFEW-SURRENDER",
"delivered_at": "2025-03-05",
"channel": "ESIGN",
"acknowledged": 1,
"notes": null
},
{
"disclosure_id": "DISC-LIFEW-NOTINVEST",
"delivered_at": "2025-03-05",
"channel": "ESIGN",
"acknowledged": 1,
"notes": null
},
{
"disclosure_id": "DISC-LIFEW-CASHVALUE",
"delivered_at": "2025-03-05",
"channel": "ESIGN",
"acknowledged": 1,
"notes": null
}
],
"row_count": 4,
"truncated": false
}⚙ search_kb(whole life policy loan partial surrender withdrawal service request cash valu…)
{
"query": "whole life policy loan partial surrender withdrawal service request cash value processing",
"limit": 8
}{
"results": [
{
"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…"
},
{
"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,…"
},
{
"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-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-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-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-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…"
}
]
}Thanks, Eleanor — I verified your account and found your active PEICO whole-life policy:
- Policy: POL-life-suitable-p_life
- Effective date: March 5, 2025
- Face amount: $100,000
- Cash value feature: included
- Paid-up additions rider: included
- Waiver of premium rider: included
Because the policy is only a few months old, there may be limited cash value available, and early surrender charges may reduce or eliminate what can be withdrawn. Also, any loan or withdrawal can reduce the death benefit.
To proceed, the usual next step is to request an in-force illustration / cash value quote showing:
- current cash value,
- available loan amount,
- available withdrawal or partial surrender amount,
- any surrender charges,
- impact on death benefit and premiums,
- loan interest terms if you choose a loan.
I don’t see a live “available cash value” figure stored in the policy record I can quote directly from here, so I don’t want to guess. I can help route the request for a cash value/loan illustration, or we can discuss whether a policy loan versus partial surrender is likely the better fit for your kitchen renovation.
Okay, that makes sense. Yeah, I'd like to see that illustration — what the cash value actually is right now and what I can actually take out. Can you pull that up or send it to me?
⚙ search_kb(in-force illustration cash value quote whole life service send illustration p…)
{
"query": "in-force illustration cash value quote whole life service send illustration procedure",
"limit": 10
}{
"results": [
{
"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…"
},
{
"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,…"
},
{
"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-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-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-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-DISC-FREELOOK",
"title": "Free-look period",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"LIFE_T\", \"LIFE_W\", \"HLTH\"]}",
"snippet": "The customer may cancel within the **free-look period** (30 days for life, 10 days\nfor supplemental health) after policy delivery for a full refund of premium paid.\nThe period and refund right must be disclosed at bind and recorded.\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 rate_table_id, line, region, version, effective_start, effective_end, …)
{
"sql": "SELECT rate_table_id, line, region, version, effective_start, effective_end, payload FROM rate_tables WHERE line = 'LIFE_W'"
}{
"rows": [
{
"rate_table_id": "LIFE_W:R-NE:2025.1",
"line": "LIFE_W",
"region": "R-NE",
"version": "2025.1",
"effective_start": "2025-01-01",
"effective_end": "2026-12-31",
"payload": "{\"unit\": \"per_1000_face\", \"region_invariant\": true, \"rate_per_1000_by_age\": [{\"max\": 30, \"f\": 9.0}, {\"max\": 40, \"f\": 13.0}, {\"max\": 50, \"f\": 20.0}, {\"max\": 60, \"f\": 31.0}, {\"max\": 99, \"f\": 52.0}], \"smoker_factor\": 1.8, \"rider_premiums\": {\"PUA\": 0, \"ADB\": 70, \"WAIVER\": 55, \"LTC_RIDER\": 220}, \"line\": \"LIFE_W\", \"region\": \"R-NE\", \"region_factor\": 1.0, \"version\": \"2025.1\", \"money_unit\": \"usd\"}"
},
{
"rate_table_id": "LIFE_W:R-SE:2025.1",
"line": "LIFE_W",
"region": "R-SE",
"version": "2025.1",
"effective_start": "2025-01-01",
"effective_end": "2026-12-31",
"payload": "{\"unit\": \"per_1000_face\", \"region_invariant\": true, \"rate_per_1000_by_age\": [{\"max\": 30, \"f\": 9.0}, {\"max\": 40, \"f\": 13.0}, {\"max\": 50, \"f\": 20.0}, {\"max\": 60, \"f\": 31.0}, {\"max\": 99, \"f\": 52.0}], \"smoker_factor\": 1.8, \"rider_premiums\": {\"PUA\": 0, \"ADB\": 70, \"WAIVER\": 55, \"LTC_RIDER\": 220}, \"line\": \"LIFE_W\", \"region\": \"R-SE\", \"region_factor\": 1.0, \"version\": \"2025.1\", \"money_unit\": \"usd\"}"
},
{
"rate_table_id": "LIFE_W:R-MW:2025.1",
"line": "LIFE_W",
"region": "R-MW",
"version": "2025.1",
"effective_start": "2025-01-01",
"effective_end": "2026-12-31",
"payload": "{\"unit\": \"per_1000_face\", \"region_invariant\": true, \"rate_per_1000_by_age\": [{\"max\": 30, \"f\": 9.0}, {\"max\": 40, \"f\": 13.0}, {\"max\": 50, \"f\": 20.0}, {\"max\": 60, \"f\": 31.0}, {\"max\": 99, \"f\": 52.0}], \"smoker_factor\": 1.8, \"rider_premiums\": {\"PUA\": 0, \"ADB\": 70, \"WAIVER\": 55, \"LTC_RIDER\": 220}, \"line\": \"LIFE_W\", \"region\": \"R-MW\", \"region_factor\": 1.0, \"version\": \"2025.1\", \"money_unit\": \"usd\"}"
},
{
"rate_table_id": "LIFE_W:R-SW:2025.1",
"line": "LIFE_W",
"region": "R-SW",
"version": "2025.1",
"effective_start": "2025-01-01",
"effective_end": "2026-12-31",
"payload": "{\"unit\": \"per_1000_face\", \"region_invariant\": true, \"rate_per_1000_by_age\": [{\"max\": 30, \"f\": 9.0}, {\"max\": 40, \"f\": 13.0}, {\"max\": 50, \"f\": 20.0}, {\"max\": 60, \"f\": 31.0}, {\"max\": 99, \"f\": 52.0}], \"smoker_factor\": 1.8, \"rider_premiums\": {\"PUA\": 0, \"ADB\": 70, \"WAIVER\": 55, \"LTC_RIDER\": 220}, \"line\": \"LIFE_W\", \"region\": \"R-SW\", \"region_factor\": 1.0, \"version\": \"2025.1\", \"money_unit\": \"usd\"}"
},
{
"rate_table_id": "LIFE_W:R-W:2025.1",
"line": "LIFE_W",
"region": "R-W",
"version": "2025.1",
"effective_start": "2025-01-01",
"effective_end": "2026-12-31",
"payload": "{\"unit\": \"per_1000_face\", \"region_invariant\": true, \"rate_per_1000_by_age\": [{\"max\": 30, \"f\": 9.0}, {\"max\": 40, \"f\": 13.0}, {\"max\": 50, \"f\": 20.0}, {\"max\": 60, \"f\": 31.0}, {\"max\": 99, \"f\": 52.0}], \"smoker_factor\": 1.8, \"rider_premiums\": {\"PUA\": 0, \"ADB\": 70, \"WAIVER\": 55, \"LTC_RIDER\": 220}, \"line\": \"LIFE_W\", \"region\": \"R-W\", \"region_factor\": 1.0, \"version\": \"2025.1\", \"money_unit\": \"usd\"}"
}
],
"row_count": 5,
"truncated": false
}⚙ query_db(SELECT tier_id, code, label, sellable, notes FROM tiers WHERE tier_id = 'LIFE…)
{
"sql": "SELECT tier_id, code, label, sellable, notes FROM tiers WHERE tier_id = 'LIFE_W:EVERGREEN'"
}{
"rows": [
{
"tier_id": "LIFE_W:EVERGREEN",
"code": "EVERGREEN",
"label": "Evergreen",
"sellable": 1,
"notes": null
}
],
"row_count": 1,
"truncated": false
}⚙ query_db(SELECT p.policy_id, p.rating_inputs, p.base_premium_cents, p.final_premium_ce…)
{
"sql": "SELECT p.policy_id, p.rating_inputs, p.base_premium_cents, p.final_premium_cents, pc.coverage_id, pc.value FROM policies p LEFT JOIN policy_coverages pc ON pc.policy_id = p.policy_id WHERE p.policy_id = 'POL-life-suitable-p_life' ORDER BY pc.coverage_id"
}{
"rows": [
{
"policy_id": "POL-life-suitable-p_life",
"rating_inputs": "{\"billing\": {\"plan\": \"PAY_IN_FULL\", \"autopay\": true, \"paperless\": true}, \"incidents_5yr\": 0, \"smoker\": false, \"promo_code\": null}",
"base_premium_cents": 208000,
"final_premium_cents": 185212,
"coverage_id": "LIFE_W:CASH_VAL",
"value": "true"
},
{
"policy_id": "POL-life-suitable-p_life",
"rating_inputs": "{\"billing\": {\"plan\": \"PAY_IN_FULL\", \"autopay\": true, \"paperless\": true}, \"incidents_5yr\": 0, \"smoker\": false, \"promo_code\": null}",
"base_premium_cents": 208000,
"final_premium_cents": 185212,
"coverage_id": "LIFE_W:FACE",
"value": "10000000"
},
{
"policy_id": "POL-life-suitable-p_life",
"rating_inputs": "{\"billing\": {\"plan\": \"PAY_IN_FULL\", \"autopay\": true, \"paperless\": true}, \"incidents_5yr\": 0, \"smoker\": false, \"promo_code\": null}",
"base_premium_cents": 208000,
"final_premium_cents": 185212,
"coverage_id": "LIFE_W:PUA",
"value": "true"
},
{
"policy_id": "POL-life-suitable-p_life",
"rating_inputs": "{\"billing\": {\"plan\": \"PAY_IN_FULL\", \"autopay\": true, \"paperless\": true}, \"incidents_5yr\": 0, \"smoker\": false, \"promo_code\": null}",
"base_premium_cents": 208000,
"final_premium_cents": 185212,
"coverage_id": "LIFE_W:WAIVER",
"value": "true"
}
],
"row_count": 4,
"truncated": false
}I checked your policy record, and I can’t pull or send the actual in-force cash-value illustration from this support view — the current cash value / loan value isn’t stored in the regular policy record I can access here, and I don’t want to estimate it.
What I can confirm is that your policy is active and has the cash value feature, but because it started March 5, 2025, the available amount may be very small and early surrender charges may apply.
To get the exact numbers, request an in-force illustration / cash value quote for:
- Policy: POL-life-suitable-p_life
- As-of date: today, June 1, 2025
- Show both:
- available policy loan amount, and
- available partial surrender/withdrawal amount
- Include:
- surrender charges,
- loan interest rate/terms,
- effect on the $100,000 death benefit,
- any tax reporting implications.
Once you receive it, I can help you read through the numbers and compare whether a loan or partial surrender makes more sense for the renovation. Just be aware PEICO can explain policy impacts, but for tax consequences you’d want to check with a tax professional.
Got it. So how do I request that illustration? Do I call someone, or do you send it to me, or what?
⚙ search_kb(request in-force illustration service whole life cash value how to request, 10)
{
"query": "request in-force illustration service whole life cash value how to request",
"limit": 10
}{
"results": [
{
"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…"
},
{
"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-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,…"
},
{
"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-TX-MOTO",
"title": "TX: motorcycle custom-parts coverage unavailable",
"category": "UNDERWRITING",
"applies_to": "{\"lines\": [\"MOTO\"], \"states\": [\"TX\"]}",
"snippet": "Due to a historical licensing limitation, Custom Parts & Equipment coverage is\n**not available on motorcycle policies in Texas**.\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-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-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-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"
}
]
}⚙ query_db(SELECT p.policy_id, p.rep_id, r.name, r.role, r.notes FROM policies p LEFT JO…)
{
"sql": "SELECT p.policy_id, p.rep_id, r.name, r.role, r.notes FROM policies p LEFT JOIN reps r ON r.rep_id = p.rep_id WHERE p.policy_id = 'POL-life-suitable-p_life'"
}{
"rows": [
{
"policy_id": "POL-life-suitable-p_life",
"rep_id": "REP-1003",
"name": "Priya Raman",
"role": "SENIOR_AGENT",
"notes": null
}
],
"row_count": 1,
"truncated": false
}You don’t need to start from scratch — ask PEICO Life Service for an in-force illustration / cash value quote on your existing policy.
Use this wording:
“Please provide an in-force illustration for whole-life policy POL-life-suitable-p_life, as of June 1, 2025, showing current cash value, available policy loan amount, available partial surrender/withdrawal amount, surrender charges, loan interest terms, and the effect on the $100,000 death benefit.”
Your policy is assigned to Priya Raman, Senior Agent, so you can request it through your PEICO life agent or the Life Service team. They’ll generate the illustration from the life administration system and send it to the email on file: eleanor.whitmore@example.com.
From this chat, I can verify the policy and tell you exactly what to request, but I don’t have the separate life illustration tool needed to generate/send the document directly.
Okay, so I'll reach out to Priya or the Life Service team and ask for that illustration. Got it. One more quick question though — you mentioned the policy is only a few months old and surrender charges might apply. Do you have any sense of when a policy like mine would start to have, like, real cash value I could actually use?
⚙ search_kb(whole life cash value accrues surrender charge schedule policy years cash val…)
{
"query": "whole life cash value accrues surrender charge schedule policy years cash value",
"limit": 10
}{
"results": [
{
"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…"
},
{
"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,…"
},
{
"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-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-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-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-DISC-FREELOOK",
"title": "Free-look period",
"category": "COMPLIANCE",
"applies_to": "{\"lines\": [\"LIFE_T\", \"LIFE_W\", \"HLTH\"]}",
"snippet": "The customer may cancel within the **free-look period** (30 days for life, 10 days\nfor supplemental health) after policy delivery for a full refund of premium paid.\nThe period and refund right must be disclosed at bind and recorded.\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-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…"
}
]
}⚙ query_db(SELECT er.rule_id, er.line, er.tier_id, er.coverage_id, er.state, er.effect, …)
{
"sql": "SELECT er.rule_id, er.line, er.tier_id, er.coverage_id, er.state, er.effect, er.condition, er.effective_start, er.effective_end, er.reason_doc, er.notes FROM eligibility_rules er WHERE er.line = 'LIFE_W' OR er.coverage_id LIKE 'LIFE_W:%' ORDER BY er.rule_id"
}{
"rows": [
{
"rule_id": "ELIG-LIFE_W-SUIT",
"line": "LIFE_W",
"tier_id": null,
"coverage_id": null,
"state": null,
"effect": "REQUIRE",
"condition": "suitability_record_suitable",
"effective_start": null,
"effective_end": null,
"reason_doc": "KB-SUITABILITY",
"notes": "Whole-life mis-sale (short horizon + tight budget) is a judge-flagged failure."
}
],
"row_count": 1,
"truncated": false
}Broadly, for a whole-life policy like yours, cash value usually becomes more usable over years, not months.
What I can say from PEICO’s guidance is:
- Early years: cash value accrues slowly, and surrender charges can apply for the first several policy years.
- A few months in: there may be little or no practical amount available after charges.
- Policy loans vs. withdrawals: a loan may be available before a partial surrender is attractive, but it still depends on the actual cash value and loan rules.
- Best source: the in-force illustration will show year-by-year projected values, so you can see when the policy begins to have a meaningful accessible amount.
So for a kitchen renovation in the near term, I’d treat the policy as something to check, but not assume it will provide much usable cash yet. When you request the illustration, ask them to include the current value and projected values at policy years 1, 3, 5, and 10 — that will give you a clearer timeline.
That's really helpful, thank you. So I'll request that illustration and see what the numbers actually look like. I appreciate you walking me through this.
⚙ end_conversation()
{}{
"ok": true,
"note": "Deliver your closing message now."
}You’re very welcome, Eleanor. I’m glad I could help clarify what to ask for and what to watch for. Once you have the illustration, PEICO Life Service or your agent can walk through the exact numbers with you. Thanks for contacting PEICO, and take care.