분개테스트 · git:20261021.c52c275 · 2026-10-21 · sha256 48de76964ec524ed

분개테스트 git:20261021.c52c275A

Immutable. This exact content never changes and is served at /api/v1/blob/48de76964ec524ed.

---
name: 분개테스트
description: 회사 분개장 엑셀 전부를 엔진이 판독해 감사 분개 테스트(JET, 한공회 3600-JET) 조서를 엑셀로 만든다. 완전성(차대 일치 · 손익계정 분개장 순액 = 시산표), 시험 스무 가지의 건수 · 금액 · 결과 목록, 회계사 검토 칸을 낸다. 시험은 주말 · 공휴일, 기말 후 취소 · 역분개, 결산일 근처 큰 금액, 드문 계정 조합, 끝자리 0 반복, 적요 없음, 수기 조정, 전표 형식 이상, 전표번호 중복 · 순서 역전, 한 번만 나온 거래처의 큰 금액, 결산일 근처 이익을 늘린 전표, 중복 의심, 대표 · 주주 · 임원 관련 계정, 자본 계정, 적요 주의 낱말, 계정별로 평소보다 큰 금액, 그리고 작성자 · 승인자 · 입력일시 열이 있을 때 자기 승인, 드물게 분개한 작성자, 결산 후 입력, 업무 시간이 아닌 입력이다. 첫 자리 분포(벤포드) · 월별 매출 · 전표번호 연속성 분석 시트와 여러 시험에 걸린 전표 시트도 낸다. 더존 · 위하고 등 여러 꼴의 분개장(한 줄에 계정 하나인 꼴, 한 행에 차변 계정 · 대변 계정이 함께 있는 꼴)을 읽는다. "JET", "분개 테스트", "분개장 전수", "3600-JET", "기말 후 취소 전표", "역분개", "주말 전표", "수기 전표", "이상 분개", "경영진 무시 위험", "저널 엔트리 테스트", "자기 승인 전표", "결산 후 입력", "전표번호 누락", "중복 전표", "벤포드", "가지급금 전표"가 언급되면 트리거.
---

# 분개테스트

분개장 판독과 시험 판정은 엔진이 한다. 걸린 전표가 정상 거래인지는 회계사가 결과 목록의 검토 결과 칸에 적는다.

- 엔진: 이 스킬 폴더의 `scripts/`. 감사 엔진에서 분개장 판독과 JET 에 쓰는 부분만 담았다(`scripts/audit/workpapers/jet.py`, 분개장 판독 `scripts/audit/reader.py`). 시험 정의는 `scripts/definitions/jet.yaml`(기준 일수 · 비율 · 낱말 · 공휴일 · 계정 묶음 · 작성자 열 이름)
- 근거: 감사기준서 240 문단 33(a) · A42~A45(경영진의 통제무력화에 대응하는 분개 테스트, A44 부정한 분개의 특성), 감사기준서 550(특수관계자), 한공회 3600 부정의 검토
- 시험해 보기: `examples/모의자료/`(가상 회사 가온정밀(가상)의 2025 분개장 · 결산일 후 분개장 · 시산표). 아래 「시험해 보기」 절

## 시험

| 묶음 | 시험 | 전표별 검토 |
|---|---|---|
| 분개장만 있으면 돈다 | 주말 · 공휴일 전표 | 선택 |
| | 기말 후 취소 · 역분개(결산일 전 전표와 짝, 짝 없는 기말 후 매출 차변) | 필수 |
| | 결산일 근처 큰 금액(결산일 전 15일, 수행중요성 × 0.5) | 필수 |
| | 드문 계정 조합(당기 1번 나온 조합, 비용을 자산으로 대체 등 규칙 4개) | 필수 |
| | 끝자리 0 반복(1천만원 단위 · 1억 이상) | 선택 |
| | 적요 없음 | 선택 |
| | 수기 조정 전표(입력구분 열, 없으면 결산일 근처 적요 낱말) | 필수 |
| | 전표 형식 이상(전표별 차대 불일치 · 계정이 빈 줄 · 음수 금액) | 필수 |
| | 전표번호 중복 · 순서 역전(번호는 뒤인데 일자가 7일 이상 앞선 전표) | 필수 |
| | 한 번만 나온 거래처의 큰 금액(당기 전표 1건뿐인 거래처, 수행중요성 × 0.5) | 필수 |
| | 결산일 근처 이익을 늘린 전표(결산일 전 15일, 이익 효과 ≥ 수행중요성 × 0.5) | 필수 |
| | 중복 의심 전표(계정 · 거래처 · 금액이 같은 이웃한 두 전표가 3일 안) | 필수 |
| | 대표 · 주주 · 임원 관련 계정(가지급금 · 가수금 · 주임종 채권채무, 거래처 이름에 대표이사가 든 전표) | 필수 |
| | 자본 계정 분개 | 필수 |
| | 적요 주의 낱말(착오 · 임시 · 가계정 · 취소 · 상계 등) | 선택 |
| | 계정별로 평소보다 큰 금액(그 계정 중앙값의 10배 이상 · 수행중요성 × 0.5 이상) | 선택 |
| 작성자 · 승인자 · 입력일시 열이 있을 때 | 작성자 = 승인자 · 승인 없음 | 필수 |
| | 드물게 분개한 작성자(작성한 전표 5건 이하) | 필수 |
| | 결산 후 입력 · 늦은 입력(결산일 후 입력, 일자보다 30일 이상 늦게 입력) | 필수 |
| | 업무 시간이 아닌 입력(22시~6시, 주말 · 공휴일 입력) | 선택 |

