제조원가 분석

목표원가 달성 점검 — 제조원가 분석, 목표 판매가에서 거꾸로 구한 목표원가와 원가요소별 추정원가의 갭을 확정 절감까지 반영해 다시 재 보는 월마감 화면

목표원가 · 추정원가 · 원가 갭 · 확정 절감 · 잔여 갭 · 점검 필요만 골라 보기 — 소개 영상과 실제 화면 7종, 그리고 CDS 코드까지

소개 영상1분 25초8개 장면음성 안내·자막처음 화면에서 점검 필요 조회, 원가요소 명세, 제품군·원가요소 요약, 행 상세, 대사 결과를 거쳐 정리까지

개발 배경 — 이 앱을 사용해야 하는 이유

제조업의 원가 논의는 대개 “얼마가 들었나”에서 시작하지만, 신제품이나 개정 제품에서는 질문이 거꾸로 놓입니다. 시장이 받아 줄 판매가에서 필요한 이익을 빼면 이 제품에 쓸 수 있는 원가는 얼마인가, 지금 원가 견적이 그 목표 안에 들어오나, 안 들어온다면 어느 원가요소에서 얼마가 넘치나. 지금은 이 세 답이 판매 가격조건 화면, 원가 견적 결과, 절감 활동을 적어 둔 엑셀에 흩어져 있어서 마감 때마다 사람이 옮겨 적으며 맞춰야 합니다.

이 앱은 목표 판매가와 목표 이익률로 제품별 목표원가를 구하고, 재료비·노무비·제조간접비·외주가공비로 나눈 추정원가와 견줘 원가 갭을 보여 줍니다. 여기서 이미 확정된 절감액을 뺀 잔여 갭이 허용 초과율을 넘는 제품만 점검 필요로 골라 줍니다. 표준 원가 견적과 가격조건 관리는 SAP 표준 T-code 가 그대로 맡고, 이 화면은 그 결과를 조회·검증하는 관점을 더해 확장합니다. 이 분석은 특정 기준서를 적용하는 화면이 아니라 제조원가 분석 목적의 점검 도구이며, 목표와 허용 기준, 최종 판단은 회사와 감사인이 합니다.

한 줄 요약 — 원가 견적 결과를 보여 주는 화면은 많습니다. 이 앱의 값은 그 다음에 있습니다: 목표 판매가에서 거꾸로 구한 목표원가와 견주고, 갭을 네 원가요소로 가르고, 확정 절감을 뺀 뒤에도 남는 갭이 허용 초과율을 넘는 제품만 찾아 줍니다. 그리고 그 계산이 스스로 맞는지 매번 대사식으로 검산합니다.

견적 결과만 있는 리포트는 “목표와 얼마나 먼가”에서 멈춘다

원가 견적 화면은 제품 하나의 원가 구성을 보여 줍니다. 하지만 “이 제품의 목표원가는 얼마이고 우리는 얼마나 넘었나”는 가격조건과 목표 이익률을 따로 가져와야 답이 나옵니다. 이 앱은 제품 행 하나에 목표 판매가, 목표 이익률, 목표원가, 추정원가, 원가 갭, 목표 대비 초과율, 달성률을 나란히 놓습니다. 제품 24개를 한 화면에서 훑을 수 있습니다.

갭이 있다는 것과, 봐야 할 만큼 크다는 것은 다르다

신제품은 대부분 목표를 조금씩 넘습니다. 그래서 모든 갭을 들여다볼 수는 없습니다. 이 앱은 갭에서 확정 절감액을 먼저 빼고, 남은 잔여 갭을 목표원가로 나눈 잔여 초과율이 제품군별 허용 초과율(검증용 샘플에서는 1.50~3.00%)을 넘은 제품만 점검 필요로 표시합니다. 이 샘플에서는 24개 가운데 22개가 판정 대상이고, 그중 11개가 허용치를 넘었습니다. 가장 큰 곳은 전원 장치 60W 로 목표를 45.72% 넘었고, 추정 이익률이 음수입니다.

갭이 크다는 말만으로는 어디를 줄일지 정할 수 없다

제품 합계로만 갭을 보면 재료비를 협상해야 할지 외주 단가를 봐야 할지 알 수 없습니다. 이 앱은 원가요소마다 목표(목표원가 × 목표 배분비)와 추정을 따로 두고 요소 갭과 초과율, 감축 필요액을 구합니다. 이 샘플에서는 전체 원가 갭 1,024.7백만원 가운데 재료비가 50.82% 를 차지했고, 제조간접비 19.32%, 외주가공비 17.31%, 노무비 12.55% 순이었습니다. 제품마다 갭이 가장 큰 요소도 한 칸에 표시해 확인 순서를 정할 수 있게 했습니다.

사용 방법

  1. 조회조건 입력 — 회계연도(필수, 4자리)를 확인합니다. 제품군·원가요소(갭 최대 요소)·추정 기준일 시작/종료·점검 결과는 선택이며 비워 두면 전체입니다. 화면을 처음 열면 기본 조건으로 자동 조회됩니다.
  2. 조회 버튼 또는 Enter — 조회조건 영역 가장 오른쪽의 조회 버튼을 누르거나, 입력 칸에서 Enter 키를 누릅니다. 초기화 버튼은 같은 줄에 있습니다.
  3. 요약 확인 — 위쪽 일곱 개 지표(목표원가 · 추정원가 · 원가 갭 · 확정 절감 · 잔여 갭 · 점검 필요 제품 · 대사 차이 건수)를 봅니다. 금액은 백만원 단위입니다.
  4. 탭 이동 — 제품 판정 → 원가요소 명세 → 제품군 요약 → 원가요소 요약 → 대사 결과 순서로, 넓은 곳에서 근거까지 좁혀 갑니다.
  5. 행 클릭 상세 — 행을 누르면 상세 창이 열려 그 제품의 목표·추정·갭·잔여 갭과 원가요소 명세를 함께 보여 줍니다. 닫기 버튼으로 돌아옵니다.
  6. 내보내기 — 현재 탭의 조회 결과를 UTF-8 CSV 로 내려받습니다. 파일명은 기능명과 탭 이름입니다.

숫자를 믿을 수 있는가 — 검증 결과

목표원가 화면에서 가장 비싼 질문은 “이 숫자 맞아?” 입니다. 그래서 계산을 만드는 쪽에서 먼저 대사식을 세워 두고 전수로 돌렸습니다. 아래는 이 검증용 샘플 데이터의 결과입니다. 샘플은 가상의 제품군 6개(전동 펌프 · 유량 밸브 · 제어 보드 · 센서 모듈 · 전원 장치 · 하우징 세트)와 제품 24개, 원가요소 명세 96행, 2026년 추정 기준일로 만들었고 실제 고객사의 제품이나 금액은 쓰지 않았습니다.

번호대사식검사 건수차이
R01목표 판매가 × (1 − 목표 이익률) = 목표원가240
R02요소별 목표 합계 = 제품 목표원가240
R03요소별 추정 합계 = 제품 추정원가220
R04추정원가 − 목표원가 = 요소 갭 합계220
R05원가 갭 − 확정 절감 = 잔여 갭220
R06제품군 목표원가 합계 = 제품 목표원가 합계60
R07제품군 추정원가 합계 = 제품 추정원가 합계60
R08제품군 원가 갭 합계 = 제품 원가 갭 합계60
R09원가요소 요약 갭 합계 = 제품 원가 갭 합계40
R10제품군 점검 필요 제품 수 합계 = 제품 판정의 점검 필요 건수60
R11목표원가 ÷ 추정원가 = 달성률(소수 둘째 자리 반올림)220

