docs: 도메인 지식 문서 신입사원 교육용 확장

- 목차(TOC) 추가
- §3 보험 기초(보험을 처음 접한다면) — 보험료/보험종류/유지율/위촉해촉 등 입문 용어
- §7 수수료 계산 공식과 숫자 예시 — 기본 3단계 공식(보험료×보험사요율×지급률)
  + 모집/분급(7년)/차등환수/오버라이드/세금상세 worked example
  (CommissionCalculator·TaxCalculator·CalcOverrideStep 실제 코드 기준)
- §13 용어 사전 확장(보험 기초 용어 + 요율 용어 추가)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
GA Pro
2026-05-31 10:48:27 +09:00
parent 81877dcb2b
commit 70620463b4
+184 -27
View File
@@ -1,8 +1,27 @@
# 보험 GA 수수료 정산 — 도메인 기본 지식
# 보험 GA 수수료 정산 — 도메인 기본 지식 (신입사원 교육용)
> 이 문서는 GA 수수료 정산 시스템을 처음 접하는 개발자/담당자가 **업무 도메인**을 이해하기 위한 입문입니다.
> 코드 구조가 아니라 "이 업무가 무엇인지"를 설명합니다. 표준 가정값은 한국 보험업감독규정 기준이며,
> 실제 회사 정책과 다르면 코드가 아니라 데이터(`system_config` / `regulatory_limit` / `installment_ratio` / `chargeback_grade`)만 바꾸면 됩니다.
> 이 문서는 **보험을 처음 접하는 신입사원/개발자**가 GA 수수료 정산 업무를 이해하기 위한 입문·교육 자료입니다.
> 코드 구조가 아니라 "이 업무가 무엇이고, 수수료를 어떻게 계산하는지"를 설명합니다.
> 표준 가정값은 한국 보험업감독규정 기준이며, 실제 회사 정책과 다르면 코드가 아니라
> 데이터(`system_config` / `regulatory_limit` / `installment_ratio` / `chargeback_grade`)만 바꾸면 됩니다.
---
## 목차
1. [한 문장 요약](#1-한-문장-요약)
2. [등장 인물과 핵심 개념](#2-등장-인물과-핵심-개념)
3. [보험 기초 — 보험을 처음 접한다면](#3-보험-기초--보험을-처음-접한다면)
4. [수수료의 종류 (이 도메인의 핵심)](#4-수수료의-종류-이-도메인의-핵심)
5. [규제 룰 — 왜 "그냥 곱하면" 안 되는가](#5-규제-룰--왜-그냥-곱하면-안-되는가)
6. [세금과 공제 — 실지급액은 어떻게 정해지나](#6-세금과-공제--실지급액은-어떻게-정해지나)
7. [수수료 계산 공식과 숫자 예시 (가장 중요)](#7-수수료-계산-공식과-숫자-예시-가장-중요)
8. [월 정산 파이프라인 (실제 배치 12단계)](#8-월-정산-파이프라인-실제-배치-12단계)
9. [정산의 상태(Status) 흐름](#9-정산의-상태status-흐름)
10. [정산 그 이후 — 회계·세무·지급](#10-정산-그-이후--회계세무지급)
11. [KPI / 분석](#11-kpi--분석)
12. [자주 헷갈리는 포인트 (FAQ)](#12-자주-헷갈리는-포인트-faq)
13. [용어 빠른 사전](#13-용어-빠른-사전)
---
@@ -22,8 +41,7 @@
| **조직** | Organization | 설계사가 속한 지점·본부 트리. 오버라이드(상위 직책 수당)의 기준. |
| **상품** | Product | 보험 상품. 상품별로 수수료율이 다름. |
| **계약** | Contract | 고객이 가입한 보험증권 1건. 정산의 **기준 단위**. |
| **수수료** | Commission | 보험사→GA→설계사로 흐르는 돈. 종류가 매우 다양 (3장 참고). |
| **정산** | Settlement | 한 달치 수수료를 설계사별로 계산·확정·지급하는 과정. |
| **수수료** | Commission | 보험사→GA→설계사로 흐르는 돈. 종류가 매우 다양 (4장 참고). |
| **원장** | Ledger | 계산의 최소 단위 기록 (계약×월×수수료종류 1줄). |
| **정산 마스터** | settle_master | 원장을 설계사×월로 합산한 지급 확정 단위. |
| **명세서** | Statement | 설계사에게 발급하는 "이번 달 얼마 받는지" 내역서. |
@@ -36,13 +54,36 @@
---
## 3. 수수료의 종류 (이 도메인의 핵심)
## 3. 보험 기초 — 보험을 처음 접한다면
수수료를 이해하려면 보험 자체의 기본 용어부터 알아야 합니다. (보험을 한 번도 안 다뤄봤다는 가정)
| 용어 | 쉬운 설명 |
|---|---|
| **보험계약** | 고객이 "매달 얼마 낼 테니, 사고/사망/만기 때 보장해줘"라고 보험사와 맺은 약속 (증권 1장 = 계약 1건). |
| **보험료 (Premium)** | 고객이 보험사에 내는 돈. 보통 **월납**(매달)·연납·일시납. 수수료 계산의 출발점. |
| **계약자/피보험자/수익자** | 돈 내는 사람 / 보장 대상인 사람 / 보험금 받는 사람. (셋이 같을 수도 다를 수도) |
| **보험종류** | 크게 **생명보험**(사망·종신·연금)과 **손해보험**(자동차·화재·실손). 종류마다 수수료율이 다름. |
| **회차 / 차년** | 계약이 몇 번째 해/달째 유지 중인지. **1차년(초년도)**의 모집수수료가 가장 큼. |
| **납입 / 미납 / 실효** | 보험료를 냈는지(납입) / 안 냈는지(미납) / 안 내서 계약이 끊긴 상태(실효). |
| **유지 / 해지 / 부활** | 계약이 살아있음(유지) / 고객이 끊음(해지) / 실효된 걸 되살림(부활). |
| **유지율 (Persistency)** | 가입한 계약이 일정 기간(13개월·25개월) 뒤에도 살아있는 비율. **영업 건전성의 핵심 지표.** |
| **청약 / 인수(언더라이팅)** | 고객이 가입 신청(청약) → 보험사가 위험 심사 후 받아들임(인수). |
| **위촉 / 해촉** | 설계사가 GA에 소속되는 것(위촉) / 소속이 끝나는 것(해촉). 해촉 시 계약이 후임에게 **승계**됨. |
> **왜 보험사가 GA에, GA가 설계사에게 돈을 주나?**
> 보험사는 직접 영업하는 대신 GA·설계사가 고객을 데려오면 그 대가로 **수수료**를 준다.
> 즉 수수료는 "계약을 따오고(모집) 잘 유지시킨(유지)" 대가다. 그래서 계약이 일찍 깨지면 **환수**(돌려받기)한다.
---
## 4. 수수료의 종류 (이 도메인의 핵심)
수수료는 "한 번에 다 주는 것"이 아니라 **계약의 생애주기**에 따라 여러 종류로 나뉜다.
| 종류 | 코드 | 언제 발생 | 누구에게 | 비고 |
|---|---|---|---|---|
| **모집수수료** | recruit | 계약 체결 시 (초년도) | **원 모집설계사** | 가장 큼. 보통 분급(3-1) 대상 |
| **모집수수료** | recruit | 계약 체결 시 (초년도) | **원 모집설계사** | 가장 큼. 보통 분급(5-2) 대상 |
| **유지수수료** | maintain | 계약 유지되는 매월/매년 | 현재 관리설계사 | 계약 승계 시 후임에게 귀속 전환 |
| **수금수수료** | collection | 보험료가 실제 납입될 때 | 관리설계사 | 납입 실적 기반 |
| **갱신수수료** | renewal | 계약 갱신 시 | 관리설계사 | 갱신형 상품 |
@@ -56,21 +97,21 @@
---
## 4. 규제 룰 — 왜 "그냥 곱하면" 안 되는가
## 5. 규제 룰 — 왜 "그냥 곱하면" 안 되는가
수수료는 법으로 한도와 지급 방식이 정해져 있다. 단순 계산이 아니라 아래 룰을 모두 통과해야 한다.
### 4-1. 1200% 룰 (보험업감독규정 제5-15조의5)
### 5-1. 1200% 룰 (보험업감독규정 제5-15조의5)
- 초년도(1차년)에 설계사에게 줄 수 있는 모집수수료 총액은 **연납보험료의 1200%**를 넘을 수 없다.
- 추가로 **1차년 한도 35%** 등 연차별 상한이 있다.
-`RegulatoryLimitChecker` 가 누적 지급액을 추적해 한도 초과분을 잘라낸다.
### 4-2. 분급 (Installment) — 나눠 지급
### 5-2. 분급 (Installment) — 나눠 지급
- 큰 모집수수료를 한 번에 주지 않고 **7년에 걸쳐 비율대로 분할** 지급.
- 표준 비율(가정): **35 / 25 / 15 / 10 / 7 / 5 / 3 (%)** — 합 100%.
-`InstallmentPlanGenerator` 가 회차별 지급 스케줄(`installment_plan`)을 만든다.
### 4-3. 차등 환수 (Chargeback) — 조기 해지 시 돌려받기
### 5-3. 차등 환수 (Chargeback) — 조기 해지 시 돌려받기
- 계약이 일찍 깨지면 이미 준 수수료의 일부를 **환수**한다. 유지 기간이 짧을수록 많이 환수.
- 표준 단계(가정):
@@ -85,33 +126,139 @@
---
## 5. 세금과 공제 — 실지급액은 어떻게 정해지나
## 6. 세금과 공제 — 실지급액은 어떻게 정해지나
설계사에게 주는 돈(gross)에서 **세금을 원천징수**하고 **공제**를 빼야 **실지급액(net)**이 된다.
### 5-1. 원천징수 세금 (한국 표준, `system_config` 외부화)
### 6-1. 원천징수 세금 (한국 표준, `system_config` 외부화)
| 항목 | 세율 | 적용 |
|---|---|---|
| 사업소득 원천징수 | **3.3%** | 일반 설계사(사업소득자) |
| 기타소득 원천징수 | **8.8%** | 기타소득 유형 |
| 지방소득세 | 원천세의 **10%** | (3.3% 안에 0.3%로 포함되는 구조) |
| 부가가치세 | **10%** | 사업자(과세) 설계사가 세금계산서 발행 시 |
| 지방소득세 | 소득세의 **10%** | 소득세에 부가 |
| 부가가치세 | **10%** | 과세사업자 설계사가 세금계산서 발행 시 (GA가 설계사에 추가 지급) |
### 5-2. 공제 (Deduction)
### 6-2. 공제 (Deduction)
- 가지급금(선지급) 회수, 대출 상환, 기타 차감 등을 매월 정산액에서 뺀다.
- `agent_deduction`(월별 차감 마스터) + `payment_deduction_detail`(이체 명세)로 관리.
### 5-3. 실지급액 계산 공식 (개념)
### 6-3. 실지급액 계산 공식 (개념)
```
gross(총수수료)
− 원천세(소득세 + 지방소득세)
공제(가지급금 등)
(+ 부가세, 과세사업자인 경우)
= net(실지급액) → 설계사 계좌로 이체(펌뱅킹)
```
---
## 6. 월 정산 파이프라인 (실제 배치 12단계)
## 7. 수수료 계산 공식과 숫자 예시 (가장 중요)
> 이 장이 핵심입니다. 실제 코드(`CommissionCalculator`, `TaxCalculator`, `CalcOverrideStep`)가 쓰는 공식을 그대로 정리하고 숫자로 풀어봅니다.
### 7-1. 기본 공식 (모집·유지수수료 공통)
계약 1건의 수수료는 **세 번 곱하기**로 끝납니다.
```
① 보험사 지급액 = 보험료(premium) × 보험사요율(company_rate %)
② 설계사 수수료 = 보험사 지급액 × 지급률(payout_rate %)
③ 원천세 = 설계사 수수료 × 3.3%
─────────────────────────────────────────────────────
원장 기록 = 설계사 수수료 − 원천세
```
- **보험사요율(company_rate)**: 보험사가 이 상품에 주는 비율. **상품 × 회차(차년) × 기준일**로 결정.
- **지급률(payout_rate)**: GA가 받은 돈 중 설계사에게 주는 비율. **설계사 등급 × 보험종류 × 회차**로 결정.
→ 같은 계약이라도 **등급이 높은 설계사일수록 지급률이 높다.**
- 모집수수료와 유지수수료는 **공식이 같고**, 회차(`commission_year`)만 다릅니다. (모집=1차년, 유지=2차년 이후)
- 모든 금액은 `BigDecimal`, 반올림 `HALF_UP`, 소수점 2자리.
### 7-2. 숫자 예시 A — 모집수수료 1건
| 항목 | 값 | 계산 |
|---|---|---|
| 보험료 (연환산) | 1,000,000원 | (가정) |
| 보험사요율 | 60% | 상품·1차년 기준 |
| **① 보험사 지급액** | **600,000원** | 1,000,000 × 60% |
| 지급률 (설계사 등급) | 75% | 등급·보험종류·1차년 |
| **② 설계사 수수료** | **450,000원** | 600,000 × 75% |
| **③ 원천세 (3.3%)** | **14,850원** | 450,000 × 3.3% |
| **원장 실수령** | **435,150원** | 450,000 14,850 |
### 7-3. 숫자 예시 B — 분급(7년 분할) 적용 시
위 모집수수료 450,000원이 분급 대상이면, 한 번에 다 주지 않고 7년에 나눠 줍니다.
| 차년 | 비율 | 지급액 |
|---|---|---|
| 1차년 | 35% | 157,500원 |
| 2차년 | 25% | 112,500원 |
| 3차년 | 15% | 67,500원 |
| 4차년 | 10% | 45,000원 |
| 5차년 | 7% | 31,500원 |
| 6차년 | 5% | 22,500원 |
| 7차년 | 3% | 13,500원 |
| **합계** | **100%** | **450,000원** |
→ 즉 계약 직후 통장에 들어오는 건 450,000원이 아니라 **1차년분 157,500원(에서 세금 차감)** 입니다.
### 7-4. 숫자 예시 C — 차등 환수 (조기 해지)
이 계약이 **13개월차에 해지**되면, 유지 13~24개월 구간 환수율 **50%**가 적용됩니다.
```
환수액 = 기지급 모집수수료 × 환수율
= 450,000 × 50% = 225,000원 ← 다음 정산에서 (-)로 차감
```
→ 유지 12개월 이내였다면 환수율 100%(전액 환수), 85개월 이상이면 0%(환수 없음).
### 7-5. 숫자 예시 D — 오버라이드 (상위 직책 수당)
하위 설계사의 실적에 대해 **상위 직책자**가 받는 수당입니다.
```
오버라이드 = 하위 실적(base) × 오버라이드율(override_pct) (단, cap 초과 시 cap 금액으로 제한)
```
| 항목 | 값 |
|---|---|
| 하위 설계사 월 실적(base) | 2,000,000원 |
| 오버라이드율 | 4% |
| 오버라이드 | 80,000원 (= 2,000,000 × 4%) |
| (cap이 100,000원이면) | 80,000원 그대로 (cap 미만) |
### 7-6. 숫자 예시 E — 세금 상세 (과세사업자 설계사)
설계사 수수료 450,000원을 **사업소득 + 과세사업자**로 정산할 때 (`TaxCalculator` 기준):
| 항목 | 값 | 계산 |
|---|---|---|
| 설계사 수수료 (gross) | 450,000원 | |
| 소득세 (3.3%) | 14,850원 | 450,000 × 3.3% |
| 지방소득세 (소득세의 10%) | 1,485원 | 14,850 × 10% |
| 부가세 (10%, 과세사업자) | +45,000원 | 450,000 × 10% (추가 지급) |
| **실지급액 (net)** | **478,665원** | 450,000 14,850 1,485 + 45,000 |
> 여기에 가지급금 등 **공제**가 있으면 net에서 추가로 빠집니다.
> 비과세/면세 설계사는 부가세(+45,000) 항목이 없습니다.
### 7-7. 한 장 정리
```
보험료 ──×보험사요율──▶ 보험사지급액 ──×지급률──▶ 설계사수수료(gross)
┌─ (분급) 7년 분할 ─┐ │
└─ (환수) 조기해지 차감 ┘
gross − 원천세(소득세+지방세) − 공제 (+부가세) = 실지급액(net) ──▶ 계좌이체
```
---
## 8. 월 정산 파이프라인 (실제 배치 12단계)
매월 `ga-batch``MonthlySettlementJob` 이 아래 순서로 실행된다. (`POST /internal/jobs/monthly-settlement {"settleMonth":"yyyyMM"}`)
@@ -134,7 +281,7 @@ gross(총수수료)
---
## 7. 정산의 상태(Status) 흐름
## 9. 정산의 상태(Status) 흐름
정산 마스터는 함부로 다시 못 바꾸도록 상태로 잠근다.
@@ -149,7 +296,7 @@ DRAFT(계산됨) → CONFIRMED(확정) → PAID(지급완료)
---
## 8. 정산 그 이후 — 회계·세무·지급
## 10. 정산 그 이후 — 회계·세무·지급
| 영역 | 내용 | 산출물 |
|---|---|---|
@@ -163,7 +310,7 @@ DRAFT(계산됨) → CONFIRMED(확정) → PAID(지급완료)
---
## 9. KPI / 분석
## 11. KPI / 분석
- **월별 요약 / 조직별 요약**: 지급 총액, 인원, 평균 등 (Materialized View).
- **유지율(Retention)**: 13회차/25회차 유지율 — 보험 영업 건전성의 핵심 지표.
@@ -172,25 +319,34 @@ DRAFT(계산됨) → CONFIRMED(확정) → PAID(지급완료)
---
## 10. 자주 헷갈리는 포인트 (FAQ)
## 12. 자주 헷갈리는 포인트 (FAQ)
1. **"수수료를 왜 한 번에 안 주나?"** → 1200% 룰·분급 규제 + 조기 해지 환수 리스크 때문. 7년 분할이 표준.
2. **"설계사가 그만두면 그 계약 수수료는?"** → 유지수수료는 후임(승계)에게, 모집수수료는 원 설계사에게.
3. **"gross인데 통장엔 적게 들어와요"** → 원천세(3.3%) + 공제(가지급금 등)가 빠진 net이 실지급액.
3. **"gross인데 통장엔 적게 들어와요"** → 원천세(3.3%) + 공제(가지급금 등)가 빠진 net이 실지급액. (단, 과세사업자는 부가세가 더해짐)
4. **"확정한 달을 다시 돌렸는데 안 바뀌어요"** → 정상. CONFIRMED/PAID는 보호되고, 바로잡으려면 정정 전표를 쓴다.
5. **"표준 세율/한도가 우리 회사랑 달라요"** → 코드 수정 불필요. `system_config`·`regulatory_limit`·`installment_ratio`·`chargeback_grade` 데이터만 변경.
5. **"같은 계약인데 설계사마다 수수료가 달라요"** → 지급률(payout_rate)이 **설계사 등급**에 따라 다르기 때문. (7-1 참고)
6. **"표준 세율/한도가 우리 회사랑 달라요"** → 코드 수정 불필요. `system_config`·`regulatory_limit`·`installment_ratio`·`chargeback_grade` 데이터만 변경.
---
## 11. 용어 빠른 사전
## 13. 용어 빠른 사전
| 한글 | 영문 | 한 줄 |
|---|---|---|
| 보험료 | Premium | 고객이 내는 돈. 수수료 계산의 출발점 |
| 보험종류 | Insurance type | 생명/손해. 종류별 요율 다름 |
| 회차/차년 | Commission year | 계약 몇 년째인지. 1차년이 가장 큼 |
| 유지/실효/부활 | Inforce/Lapse/Reinstate | 계약 살아있음/끊김/되살림 |
| 유지율 | Persistency | 13·25개월 뒤 계약 생존율 |
| 위촉/해촉 | Appoint/Terminate | 설계사 소속 시작/종료 |
| 정산 | Settlement | 월별 수수료 계산·확정·지급 |
| 원장 | Ledger | 계산 최소 단위 기록 |
| 보험사요율 | Company rate | 보험사가 GA에 주는 비율(상품·회차별) |
| 지급률 | Payout rate | GA가 설계사에 주는 비율(등급·보험종류별) |
| 모집수수료 | Recruit commission | 계약 체결 초년도 수수료 |
| 유지수수료 | Maintain commission | 계약 유지 기간 수수료 |
| 오버라이드 | Override | 상위 직책자 수당 |
| 오버라이드 | Override | 상위 직책자 수당(하위실적×율) |
| 분급 | Installment | 수수료 분할 지급(7년) |
| 차등환수 | Chargeback | 조기 해지 시 환수 |
| 원천징수 | Withholding | 세금 미리 떼기(3.3%) |
@@ -204,3 +360,4 @@ DRAFT(계산됨) → CONFIRMED(확정) → PAID(지급완료)
---
*기준: 한국 보험업감독규정 표준 가정값. 시스템 schema v87 (2026-05 기준). 표준값은 모두 데이터로 외부화되어 코드 변경 없이 조정 가능.*
*계산 공식 출처: `CommissionCalculator` / `TaxCalculator` / `CalcOverrideStep` 실제 코드.*