전표번호 순서 역전 · 음수 금액 · 중복 의심 · 승인 없음은 걸린 전표가 많으면(당기 전표의 5% 이상, 승인 없음은 승인자 칸이 절반 넘게 빈 경우) 전표마다 올리지 않고 요약 시트 조건 칸에 메모로 남긴다. 번호를 입력 순서로 붙이거나 마이너스 전표 · 자동 전표를 늘 쓰는 회사에서 목록이 분개장 전체가 되지 않게 하려는 것이다.

분석 시트(분개장 전체의 분포): 첫 자리 분포(벤포드, 평균절대편차 MAD 로 판정), 월별 전표 · 매출(결산월 매출이 월평균의 1.5배 이상이면 표시), 전표번호 연속성(빠진 번호). 「여러 시험에 걸린 전표」 시트는 시험 둘 이상에 걸린 전표를 걸린 시험 수 순으로 모은다. 결과 목록에는 전표마다 이익 효과(손익계정 순효과)와, 열이 있으면 작성 · 승인 · 입력 정보가 붙는다.

## 돌리는 법

```bash
python scripts/run.py <당기 분개장.xlsx> [<분개장2.xlsx> ...] --fy-end 2025-12-31 \
    [--after <결산일 후 분개장.xlsx>] [--tb <회사제시 시산표 · 재무제표.xlsx>] [--pm <수행중요성>] [--company <회사>] --out <결과 폴더>
```

- 결과 폴더에 `3600-JET_분개테스트.xlsx` 와 작업용 감사 폴더(`_감사폴더`)가 남는다. 다시 돌리면 지난 작업용 폴더를 지우고 새로 만든다. OneDrive 폴더처럼 읽기 전용 속성이 붙은 폴더도 속성을 풀고 지운다. 다른 프로그램이 안의 파일을 열고 있어 끝내 못 지우면 `_감사폴더_<시각>` 에 새로 만들고 출력에 한 줄 알린다.
- 분개장이 분기 · 월별 파일이면 모두 준다. 기간이 겹치는 부분 분개장(권한 검토용 분기 분개장 등)은 엔진이 합치지 않는다.
- 사업연도가 1월 시작이 아니면 `--fy-start` 를 준다.

## 순서

1. **자료 확인**: 당기 전체 분개장, 결산일 후 1~2개월 분개장, 회사제시 시산표가 있는지 본다. 결산일 후 분개장이 없으면 기말 후 취소 시험이 돌지 않는다. 시산표가 없으면 손익계정 완전성 대사를 하지 않는다. 분개장에 작성자 · 승인자 · 입력일시 열이 없으면 그 열을 쓰는 시험 네 가지가 돌지 않는다. 빠진 것은 회사에 요청하라고 회계사에게 알린다(전산에서 분개장을 내려받을 때 작성자 · 승인자 · 입력일시 · 입력구분 열을 넣어 달라고 한다).
2. **수행중요성**: 회계사가 정한 수행중요성을 `--pm` 으로 준다. 결산일 근처 큰 금액 · 한 번만 나온 거래처 · 이익을 늘린 전표 · 계정별로 평소보다 큰 금액의 기준이다. 모르면 묻고, 답이 없으면 빼고 돌린 뒤 앞의 세 시험이 돌지 않았다고 알린다(계정별로 평소보다 큰 금액은 1천만원 하한으로 돈다).
3. **돌리기**: 위 명령. 출력에 시험마다 건수와 메모가 나온다.
4. **보고**: 완전성(차대 차이 · 손익계정 차이가 0 이 아니면 그 계정을 맨 앞에)과 시험별 건수 · 금액을 적고, 아래 항목을 먼저 짚는다.
   - 여러 시험에 걸린 전표: 「여러 시험에 걸린 전표」 시트(출력 끝줄에는 많이 걸린 다섯 건)를 걸린 시험 수가 많은 순으로 적는다. 한 번만 나온 거래처 · 이익을 늘린 전표 · 자기 승인 · 결산 후 입력이 함께 걸린 전표가 가장 먼저 볼 전표다.
   - 기말 후 취소 · 역분개: 결산일 전 전표와 짝이 맞는 기말 후 반대 분개는 원 전표 · 취소 전표가 한 쌍으로 나온다. 짝마다 거래처 · 금액 · 두 일자를 적는다. 짝이 없는 기말 후 매출 차변도 따로 적는다.
   - 드문 계정 조합: 근거 칸의 규칙 이름(매출 상대 계정이 매출채권 · 현금이 아님, 매출 대 미지급금, 비용을 자산으로 대체, 부가세예수금 없는 외상 매출)이 붙은 전표.
   - 결산일 근처 이익을 늘린 전표: 결과 목록의 이익 효과 칸 합계와 전표마다 무엇이 이익을 늘렸는지(매출 · 비용 대체 · 재고 조정).
   - 작성자 · 승인자 · 입력일시: 자기 승인 · 승인 없음 전표의 작성자, 결산일 후 입력한 전표의 입력일, 밤 · 주말 입력. 열이 없으면 없다고 적는다.
   - 수기 조정 전표: 분개장에 입력구분 열이 없으면 결산일 근처 적요 낱말로 찾은 결과다. 회사 전산의 수기 전표 목록을 받아 대조해 달라고 회계사에게 적는다.
   - 메모로 돌린 시험: 조건 칸에 「목록에 올리지 않았습니다」 가 있으면 건수와 까닭을 그대로 옮기고 회사 전산 확인을 부탁한다.
   - 분석: 결산월 매출 배수, 첫 자리 분포 판정, 빠진 전표번호 수. 첫 자리 분포가 부적합이어도 정가 · 고정 금액이 많은 회사는 정상일 수 있다고 함께 적는다.