정합성 대사 11건은 모두 차이가 없습니다(R11 의 최대 차이 0.005 는 반올림 폭이며 그 안에 있습니다). 이와 별도로 의도적 예외를 일부러 심어 두고 대사 차이와 분리해 따로 집계했습니다.

구분무엇을 심었나검사 건수걸린 건수
R12원가 추정이 끝나지 않은 제품(센서 모듈 한 개 · 하우징 세트 한 개) — 목표 대비 판정과 합계에서 제외22

점검 필요 제품은 11개(허용 초과율 초과 10개, 추정 이익률 음수 1개)이고, 이 11개가 가진 점검 필요 원가요소 명세는 38행입니다. 의도적 예외를 일부러 남긴 이유는, 점검 화면이 정말 이상한 자리를 잡아내는지를 같은 검증에서 함께 보기 위해서입니다. 화면 쪽은 이와 별도로 브라우저 자동화로 확인했습니다 — 점검 필요만 조회하면 11건이 남는지, 추정 기준일 범위로 좁히면 건수가 맞게 줄어드는지, Enter 키 조회가 동작하는지, 행 상세 창이 열리고 닫히는지를 매번 다시 잽니다.

무엇으로 만들었나

자리무엇왜 그렇게 두었나
화면OpenUI5 1.120 · sap_horizon 테마 · sap.ui.table.Table 다섯 개를 탭으로열이 많은 표를 가로·세로 스크롤로 자연스럽게 읽고, 열 머리글이 고정되어 월마감 화면에 맞습니다.
데이터 연결OData V2 서비스 한 개 · 앱은 모델 경로에만 바인딩조회조건은 필터로, 정렬·건수는 모델 기능으로 처리합니다. 서비스 주소를 코드에 박지 않아 운영 서비스로 바꾸는 일이 설정 교체로 끝납니다.
서비스 구성다섯 개 결과집합(제품 판정 · 원가요소 명세 · 제품군 요약 · 원가요소 요약 · 대사 결과)과 파생 지표 함수 두 개탭마다 결과집합을 따로 두어 키가 겹치지 않고, 초과율의 최댓값·최솟값 같은 파생 지표는 함수로 계산합니다.
계산·판정 로직목표원가 · 추정원가 · 갭 · 잔여 갭 · 점검 코드 · 대사식화면이 아니라 서비스가 계산하므로 같은 조건으로 부르면 어느 화면에서든 같은 숫자가 나옵니다.
오류 처리서비스가 연결되지 않으면 안내 창빈 화면이나 콘솔 오류로 두지 않고, 무엇이 안 됐는지 사용자 말로 알립니다.
테마sap_horizon (SAP Horizon)SAP 표준 Fiori 화면과 같은 색·글꼴·간격을 써서 표준 화면 옆에 놓아도 이질감이 없습니다.

앱 정보표

항목내용
업무 영역관리회계(CO) · 제조원가 분석
관련 기준서·대상 영역관련 기준서 없음(-) · 대상 영역: 제조원가 분석(목표원가 관리)
SAP 표준 T-codeCK11N · CK13N · CO03 · KKBC_ORD
화면 성격월마감 제조원가 점검 조회 화면
데이터 연동OData V2 서비스(상대 경로, manifest 선언)
테마sap_horizon
SAP 표준 기능을 그대로 이어받은 부분 — 추정원가는 표준 원가 견적 결과를, 목표 판매가는 판매 가격조건을, 계획 수량은 계획독립소요량을 그대로 이어받습니다. 이 앱이 하는 일은 같은 데이터를 목표 관점에서 다시 모아 갭으로 보여 주고 점검 필요를 가리는 것이며, 원가 견적의 생성과 평가·전표는 표준 T-code 가 계속 맡습니다.

실행 화면

실제로 돌아가는 화면 7종을 사용 순서대로 싣습니다. 그림을 누르면 크게 볼 수 있고, 화면마다 무엇을 보는 자리인지 아래에 적었습니다. 숫자는 모두 같은 검증용 샘플 데이터에서 나온 것이라 화면끼리 서로 맞춰 보셔도 됩니다.

처음 열었을 때

조회조건과 요약, 표가 한 화면에 세로로 쌓입니다. 가장 먼저 눈에 들어와야 하는 것은 “목표를 얼마나 넘었고, 오늘 확인할 곳이 몇 개인가” 입니다.

처음 연 화면 — 제품 24개와 일곱 개 요약 지표
처음 연 화면 — 제품 24개와 일곱 개 요약 지표 — 회계연도 2026 으로 제품 24개를 조회한 첫 화면입니다. 위쪽 지표에 목표원가 22,579.4백만원, 추정원가 23,604.0백만원, 원가 갭 +1,024.7백만원, 확정 절감 +282.2백만원, 잔여 갭 +742.5백만원, 점검 필요 제품 11개가 나옵니다.

화면을 열면 기본 조건으로 바로 조회됩니다. 맨 위 파란 안내는 목표원가·원가 갭·잔여 갭을 어떻게 구하는지 한 번 적어 둔 것이고, 그 아래가 조회조건과 일곱 개 지표입니다. 표의 “목표 대비 초과율”은 원가 갭을 목표원가로 나눈 값이며, 허용 초과율은 제품군마다 다르게 둔 값이 맨 오른쪽에 함께 나옵니다. 원가 추정이 끝나지 않은 제품 2개(하우징 세트 중형 등)는 금액 칸이 비어 있고 판정에서 빠집니다. 탭 이름 위의 작은 숫자(24 · 96 · 6 · 4 · 12)는 탭마다 몇 건이 조회됐는지입니다.

점검 필요만 조회 — 잔여 갭이 허용 초과율을 넘은 제품 11개
점검 필요만 조회 — 잔여 갭이 허용 초과율을 넘은 제품 11개 — 점검 결과를 “점검 필요”로 고르고 조회하면 확정 절감을 반영해도 잔여 갭이 허용 초과율을 넘었거나 추정 이익률이 음수인 제품 11개만 남습니다.

마감 때 가장 먼저 쓰는 모습입니다. 24개를 훑지 않고 11개로 줄여 시작합니다. 이 11개만의 합계는 목표원가 9,505.6백만원, 추정원가 10,590.5백만원, 잔여 갭 +929.0백만원이며, 제품 행의 “갭 최대 요소” 칸을 보면 재료비가 8개 제품에서 가장 큰 요소입니다. 전동 펌프 A형·B형, 유량 밸브 고압형·저소음형처럼 갭이 10% 안팎인 제품과 전원 장치 60W 처럼 45% 를 넘은 제품이 한 목록에 있어 우선순위를 정하기 쉽습니다.

한 줄에서 근거까지 내려가기

제품 한 줄의 숫자가 어떻게 나왔는지 원가요소 줄까지 내려가는 흐름입니다.

원가요소 명세 탭 — 제품마다 네 원가요소의 목표와 추정
원가요소 명세 탭 — 제품마다 네 원가요소의 목표와 추정 — 재료비·노무비·제조간접비·외주가공비의 목표 배분비, 요소 목표, 요소 추정, 요소 갭과 초과율, 감축 필요액을 제품마다 네 줄로 보여 줍니다.

