2026-09 가마감 예산 보고 — 작업 계획 (report-plan)

  • 근거 문서: input/report-request.txt (FIN-202609-01), input/extraction.txt
  • 보고 기준(cutoff): 2026-09-30 18:00 · 자료 추출: 2026-10-02 18:00 · KRW · 부가세 제외
  • 원본 파일(input/)은 수정하지 않음. 이 문서의 금액은 원본을 읽기 전용으로 집계해 검증한 값
  • 행 번호 표기: erp.csv·approvals.csv는 파일 줄 번호(헤더 = 1행), .xlsx는 엑셀 행 번호(제목 1~3행, 헤더 4행)

1. CFO가 회의에서 판단해야 할 질문

추출 자료로 확인한 숫자를 붙여 두었습니다. CFO 요청서의 세 관심 항목부터 판단 순서대로 적었습니다.

#질문판단 근거(9월, 가마감 기준)검토할 대응
Q1**영업 광고비(SLS·ADV)**는 이미 예산을 넘었다. 추가 집행을 보류할 것인가?예산 60.0백만 / 전표 65.0백만 → 이미 5.0백만 초과. 확정 발주 잔액 5.0백만까지 더하면 10.0백만 초과. 전표 5건 중 4건(60.0백만)은 발주 연결이 없는 정산 전표임추가 집행 보류, PO 없이 정산한 경위 확인
Q2**마케팅 외주비(MKT·OUT)**는 전표만 보면 여유가 있지만 계약 잔액이 남아 있다. 계약 범위를 조정할 것인가?예산 100.0백만 / 전표 70.0백만(30.0백만 여유) + 미처리 확정 발주 40.0백만 → 확정 전망 110.0백만, 10.0백만 초과A02 잔여 35.0백만의 범위·시기 조정, 또는 MKT 내 재배분(MKT·ADV 여유 25.9백만)
Q3IT 소프트웨어(IT·SFT) 결재 대기 계약 A05(35.0백만)의 추가 부담을 받아들일 것인가?확정 기준 90.0백만(30.0백만 여유). A05를 반영하면 125.0백만, 5.0백만 초과. A05는 기준일 이후인 10-01에 승인되었으므로 9월 가마감에서는 시나리오로만 표시. 10월 재실행에서는 9월 귀속 발주 잔액으로 따로 확인5.0백만 초과 수용 또는 재배분(IT·OUT 여유 37.6백만)
Q4다른 결재 대기 발주도 승인할 것인가?MKT·SFT B02 5.05백만을 승인하면 4.75백만 초과(확정 기준으로는 0.3백만 여유). 나머지 대기 건은 승인해도 예산 안승인 보류 또는 조건부 승인
Q5예산에 없는 비용과 근거가 없는 발주를 어떻게 처리할 것인가?법무비 SLS·LEG 1.2백만은 예산 항목이 없음. IT·OPS 6.0백만 발주는 결재 기록이 없음(포함하면 IT·OPS 2.4백만 초과로 바뀜). 발주번호 오류 전표 0.9백만예산 편성/계정 재분류, 결재 근거 확보 전까지 확정 전망에서 제외
Q6재배분 재원을 어디서 가져올 것인가?확정 전망 기준 여유가 큰 항목: FIN·SFT 45.9, IT·OUT 37.6, SLS·OUT 34.0, IT·SFT 30.0(A05 반영 전), MKT·ADV 25.9 (백만)같은 부서 안에서 재배분(SLS·OUT → SLS·ADV, MKT·ADV → MKT·OUT)

9월 전체 합계: 예산 1,174.0백만, 전표 738.2백만, 미처리 확정 발주 176.7백만, 확정 전망 914.9백만(259.1백만 여유), 결재 대기가 모두 승인되면 +51.7백만.


2. 파일별 한 행의 의미와 연결 키

