리스회계 · git:20261019.b4e6045 · 2026-10-19 · sha256 1ebae58a62e6d618
리스회계 git:20261019.b4e6045A
Immutable. This exact content never changes and is served at /api/v1/blob/1ebae58a62e6d618.
---
name: 리스회계
description: 임대차계약서(.docx/.pdf)를 입력하면 K-IFRS 1116을 처리해 수식이 살아있는 전표 엑셀(.xlsx)을 자동 산출한다. 추출(AI)로 리스조건을 뽑고, 계산(Python 결정적 엔진)으로 현재가치·유효이자율 상각·정액 감가상각·전표를 1원도 안 틀리게 만들며, 할인율·갱신·단기리스 등 핵심 가정은 회계사가 확정한다. 엑셀 4시트(전표·리스부채상각표·사용권자산상각표·입력가정)는 전부 수식이라 할인율·리스료를 바꾸면 자동 재계산된다. "리스회계", "리스 전표", "K-IFRS 1116", "사용권자산", "리스부채", "리스 상각표", "임대차계약 회계처리" 등이 언급되면 트리거.
---
# 리스회계(K-IFRS 1116) 전표 에이전트 — 추출(AI) / 계산(코드) / 판단(회계사)
임대차계약서를 입력받아 **AI 추출 + 결정적 계산 + 수식 엑셀**로 1116 전표·상각표를
자율 산출한다. 할인율·리스료를 바꾸면 전 시트가 자동 재계산되어 그 자체로 감사 가능하다.
더 자세한 회계모델·함정표는 `reference/회계모델.md`.
**전제: 계산은 코드, 기준 판단은 회계사. 전표는 1원도 틀리면 안 된다. 비식별·이모지 미사용.**
## 핵심 원리
- **추출(AI)**: 계약서에서 1116 조건(개시일·기간·월리스료·지급시점·할인율·보증금·갱신옵션 등)을 표로 추출.
- **계산(Python 결정적)**: 현재가치 → 유효이자율 상각 → 정액 감가상각 → 전표. 매번 동일, 1원도 안 틀림.
- **판단(회계사)**: 할인율(IBR)·갱신옵션·단기/소액 면제 등 핵심 가정은 회계사가 확정(가정 명시).
## 기본값: 묻지 말고 진행한다. 막히면 대안으로 자동 전환
1. **산출 범위**: 월별 전표 전부 + 상각표 2종.
2. **할인율**: 계약서에 내재이자율 있으면 그것, 없으면 증분차입이자율(IBR) **5%** 가정(가정 명시). 5% 는 계산을 진행하기 위한 자리값이다. 회사의 실제 차입금리·신용도·리스기간으로 회계사가 정한 IBR 로 바꾼 뒤 확정한다.
3. **입력 경로**: 사용자가 준 계약서 파일(또는 `입력/` 폴더).
4. **단기·소액 면제**: 자동 판단 후 플래그(해당되면 비용처리 안내).
5. **지급시점·상각**: 계약서 따름(불명 시 **월 선급** 가정), 정액법.
보증금은 리스료가 아니므로 **임차보증금 자산으로 분리(PV 계산 제외)**.
## 절차
### 0. 입력 점검
계약서 파일 경로를 확인한다. 없으면 어떤 파일을 처리할지 사용자에게 묻는다(이때만 멈춤).
### 1. 계약서 추출 (AI)
- `.docx/.pdf/.txt`: `python "{skill}/scripts/read_contract.py" "<계약서>"` 로 텍스트를 덤프해 읽는다.
- PDF는 pypdf로 텍스트 레이어를 추출한다(디지털 PDF).
- **스캔본 PDF**(텍스트가 거의 없으면)는 스크립트가 안내 메시지를 내므로, **Read 도구로 PDF를 직접 읽어** 조건을 추출한다(OCR 대체).
- 형식이 애매하거나 표가 복잡하면 Read 도구로 직접 읽어 보완한다.
- 1116 조건을 표로 정리하고 **조건 JSON**을 `<작업폴더>/output/조건_<이름>.json` 에 저장한다.
스키마(필드명 고정):
```json
{
"계약명": "비식별ID", "개시일": "YYYY-MM-DD", "리스기간_개월": 36,
"월리스료": 2000000, "부가세구분": "별도|포함|면세",
"연할인율": 0.05, "할인율_출처": "내재이자율 없음 -> IBR 5% 가정",
"지급시점": "선급|후급", "상각기간_개월": 0,
"보증금": 20000000, "리스개설직접원가": 0, "선급리스료": 0,
"리스인센티브": 0, "복구원가추정": 0,
"매수선택권": false, "단기소액면제": false
}
```
- 할인율: 계약서의 **연체이자율(지연손해금)을 할인율로 오인하지 말 것**. 내재이자율 명시가 없으면 IBR 5%.
- 부가세: 공급가액 기준으로 통일. 임대료가 부가세 포함액이면 `"부가세구분":"포함"`(엔진이 ÷1.1).
- `상각기간_개월`: 0이면 리스기간 사용. 매수선택권 행사 확실 시 내용연수 입력.
- 합격 기준: 추출표가 계약서와 일치. 보증금이 임차보증금으로 분리됨.
### 2. 결정적 엔진 + 수식 엑셀
```
python "{skill}/scripts/lease_engine.py" "<output>/조건_<이름>.json" "<output>/리스회계_<이름>.xlsx"
```
- 산출: `리스회계_<이름>.xlsx`(4시트 전부 수식) + `리스회계_<이름>_result.json`(엔진 지표·검증).
- 엔진은 현재가치(PV)→유효이자율 상각표→정액 감가상각표→전표를 만들고, 모든 수치를 **셀 참조 수식**으로 연결한다.
입력가정의 할인율·리스료를 바꾸면 상각표·전표가 자동 재계산된다.
- `_result.json`의 `all_pass`, `리스부채_PV`, `사용권자산_ROU`, `총이자`, `단기소액면제_플래그`를 확인한다.
### 3. 수식 검산 (삼중 일치)
```
python "{skill}/scripts/verify_lease.py" "<output>/리스회계_<이름>.xlsx"
```
- `formulas` 라이브러리로 워크북을 독립 재계산 → **엔진값 = 수식값** 확인. 검증 항목 전부 PASS여야 한다.
- 차변합=대변합, 리스부채·사용권자산 기말잔액 0, 총리스료−리스부채=총이자.
### 4. 단기·소액 면제 처리 (해당 시)
`_result.json`의 `단기소액면제_플래그`가 true이면(12개월 이하·매수선택권 없음 또는 소액):
자산·부채 인식 없이 **차)지급리스료 / 대)보통예금** 으로 비용처리함을 사용자에게 안내한다(1116.5).
### 5. 사용자 보고
검증 PASS/FAIL, 핵심 지표(PV·ROU·총이자), 가정(할인율 출처·지급시점), 생성물 경로를 요약한다.
입력가정 할인율을 바꾸면 자동 재계산됨을 한 줄로 시연 안내한다. FAIL이 있으면 원인과 함께 보고하고 임의 확정하지 않는다.
## 산출물 — 엑셀 4시트(전부 수식)
| 시트 | 내용 |
|---|---|
| 입력가정 | 할인율·리스료 입력(노란칸) + PV/ROU/총이자/월이자율 수식(초록칸) + 검증(파란칸) |
| 리스부채상각표 | 기초·지급·이자·기말 (유효이자율법) + 현가계수·현가(PV의 SUM 원천) |
| 사용권자산상각표 | 당기상각·누계·장부 (정액법, 마지막 잔차 보정으로 기말 0) |
| 전표 | 일자·전표번호·적요·계정·차변/대변 + 합계·차대검증(IF 수식) |
## 함정과 대안 (엔진에 반영됨)
보증금=임차보증금 분리 / 연체이자율≠할인율(IBR 5%) / 감가는 개시월부터 / 마지막 지급월까지만 상각표 /
부가세 공급가액 통일(÷1.1) / 값이 아닌 **셀 참조 수식** / 시트명 괄호 금지(크로스시트 안전) /
전표 금액 ROUND 정수·상각표 정밀값(각 전표 차=대 동일액이라 차대 항상 일치).
## 개시 전표
사용권자산 = 리스부채 + 선급리스료 + 리스개설직접원가 + 복구원가 − 리스인센티브. 구성요소마다 상대계정이 다르므로 한 줄로 묶지 않는다.
| 구성요소 | 차변 | 대변 |
|---|---|---|
| 리스부채 | 사용권자산 | 리스부채 |
| 선급리스료 | 사용권자산 | 선급리스료 |
| 리스개설직접원가 | 사용권자산 | 보통예금 |
| 복구원가 | 사용권자산 | 복구충당부채 |
| 리스인센티브 | 보통예금 | (사용권자산 차감) |
사용권자산 전표금액은 구성요소를 각각 반올림해 더한 값이라 차대가 반올림 차이 없이 맞는다.
## 테스트
`tests/test_engine.py` 가 합성 계약 조건으로 엔진 값을 연금 현재가치 닫힌 식과 맞추고, 엑셀 수식을 `formulas` 로 독립 재계산해 엔진 값과 맞춘다.
```
python -m pytest -q tests
```
## 커맨드
`/리스회계 <계약서경로>`.
## 거버넌스
계산은 코드·판단은 회계사 · 할인율/갱신/단기리스 가정 명시 · 수식 기반(재계산 가능) · 비식별 · 이모지 미사용 ·
모든 산출물은 회계사 검토 후 확정.