제품마다 노무비 · 재료비 · 제조간접비 · 외주가공비 네 줄이 나옵니다. 제어 보드 통신형을 보면 재료비 목표 114,619원에 추정 127,902원으로 +13,283원(+11.59%), 외주가공비는 목표 23,715원에 추정 29,213원으로 +23.18% 입니다. 제조간접비는 +1.94% 라 허용 5.00% 이내라서 정상입니다. 요소 허용 초과율(5.00%)을 넘은 줄만 점검 필요로 바뀌고, “감축 필요액”은 그 요소를 목표에 맞추려면 단가에서 줄여야 하는 금액입니다.

제품군 요약 탭 — 제품군별 달성률과 점검 필요 제품 비율
제품군 요약 탭 — 제품군별 달성률과 점검 필요 제품 비율 — 제품군 6개의 목표원가·추정원가·원가 갭·확정 절감·잔여 갭 합계와 달성률, 점검 필요 제품 비율을 한 줄에 보여 줍니다.

전동 펌프 · 유량 밸브 · 제어 보드 · 센서 모듈 · 전원 장치 · 하우징 세트 여섯 줄입니다. 전동 펌프는 목표원가 8,800.6백만원, 추정원가 9,225.8백만원으로 달성률이 95.39% 이고 제품 4개 중 2개가 점검 필요라 비율 50.00% 입니다. 비율이 40% 이상이면 제품군 줄도 점검 필요로 바뀌기 때문에, 이 샘플에서는 하우징 세트(33.33%)만 정상이고 나머지 다섯 제품군이 점검 필요입니다. 전원 장치는 달성률 89.62% 로 제품군 중 가장 낮습니다.

원가요소 요약 탭 — 어느 요소에서 갭이 큰가
원가요소 요약 탭 — 어느 요소에서 갭이 큰가 — 네 원가요소의 목표·추정·갭 합계와 감축 필요액, 전체 갭에서 차지하는 비중을 모아 보여 줍니다.

네 원가요소를 모아 어느 요소에서 갭이 큰지 봅니다. 재료비 갭 합계가 587.5백만원으로 전체 갭의 50.82% 를 차지하고, 제조간접비 19.32%, 외주가공비 17.31%, 노무비 12.55% 가 뒤를 잇습니다. 감축 필요액은 요소를 하나하나 목표에 맞출 때 필요한 금액의 합이라 갭 합계보다 큽니다(재료비 636.8백만원). 요소 안에서 점검 필요 줄이 몇 개인지도 함께 나옵니다.

행 클릭 상세 — 제품 한 개의 판정 근거와 요소 명세
행 클릭 상세 — 제품 한 개의 판정 근거와 요소 명세 — 제품 행을 누르면 목표 판매가에서 잔여 초과율까지의 계산 값과 점검 코드, 아래에 그 제품의 원가요소 명세 네 줄이 함께 열립니다.

예시는 제어 보드 통신형입니다. 목표 판매가 241,000원에서 목표 이익률 18.00% 를 빼 목표원가 197,620원을 구하고, 추정원가 221,703원과의 갭 +24,083원이 목표 대비 +12.19% 입니다. 확정 절감 500원을 빼면 잔여 갭이 +23,583원, 잔여 초과율이 +11.93% 로 허용 2.50% 를 크게 넘어 점검 필요가 됩니다. 추정 이익률은 8.01% 로 목표보다 9.99%p 낮습니다. 아래 표에서 외주가공비와 노무비, 재료비가 허용을 넘은 요소임을 바로 알 수 있습니다. 닫기 버튼으로 표로 돌아옵니다.

검산으로 닫기

마지막으로 대사 결과로 숫자를 닫습니다.

대사 결과 탭 — 정합성 대사 11건과 의도적 예외 1건
대사 결과 탭 — 정합성 대사 11건과 의도적 예외 1건 — 대사식마다 검사 건수와 차이 건수를 보여 줍니다. 정합성 대사 11건은 모두 차이가 0 이고, 원가 추정이 끝나지 않은 제품 2건은 의도적 예외로 따로 나옵니다.

화면의 숫자가 스스로 맞는지 보여 주는 탭입니다. 숫자를 가져다 쓰기 전에 대사 차이 건수 타일이 0 인지 보면 됩니다. 의도적 예외(원가 추정 미완료 제품)는 대사 차이와 섞이지 않게 R12 로 따로 줄을 세웠고, 걸린 건수가 2건이라는 사실이 점검 화면이 제대로 걸러 낸다는 증거가 됩니다.

화면 뒤에서 일어나는 일

조회 버튼을 누르면 앱은 조회조건을 필터로 바꿔 서비스에 한 번 요청하고, 탭마다 필요한 결과집합을 받아 표에 바인딩합니다. 계산은 화면이 아니라 서비스가 합니다 — 목표원가, 갭, 잔여 갭, 점검 판정이 모두 서비스 안에서 끝난 뒤 화면은 받은 값을 보여 주기만 합니다. 그래서 같은 조건으로 부르면 어느 화면에서든 같은 숫자가 나옵니다.

  1. 목표원가 = 목표 판매가 × (1 − 목표 이익률 ÷ 100). 요소별 목표는 목표원가에 요소 목표 배분비를 곱하고 마지막 요소는 나머지로 두어 합계를 정확히 맞춥니다.
  2. 추정원가 = 재료비 + 노무비 + 제조간접비 + 외주가공비 추정 단가. 하나라도 비어 있으면 판정 대상에서 뺍니다.
  3. 원가 갭 = 추정원가 − 목표원가, 목표 대비 초과율 = 갭 ÷ 목표원가 × 100, 달성률 = 목표원가 ÷ 추정원가 × 100.
  4. 잔여 갭 = 원가 갭 − 확정 절감액, 잔여 초과율 = 잔여 갭 ÷ 목표원가 × 100.
  5. 합계 — 제품·제품군·원가요소 합계는 단가 × 계획 수량을 더한 값이며 예외 제품은 제외합니다.

판정 규칙 — 어떤 때 점검 필요가 되나

판정 조건결과 상태사용자 조치
원가 추정이 끝나지 않은 제품(요소 하나 이상 미입력)정상 · EXC-INC(의도적 예외)판정과 합계에서 빼고, 추정 입력이 끝난 뒤 다시 조회합니다.
추정 이익률이 음수(추정원가가 목표 판매가보다 큼)점검 필요 · TGT-NEG요소별 갭이 큰 곳부터 BOM·라우팅 추정 근거를 원천에서 확인합니다.
잔여 초과율이 허용 초과율(제품군별 1.50~3.00%)보다 큼점검 필요 · TGT-OVER갭이 가장 큰 요소를 열어 감축 활동과 확정 절감액이 맞는지 확인합니다.
원가 갭이 0 이하(추정원가가 목표원가 이내)정상 · HIT조치 없음
갭이 있으나 확정 절감 반영 후 허용 초과율 이내정상 · SAVE확정 절감이 실제로 반영되는지 다음 추정 때 확인합니다.
원가요소 초과율이 요소 허용 초과율(5.00%)보다 큼(요소 행)점검 필요해당 요소의 구매·공정 조건을 확인합니다.
제품군의 점검 필요 제품 비율이 40% 이상(제품군 행)점검 필요제품군 상세에서 제품 판정 행을 열어 확인합니다.

