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백만) |
| Q3 | IT 소프트웨어(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_krw | po_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_month | 2026-09인 행만 9월 보고에 포함 |
| 발생 시각(가마감에 넣을지) | erp.posted_at | ≤ 2026-09-30 18:00인 전표만 실적 |
| 결재 상태 시각 | approvals.decided_at | PO마다 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.0 | 35.0 | 25.0 |
PO-202609-IT-SFT-A04 (76행) | 40.0 | 278행 20.0 | 20.0 | 20.0 | 20.0 |
PO-202609-SLS-ADV-A01 (45행) | 10.0 | 202행 5.0 | 5.0 | 5.0 | 5.0 |
PO-202609-MULTI line 1 (86행) | 12.0 | 305행 4.0 | 4.0 | 8.0 | 4.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-FOUND | 0.9 | SLS·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.0 | 9월 예산 비교에서 제외. 해당 월에 종결했는지, 발주 미연결 정산 전표로 이미 청구되었는지 확인 필요 |
| 발주 미연결 정산 전표 | 9월 전표 대부분(예: SLS·ADV 203~206행 60.0) | — | 실적으로 반영. 이 전표들이 실제로 발주에 대한 청구라면 발주 잔액이 과대 계상됨 → 담당 부서 확인 |
5. 9월 예산 차이 — 보고서에 넣을 값 (검증 완료)
확정 전망 = 전표 실적(≤ cutoff, 차변−대변) + 미처리 확정 발주 잔액(cutoff 시점 confirmed, cost_month = 09). 단위: 백만 원.
초과 항목 (금액 큰 순)
| 구분 | 부서·비용 | 예산 | 전표 | 미처리 확정 발주 | 확정 전망 | 차이 |
|---|---|---|---|---|---|---|
| 이미 초과 + 발주 반영 시 확대 | SLS·ADV 광고비 | 60.0 | 65.0 | 5.0 | 70.0 | +10.0 (전표만으로 +5.0) |
| 확정 발주 반영 시 초과 | MKT·OUT 외주비 | 100.0 | 70.0 | 40.0 | 110.0 | +10.0 |
| 예산 누락 | SLS·LEG 법무비 | — | 1.2 | 0 | 1.2 | +1.2 |
결재 대기 승인 시나리오 (별도 표시)
| 부서·비용 | 확정 전망 | 대기 발주 | 승인 시 전망 | 예산 | 차이 |
|---|---|---|---|---|---|
| IT·SFT 소프트웨어 | 90.0 | A05 35.0 | 125.0 | 120.0 | +5.0 |
| MKT·SFT 소프트웨어 | 100.7 | B02 5.05 | 105.75 | 101.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 보고 화면 구성 계획 (다음 단계)
- 회의용 요약 한 문단. 초과 3건과 대기 시나리오 2건, 합계 여유, 권고할 검토 방향(Q1~Q3)을 담습니다.
- 초과 항목 표. 위 5장을 금액 큰 순서로 넣고, “이미 초과”와 “발주 반영 시 초과”를 구분해 표시합니다.
- 결재 대기 시나리오 표. 확정 숫자와 분리합니다.
- 부서·비용별 상세(20칸 + LEG). 예산 / 전표 / 미처리 확정 발주 / 확정 전망 / 차이 / 대기 발주 / 기준 이후 전표(참고)를 보여 줍니다.
- 드릴다운. 각 칸에서 해당 전표(voucher_id, 행 번호), 발주 줄(po_id·line, 행 번호), 결재 이력(revision, decided_at)을 펼쳐 볼 수 있게 합니다. 요청서의 “원본 데이터를 바로 찾을 수 있어야” 요구에 대응합니다.
- 확인 목록. 4-5의 예외를 금액·원본 위치와 함께 넣습니다.
- 기준 표기. cutoff, 추출 시각, 부가세 제외, 집계 규칙(3장), 가정(A02 변경 시점)을 적습니다.
담당 부서에 확인할 사항: ① 발주 미연결 정산 전표가 발주 청구인지 여부, ② 7~8월 발주 잔액 221.0백만의 종결 여부, ③ MKT-OUT-A02 변경(+5.0)의 승인 시점, ④ SLS·LEG의 예산 편성 또는 계정 재분류.