매출 원장 · 세금계산서 목록 · 채권 명세 같은 계정 리스트 파일 하나로 감사 표본 조서(설계 · 표본 · 평가)를 엑셀로 만든다. 파일을 먼저 읽고 허용왜곡표시 · 위험 수준 · 결산일 · 계층화 · 시산표 금액 같은 판단만 한 번에 물은 뒤 바로 뽑는다. 금액 단위 표본(MUS)이 기본이고 무작위 · 체계적 · 특정 항목 선정도 된다. 같은 시드면 같은 표본이 나오고, 표본 크기 근거(모집단 금액 · 허용왜곡표시 · 위험 수준 · 신뢰계수 · 표본 간격)와 모집단 대사(시산표 금액과의 차이)를 조서에 남긴다. 감사인이 검사 결과 · 왜곡표시 금액을 적으면 상한 왜곡표시(기본 정밀도 + 투영 + 증분 허용)로 평가한다. "샘플링", "표본 뽑아줘", "이 파일로 샘플링", "매출 표본", "채권 표본", "MUS", "금액 단위 표본", "표본 크기", "신뢰계수", "표본 간격", "표본 평가", "왜곡표시 투영", "감사기준서 530", "거래처별로 뽑아", "계층화",...
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of 표본Sampling?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/hany202507-sampling)
---
name: 표본sampling
description: 매출 원장 · 세금계산서 목록 · 채권 명세 같은 계정 리스트 파일 하나로 감사 표본 조서(설계 · 표본 · 평가)를 엑셀로 만든다. 파일을 먼저 읽고 허용왜곡표시 · 위험 수준 · 결산일 · 계층화 · 시산표 금액 같은 판단만 한 번에 물은 뒤 바로 뽑는다. 금액 단위 표본(MUS)이 기본이고 무작위 · 체계적 · 특정 항목 선정도 된다. 같은 시드면 같은 표본이 나오고, 표본 크기 근거(모집단 금액 · 허용왜곡표시 · 위험 수준 · 신뢰계수 · 표본 간격)와 모집단 대사(시산표 금액과의 차이)를 조서에 남긴다. 감사인이 검사 결과 · 왜곡표시 금액을 적으면 상한 왜곡표시(기본 정밀도 + 투영 + 증분 허용)로 평가한다. "샘플링", "표본 뽑아줘", "이 파일로 샘플링", "매출 표본", "채권 표본", "MUS", "금액 단위 표본", "표본 크기", "신뢰계수", "표본 간격", "표본 평가", "왜곡표시 투영", "감사기준서 530", "거래처별로 뽑아", "계층화", "엑셀 줄게 표본 뽑아줘" 가 언급되면 트리거.
---
# 표본sampling
표본 크기 계산 · 추출 · 투영은 엔진이 한다. 허용왜곡표시(보통 수행중요성) · 위험 수준 · 왜곡표시 금액 · 결론은 감사인의 판단이다. Claude 는 숫자를 만들지 않고 엔진 출력을 옮긴다.
- 엔진: 이 스킬 폴더의 `scripts/`. 감사 엔진 가운데 데이터 판독(`scripts/audit/dataset.py`), 표본 크기 · 추출(`scripts/audit/workpapers/sampling.py`), 평가(`sampling_eval.py`), 조서(`scripts/audit/sample_wp.py`)를 담았다. 방법론 값은 `scripts/definitions/sampling.yaml`(위험 수준별 신뢰수준 · 신뢰계수, 확장계수, 시드)
- 근거: 감사기준서 530 문단 6 ~ 15(표본 설계 · 규모 · 추출 · 절차 · 왜곡표시 투영 · 결과 평가), A4 ~ A13, A17 ~ A23, 500 문단 A64 ~ A66(특정 항목 선정), 모집단 완전성은 530 문단 A5 · 500 문단 9
- 계산: 표본 간격 = (허용왜곡표시 − 예상 왜곡표시 × 확장계수) ÷ 신뢰계수, 표본 점 수 = 올림(모집단 금액 ÷ 간격). 신뢰계수는 오류 0건 기대의 포아송 상한 −ln(1 − 신뢰수준)(높음 95% 3.00 · 보통 90% 2.31 · 낮음 80% 1.61 · 기본 1.00, 신뢰수준 약 63%). 간격 이상인 항목은 반드시 걸린다. 평가는 상한 왜곡표시 = 기본 정밀도(신뢰계수 × 간격) + 투영 + 증분 허용 + 변이를 허용왜곡표시와 견준다. 예상 왜곡표시 0 으로 뽑은 표본은 왜곡이 하나라도 나오면 「초과」 가 된다
- 예시 자료: `examples/모의자료/매출원장.xlsx`(가상 회사 가온정밀(가상)의 2025년 매출 원장 1,200행). 아래 「시험해 보기」
## 넣을 것
| 넣을 것 | 무엇 | 없으면 |
|---|---|---|
| 그 계정의 리스트(파일) | 한 줄에 항목 하나와 금액. 매출이면 거래 · 세금계산서 줄, 채권이면 거래처별 잔액 줄. 엑셀(xlsx · xls)이나 csv. 제목 줄 · 합계 행이 섞여 있어도 머리줄을 찾아 읽는다. 일자 · 거래처 · 구분 열이 있으면 결산일 · 거래처 묶기 · 계층화에 쓴다 | 뽑을 수 없다 |
| 허용왜곡표시(보통 수행중요성) | 감사인 판단 | 뽑을 수 없다 |
| 그 계정의 시산표 · 원장 금액 | 리스트 합계가 그 계정 금액과 맞는지(모집단이 완전한지) 대사한다 | 뽑을 수는 있다. 조서 「설계」 시트 대사 칸이 비어 있고 보고에 대사하지 않았다고 적는다 |
표본 크기는 리스트의 0 보다 큰 금액 합계로 엔진이 계산한다. 시산표 · 원장 금액은 리스트가 빠짐없는지 확인하는 대사에만 쓴다.
## 돌리는 법
```bash
python scripts/run.py scan <리스트.xlsx> [--tm <허용왜곡표시>] --json # 묻기 전에 읽기(조서는 만들지 않음)
python scripts/run.py make <리스트.xlsx> --tm <허용왜곡표시> --risk <위험 수준> --assertion <경영진 주장> --fy-end YYYY-MM-DD \
[--expected <예상 왜곡표시>] [--strata <계층 열>] [--tail-months 3] [--group <거래처 열>] [--method mus|random|systematic|specific] \
[--company <회사>] [--control <시산표 금액>] [--out <조서.xlsx>]
python scripts/run.py eval <표본_파일.xlsx>
```
- 조서는 리스트 파일 옆 `표본_<파일 이름>.xlsx` 에 생긴다(`--out` 으로 바꾼다). 시트는 「설계」(목적 · 모집단 · 대사 · 크기 · 계층 · 근거 문장) · 「표본」(항목별 검사 결과 · 증빙 · 왜곡표시 금액 기입란, 아래에 평가 수식) · 「모집단에서 뺀 항목」(금액 0 이하 행 · 결산일 뒤 행)이다.
- 파일 경로는 절대 경로로 준다. 금액 열을 못 찾으면 `--amount <열 이름>`, 시트가 여럿이면 `--sheet`.
- 같은 조서가 있으면 감사인이 적은 값을 옮긴다. 옮길 칸이 없는 값이 있으면 멈추고, 감사인이 버려도 된다고 할 때만 `--force`.
## 순서
1. **먼저 읽는다.** 아무것도 묻기 전에 `scan <파일> --json` 을 돌린다. 감사인이 허용왜곡표시를 이미 말했으면 `--tm` 을 붙인다. 금액 열을 못 찾으면 그 오류와 시트의 머리줄을 보여 주고 금액 열 이름만 묻는다.
2. **한 번에 묻는다.** 먼저 읽은 내용을 세 줄로 보인다. 시트 · 금액 열(다른 숫자 열이 있으면 「공급가액으로 읽었습니다. 합계금액 · 세액 열도 있습니다」) · 행 수 · 0 보다 큰 금액 · 일자 범위를 적고, 금액 0 이하 행과 결산일 뒤 행은 모집단에서 뺀다고 알린다. 이어서 아래를 번호로 묻는다. 고르는 질문은 질문 도구가 있으면 그것으로 한 번에 묻고, 금액은 글로 받는다. 감사인이 이미 말한 것은 묻지 않는다. 「추천대로」 라고 답하면 ① 만 받고 나머지는 추천값으로 뽑는다.
- ① **허용왜곡표시**(보통 수행중요성) 금액과 근거. 추천값을 내지 않는다(엔진도 Claude 도 정하지 않는다).
- ② **테스트 목적**(경영진 주장). 매출 · 매입 장부면 발생사실, 채권 명세면 실재성을 추천한다. 완전성은 이 파일로는 볼 수 없고 출고 · 수주 자료에서 모집단을 뽑아야 한다고 함께 적는다(500 문단 A31).
- ③ **위험 수준**. 매출이면 높음(신뢰계수 3.00)을 추천한다. 감사기준서 240 문단 27 이 수익인식을 부정위험으로 추정하기 때문이다. 보통 2.31 · 낮음 1.61 · 기본 1.00 도 함께 보인다. ① 을 이미 들었으면 scan 의 위험 수준별 점 수를 옆에 적는다.
- ④ **예상 왜곡표시**. 전기 왜곡이나 통제 결함이 없으면 0 을 추천한다. 0 이면 표본이 가장 작지만, 왜곡이 하나라도 나오면 평가가 「초과」 가 된다고 한 줄로 적는다.
- ⑤ **결산일**. scan 의 결산일 어림과, 그 사업연도에 들지 않아 빠질 행 수를 보인다(「결산일을 2025-12-31 로 보았습니다. 2026-01-03 행 1건은 사업연도에 들지 않아 뺍니다. 다르면 알려 주십시오」).
- ⑥ **계층화 여부**. scan 에 계층 후보가 있으면 그 열로 계층화하는 것을 추천한다. 매출이면 결산일 앞 3개월을 따로 보는 것(`--tail-months 3`, 기간귀속)도 추천한다. 채권 잔액 확인처럼 거래처 단위 절차면 거래처 묶기(`--group <거래처 열>`)를 추천한다. 해당하는 것이 없으면 묻지 않는다.
- ⑦ **시산표 · 원장 금액**(그 계정 전체 금액). scan 의 사업연도 순합계(반품 포함, 결산일 뒤 제외)를 보이고, 그 계정의 시산표 금액을 알려 달라고 한다. 모르면 비워도 뽑는다. 이때는 감사인이 「설계」 시트에 금액을 넣어야 대사가 된다고 함께 적는다. 「추천대로」 라고 하고 이 금액을 주지 않았으면 대사 없이 뽑는다.
표본 방법은 묻지 않고 금액 단위 표본(`mus`)으로 한다. 감사인이 다른 방법을 말하면 그것으로 한다. 금액이 작은 항목도 고르게 보려면 `random`, 일자순으로 고르게 퍼진 표본은 `systematic`, 고액 · 상위 n 건 · 결산일 전후처럼 기준으로 고르면 `specific`(표본감사 아님, 투영 안 함)이다.
3. **바로 뽑는다.** 답을 받으면 `make` 를 돌린다. 회사명을 들었으면 `--company`, 시산표 금액을 들었으면 `--control` 을 붙인다. 금액 열을 바꾸라고 했으면 `--amount`.
4. **보고한다.** 이 순서로 적는다.
1. 조서 파일 경로.
2. 모집단 대사. 엔진 출력 「모집단 대사」 줄(사업연도 순합계 − 시산표 금액 = 차이)을 옮긴다. 차이가 0 이 아니면 원인 확인을 감사인에게 부탁한다(리스트에 빠진 항목이 있으면 표본 결과를 그 계정 근거로 쓸 수 없다). 금액을 받지 않았으면 대사하지 않았다고 적는다.
3. 초기값으로 정한 것(답을 듣지 못한 위험 수준 등). 없으면 건너뛴다.
4. 고른 항목 수 · 표본 간격 · 계층별 수 · 뺀 행(까닭별) · 시드. 고른 항목 수는 엔진 출력 「고른 항목 n건 = 고액 전수 k건 + 간격 선정 m건」 을 그대로 옮긴다. 간격 선정 항목은 찍힌 점 수와 같거나 적고(한 항목에 점이 여럿이면 적다), 계획 점은 계층마다 올림해 실제 점보다 많을 수 있다.
5. 다음 할 일. 「표본 시트의 검사 결과 · 증빙 · 왜곡표시 금액을 채우고 검사가 끝났다고 알려 주시면 평가합니다」 처럼 쓴다.
5. **평가한다.** 감사인이 검사가 끝났다고 하면 `eval <조서>` 를 돌리고 판정 문구를 그대로 옮긴다(엑셀 「허용왜곡표시와 견줌」 과 같다). 「초과」 면 문단 A23 대응(회사 조사 · 수정 요구, 표본 확대, 다른 절차)을 감사인에게 묻는다. 왜곡표시의 성격 · 원인, 평가, 모집단 결론은 감사인이 조서 평가 칸에 적는다.
## 평가 계산
- 간격 이상 항목(고액 전수)의 왜곡표시는 그대로 더한다. 간격 미만 항목은 오염률(왜곡표시 ÷ 장부 금액)을 큰 순서로 늘어놓고 오염률 × 간격 × (포아송 상한 계수 증가분)으로 투영 + 증분 허용을 낸다. 과대계상과 과소계상을 따로 낸다.
- 상한 왜곡표시 = 기본 정밀도(신뢰계수 × 간격) + 투영 + 증분 허용 + 변이. 큰 쪽을 허용왜곡표시와 견준다. 표 오른쪽에 항목별 투영 · 증분 수식과 계수 표가 있어 엑셀에서 따라갈 수 있고, `eval` 이 같은 값을 낸다.
- 무작위 · 체계적 표본은 계층별 비율 투영(왜곡표시 합 ÷ 표본 금액 × 계층 금액)이다. 특정 항목 선정은 투영하지 않는다(500 문단 A64 ~ A66).
- 예상 왜곡표시를 적고 뽑으면 간격이 줄고 표본이 늘지만, 작은 왜곡이 나와도 「이내」 가 될 여유가 생긴다. 왜곡을 예상하는 감사 건은 ④ 에서 금액을 받는다.
## 시험해 보기
```bash
python scripts/run.py scan examples/모의자료/매출원장.xlsx --tm 300000000
python scripts/run.py make examples/모의자료/매출원장.xlsx --tm 300000000 --risk 높음 --fy-end 2025-12-31 \
--strata 구분 --tail-months 3 --control 5164264000 --company "가온정밀(가상)" --assertion 발생사실
```
기대 결과: 금액 열 공급가액(세액 · 합계금액 열도 있음), 금액 0 이하 13건, 결산일 어림 2025-12-31 과 그 뒤 1건, 사업연도 순합계 5,164,264,000원, 계층 후보 「구분」(제품 · 상품 · 수출), 거래처 40곳. 표본 간격 100,000,000원, 모집단 1,187건 5,169,472,000원, 대사 차이 0원, 고른 항목 48건 = 고액 전수 8건 + 간격 선정 40건, 계층 여섯(구분 × 기간). 「표본」 시트에 검사 결과를 채우고 왜곡표시 금액을 적은 뒤 `eval` 을 돌리면 판정이 나온다.
## 지킬 것
- 시드를 임의로 바꿔 원하는 표본이 나올 때까지 다시 뽑지 않는다. 시드를 바꾸면 까닭을 감사인에게 묻고 조서에 적게 한다.
- 다시 뽑으면 이전 표본 항목의 검사 결과는 같은 항목에만 옮겨진다. 빠진 항목의 결과가 있으면 엔진이 멈춘다. 감사인이 버려도 된다고 할 때만 `--force`.
- `scripts/definitions/sampling.yaml` 값은 감사반 방법론 값으로 바꿀 수 있다. 바꾸면 줄 끝 주석에 날짜와 출처를 남긴다. 조서 안 숫자를 손으로 고치지 않는다.
- 금액이 0 이하인 항목은 모집단에서 빠지고 「모집단에서 뺀 항목」 시트에 적힌다. 반품 · 에누리 · 음수 잔액은 따로 검토하도록 보고한다.
- 왜곡표시 금액 · 평가 · 결론을 Claude 가 적지 않는다. 판정 문구는 엔진 출력 그대로 옮긴다.
- 회사 리스트와 조서를 저장소나 공유 폴더에 올리지 않는다.
- 문체: 줄표와 비유 명사를 쓰지 않고 물음표로 끝내지 않는다. 감사인에게 부탁은 「주십시오」. 「사업연도 밖」 대신 「사업연도에 들지 않는」 으로 쓴다.