# AEG-VS-06-01: 비용/세금/환율 일정 계약 승인 요청

**WBS Item:** AEG-VS-06-01  
**Status:** ⏳ BLOCKED → DECISION_REQUIRED  
**Decision Owner:** PM, Architecture, Compliance/Owner  
**Blocks:** MaintainFeeTaxFxSchedule Slice (VS-06-01), Cost Basis 계산, 포트폴리오 재조정  
**Impact:** 금융 기능 미구현, 비용 정산 불가능, 규정 준수 불명확  

---

## 근본 원인

**WBS vs 기존 문서 충돌:**

| 항목 | WBS 정의 | 기존 문서 (VS-06) | 충돌 |
|------|---------|-----------------|------|
| **Slice 목표** | MaintainFeeTaxFxSchedule | Stress Testing | ⚠️ 직교 |
| **요구사항** | REQ-COST-001 | 없음 | ❌ 미정 |
| **마이그레이션** | MIG-COST-001/002 | 0035 (unrelated) | ❌ 불일치 |
| **Job** | J04C (비용 유지) | 없음 | ❌ 미정 |
| **API** | T-COST-001, UI-COST-01 | 없음 | ❌ 미정 |

**의사결정 필요:**
- VS-06은 진짜 뭐야? (Stress Testing vs MaintainFeeTaxFxSchedule)
- WBS 순서 변경해야 함? (VS-06/07/... 재번호)
- Cost 기능은 새 VS 번호 할당? (VS-30/31?)

---

## 필요한 5가지 결정

### 1️⃣ Slice 정의 명확화 (Scope Clarification)

**결정:** WBS "MaintainFeeTaxFxSchedule"의 공식 정의

```
Option A: 기존 VS-06 유지 (Stress Testing)
- 현재 기존 문서 유지
- MaintainFeeTaxFxSchedule → 새 VS 번호 할당 (VS-30?)
- 비용/세금/환율 일정은 별도 Slice로 추진

Option B: VS-06 재정의 (MaintainFeeTaxFxSchedule)
- WBS 정의로 VS-06 이름 변경
- 기존 Stress Testing → 다른 VS로 이동
- Cost 기능은 이 Slice 아래 포함

Option C: 두 기능 병렬 추진 (Dual Slices)
- VS-06: Stress Testing (기존대로)
- VS-XX: MaintainFeeTaxFxSchedule (신규 slice)
- 의존성 명확화

Approval needed:
✅ 선택: [ ] (A/B/C)
✅ 새 VS 번호 (선택 시): [ ]
✅ 우선순위: [ ] (어느 것이 Gate G1 선행?)
```

### 2️⃣ 비용/세금/환율 데이터 계약 (Data Contract)

**결정:** 3가지 일정의 스키마 및 시간 모델

```
Needed schemas:
- commission_schedule (수수료 일정)
  - account_id, exchange_id, instrument_id, jurisdiction
  - effective_at, published_at (valid-time?)
  - fee_rate, min_fee, max_fee
  
- tax_rate_schedule (세금 일정)
  - jurisdiction (국가/지역)
  - effective_at, published_at
  - capital_gains_rate, withholding_rate
  - applicable_conditions (주식/선물/옵션)
  
- fx_rate_schedule (환율 일정)
  - from_currency, to_currency (e.g., KRW, USD)
  - effective_at (적용 시점)
  - rate, bid, ask, mid
  - source (KRX? Reuters? 직접 입력?)

Questions:
✅ Temporal model: [ ] (effective_at? published_at? both?)
✅ Override 계층: [ ] (account > exchange > instrument > jurisdiction?)
✅ 이력 보관: [ ] (PIT + revision? 또는 현재만?)
✅ 정정 정책: [ ] (덮어쓰기? append? versioning?)

Linked Items:
- AEG-X-038 (Fee/Tax/FX 의사결정)
- Platform data contract v1.0 (PIT envelope)
- Cost Basis calculation (의존 로직)
```

### 3️⃣ Job 4C 실행 정책 (Job 4C Schedule)

**결정:** 비용 일정 갱신 Job의 실행 규칙

```
Current state:
- Job defined in WBS as J04C (MaintainFeeTaxFxSchedule)
- No implementation exists
- Execution policy: UNDEFINED

Questions:
✅ 실행 주기: [ ] (daily? hourly? on-demand?)
✅ 데이터 소스: [ ] (manual upload? API? configuration table?)
✅ 유효성 검증: [ ] (rate bounds? decimal precision?)
✅ 실패 처리: [ ] (transient/permanent/alert?)
✅ 주요 변경 검토: [ ] (자동? SRE 수동 승인?)
✅ Rollback 절차: [ ] (이전 버전 복원 가능?)
✅ 긴급 대응: [ ] (비상 시나리오? 재무팀 핫라인?)

Linked Items:
- OutboxPollerJob (event publishing)
- DapperJobRunRepository (execution tracking)
- AEG-VS-00-05 (Job run 스키마)
```

