SAP 소매재고법 원가율 점검 — IAS 2, 판매가에서 순인하까지 반영한 원가율로 기말 재고 원가를 구해 장부와 맞춰본다
원가율 산출 · 순인상·순인하 반영 · 실사 감모 · 품목군 원가율 편차 · 기말 재고 원가 대사를 부서 단위로 확인합니다
마트·편의점·패션 유통처럼 품목이 수만 개이고 판매가격이 수시로 바뀌는 회사는 품목마다 원가를 따라가기 어렵습니다. 그래서 IAS 2 재고자산(K-IFRS 제1002호)이 허용하는 소매재고법으로 재고의 판매가격(매가)에서 적정한 이익률을 빼 원가를 구합니다. 이때 원래 판매가 아래로 인하된 재고를 원가율에 반영해야 하고, 부서별 평균 원가율을 쓸 수 있습니다.
실무에서는 순인하를 원가율 계산에서 빼 버리거나, 실사에서 확인한 감모를 기말 매가 계산에 넣지 않거나, 이익률이 크게 다른 품목을 한 부서 평균 원가율로 묶거나, 장부 기말 재고에 수기 조정이 섞여 산출 값과 어긋나는 일이 생깁니다. 이 화면은 부서별 판매가능 원가와 판매가능 매가(기초 + 매입 + 순인상 − 순인하)로 원가율을 다시 산출하고 기말 매가에 곱해 기말 재고 원가를 계산한 뒤 장부와 맞춰 보도록 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 6종을 함께 공개합니다.
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) — 재고자산 |
| 관련 기준서 | IAS 2 재고자산(K-IFRS 제1002호) — 소매재고법 원가율 |
| Namespace | zui5.retailcost |
| 셸 구조 | 단일 페이지 + 5개 탭 |
| 화면 수 | 메인 1 · 상세 팝업 1 |
| SAP 표준 T-code | MB5B · MB52 · MB51 · MI07 · FAGLL03 |
| 데이터 연동 방식 | OData V2 (조회조건 전부 $filter) |
| 성격 | 조회·산출·대사·점검형 |
| 테마 | sap_horizon · 한국어 |
| 요약 | 내용 |
|---|---|
| 점검 대상 | 부서별 기초·매입 원가와 매가, 순인상·순인하, 매출, 적용·실사 감모, 원가율(산출·순인하 제외·장부), 기말 원가(산출)와 장부, 품목군 원가율 |
| 핵심 산식 | 원가율 = 판매가능 원가 ÷ 판매가능 매가 · 기말 원가 = 기말 매가 × 원가율 · 차이 = 기말 재고(장부) − 기말 원가(산출) |
| 결과 표시 | 정상 / 점검 필요 |
실제 화면 6종 둘러보기