파일한 행이 뜻하는 것고유 키금액 컬럼비고
budget.xlsx (Budget)월 × 부서 × 비용코드의 예산 한 칸(month, department_code, cost_code) — 중복 없음current_budget_krw = base + adjustment (전 행 검증 일치)9월 20칸. LEG(법무비) 칸은 없음
erp.csv전표 한 줄(voucher_id + line_no). 이미 발생해 전기된 비용(voucher_id, line_no) — 중복 없음실적 = debit_krw − credit_krwpo_id/po_line은 선택 항목. 비어 있으면 발주 없이 처리한 비용
orders.xlsx (PO lines)발주 한 줄(po_id + po_line). 계약 금액이며 청구된 금액이 아님(po_id, po_line) — 중복 없음current_krw = original + change (전 행 검증 일치)한 발주가 여러 달로 나뉘면 줄마다 cost_month가 다름
approvals.csv결재 결정 이벤트 한 건(po_id + revision). 현재 상태표가 아니라 이력(po_id, revision)없음발주 머리(PO 헤더) 단위라 po_line이 없음. 해당 PO의 모든 줄에 적용

연결 키

budget (month, dept, cost) ─┬─ erp    (accounting_month, department_code, cost_code)
                            └─ orders (cost_month,       department_code, cost_code)
erp    (po_id, po_line)  ──→  orders (po_id, po_line)      ← 전표를 발주 줄에서 빼는 키
orders (po_id)           ──→  approvals (po_id) 1:N       ← 기준 시각의 최신 revision이 상태

전표→발주는 po_id만이 아니라 **(po_id, po_line)**으로 연결해야 합니다. 그렇지 않으면 다월 발주(PO-202609-MULTI)의 전표가 10월 줄까지 차감합니다.


3. 시간 기준

구분컬럼규칙
귀속 월(어느 달 예산과 비교할지)budget.month, erp.accounting_month, orders.cost_month2026-09인 행만 9월 보고에 포함
발생 시각(가마감에 넣을지)erp.posted_at≤ 2026-09-30 18:00인 전표만 실적
결재 상태 시각approvals.decided_atPO마다 decided_at ≤ cutoff인 행 중 revision이 가장 큰 행의 status를 사용. 파일의 마지막 행을 쓰면 안 됨
참고용(필터로 쓰지 않음)orders.expected_delivery납품 예정일. 포함 여부 판단에 쓰지 않음

추출 시각(10-02 18:00)이 cutoff보다 이틀 늦어서 cutoff 이후 이벤트가 파일에 섞여 있습니다. 실제로 확인된 것은 전표 1건(아래 4-1)과 결재 1건(아래 4-4)입니다. accounting_month는 9월인데 posted_at이 10월인 행은 전체에서 이 전표 1건뿐입니다.

orders.xlsx의 change_krw에는 변경 일자가 없습니다. MKT-OUT-A02의 +5.0백만은 approvals의 “변경 견적 승인”(2026-09-10) 행을 근거로 cutoff 이전 변경으로 봅니다. 이 부분은 가정이므로 확인 목록에 남깁니다.


4. 쟁점별 원본 행과 9월 가마감 영향

4-1. 기준 이후 전표

원본 위치내용
erp.csv 304행JV-202609-MKT-OUT-95, accounting_month 2026-09, posted_at 2026-10-01 12:00, MKT·OUT, 차변 2,000,000, 적요 “기준일 이후 전기”
  • 처리: 귀속 월은 9월이지만 cutoff 이후에 전기되었으므로 가마감 실적에서 제외합니다. 보고서에는 “기준 이후 전기(참고)“로 따로 표시합니다.
  • 영향: MKT·OUT 전표 실적은 72.0백만이 아니라 70.0백만입니다. 확정 전망은 112.0백만이 아니라 110.0백만이고, 초과액은 12.0백만이 아니라 10.0백만입니다.
  • 참고: 이 전표는 발주 연결이 없습니다. 10월 본마감에 들어오면 MKT·OUT 9월 실적은 72.0백만이 됩니다.

4-2. 여러 달에 걸친 발주