### 4️⃣ Cost Basis 계산 통합 (Cost Basis Integration)

**결정:** 비용/세금/환율이 Cost Basis에 언제 적용되는가

```
Cost Basis calculation flow:
1. Trade executed (실행 거래)
2. Fetch commission_schedule (수수료 조회)
3. Fetch tax_rate_schedule (세금 조회)
4. Fetch fx_rate (환율 조회)
5. Calculate: Cost = (Price × Qty) + Commission - Tax credit
6. Store in cost_basis table (revision-based PIT)

Questions:
✅ 적용 시점: [ ] (trade execution? trade confirmation?)
✅ 환율 선택: [ ] (execution rate? settlement date rate?)
✅ 세금: [ ] (선제적 계산? 실제 납부 후?)
✅ Commission source: [ ] (정해진 일정? 실제 거래 명세?)
✅ 정정: [ ] (과거 거래 비용 소급 변경 가능?)

Linked Items:
- VS-28 (Trade Execution)
- VS-29 (Portfolio Reconciliation)
- Cost Basis PIT model
- GDPR impact (tax year 7년 보존?)
```

### 5️⃣ 규정 준수 & 감시 (Compliance & Monitoring)

**결정:** 비용 일정의 규정 준수 및 감시 요구사항

```
Compliance scenarios:
- 비용 조정이 특정 거래 후 지나치게 크지는 않은가? (이상 거래 의심)
- 비용이 두 번 계산되지는 않았는가? (중복 계산 방지)
- 환율 변동성이 2% 초과? (시장 변동 이상?)
- 세금 이연이 10만원 초과? (미수금 적신호?)

Questions:
✅ DQ 검증: [ ] (rate bounds? calculation cross-check?)
✅ Audit trail: [ ] (누가 일정을 변경했나? 사유?)
✅ 감시 임계값: [ ] (변경 건수? 금액? 비율?)
✅ Alert 채널: [ ] (이메일/Slack/SMS?)
✅ 정정 승인: [ ] (CFO/Compliance만? 또는 자동?)

Linked Items:
- AuditTrail (compliance.operation_audit_trail)
- Tax compliance (OECD BEPS)
- Financial audit requirements
```

---

## 제출 형식

**승인자는 다음 정보 제공:**

### 1. Slice Definition & Scope
```
VS-06 Definition:
  Option: [ ] (A-Stress Testing / B-Cost/Tax/FX / C-Both)
  
If new slice needed:
  Assigned number: [ ] (VS-30? VS-31?)
  Priority: [ ] (Gate G1 prerequisite?)
```

### 2. Data Contract Specification
```
Commission Schedule Schema: [ ] (link to definition)
Tax Rate Schedule Schema: [ ] (link)
FX Rate Schedule Schema: [ ] (link)

Temporal Model:
  effective_at semantics: [ ]
  published_at semantics: [ ]
  Correction policy: [ ] (overwrite/append/version)

Override Hierarchy: [ ] (account→exchange→instrument→jurisdiction)
```

### 3. Job 4C Execution Policy
```
Execution:
  Frequency: [ ] (daily/hourly/on-demand)
  Data Source: [ ] (manual/API/config table)
  
Validation:
  Rate bounds: [ ] (e.g., ±10%?)
  Precision: [ ] (decimal places)
  
Failure Handling:
  Transient: [ ] (retry policy)
  Permanent: [ ] (alert)
  Emergency: [ ] (hotline/rollback)
```

### 4. Cost Basis Integration
```
Application Point: [ ] (execution/confirmation)

FX Rate Selection: [ ] (execution/settlement)

Tax Treatment: [ ] (prospective/actual)

Commission Source: [ ] (schedule/invoice)

Retroactive Adjustment: [ ] (Yes/No)
```

### 5. Compliance & Monitoring
```
DQ Validation:
  Rate bounds: [ ] (rules)
  Duplicate detection: [ ] (Yes/No)
  
Audit Trail:
  Change tracking: [ ] (Yes/No)
  Approval required: [ ] (Yes/No)
  
Monitoring:
  Alert threshold: [ ] (metrics)
  Escalation: [ ] (channel)
```

---

## 의존성

- **Blocks:** Cost Basis implementation, Portfolio Reconciliation, G1 gate
- **Related:** AEG-X-038 (Fee/Tax/FX decisions), VS-28/29 (Trade/Reconciliation)
- **Prerequisite:** PM/Architect/Compliance/CFO 협력

---

**제출 기한:** 2026-08-21 (1주)  
**승인자:** PM Lead, Architecture, Compliance/Owner, CFO  
**Escalation:** Chief Financial Officer