점검 필요는 “원가가 잘못 추정됐다”는 뜻이 아닙니다. 확정 절감을 반영해도 목표에 못 미친다는 표시이며, 추정 근거나 목표 설정 자체를 원천에서 확인해야 한다는 신호일 뿐 원인을 단정하지 않습니다.

조회조건

조회조건필수대상 칸조회 방식
회계연도필수회계연도4자리, 기본 2026 · Gjahr eq
제품군선택제품 판정·원가요소 명세·제품군 요약전체면 조건 없음 · ProdGrp eq
원가요소(갭 최대 요소)선택제품 판정·원가요소 명세·원가요소 요약제품 탭은 TopElem eq, 요소 탭은 CostElem eq
추정 기준일 시작·종료선택제품 판정날짜 범위 — 서비스가 날짜 비교를 직접 처리
점검 결과선택전 탭전체면 조건 없음 · CheckStatus eq

결과 컬럼

탭주요 컬럼의미
제품 판정목표 판매가 · 목표 이익률 · 목표원가 · 추정원가 · 원가 갭 · 목표 대비 초과율 · 달성률 · 확정 절감 · 잔여 초과율 · 허용 초과율 · 갭 최대 요소 · 추정 기준일제품 한 줄에 목표에서 판정까지를 놓습니다.
원가요소 명세목표 배분비 · 요소 목표 · 요소 추정 · 요소 갭 · 요소 초과율 · 감축 필요액제품마다 네 요소를 따로 견줍니다.
제품군 요약목표·추정·갭·확정 절감·잔여 합계 · 달성률 · 점검 필요 제품 수와 비율제품군 단위로 모아 봅니다.
원가요소 요약목표·추정·갭 합계 · 감축 필요액 · 전체 갭에서의 비중어느 요소에서 갭이 큰지 가립니다.
대사 결과대사식 · 최대 차이 · 검사 건수 · 차이 건수숫자 자체의 정합성을 보여 줍니다.

좁은 화면에서 달라지는 것

이 화면은 열 수가 많은 표를 한 줄로 읽는 월마감 점검 화면이라 넓은 화면(1600px 기준)에서 검증했습니다. 표는 가로 스크롤을 지원하지만, 휴대폰 크기의 좁은 화면 배치는 이번 검증 범위에 넣지 않았고 확인 필요로 남겨 둡니다.

파일 구성

구분내용
앱 본체index.html · manifest.json · Component.js · controller · view · model · css · i18n
데이터 서비스OData 서비스 정의와 결과집합별 샘플 자료, 그리고 조회·단건·생성·수정·삭제·함수 계산을 구현한 서비스 모듈
설명서·영상설명서 한 장과 소개 영상(1분 25초) · 영상 대표 이미지
검증 전용검증용 샘플 화면 · 샘플 서버 스크립트 · 샘플 데이터 — 앱 본체는 이 영역을 읽지 않습니다

SAP 표준 기능 확장 포인트

이 앱은 SAP 표준을 대신하지 않습니다. 표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 조회·검증 관점을 더해 확장합니다. 어디까지가 표준이고 어디서부터 이 앱인지를 먼저 적습니다.

표준으로 되는 것과 안 되는 것

하고 싶은 일표준으로 되는 부분표준에서 걸리는 자리이 앱이 더하는 관점
제품 원가 견적 만들기CK11N 으로 자재 원가 견적 생성견적은 제품 하나씩 만들어서 목표와의 거리는 화면에 나오지 않습니다견적 결과를 목표원가와 견줘 갭으로 보여 줍니다
견적 결과 확인CK13N 으로 원가요소별 구성 조회제품을 하나씩 열어야 제품군·요소 단위 흐름이 안 보입니다제품군·원가요소 단위로 모아 보고 점검 필요만 걸러냅니다
추정 근거(BOM·라우팅) 확인CO03 으로 생산오더, 원가 견적에서 BOM·라우팅 추적갭이 큰 제품이 어디인지는 알려 주지 않습니다갭 최대 요소와 감축 필요액으로 확인 순서를 정합니다
실제 원가와의 비교KKBC_ORD 로 오더 원가 분석오더 단위 실적이라 목표원가와의 비교는 담지 않습니다목표에서 추정까지를 먼저 보고, 실적 확인은 표준으로 이어 갑니다
절감 활동 효과 반영표준에는 별도 화면이 없습니다확정 절감은 엑셀로 관리하고 갭에서 손으로 뺍니다확정 절감을 뺀 잔여 갭으로 점검 필요를 판정합니다

T-code 별 연계 지점

표준 T-code이름이 앱과의 연계
CK11N자재 원가 견적 생성추정원가의 요소별 구성을 원천에서 다시 만들어 보는 자리입니다. 이 앱에서 추정이 이상한 제품이 나오면 견적을 다시 만들어 값을 비교합니다.
CK13N자재 원가 견적 조회제품 행의 요소별 추정 단가를 원가 견적의 원가요소 구성과 대조합니다. 두 숫자가 다르면 견적 버전 선택 기준부터 확인합니다.
CO03생산오더 조회추정에 쓴 BOM·라우팅 근거를 확인합니다. 갭 최대 요소가 재료비이면 BOM 수량·단가, 외주가공비이면 라우팅의 외주 작업을 먼저 봅니다.
KKBC_ORD오더 원가 분석실제 발생 원가와 추정원가의 흐름을 비교합니다. 이 앱은 목표와 추정까지를 보고 실적 비교는 표준에 남겨 둡니다.

운영 전환 시 “기존 화면을 없애야 하나” 에 대한 답은 아니오입니다. 원가 견적, 재고 평가, 결산에 쓰는 숫자와 전표는 표준 화면에 그대로 남기고, 이 앱은 그 위에서 목표 대비 점검 용도로 함께 씁니다. 두 화면의 숫자가 맞는지는 위 표의 연계 지점에서 맞춰 봅니다.

S/4HANA 분석 스택과의 자리

S/4HANA 에서는 CDS 뷰로 만든 분석 쿼리를 표준 Fiori 앱이 그대로 띄워 줍니다. 이 앱을 올리기 전에 표준 스택으로 먼저 되는지를 확인하는 편이 유지보수가 쌉니다.

표준 자리무엇을 하나이 앱과의 관계
Query Browser (F1068)분석 쿼리 뷰를 목록에서 찾아 바로 실행아래 CDS 구성의 쿼리 뷰를 만들어 두면 원가요소별 추정 단가는 이 앱 없이도 볼 수 있습니다. 목표 대비 갭과 점검 판정이 필요 없다면 여기서 끝내도 됩니다.
View Browser (F2170)CDS 뷰의 구조와 의존 관계 탐색원가 견적과 가격조건의 표준 원천 뷰를 고를 때 씁니다.
Analysis for Microsoft Office같은 쿼리를 엑셀 피벗으로엑셀로 내려 다시 가공하는 업무가 많다면 함께 열어 둡니다.
KPI Modeler / 카드요약 지표를 런치패드 타일로이 앱의 요약 지표(목표원가 · 원가 갭 · 점검 필요 제품 등)를 같은 숫자로 타일에 띄울 수 있습니다.