5. **회계사 몫**: 요약 시트의 시험별 · 분석별 확인 칸과 결과 목록의 필수 검토 결과(위 표의 「필수」 시험)를 회계사가 채운다.

## 시험해 보기

`examples/모의자료/` 는 제조업체 가온정밀(가상)의 자료다. 회사 · 거래처 · 사람 이름과 숫자는 모두 지어냈고, 기말 후 매출 취소 같은 이상 전표를 일부러 심었다. 분개장에는 작성자 · 승인자 · 입력일시 열이 있다(어떤 전표를 심었는지는 `tests/make_entry_columns.py` 머리말).

```bash
python scripts/run.py examples/모의자료/분개장_2025.xlsx --after examples/모의자료/분개장_2026_기말후.xlsx \
    --tb examples/모의자료/재무제표_시산표.xlsx --fy-end 2025-12-31 --pm 60000000 --company "가온정밀(가상)" --out out
```

기대 결과: 분개장 1,751행 · 차대 일치. 주말 · 공휴일 1, 기말 후 취소 · 역분개 6, 결산일 근처 큰 금액 32(기준 30,000,000), 드문 계정 조합 10, 끝자리 0 반복 16, 적요 없음 0, 수기 조정 4, 전표 형식 이상 0, 전표번호 중복 · 순서 역전 0, 한 번만 나온 거래처 4, 이익을 늘린 전표 5, 중복 의심 0, 대표 · 주주 · 임원 0, 자본 0, 적요 주의 낱말 3, 계정별로 평소보다 큰 금액 4, 자기 승인 · 승인 없음 5, 드물게 분개한 작성자 5, 결산 후 입력 6, 업무 시간이 아닌 입력 6. 결산월 매출은 월평균의 2.12배다.

## 지킬 것

- 시험 기준값을 바꾸려면 `scripts/definitions/jet.yaml` 을 고치고 줄 끝 주석에 날짜와 까닭을 적는다. 조서 안 숫자를 손으로 고치지 않는다.
- 회사 분개장의 작성자 · 승인자 · 입력일시 열 이름이 `jet.yaml` 의 `entry_columns` 에 없으면 그곳과 `scripts/audit/reader.py` 의 `JOURNAL_EXTRA` 에 같이 더한다.
- 걸린 전표를 「부정」 이라고 쓰지 않는다. 「검토가 필요한 전표」 로 적는다. 결론은 회계사 몫이다. 분석 시트의 판정(부적합 · 배수)도 더 살펴볼 신호로만 적는다.
- 주말 · 공휴일 전표, 끝자리 0 반복, 적요 없음, 적요 주의 낱말, 계정별로 평소보다 큰 금액, 업무 시간이 아닌 입력 시험은 건수가 많을 수 있다. 시험 단위 확인만 필수이고 전표별 검토 결과는 선택이다.
- 공휴일 표는 2024~2026 이다. 다른 해 감사면 `jet.yaml` 에 그해 공휴일을 먼저 더한다.
- 고객 분개장과 결과 파일을 저장소나 공유 폴더에 올리지 않는다.
- 문체: 줄표와 비유 명사를 쓰지 않고 물음표로 끝내지 않는다. 회계사에게 부탁은 「주십시오」.