원본 위치내용
orders.xlsx 86행PO-202609-MULTI line 1, cost_month 2026-09, SLS·OUT, 12,000,000, 납품 2026-09-27
orders.xlsx 87행PO-202609-MULTI line 2, cost_month 2026-10, SLS·OUT, 18,000,000, 납품 2026-10-27
approvals.csv 84행2026-09-12 10:00 confirmed, “두 달 귀속 외주 승인”
erp.csv 305행JV-202609-SLS-OUT-96, 4,000,000, po_line 1, “다월 발주 1차 전표”
  • 처리: 9월 보고에는 line 1만 넣습니다. 미처리 잔액은 12.0 − 4.0 = 8.0백만입니다. line 2(18.0백만)는 10월 귀속이므로 9월 예산 비교에서 제외하고 “차월 확정 부담”으로 따로 적습니다. 참고로 budget.xlsx에는 10월 예산 칸이 없습니다.
  • 영향: SLS·OUT 미처리 확정 발주는 15.8백만(B01 7.8 + MULTI 8.0)입니다. 발주 총액 30.0백만을 9월에 넣으면 전망이 18.0백만 과대 계상되고, 전표 4.0백만까지 중복하면 22.0백만이 과대 계상됩니다. 어느 경우든 SLS·OUT은 예산 안(확정 전망 44.0 / 예산 78.0)이지만, 부서 합계와 재배분 재원 규모가 달라집니다.

4-3. 부분 전표 처리 (발주 일부만 전표로 처리된 건)

발주 잔액 = current_krw − Σ(연결 전표 순액, cutoff 이전), 최소 0. 9월 발주 가운데 연결 전표가 발주액을 넘는 경우는 없었습니다.

발주 (orders 행)발주액연결 전표 (erp 행)전표 처리액미처리 잔액총액을 더하면 생기는 중복
PO-202609-MKT-OUT-A02 (56행)60.0 (원 55.0 + 변경 5.0)229행 10.0 + 230행 15.0 “같은 발주 2차 전표”25.035.025.0
PO-202609-IT-SFT-A04 (76행)40.0278행 20.020.020.020.0
PO-202609-SLS-ADV-A01 (45행)10.0202행 5.05.05.05.0
PO-202609-MULTI line 1 (86행)12.0305행 4.04.08.04.0

(단위: 백만 원)

  • 영향(요청서 3항 피드백): MKT·OUT은 발주 총액(A02 60.0 + A03 5.0)을 더하면 135.0백만, 즉 35.0백만 초과로 보입니다. 잔액만 더하면 110.0백만, 10.0백만 초과입니다. IT·SFT도 총액을 쓰면 110.0백만이지만 잔액 기준으로는 90.0백만입니다.
  • A02는 전표가 2건이므로 전표 한 건만 차감하면 안 되고 연결 전표 전체를 합산해야 합니다.

4-4. 결재 상태 변경

원본 위치이력cutoff 시점 상태
approvals.csv 53행 → 55행MKT-OUT-A02 rev1 09-08 pending → rev2 09-10 confirmed “변경 견적 승인”confirmed → 잔액 35.0백만을 확정 발주에 포함
approvals.csv 75행 → 76행IT-SFT-A05 rev1 09-08 pending → rev2 10-01 confirmed “기준일 이후 승인”pending → 확정에서 제외하고 결재 대기 시나리오에 35.0백만 반영
  • 영향:
    • A02를 첫 행(pending) 기준으로 읽으면 MKT·OUT 확정 전망이 75.0백만이 되어 10.0백만 초과가 보이지 않습니다.
    • A05를 파일 마지막 행(confirmed) 기준으로 읽으면 IT·SFT가 확정 전망 125.0백만, 즉 초과로 잘못 보고됩니다. 가마감 기준으로 맞는 표시는 “확정 90.0 / 승인 시 125.0(5.0백만 초과)“입니다(요청서 3항 “뒤늦게 승인된 발주” 피드백).

4-5. 함께 처리할 예외 (확인 목록 대상)