확장 포인트 — 운영에서 실제로 손대는 자리

  1. 목표 판매가와 목표 이익률의 원천을 정한다. 판매 가격조건에서 어느 조건 유형과 접근 순서를 쓸지, 목표 이익률을 어디에 두고 누가 관리할지는 확인 필요이며, 이 두 값이 정해져야 목표원가가 나옵니다.
  2. 추정원가로 쓸 원가 견적 버전을 정한다. 표준·계획·시뮬레이션 견적이 섞여 있으면 같은 제품의 갭이 달라집니다. 선택 기준은 회사 정책이며 샘플은 제품당 추정 하나로 단순화했습니다.
  3. 원가요소 네 개로 묶는 규칙을 확정한다. 원가 견적의 원가요소 구분을 재료비·노무비·제조간접비·외주가공비로 어떻게 묶을지 정합니다. 묶음이 바뀌면 요소 갭도 달라지므로 매핑 테이블 한 곳에서 읽습니다.
  4. 확정 절감의 정의와 원천을 정한다. 어떤 단계의 절감을 “확정”으로 볼지는 회사마다 다릅니다. 이 값이 잔여 갭과 판정을 바꾸므로 합의가 필요합니다.
  5. 허용 초과율을 정한다. 샘플은 제품군별 1.50~3.00%, 요소 5.00% 입니다. 너무 낮으면 점검 필요가 쏟아지고, 너무 높으면 봐야 할 갭을 놓칩니다.
  6. 권한을 표준 객체로 건다. 회사코드·플랜트 권한을 집계를 읽는 자리에 겁니다. 목표 판매가와 이익률은 가격 전략이 드러나는 정보라 보는 사람을 정해야 합니다.
목표 이익률에서 흔히 놓치는 자리. 목표원가는 목표 판매가와 목표 이익률 두 값으로 정해지므로, 이익률을 한 번 바꾸면 모든 요소의 목표와 갭이 같이 바뀝니다. 갭이 갑자기 커진 달에 가장 먼저 의심할 곳이 가격조건의 변경 시점과 이익률 기준의 개정인 이유입니다. 목표 설정 시점과 추정 입력 시점을 맞춰 두는 것이 대사 차이를 줄이는 가장 값싼 방법입니다.

분석 지표 정의

지표산식·판정 기준대응 기능원천 데이터비고
목표원가목표 판매가 × (1 − 목표 이익률)제품 판정판매 가격조건 · 목표 이익률 기준목표 이익률 출처는 확인 필요
추정원가요소별 추정 단가의 합제품 판정 · 원가요소 명세원가 견적(KEKO · KEPH)견적 버전 선택 기준은 확인 필요
원가 갭 · 초과율추정원가 − 목표원가, 갭 ÷ 목표원가 × 100제품 판정파생값양수는 목표 초과
달성률목표원가 ÷ 추정원가 × 100제품 판정 · 제품군 요약파생값100% 이상이면 목표 이내
잔여 갭원가 갭 − 확정 절감액제품 판정확정 절감 관리 자료확정 기준은 회사 정의, 확인 필요
허용 초과율제품군별 1.50~3.00%, 요소는 5.00%판정샘플 기준값운영에서는 회사 기준으로 정함
갭 최대 요소갭이 가장 큰 양수 요소(모두 0 이하이면 없음)제품 판정 · 요약파생값원인 단정 아님

CDS 구성

이 사례의 화면은 서비스가 계산한 결과를 보여 줍니다. 운영 데이터로 올릴 때는 가격과 원가 견적을 읽는 일은 CDS 가, 목표 대비 판정은 ABAP 클래스가 맡습니다. 아래는 그때 만드는 객체들을 레이어 순서대로 적은 것입니다.

코드는 스케치입니다. 필드 이름과 표준 뷰·테이블 이름은 릴리스·환경에 따라 다르므로 그대로 붙여 넣기 전에 View Browser(F2170) 로 실제 이름을 확인해야 합니다. 확인이 필요한 자리는 주석에 적어 두었습니다.

뷰 레이어 구성

레이어객체하는 일왜 나누나
기준ztgt_share제품군·원가요소별 목표 배분비와 허용 초과율정책이 바뀔 때마다 개발자를 부르지 않게 합니다.
차원ZI_TgtProduct제품 한 행 + 제품군 + 이름큐브의 join 을 한 곳으로 모으고 값 도움말·텍스트가 이 뷰를 봅니다.
큐브(가격)ZI_TgtPrice제품별 목표 판매가목표원가의 출발점을 한 곳에서만 읽습니다.
큐브(추정)ZI_TgtEstimate제품·원가요소별 추정 단가(원가 견적 위)장부 쪽 추정을 한 곳에서만 읽습니다.
쿼리ZC_TgtGapQuery축 기본 배치와 필터표준 Fiori 와 Analysis for Office 가 그대로 띄웁니다.
권한ZI_TgtEstimateRole(DCL)회사코드 · 플랜트 권한집계를 읽는 자리에 걸어야 뺄셈으로 새지 않습니다.
서비스ZR_TgtCheck + 조회 클래스목표원가·갭·잔여 갭·점검 코드확정 절감 반영과 판정은 SQL 로 안 되므로 클래스가 맡습니다.

① 목표 배분비 테이블

요소별 목표는 이 표의 배분비로 정해집니다. 제품군마다 재료비 비중이 다르다는 점을 코드에 박지 않으려는 자리라 운영 전환에서 가장 먼저 합의해야 하는 항목입니다. 유효기간을 둔 이유는 정책이 바뀌어도 과거 판정이 흔들리지 않게 하기 위해서입니다.

" ────────────────────────────────────────────────────────────────
"  ztgt_share — 제품군·원가요소별 목표 배분비와 허용 초과율
"  역할   : 목표원가를 네 원가요소에 나눌 비율과 점검 기준을 담는다
"  이렇게 나눈 이유 : 기준이 코드에 박히면 정책이 바뀔 때마다 개발자를 부르게 된다
" ────────────────────────────────────────────────────────────────
@EndUserText.label : '목표 배분비·허용 초과율'
@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE
@AbapCatalog.tableCategory : #TRANSPARENT
@AbapCatalog.deliveryClass : #C
@AbapCatalog.dataMaintenance : #ALLOWED
define table ztgt_share {
  key client     : abap.clnt not null;
  key matkl      : matkl not null;            " 제품군(자재 그룹)
  key cost_elem  : abap.char(3) not null;     " MAT 재료 / LAB 노무 / OHD 제조간접 / OUT 외주
  key valid_to   : abap.dats not null;        " 유효 종료일 — 정책이 바뀌어도 과거 판정이 흔들리지 않게
  share_pct      : abap.dec(5,2);             " 요소 목표 배분비(%) — 제품군 안에서 합계 100
  limit_pct      : abap.dec(5,2);             " 허용 초과율(%) — 회사 기준, 확인 필요
}

② 제품 차원 — ZI_TgtProduct

제품 한 행에 제품군과 이름을 붙이는 차원 뷰입니다. 텍스트는 표준 텍스트 테이블에 association 으로 걸어 값 도움말과 쿼리 머리글이 같은 이름을 보게 합니다. 대상 범위(완제품만 둘지)는 회사 기준에 맞춰 확인해야 합니다.