사용 방법
- 기준 연월을 넣고, 품목 그룹·부서·점검 코드·점검 결과는 필요할 때만 고릅니다. "전체"를 고르면 해당 조건 없이 조회됩니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력란에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 화면을 열면 기본 조건(기준 연월 202612)으로 자동 조회됩니다.
- 요약 지표에서 부서 수, 점검 필요 부서, 판매가능 매가 합계, 기말 원가 합계(산출), 기말 재고 합계(장부), 차이 합계, 정합성 대사 차이 건수를 먼저 확인합니다.
- 탭을 부서 판정 → 가격변경 내역 → 품목군 원가율 → 그룹 요약 → 대사 결과 순으로 옮겨 가며 근거로 좁혀 봅니다.
- 부서 판정에서 행을 누르면 원가율 산출 근거와 가격변경 내역, 품목군별 원가율이 상세 팝업으로 열립니다.
- CSV 내려받기(UTF-8 BOM)로 현재 탭의 결과를 저장할 수 있습니다.
소매재고법 점검 규칙과 판정 순서
화면은 부서마다 R05 → R01 → R04 → R03 → R02 순서로 첫 번째 해당 코드를 붙입니다.
| 점검 코드 | 판정 조건 | 결과 | 사용자 조치 |
|---|---|---|---|
| R05 | 적용 감모(매가)가 실사 감모(매가)와 다름 | 점검 필요 | 실사 감모가 매가 계산에 들어갔는지 확인 |
| R01 | 장부 원가율이 산출 원가율과 0.05%p 넘게 다르고 순인하 제외 원가율과는 같음 | 점검 필요 | 순인하를 원가율에서 뺀 채 쓰고 있는지, 회사 정책이라면 근거가 있는지 확인 |
| R04 | 산출 원가율이 100% 초과 | 점검 필요 | 순실현가능가치 평가 대상 여부 확인 |
| R03 | 품목군 원가율 최대−최소 편차가 8.00%p 이상 | 점검 필요 | 이익률이 비슷한 품목끼리 묶였는지 확인 |
| R02 | 장부 기말 재고와 산출 기말 원가의 차이가 1,000원 초과(위 사유가 아닌 경우) | 점검 필요 | 수기 조정·누락 전표 등 차이 원인 확인 |
| R00 | 위 조건에 모두 해당하지 않음 | 정상 | 조치 없음 |
순인하를 원가율에 어떻게 반영할지와 순실현가능가치 평가는 회사의 회계정책과 감사인이 판단할 영역이며, 이 화면은 반영 구조와 집계가 맞는지만 점검합니다.
원가율 산출부터 기말 재고 원가 대사까지의 순서
- 판매가능 원가 = 기초 원가 + 당기 매입 원가.
- 순인상 = 최초 판매가 인상 − 인상 취소, 순인하 = 판매가 인하 − 인하 취소.
- 판매가능 매가 = 기초 매가 + 당기 매입 매가 + 순인상 − 순인하.
- 원가율 = 판매가능 원가 ÷ 판매가능 매가 × 100. 참고로 순인하를 뺀 원가율을 함께 보여 줍니다.
- 기말 매가 = 판매가능 매가 − 매출(매가) − 적용 감모(매가).
- 기말 원가(산출) = 기말 매가 × 판매가능 원가 ÷ 판매가능 매가(원 단위 반올림), 장부와의 차이를 부서마다 봅니다.
- 품목군 원가율 편차와 품목군 합계 대사를 확인합니다.
- 정합성 대사 9건과 장부 점검 대사 3건으로 마무리합니다.
순실현가능가치 평가와 재고 감모의 원인 분석은 이 화면의 대상이 아니며, 검증용 가상 값을 원 단위로 비교합니다.
조회조건
| 조건 | 필수 | 입력 형식 | 전달 방식 |
|---|---|---|---|
| 기준 연월(보고월) | 필수 | YYYYMM 6자리 | $filter Period eq |
| 품목 그룹 | 선택 | 식품류 · 생활용품류 · 의류·화장품류 | $filter GroupCode eq (전체면 조건 없음) |
| 부서 | 선택 | D01~D12 | $filter DeptCode eq (전체면 조건 없음) |
| 점검 코드 | 선택 | R00~R05 | $filter CheckCode eq (전체면 조건 없음) |
| 점검 결과 | 선택 | 정상 / 점검 필요 | $filter CheckStatus eq (전체면 조건 없음) |
결과 컬럼
| 탭 | 주요 컬럼 |
|---|---|
| 부서 판정 | 부서명(가상) · 품목 그룹 · 판매가능 원가·매가 · 순인상 · 순인하 · 원가율(산출·순인하 제외·장부) · 기말 원가(산출) · 기말 재고(장부) · 차이 · 점검 결과·코드·내용 · 품목군 원가율 편차 · 감모 차이 · 기초·매입 원가·매가 · 매출 · 적용·실사 감모 · 기말 매가 |
| 가격변경 내역 | 부서 코드 · 변경 구분(인상·인상 취소·인하·인하 취소) · 금액(매가) · 변경 건수 |
| 품목군 원가율 | 품목군 코드·명 · 판매가능 원가·매가 · 원가율 · 부서 원가율 대비 편차 · 편차 4%p 이상 표시 |
| 그룹 요약 | 품목 그룹 · 부서 수 · 판매가능 원가·매가 · 기말 매가 · 기말 원가(산출) · 기말 재고(장부) · 차이 · 원가율 · 점검 필요 부서 · 합계 행 구분 |
| 대사 결과 | 대사 구분 · 대사 항목 · 대사식 · 좌변 · 우변 · 검사 건수 · 차이 건수 · 최대 차이 |
SAP 표준 기능 매핑
표준 T-code
| T-code | 표준 기능 | 이 화면과의 관계 |
|---|---|---|
| MB5B | 임의 일자 기준 재고·가치 조회 | 보고월 말 장부 재고 금액을 열어 기말 재고(장부)와 대조 |
| MB52 | 창고 재고 목록 | 기초·기말 재고 수량과 평가 금액 확인 |
| MB51 | 자재 문서 목록 | 당기 매입(입고)과 판매 출고 이동 확인 |
| MI07 | 재고실사 차이 전기 | 실사 감모가 전기된 시점과 금액을 실사 감모(매가)와 대조 |
| FAGLL03 | G/L 계정 개별항목 조회 | 재고 계정 전표를 열어 장부 금액과 수기 조정 여부 확인 |
IFRS 요구사항 매핑
| 기준서 | 요구사항 | 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| IAS 2 재고자산(K-IFRS 제1002호) | 소매재고법은 이익률이 비슷하고 품목이 많아 다른 방법을 쓰기 어려운 재고의 원가 측정에 쓸 수 있음 | 부서 판정 탭 | 부서별 기초·매입 원가와 매가 | 방법의 선택은 회사 판단 |
| IAS 2(K-IFRS 제1002호) | 판매가격에서 적정한 총이익률을 차감해 원가를 구함 | 원가율 · 기말 원가(산출) | 판매가능 원가·매가, 매출, 감모 | - |
| IAS 2(K-IFRS 제1002호) | 원래 판매가 아래로 인하된 재고를 원가율에 반영 | 가격변경 내역 탭 · R01 | 판매가 인상·인하 내역 | 반영 방식의 세부는 확인 필요 |
| IAS 2(K-IFRS 제1002호) | 부서별 평균 원가율을 쓸 수 있고 이익률이 비슷한 품목끼리 묶음 | 품목군 원가율 탭 · R03 | 품목군별 원가·매가 | 편차 기준은 화면의 점검 기준 |
| IAS 2(K-IFRS 제1002호) | 원가와 순실현가능가치 중 낮은 금액으로 측정 | R04 (원가율 100% 초과 알림) | 산출 원가율 | 평가 자체는 대상 아님 |
참고 CDS 뷰
원천테이블
| 테이블 | 내용 | 사용 필드 |
|---|---|---|
| ACDOCA | 유니버설 저널 | RBUKRS, GJAHR, POPER, RACCT, HSL, RHCUR |
| MSEG | 자재 문서 항목 | MBLNR, MATNR, WERKS, BWART, MENGE, DMBTR |
| MBEW | 자재 평가 | MATNR, BWKRS, LBKUM, SALK3 (매가 원천은 확인 필요) |
CDS 뷰 스케치
@EndUserText.label: 'Retail department book inventory'
define view entity I_RetailDeptBookCost
as select from acdoca as a
{
key a.rbukrs, key a.gjahr, key a.poper, key a.racct,
sum( a.hsl ) as BookEndCost
}
group by a.rbukrs, a.gjahr, a.poper, a.racct부서(품목군) 구분과 매가 원천은 회사별 계정·이익센터 설계와 SAP Retail 구성에 맞춰 지정하며 이 사례는 가상 데이터입니다(확인 필요).
OpenUI5 구성
- 데이터는 OData V2 모델 하나로 받으며, 서비스 선언은 앱 설정 파일의 데이터 소스에만 둡니다.
- 탭마다 별도의 데이터 집합에 바인딩해 화면 블록이 각자 필요한 행만 받고, 한 번에 받아 컨트롤러에서 쪼개지 않습니다.
- 조회조건은 필터 객체로 만들어 $filter 로만 전달하고, "전체"는 필터를 만들지 않습니다.
- 정렬·페이징은 테이블의 sorter 와 threshold 로 $orderby · $top · $skip 을 호출하고, 총건수는 $inlinecount 로 받습니다. 금액은 문자열로 오므로 정렬·합산은 숫자로 처리합니다.
- 요약 지표의 합산식은 컨트롤러 한 곳에 모았습니다.
- 서비스에 연결되지 않으면 ErrorHandler 가 메타데이터 실패와 요청 실패를 구분해 안내 창을 띄웁니다.
- 테이블은 sap.ui.table, 상세는 sap.m Dialog 로 구성했습니다.
파일 구성
index.html 앱 진입점
readme.html 설명서
Component.js · manifest.json
controller/ BaseController.js · Main.controller.js
view/ Main.view.xml · DetailDialog.fragment.xml
model/ formatter.js · ErrorHandler.js
css/style.css · i18n/i18n_ko.properties
서비스 정의 폴더 메타데이터 · 서비스 로직 · 데이터 파일검증 결과
검증용 샘플 데이터(기준 연월 2개, 부서 12개씩, 품목군 31개)로 실제 브라우저에서 렌더링하고, 원천 행에서 독립 재계산한 값과 화면 요약 지표를 대조했습니다.
| 대사(기준 연월 202612) | 구분 | 검사 건수 | 차이 건수 | 최대 차이(원 · 11 은 bp) |
|---|---|---|---|---|
| 01 판매가능 원가 | 정합성 | 12 | 0 | 0 |
| 02 판매가능 매가 | 정합성 | 12 | 0 | 0 |
| 03 순인상·순인하 | 정합성 | 12 | 0 | 0 |
| 04 기말 매가 | 정합성 | 12 | 0 | 0 |
| 05 기말 원가(산출) | 정합성 | 12 | 0 | 0 |
| 06 품목군 원가 합계 | 정합성 | 12 | 0 | 0 |
| 07 품목군 매가 합계 | 정합성 | 12 | 0 | 0 |
| 08 그룹 합계 | 정합성 | 4 | 0 | 0 |
| 09 기초 = 전월 기말 | 정합성 | 24 | 0 | 0 |
| 10 장부 기말재고 vs 산출 기말원가 | 장부 점검 | 12 | 2 | 11,292,034 |
| 11 장부 원가율 vs 산출 원가율(건수·bp) | 장부 점검 | 12 | 1 | 276 |
| 12 실사 감모 vs 적용 감모 | 장부 점검 | 12 | 1 | 17,795,000 |
정합성 대사 9건은 차이 0 입니다. 장부 점검 대사에 드러난 차이는 점검 화면이라 의도적으로 넣은 예외 5건이며(실사 감모 누락, 순인하 제외 원가율, 원가율 100% 초과, 품목군 편차, 장부 수기 조정 각 1건), 정합성 대사 차이와 분리해 기록했습니다. 화면 요약 지표의 기말 원가 합계(산출)와 장부 합계도 독립 재계산 결과와 같고, 서비스에 연결되지 않을 때 안내 창이 뜨는 것까지 실제 브라우저에서 확인했습니다.
자주 묻는 질문
이 점검은 어떤 기준서의 어떤 요구사항에 근거하나요? 적용 시기도 알려 주세요.
IAS 2 재고자산(K-IFRS 제1002호)은 재고자산의 원가를 측정하는 기법으로 소매재고법을 쓸 수 있다고 봅니다. 소매재고법은 이익률이 비슷하고 품목이 많아 다른 방법을 쓰기 어려운 재고에서 판매가격에서 적정한 이익률을 차감해 원가를 구하는 방법이며, 원래 판매가 아래로 인하된 재고를 원가율에 반영하고 부서별 평균 원가율을 쓸 수 있다는 내용입니다. 이미 시행 중인 기준서이며, 이 화면은 그 구조가 원가율 산출과 장부 계상에 반영됐는지 점검하는 도구입니다. 문단 번호와 세부 요건은 기준서 원문과 회사 적용 현황으로 확인 필요합니다.
순인하는 왜 원가율에 넣나요?
소매재고법은 원래 판매가 아래로 인하된 재고를 원가율에 반영해야 하는 것으로 알려져 있습니다. 그래서 이 화면은 순인상과 순인하를 모두 반영한 원가율을 산출 기준으로 삼고, 순인하를 제외한 원가율을 참고로 함께 보여 줍니다. 순인하의 구체적 반영 방식은 회사의 회계정책과 감사인의 판단 영역이며 확인 필요입니다.
품목군 편차는 왜 보나요?
소매재고법은 이익률이 비슷한 품목에 쓰는 방법이고 부서별 평균 원가율을 쓸 수 있습니다. 한 부서 안에 이익률이 크게 다른 품목군이 섞이면 평균 원가율이 기말 재고를 왜곡할 수 있어, 품목군 원가율의 최대−최소 편차가 8.00%p 이상이면 묶음 기준을 확인하도록 알립니다. 8.00%p 는 이 화면의 점검 기준일 뿐 기준서의 수치가 아닙니다.
"점검 필요"는 재고가 잘못 평가됐다는 뜻인가요?
아닙니다. 장부 원가율이 순인하를 뺀 값과 같거나, 실사 감모가 반영되지 않았거나, 품목군 편차가 크거나, 원가율이 100%를 넘거나, 장부와 산출 기말 원가가 다른 부서를 골라 보여주는 표시입니다. 원인은 전표와 가격 변경 이력을 함께 보아야 알 수 있고, 최종 판단은 회사와 감사인이 합니다.
재고 결산 전에 원가율부터 점검하세요
순인하나 실사 감모가 원가율 계산에서 빠진 채 결산을 마치면 감사 단계에서 재고를 다시 계산해야 합니다. 우리 회사 계정 체계에 맞춘 점검 화면이 필요하다면 문의해 주세요.