Stop Loss Insurance
Stop Loss Insurance ประกันภัย Self-Insurance Specific Aggregate Deductible Attachment Point Claims Expected Fully Insured Level Funded
| ประเภท | คุ้มครอง | Deductible | เบี้ย |
|---|---|---|---|
| Specific Stop Loss | ค่ารักษา 1 คนเกิน Deductible | 200K-1M บาท/คน | 3-8% Expected |
| Aggregate Stop Loss | ค่ารักษารวมเกิน Aggregate | 120-125% Expected | 1-3% Expected |
| Fully Insured | ทั้งหมด (บริษัทประกันรับ) | ไม่มี | สูงสุด |
| Level Funded | ผสม (มี Stop Loss รวม) | กำหนดตาม Plan | ปานกลาง |
การคำนวณ
# === Stop Loss Insurance Calculator ===
from dataclasses import dataclass
@dataclass
class StopLossCalc:
employees: int
avg_claim_per_person: float
specific_deductible: float
aggregate_factor: float
specific_rate: float
aggregate_rate: float
def calculate_stop_loss(calc):
expected_claims = calc.employees * calc.avg_claim_per_person
aggregate_deductible = expected_claims * calc.aggregate_factor
specific_premium = expected_claims * calc.specific_rate
aggregate_premium = expected_claims * calc.aggregate_rate
total_premium = specific_premium + aggregate_premium
admin_cost = expected_claims * 0.08 # TPA 8%
total_cost = expected_claims + total_premium + admin_cost
return {
"expected_claims": expected_claims,
"aggregate_deductible": aggregate_deductible,
"specific_premium": specific_premium,
"aggregate_premium": aggregate_premium,
"total_premium": total_premium,
"admin_cost": admin_cost,
"total_cost": total_cost,
}
# Example: 500 employees
calc = StopLossCalc(
employees=500,
avg_claim_per_person=30000, # 30,000 บาท/คน/ปี
specific_deductible=500000, # 500,000 บาท/คน
aggregate_factor=1.25, # 125%
specific_rate=0.05, # 5%
aggregate_rate=0.02, # 2%
)
result = calculate_stop_loss(calc)
print("=== Stop Loss Calculation ===")
print(f" Employees: {calc.employees}")
print(f" Avg Claim: {calc.avg_claim_per_person:,.0f} บาท/คน/ปี")
print(f" Expected Claims: {result['expected_claims']:,.0f} บาท")
print(f" Specific Deductible: {calc.specific_deductible:,.0f} บาท/คน")
print(f" Aggregate Deductible: {result['aggregate_deductible']:,.0f} บาท ({calc.aggregate_factor*100:.0f}%)")
print(f" Specific Premium: {result['specific_premium']:,.0f} บาท ({calc.specific_rate*100:.0f}%)")
print(f" Aggregate Premium: {result['aggregate_premium']:,.0f} บาท ({calc.aggregate_rate*100:.0f}%)")
print(f" Total Stop Loss Premium: {result['total_premium']:,.0f} บาท")
print(f" Admin/TPA Cost (8%): {result['admin_cost']:,.0f} บาท")
print(f" Total Self-Insured Cost: {result['total_cost']:,.0f} บาท")
เปรียบเทียบ Plans
# === Plan Comparison ===
@dataclass
class PlanComparison:
plan: str
cost_pct: str
risk: str
flexibility: str
best_for: str
plans = [
PlanComparison("Fully Insured",
"100% (Baseline)",
"ต่ำ (บริษัทประกันรับทั้งหมด)",
"ต่ำ (Benefit ตาม Plan สำเร็จรูป)",
"บริษัทเล็ก < 50 คน ไม่ต้องการ Complexity"),
PlanComparison("Self-Insured + Stop Loss",
"75-90% (ประหยัด 10-25%)",
"ปานกลาง (ถึง Deductible)",
"สูง (ออกแบบ Benefit เอง)",
"บริษัทใหญ่ 200+ คน Cash Flow ดี Claims History ดี"),
PlanComparison("Level Funded",
"85-95% (ประหยัด 5-15%)",
"ต่ำ-ปานกลาง (มี Stop Loss รวม)",
"ปานกลาง",
"บริษัท 50-200 คน เริ่มต้น Self-Insure"),
PlanComparison("Captive Insurance",
"70-85% (ประหยัด 15-30%)",
"สูง (รับเสี่ยงเอง + Reinsurance)",
"สูงมาก",
"บริษัทใหญ่มาก 1000+ คน Group of Companies"),
]
print("=== Plan Comparison ===")
for p in plans:
print(f"\n [{p.plan}]")
print(f" Cost: {p.cost_pct}")
print(f" Risk: {p.risk}")
print(f" Flexibility: {p.flexibility}")
print(f" Best for: {p.best_for}")
Claims Management
# === Claims Management Process ===
@dataclass
class ClaimStep:
step: str
action: str
responsible: str
timeline: str
steps = [
ClaimStep("1. Claim Submission",
"พนักงานยื่นเคลมค่ารักษา พร้อมใบเสร็จ ใบรับรองแพทย์",
"พนักงาน → HR",
"ภายใน 30 วันหลังรักษา"),
ClaimStep("2. Claim Processing",
"TPA (Third Party Administrator) ตรวจสอบเอกสาร ความถูกต้อง",
"TPA",
"5-10 วันทำการ"),
ClaimStep("3. Claim Payment",
"นายจ้างจ่ายค่ารักษา (Self-Insured Fund)",
"นายจ้าง",
"ภายใน 15 วันหลัง Approve"),
ClaimStep("4. Specific Stop Loss Claim",
"ถ้าค่ารักษา 1 คนเกิน Specific Deductible → เคลม Stop Loss",
"TPA → Stop Loss Insurer",
"30-60 วัน"),
ClaimStep("5. Aggregate Stop Loss Claim",
"สิ้นปี ถ้าค่ารักษารวมเกิน Aggregate Deductible → เคลม",
"TPA → Stop Loss Insurer",
"60-90 วันหลังสิ้นปี"),
ClaimStep("6. Reporting",
"รายงาน Claims Monthly/Quarterly ให้นายจ้าง",
"TPA → HR/CFO",
"รายเดือน/ไตรมาส"),
]
print("=== Claims Process ===")
for s in steps:
print(f" [{s.step}] {s.action}")
print(f" By: {s.responsible}")
print(f" Timeline: {s.timeline}")
เคล็ดลับ
- Claims Data: วิเคราะห์ Claims History 3-5 ปี ก่อนตัดสินใจ Self-Insure
- Cash Flow: สำรองเงิน 2-3 เดือน Claims ก่อนเริ่ม Self-Insure
- TPA: เลือก TPA (Third Party Administrator) ที่มีประสบการณ์
- Deductible: เลือก Specific Deductible ตาม Risk Tolerance ของบริษัท
- Wellness: ลงทุน Wellness Program ลด Claims ระยะยาว
การนำความรู้ไปประยุกต์ใช้งานจริง
แหล่งเรียนรู้ที่แนะนำ ได้แก่ Official Documentation ที่อัพเดทล่าสุดเสมอ Online Course จาก Coursera Udemy edX ช่อง YouTube คุณภาพทั้งไทยและอังกฤษ และ Community อย่าง Discord Reddit Stack Overflow ที่ช่วยแลกเปลี่ยนประสบการณ์กับนักพัฒนาทั่วโลก
เปรียบเทียบข้อดีและข้อเสีย
จากตารางเปรียบเทียบจะเห็นว่าข้อดีมีมากกว่าข้อเสียอย่างชัดเจน โดยเฉพาะในแง่ของประสิทธิภาพและความสามารถในการ Scale สำหรับข้อเสียส่วนใหญ่สามารถแก้ไขได้ด้วยการเรียนรู้อย่างเป็นระบบและวางแผนทรัพยากรให้เหมาะสม
Stop Loss Insurance คืออะไร
ประกันภัย Self-Insurance คุ้มครองค่ารักษาเกิน Deductible Specific ต่อคน Aggregate รวม ประหยัด 10-25% Catastrophic Loss
วิธีคำนวณอย่างไร
Specific Deductible 200K-1M/คน Aggregate 120-125% Expected Claims เบี้ย Specific 3-8% Aggregate 1-3% Admin TPA 8%
เปรียบเทียบกับ Fully Insured อย่างไร
Fully Insured ง่าย แพง Self-Insured ประหยัด 10-25% ยืดหยุ่น Level Funded ผสม 5-15% Captive 15-30% Cash Flow Risk
เลือก Plan อย่างไร
จำนวนพนักงาน Cash Flow Claims History Risk Tolerance Deductible Aggregate Factor TPA Wellness Program
สรุป
Stop Loss Insurance ประกันภัย Self-Insurance Specific Aggregate Deductible ประหยัด 10-25% Claims TPA Fully Insured Level Funded