" ────────────────────────────────────────────────────────────────
"  ZI_TgtProduct — 제품 차원
"  역할   : 자재 한 행 + 제품군 + 이름. 값 도움말과 쿼리 머리글이 이 뷰 하나를 본다
"  이렇게 나눈 이유 : 큐브마다 MARA·MAKT 를 따로 join 하면 이름이 서로 달라진다
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: '제품 차원'
@ObjectModel.representativeKey: 'Product'
@Analytics.dataCategory: #DIMENSION
@Metadata.ignorePropagatedAnnotations: true
define view entity ZI_TgtProduct
  as select from mara as m
  association [0..*] to makt as _Text
    on  _Text.matnr = $projection.Product
    and _Text.spras = $session.system_language
{
      @ObjectModel.text.association: '_Text'
  key m.matnr as Product,
      m.matkl as ProductGroup,          " 제품군 — 자재 그룹을 그대로 쓸지는 확인 필요
      m.mtart as ProductType,
      _Text
}
where m.mtart = 'FERT'                  " 완제품만 — 범위는 회사 기준에 맞춰 확인 필요

③ 목표 판매가 큐브 — ZI_TgtPrice

목표원가의 출발점이 이 뷰 하나에서 나옵니다. 금액은 @Semantics.amount.currencyCode 로 통화에 묶어 서로 다른 통화가 합산되지 않게 합니다. 가격조건 테이블 이름과 조건 유형은 확인 필요이며 예시입니다.

" ────────────────────────────────────────────────────────────────
"  ZI_TgtPrice — 목표 판매가 큐브
"  역할   : 제품별 목표 판매가와 목표 이익률. 목표원가 = 목표 판매가 × (1 − 목표 이익률)
"  이렇게 나눈 이유 : 목표원가의 출발점을 한 곳에서만 읽는다. 가격이 바뀌면 이 뷰만 본다
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: '제품 목표 판매가'
@Analytics.dataCategory: #CUBE
define view entity ZI_TgtPrice
  as select from a304 as a                      " 자재 단위 가격조건 — 접근 순서와 조건 유형은 확인 필요
  inner join   konp as k on k.knumh = a.knumh
  association [1..1] to ZI_TgtProduct as _Product on _Product.Product = $projection.Product
{
  key a.matnr                       as Product,
  key a.datab                       as ValidFrom,
      k.konwa                       as Currency,
      @Semantics.amount.currencyCode: 'Currency'
      k.kbetr                       as TargetPrice,
      " 목표 이익률은 회사가 정한 기준표에서 읽는다 — 저장 위치는 확인 필요
      _Product
}
where k.kschl = 'PR00'                          " 판매 가격 조건 유형 — 환경에서 확인 필요

④ 추정원가 큐브 — ZI_TgtEstimate

원가 견적 헤더와 원가요소별 품목을 읽어 제품·원가요소별 추정 단가를 만듭니다. 어느 필드를 어느 원가요소로 묶을지, 어느 견적 버전을 쓸지는 확인 필요이며, 이 선택이 모든 갭을 좌우합니다.

" ────────────────────────────────────────────────────────────────
"  ZI_TgtEstimate — 원가요소별 추정원가 큐브
"  역할   : 제품·원가요소별 추정 단가. 네 요소의 합이 제품 추정원가가 된다
"  이렇게 나눈 이유 : 장부 쪽 원가 견적을 한 곳에서만 읽어야 목표와 견줄 기준이 하나로 정해진다
" ────────────────────────────────────────────────────────────────
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: '원가요소별 추정원가'
@Analytics.dataCategory: #CUBE
define view entity ZI_TgtEstimate
  as select from keko as h
  inner join   keph as p on p.kalnr = h.kalnr and p.bwvar = h.bwvar and p.kadky = h.kadky
  association [1..1] to ZI_TgtProduct as _Product on _Product.Product = $projection.Product
{
  key h.matnr                       as Product,
  key h.werks                       as Plant,
  key p.kkzst                       as CostComponent,   " 원가요소 구분 — 재료·노무·제조간접·외주로 묶는 규칙은 확인 필요
      h.waers                       as Currency,
      @Semantics.amount.currencyCode: 'Currency'
      @DefaultAggregation: #SUM
      p.kst001                      as EstUnit,          " 원가요소 금액 필드 — 릴리스별로 확인 필요
      _Product
}
where h.tvers = '01'                             " 원가 견적 버전 — 선택 기준은 확인 필요

⑤ 분석 쿼리 — ZC_TgtGapQuery

이 쿼리 하나로 표준 앱이 제품×원가요소 추정표를 띄웁니다. 목표 대비 판정이 필요 없는 사용자는 여기서 끝나도 됩니다. 필수 필터로 플랜트를 두어 전체를 한 번에 읽는 일을 막습니다.

