Files
jarca-ledger-mcp/docs/runbooks/manual-balance-reconciliation.md
T

58 lines
2.9 KiB
Markdown

# 수동 증빙 및 잔액대조 Runbook
- Source: REQ-003 / BAT-003 / dcy-003
- Last Updated (KST): 2026-06-29
- Owner: 렛저장인
## 목적
거래내역 파일이 없거나 일부만 import 가능한 계좌(`manual_only`, `partial_import`)를 대상으로 수동 증빙 거래를 입력하고 기준 잔액과 계산 잔액을 대조한다.
## 안전 원칙
1. 운영 DB 변경 전 dcy-002 절차에 따라 DB 상태 evidence를 확인하고 백업을 생성한다.
2. 검증 DB에서 먼저 preview/reconcile을 수행한다.
3. restore는 사용자 명시 승인 없이는 실행하지 않는다.
4. 원문 증빙, 평문 계좌번호, 비밀번호, 민감 counterparty 원문은 문서/로그/커밋에 남기지 않는다.
## 계좌 상태 정의
- `unknown`: 아직 statement 지원 여부가 정리되지 않음.
- `import_supported`: 기존 statement import 흐름으로 처리 가능.
- `manual_only`: statement-unavailable 계좌. 수동 증빙 및 잔액대조 대상.
- `partial_import`: 일부 statement import 가능하지만 누락 구간 수동 보완 및 잔액대조 대상.
## 입력 포맷
잔액대조 report 입력:
- `account_id`: 특정 계좌만 대조할 때 사용. 비우면 활성 `manual_only`, `partial_import` 계좌 전체.
- `baseline_balance`: 기준 잔액. 없으면 계좌 `last_balance` 사용.
- `baseline_at`: 기준 시각. `YYYY-MM`은 해당 월 말일 `23:59:00+09:00`, `YYYY-MM-DD`는 해당일 `23:59:00+09:00`, ISO datetime은 수시 스냅샷 시각.
- `source_note`: 예: 월말 앱 잔액, 통장 화면 메모 등 비민감 출처 설명.
- `memo`: 운영자 메모.
## 절차
1. 계좌 화면 또는 MCP/service로 `statement_status`를 설정한다.
2. 수동 증빙 거래는 `source='manual'`, 양수 금액, 거래일, 계좌, 비민감 메모를 갖추어 입력한다.
3. `get_balance_reconciliation_report`를 실행한다.
4. 결과를 확인한다.
- `OK`: 차액 절대값이 1,000원 이하.
- `REVIEW_NEEDED`: 차액 절대값이 1,000원 초과. 후보 판정값 중 하나로 수동 검토한다.
- `BASELINE_REQUIRED`: 기준 잔액이 없어 판정 불가.
5. `REVIEW_NEEDED`는 `계좌이동`, `실지출`, `실수입`, `투자이동`, `분석제외`, `확인필요` 중 하나로 수동 확정할 근거를 모은다.
## 판정 기준
- 계좌이동: 같은 소유자의 다른 계좌 입출금과 금액/일자/상대방 근거가 맞음.
- 실지출: 외부로 자금이 나갔고 household expense로 보아야 함.
- 실수입: 외부에서 들어온 실제 수입.
- 투자이동: 증권/투자 계좌 매수·매도·입출금 등 투자 포지션 이동.
- 분석제외: 금융 내부 조정, 오류 정정, 분석에 넣으면 왜곡되는 항목.
- 확인필요: 근거 부족으로 확정 보류.
## 제외
자동 스케줄링/알림, 전용 워크벤치, 자동 확정 mutation은 이번 runbook 범위가 아니다.