유형원본 위치금액9월 처리
예산 누락erp.csv 300행 JV-202609-SLS-LEG-91 SLS·LEG “예산 항목 미편성”1.2실적에는 포함하고, 예산 0 대비 1.2 초과로 표시
발주 연결 오류erp.csv 301행 JV-202609-SLS-OUT-92 po_id PO-NOT-FOUND0.9SLS·OUT 실적에 포함하되, 어떤 발주도 차감하지 않음
결재 근거 누락orders.xlsx 84행 PO-202609-IT-OPS-NO-APPROVAL (approvals에 없음)6.0확정 발주에서 제외. 포함하면 IT·OPS가 −3.6에서 +2.4 초과로 바뀜
취소 발주orders.xlsx 85행 PO-202609-FIN-OUT-CANCELLED / approvals.csv 83행 cancelled (그 외 B02 취소 5건)8.0 (취소 합계 21.7)제외
수정 전표(대변)erp.csv 302행 FIN-OPS-93 차변 2.0 / 303행 FIN-OPS-94 대변 0.5순 1.5대변을 차감하지 않으면 FIN·OPS 실적이 0.5 과대
과거 월 발주 잔액7~8월 확정 발주 40건의 미처리 잔액 합계221.09월 예산 비교에서 제외. 해당 월에 종결했는지, 발주 미연결 정산 전표로 이미 청구되었는지 확인 필요
발주 미연결 정산 전표9월 전표 대부분(예: SLS·ADV 203~206행 60.0)—실적으로 반영. 이 전표들이 실제로 발주에 대한 청구라면 발주 잔액이 과대 계상됨 → 담당 부서 확인

5. 9월 예산 차이 — 보고서에 넣을 값 (검증 완료)

확정 전망 = 전표 실적(≤ cutoff, 차변−대변) + 미처리 확정 발주 잔액(cutoff 시점 confirmed, cost_month = 09). 단위: 백만 원.

초과 항목 (금액 큰 순)

구분부서·비용예산전표미처리 확정 발주확정 전망차이
이미 초과 + 발주 반영 시 확대SLS·ADV 광고비60.065.05.070.0+10.0 (전표만으로 +5.0)
확정 발주 반영 시 초과MKT·OUT 외주비100.070.040.0110.0+10.0
예산 누락SLS·LEG 법무비—1.201.2+1.2

결재 대기 승인 시나리오 (별도 표시)

부서·비용확정 전망대기 발주승인 시 전망예산차이
IT·SFT 소프트웨어90.0A05 35.0125.0120.0+5.0
MKT·SFT 소프트웨어100.7B02 5.05105.75101.0+4.75
그 외 대기 5건(SLS·OUT, SLS·OPS, MKT·ADV, FIN·EDU, IT·OPS)11.65모두 예산 안

주의 항목: FIN·TRV는 확정 전망 28.95 / 예산 29.0으로 여유가 0.05에 불과합니다.


6. HTML 보고 화면 구성 계획 (다음 단계)

  1. 회의용 요약 한 문단. 초과 3건과 대기 시나리오 2건, 합계 여유, 권고할 검토 방향(Q1~Q3)을 담습니다.
  2. 초과 항목 표. 위 5장을 금액 큰 순서로 넣고, “이미 초과”와 “발주 반영 시 초과”를 구분해 표시합니다.
  3. 결재 대기 시나리오 표. 확정 숫자와 분리합니다.
  4. 부서·비용별 상세(20칸 + LEG). 예산 / 전표 / 미처리 확정 발주 / 확정 전망 / 차이 / 대기 발주 / 기준 이후 전표(참고)를 보여 줍니다.
  5. 드릴다운. 각 칸에서 해당 전표(voucher_id, 행 번호), 발주 줄(po_id·line, 행 번호), 결재 이력(revision, decided_at)을 펼쳐 볼 수 있게 합니다. 요청서의 “원본 데이터를 바로 찾을 수 있어야” 요구에 대응합니다.
  6. 확인 목록. 4-5의 예외를 금액·원본 위치와 함께 넣습니다.
  7. 기준 표기. cutoff, 추출 시각, 부가세 제외, 집계 규칙(3장), 가정(A02 변경 시점)을 적습니다.

담당 부서에 확인할 사항: ① 발주 미연결 정산 전표가 발주 청구인지 여부, ② 7~8월 발주 잔액 221.0백만의 종결 여부, ③ MKT-OUT-A02 변경(+5.0)의 승인 시점, ④ SLS·LEG의 예산 편성 또는 계정 재분류.