" ────────────────────────────────────────────────────────────────
"  ZC_TgtGapQuery — 목표원가 갭 분석 쿼리
"  역할   : 표준 Fiori 앱·Analysis for Office 가 그대로 띄우는 쿼리
"  이렇게 나눈 이유 : 요소별 갭만 필요한 사용자까지 이 앱을 쓰게 만들 이유가 없다
" ────────────────────────────────────────────────────────────────
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: '목표원가 갭 쿼리'
@Analytics.query: true
@Metadata.allowExtensions: true
define view entity ZC_TgtGapQuery
  as select from ZI_TgtEstimate
{
      @AnalyticsDetails.query.axis: #FILTER
      @Consumption.filter: { selectionType: #SINGLE, mandatory: true }
  key Plant,
      @AnalyticsDetails.query.axis: #ROWS
  key Product,
      @AnalyticsDetails.query.axis: #COLUMNS
  key CostComponent,
      @AnalyticsDetails.query.axis: #COLUMNS
      @AnalyticsDetails.query.decimals: 0
      EstUnit
}

⑥ 권한 — ZI_TgtEstimateRole (DCL)

목표원가는 가격 전략이 드러나는 정보입니다. 권한은 집계를 읽는 큐브에 걸어야 합니다. 플랜트는 M_MATE_WRK 를 쓰는 것이 일반적이지만 필드 이름은 환경에서 확인해야 합니다.

" ────────────────────────────────────────────────────────────────
"  ZI_TgtEstimateRole — 권한(DCL)
"  역할   : 회사코드·플랜트 권한을 집계를 읽는 자리에 건다
"  이렇게 나눈 이유 : 드릴스루에만 걸면 전체 합계에서 남의 제품 숫자를 뺄셈으로 알아낼 수 있다
" ────────────────────────────────────────────────────────────────
@EndUserText.label: '원가요소별 추정원가 권한'
@MappingRole: true
define role ZI_TgtEstimateRole {
  grant select on ZI_TgtEstimate
    where ( Plant ) = aspect pfcg_auth( M_MATE_WRK, WERKS, ACTVT = '03' );   " 권한 객체 필드는 환경에서 확인 필요
}

⑦ 목표 달성 판정 — 사용자 정의 엔티티와 조회 클래스

확정 절감을 반영한 잔여 갭과 판정 코드는 SQL 한 줄로 되지 않습니다. 사용자 정의 엔티티를 만들고 조회 구현 클래스가 판정합니다. 아래는 판정 순서(미완료 제외 → 추정 이익률 음수 → 허용 초과 → 목표 이내 → 절감 반영 이내)까지의 뼈대이며, 데이터 읽기는 주석으로 단계만 적었습니다.

" ────────────────────────────────────────────────────────────────
"  ZR_TgtCheck — 목표원가 달성 판정(사용자 정의 엔티티)과 조회 구현
"  역할   : 목표원가·갭·잔여 갭·점검 코드를 돌려주는 서비스의 중심
"  이렇게 나눈 이유 : 확정 절감 반영과 판정 코드는 SQL 한 줄로 되지 않아 클래스가 맡는다
"                     CDS 가 가격과 추정 단가를 가져오고, 판정은 ABAP 클래스가 한다
" ────────────────────────────────────────────────────────────────
@EndUserText.label: '목표원가 달성 판정'
@ObjectModel.query.implementedBy: 'ABAP:ZCL_TGT_CHECK_QUERY'
define custom entity ZR_TgtCheck
{
  key FiscalYear  : gjahr;
  key Product     : matnr;
      TargetCost  : abap.curr(15,0);        " 목표원가
      EstCost     : abap.curr(15,0);        " 추정원가
      GapUnit     : abap.curr(15,0);        " 원가 갭
      ConfirmSave : abap.curr(15,0);        " 확정 절감액
      RemainRate  : abap.dec(7,2);          " 잔여 초과율(%)
      CheckCode   : abap.char(8);           " HIT / SAVE / TGT-OVER / TGT-NEG / EXC-INC
}

CLASS zcl_tgt_check_query DEFINITION PUBLIC FINAL CREATE PUBLIC.
  PUBLIC SECTION.
    INTERFACES if_rap_query_provider.
  PRIVATE SECTION.
    METHODS judge
      IMPORTING iv_price TYPE p iv_rate TYPE p iv_est TYPE p iv_save TYPE p iv_limit TYPE p
                iv_missing TYPE abap_bool
      RETURNING VALUE(rv_code) TYPE string.
ENDCLASS.

CLASS zcl_tgt_check_query IMPLEMENTATION.
  METHOD if_rap_query_provider~select.
    DATA lt_out TYPE STANDARD TABLE OF zr_tgtcheck WITH EMPTY KEY.
    " 1) 필터의 회계연도·제품군으로 ZI_TgtPrice · ZI_TgtEstimate 를 읽는다
    " 2) 목표원가 = 목표 판매가 × ( 100 − 목표 이익률 ) / 100 , 갭 = 추정 − 목표
    " 3) 잔여 갭 = 갭 − 확정 절감 , 판정은 judge( ) 로 코드를 정한다
    IF io_request->is_total_numb_of_rec_requested( ).
      io_response->set_total_number_of_records( lines( lt_out ) ).
    ENDIF.
    io_response->set_data( lt_out ).
  ENDMETHOD.

  METHOD judge.
    IF iv_missing = abap_true.
      rv_code = 'EXC-INC'.                                    " 추정 미완료 — 판정에서 뺀다
      RETURN.
    ENDIF.
    DATA(lv_cost)   = iv_price * ( 100 - iv_rate ) / 100.
    DATA(lv_remain) = iv_est - lv_cost - iv_save.
    IF iv_est > iv_price.
      rv_code = 'TGT-NEG'.                                    " 추정 이익률이 음수
    ELSEIF lv_remain * 100 / lv_cost > iv_limit.
      rv_code = 'TGT-OVER'.                                   " 잔여 갭이 허용 초과율을 넘음
    ELSEIF iv_est <= lv_cost.
      rv_code = 'HIT'.
    ELSE.
      rv_code = 'SAVE'.                                       " 갭은 있으나 확정 절감으로 허용 이내
    ENDIF.
  ENDMETHOD.
ENDCLASS.

운영 시점에 해야 할 일

개발보다 정하는 일이 많습니다.

해야 할 일무엇을 정하나정하지 않으면누가
목표 판매가·이익률 원천가격조건 유형·접근 순서, 목표 이익률 기준표목표원가가 담당자마다 달라 갭을 비교할 수 없습니다원가회계팀 · 영업기획
원가 견적 버전어느 견적을 추정원가로 쓸지같은 제품의 갭이 견적마다 달라집니다원가회계팀
원가요소 묶음원가 견적의 원가요소를 네 요소로 묶는 규칙요소 갭이 장부 구성과 어긋납니다원가회계팀
확정 절감 정의어떤 단계의 절감을 확정으로 볼지, 자료 위치잔여 갭이 사람마다 달라집니다원가회계팀 · 구매 · 생산
허용 초과율점검 필요로 걸 기준 비율점검 건수가 너무 많거나 너무 적어 쓸모가 없어집니다원가회계팀장
권한 설계회사코드·플랜트별 조회 범위전체 합계에서 남의 제품 숫자를 알아낼 수 있습니다보안·권한
전송(TR) 순서기준 테이블 → 차원 → 큐브 → 쿼리 → DCL → 서비스권한 없는 뷰가 먼저 운영에 들어가 숫자가 노출됩니다Basis
서비스 활성화서비스 게시와 앱 설정의 서비스 주소 교체앱이 검증용 서비스를 계속 바라봅니다Basis · 개발

운영 데이터로 갈 때

제품이 수천~수만 개이고 원가요소가 네 개면 원가요소 명세는 수만~수십만 행이 됩니다. 이 정도 규모에서는 추정 단가 집계는 CDS 에서 하고 서버 쪽 판정은 필요한 회계연도·제품군만 읽도록 필터를 필수로 둡니다. 제품 판정은 제품 단위로 응답하고, 원가요소 명세는 상세를 열 때만 읽는 것이 보통입니다. 응답 시간 기준(예: 조회 한 번에 수 초 이내)은 회사가 정해야 하며 이 글은 측정값을 제시하지 않습니다.

자주 묻는 질문

도입을 검토하실 때 가장 자주 나오는 질문을 네 묶음으로 정리했습니다.

숫자와 산식

목표원가는 어떻게 구합니까?

목표 판매가에서 목표 이익률만큼을 뺀 값입니다. 목표원가 = 목표 판매가 × (1 − 목표 이익률 ÷ 100) 이며, 원 단위로 반올림합니다. 요소별 목표는 이 목표원가에 요소 목표 배분비를 곱해 나누고 마지막 요소는 나머지로 두기 때문에 네 요소의 목표 합계가 항상 제품 목표원가와 같아집니다.

원가 갭과 잔여 갭은 어떻게 다릅니까?

원가 갭은 추정원가 − 목표원가, 잔여 갭은 원가 갭 − 확정 절감액입니다. 이미 확정된 절감 활동의 효과를 빼고도 목표를 넘는 부분이 얼마나 남았는지를 보려고 나눴습니다. 점검 필요 판정은 원가 갭이 아니라 잔여 갭을 기준으로 합니다.

허용 초과율은 무엇이고 얼마로 두었습니까?

잔여 갭을 목표원가로 나눈 비율(잔여 초과율)이 이 값을 넘으면 점검 필요가 됩니다. 이 검증용 샘플에서는 제품군별 1.50~3.00%, 원가요소는 5.00% 로 두었습니다. 실제 적용 때의 기준은 회사가 정합니다.

추정 이익률이 음수인 제품은 어떻게 표시됩니까?

추정원가가 목표 판매가보다 큰 제품은 갭의 크기와 상관없이 점검 필요로 표시되고 점검 코드가 따로 붙습니다. 이 샘플에서는 전원 장치 60W 한 개가 여기에 해당하며, 목표 대비 초과율이 45.72% 로 24개 제품 가운데 가장 큽니다.

원가 추정이 끝나지 않은 제품은 왜 판정에서 빼나요?

원가요소 중 하나라도 추정 단가가 비어 있으면 추정원가를 합산할 수 없어 목표와 견줄 수 없습니다. 그런 제품 2개(센서 모듈 중 한 개, 하우징 세트 중 한 개)는 판정과 합계에서 빼고, 대사 결과의 의도적 예외 줄에 따로 집계합니다. 추정 입력이 끝난 뒤 다시 조회하면 정상 판정에 들어옵니다.

대사 R11 의 최대 차이 0.005 는 무엇입니까?

달성률을 소수 둘째 자리까지 반올림해 보여 주기 때문에 반올림 전 값과 최대 0.005 만큼 벌어질 수 있다는 뜻입니다. 반올림 폭 안이라서 차이 건수는 0 이고, 금액 계산에는 반올림 전 값을 씁니다.

화면과 조작

조회는 어떻게 합니까?

회계연도(필수, 4자리)를 확인하고 조회 버튼을 누르거나 입력 칸에서 Enter 키를 누릅니다. 화면을 처음 열면 기본 조건으로 자동 조회됩니다. 초기화 버튼은 조회 버튼 바로 옆에 있습니다.

점검 필요인 제품만 볼 수 있습니까?

점검 결과를 “점검 필요”로 고르고 조회합니다. 이 샘플에서는 제품 판정 11건, 원가요소 명세 38건, 제품군 요약 5건이 남습니다. 월마감 때 가장 먼저 쓰는 방법입니다.

행을 누르면 무엇이 나옵니까?

제품·원가요소 명세·제품군·원가요소 요약 행을 누르면 상세 창이 열립니다. 제품을 누르면 목표·추정·갭·잔여 갭과 판정 근거가 한곳에 모이고 아래에 그 제품의 원가요소 명세가 함께 나옵니다. 닫기 버튼으로 표로 돌아옵니다.

추정 기준일로 좁혀 볼 수 있습니까?

추정 기준일 시작·종료를 고르면 그 범위의 제품만 남습니다. 날짜 비교는 서비스가 직접 처리하며, 범위에 따라 14건이나 10건처럼 걸러지는 것을 확인했습니다.

엑셀로 내려받을 수 있습니까?

현재 탭의 조회 결과를 UTF-8 CSV 로 내려받을 수 있습니다. 파일명은 기능명과 탭 이름이며, 한글이 깨지지 않도록 UTF-8 로 저장합니다.

휴대폰에서도 됩니까?

이 화면은 열 수가 많은 표를 한 줄로 읽는 월마감 점검 화면이라 넓은 화면(1600px 기준)에서 검증했습니다. 좁은 화면의 배치는 이번 검증 범위에 넣지 않았으며 확인 필요로 남깁니다.

표준과 도입

SAP 표준 T-code 와는 어떤 관계입니까?

원가 견적 생성·조회(CK11N · CK13N), 생산오더 조회(CO03), 오더 원가 분석(KKBC_ORD)은 표준이 계속 맡습니다. 이 화면은 그 결과를 목표원가와 견주고 갭을 요소별로 가르는 관점을 더해 확장합니다. 표준 화면을 없애는 것이 아닙니다.

어떤 회사에 맞습니까?

제품마다 목표 이익률을 두고 목표원가를 관리하는 제조회사의 원가회계팀, 그리고 원가 견적 결과를 엑셀로 옮겨 목표와 따로 견주고 있는 조직에 맞습니다. 목표원가를 관리하지 않거나 제품 수가 아주 적다면 얻는 것이 적습니다.

도입 효과는 무엇입니까?

목표와 추정을 엑셀로 옮겨 견주던 일이 조회로 바뀌고, 갭을 합계가 아니라 원가요소 줄 단위로 찾게 됩니다. 시간이 얼마나 줄어드는지는 회사마다 다르므로 이 글에서는 수치로 단정하지 않습니다.

특정 회계기준에 따른 점검입니까?

아닙니다. 특정 기준서를 적용하는 화면이 아니라 제조원가 분석 중 목표원가 관리 목적의 점검 화면이며 관련 기준서 표기는 없음(-)입니다. 허용 초과율과 목표 이익률은 회사 정책에 따르고 최종 판단은 회사와 감사인이 합니다.

목표 판매가와 목표 이익률은 어디서 가져옵니까?

이 샘플에서는 제품 행에 담았습니다. 운영에서는 판매 가격조건과 회사가 정한 목표 이익률 기준을 연결해야 하며, 출처와 필드는 확인 필요로 남겼습니다. 두 값이 정해져야 목표원가가 나오므로 도입에서 가장 먼저 합의할 항목입니다.

운영 서비스로 연결하는 절차와 기간은 어떻습니까?

앱은 서비스 주소를 설정으로만 갖고 있어 서비스를 바꾸는 일 자체는 설정 교체입니다. 걸리는 시간은 목표 판매가·이익률의 원천, 원가 견적 버전 선택, 확정 절감 자료, 권한, 대사 체계를 정하는 데 달려 있습니다. 기간은 회사별로 크게 다르므로 이 글에서 약속하지 않습니다.

운영과 보안

확정 절감은 어디서 가져옵니까?

이 샘플에서는 가상의 값을 제품 행에 담았습니다. 운영에서는 원가절감 활동을 관리하는 자료에서 가져와야 하며, 무엇을 “확정”으로 볼지는 회사 정의라서 확인 필요로 남겼습니다. 이 값이 흔들리면 잔여 갭도 따라 흔들립니다.

권한은 어떻게 겁니까?

회사코드와 플랜트 권한을 집계를 읽는 CDS 큐브의 접근 제어에 겁니다. 드릴스루에만 걸면 전체 합계에서 남의 제품 숫자를 뺄셈으로 알아낼 수 있어서입니다. 목표원가와 목표 이익률은 가격 전략이 드러나는 값이라 보는 사람을 정해야 합니다. 권한 객체의 필드는 환경에서 확인해야 합니다.

원가 견적 버전이 여러 개이면 어떻게 합니까?

한 제품에 표준·계획·시뮬레이션 같은 원가 견적이 여럿 있을 수 있어서, 어느 버전을 추정원가로 쓸지 정해야 합니다. 샘플은 제품당 추정 하나만 두었고, 운영의 선택 기준은 확인 필요입니다. 기준이 바뀌면 같은 제품의 갭이 달라지므로 대사 체계에 버전 기준을 함께 적어 두는 편이 좋습니다.

데이터가 매우 많아지면 어떻습니까?

제품이 수만 개가 되면 회계연도·제품군·점검 결과 필터를 필수에 가깝게 두고, 원가요소 명세는 제품 상세를 열 때만 읽는 것이 보통입니다. 서비스는 $top·$skip 과 $inlinecount 로 나눠 읽도록 되어 있습니다. 응답 시간 기준은 회사가 정하며 이 글은 측정값을 제시하지 않습니다.

갭이 크게 나온 제품은 어디부터 봅니까?

갭 최대 요소를 먼저 봅니다. 제품 행에 갭이 가장 큰 요소가 표시되고, 원가요소 요약 탭에서는 요소별 갭이 전체에서 차지하는 비중이 나옵니다. 이 샘플에서는 재료비가 전체 갭의 50.82% 로 가장 큽니다. 그다음 해당 제품의 원가 견적(CK13N)과 BOM·라우팅 근거를 원천에서 확인합니다. 화면은 순서를 정해 줄 뿐 원인을 단정하지 않습니다.

이 화면의 판정을 감사 대응에 그대로 써도 됩니까?

점검 도구이므로 판단 근거를 정리하는 용도입니다. 점검 필요는 확인이 필요하다는 표시일 뿐 오류의 확정이 아닙니다. 원가 견적과 재고 평가, 결산 숫자는 표준 거래에 두고 이 화면은 보완 관점으로 씁니다.