03 결과 도출 — 원고 표·그림, 제출용 엑셀, 검증¶
02_분석.ipynb의 산출물로 원고 「전망치」 장의 표 1–4, 그림 1–2, 제출용 엑셀을 만들고, 정비 전후 비교표(표 5)를 낸다.
마지막 셀은 정비판 공표 수치(config.PUBLISHED)와 계산 결과를 대조하고, 같은 계산을 이전 판 기준 시나리오에 적용한 결과가
이전 판 공표 수치(config.PREVIOUS)를 재현하는지 확인한다(반올림 범위 안에서 일치해야 통과).
2026-10 정비판. 보고서1의 기준 시나리오가 정비되었다. BOKDPM 장기 정상상태를 고치고(잠재성장률 1.8%, 물가안정목표 2%, 실질유가 불변),
실질금리를 1차 차분으로 투입하며, 시나리오 외생 경로의 레버를 연결한 뒤 산업 전망과 정합화를 다시 실행한 결과이다.
이 판은 그 기준 시나리오(data/inputs/base_va_62.csv·base_va_69.csv)만 교체하였고, AI 확산 층(산업 배분 A1, Λ 보정, 고용 중립 취업계수)은 이전 판과 같다.
이전 판 기준 시나리오는 data/published_prev/에 두고 정비 전후 비교와 이전 판 재현 점검에만 쓴다.
import os, hashlib
import numpy as np, pandas as pd
import config as C
import ai_forecast as F
pd.set_option("display.float_format", lambda v: f"{v:,.3f}")
C.setup()
import matplotlib.pyplot as plt
import koreanize_matplotlib # noqa: F401 (한글 글꼴)
sens = pd.read_csv(os.path.join(C.OUTPUT, "lambda_sensitivity.csv"))
va62 = pd.read_csv(os.path.join(C.OUTPUT, "ai_va_62.csv"))
va69 = pd.read_csv(os.path.join(C.OUTPUT, "ai_va_69.csv"))
lab62 = pd.read_csv(os.path.join(C.OUTPUT, "ai_premium_labor_62.csv"), index_col=0)
lab69 = pd.read_csv(os.path.join(C.OUTPUT, "ai_premium_labor_69.csv"), index_col=0)
var = pd.read_csv(os.path.join(C.OUTPUT, "allocation_variants.csv"), index_col=0)
cmp = pd.read_csv(os.path.join(C.OUTPUT, "compare_prev.csv"))
tot = va62.groupby(["시나리오", "연도"])["실질VA_십억원"].sum().unstack(0) / 1e3
Python 3.12.10 · pandas 2.2.3 · numpy 2.4.6 · openpyxl 3.1.5 · matplotlib 3.11.0 판: 2026-10 정비판 · 배분 A1 · 취업계수 neutral · Λ 중심 0.5 기준 62 있음 data\inputs\base_va_62.csv 기준 69 있음 data\inputs\base_va_69.csv 이전 판 기준 62 있음 data\published_prev\base_va_62_prev.csv 이전 판 기준 69 있음 data\published_prev\base_va_69_prev.csv 크로스워크 있음 data\crosswalk_21_62.csv 분화표 있음 data\carveout_69.csv 설문 통계표(비공개) 있음 data\private\AI수용도조사_통계표_260417.xlsx
표 1. 시나리오별 전산업 실질부가가치 전망¶
b25, b35 = tot.loc[C.START, "기준(S1)"], tot.loc[C.END, "기준(S1)"]
t1 = [{"시나리오": "기준", "2025(조원)": b25, "2035(조원)": b35, "연평균(%)": F.cagr(b25, b35, 10), "기준 대비(%p)": 0.0}]
for _, r in sens.iterrows():
t1.append({"시나리오": f"AI 확산(Λ={r['Λ(%p)']:.1f})", "2025(조원)": b25, "2035(조원)": r["2035 AI확산(조원)"],
"연평균(%)": r["CAGR(%)"], "기준 대비(%p)": r["기준 대비(%p)"]})
t1 = pd.DataFrame(t1)
t1.to_csv(os.path.join(C.OUTPUT, "table1_totals.csv"), index=False, encoding="utf-8-sig")
t1.style.format({"2025(조원)": "{:,.0f}", "2035(조원)": "{:,.0f}", "연평균(%)": "{:.2f}", "기준 대비(%p)": "{:+.2f}"}).hide(axis="index")
| 시나리오 | 2025(조원) | 2035(조원) | 연평균(%) | 기준 대비(%p) |
|---|---|---|---|---|
| 기준 | 2,178 | 2,609 | 1.82 | +0.00 |
| AI 확산(Λ=0.3) | 2,178 | 2,659 | 2.01 | +0.19 |
| AI 확산(Λ=0.5) | 2,178 | 2,692 | 2.14 | +0.32 |
| AI 확산(Λ=0.8) | 2,178 | 2,743 | 2.33 | +0.51 |
표 2. 산업별 AI 부가가치 프리미엄(2035년, 연 %p) — 상·하위¶
p = lab62["VA프리미엄_2035_%p"].sort_values(ascending=False)
t2 = pd.concat([p.head(8).rename("AI 프리미엄(%p)").to_frame().assign(구분="상위"),
p.tail(5).rename("AI 프리미엄(%p)").to_frame().assign(구분="하위")])
t2.to_csv(os.path.join(C.OUTPUT, "table2_premium_top_bottom.csv"), encoding="utf-8-sig")
t2[["구분", "AI 프리미엄(%p)"]].style.format({"AI 프리미엄(%p)": "{:+.2f}"})
| 구분 | AI 프리미엄(%p) | |
|---|---|---|
| 산업 | ||
| 44.컴퓨터 프로그래밍ㆍ시스템통합관리업 | 상위 | +0.62 |
| 45.정보서비스업 | 상위 | +0.62 |
| 40.출판업 | 상위 | +0.62 |
| 41.영상ㆍ오디오기록물제작 배급업 | 상위 | +0.62 |
| 42.방송업 | 상위 | +0.62 |
| 43.통신업 | 상위 | +0.62 |
| 56.교육서비스업 | 상위 | +0.58 |
| 23.의료ㆍ정밀ㆍ광학기기ㆍ시계 | 상위 | +0.56 |
| 39.음식점ㆍ숙박업 | 하위 | +0.43 |
| 33.건설업 | 하위 | +0.42 |
| 59.문화서비스업 | 하위 | +0.40 |
| 60.스포츠ㆍ오락서비스업 | 하위 | +0.40 |
| 62.수리ㆍ개인서비스업 | 하위 | +0.40 |
그림 1. 기준 대 AI 확산 전산업 부가가치 경로(2025–2035)¶
fig, ax = plt.subplots(figsize=(8, 4.2))
yrs = tot.index
ax.plot(yrs, tot["기준(S1)"], marker="o", color="#1f4e79", label="기준")
ax.plot(yrs, tot["AI확산(Λ=0.5)"], marker="o", color="#a9781f", label="AI 확산(Λ=0.5)")
ax.set_ylabel("조 원(2020년 연쇄가격)"); ax.grid(alpha=.3); ax.legend(frameon=False)
ax.set_title("전산업 실질부가가치: 기준 대 AI 확산", loc="left")
fig.tight_layout(); fig.savefig(os.path.join(C.OUTPUT, "fig1_paths.png"), dpi=150)
그림 2. 62개 산업 AI 부가가치 프리미엄(2035년)¶
q = lab62["VA프리미엄_2035_%p"].sort_values()
fig, ax = plt.subplots(figsize=(8, 11))
ax.barh([s.split(".", 1)[1] for s in q.index], q.values, color="#1f4e79")
ax.set_xlabel("연 %p"); ax.grid(axis="x", alpha=.3); ax.tick_params(axis="y", labelsize=7)
ax.set_title("산업별 AI 부가가치 프리미엄(중심 Λ=0.5, 2035)", loc="left")
fig.tight_layout(); fig.savefig(os.path.join(C.OUTPUT, "fig2_premium_62.png"), dpi=150)
표 3. 69분류 분화 산업 — 기준 대 AI 확산(2035년)¶
carve = list(pd.read_csv(C.CARVEOUT)["69분화산업"])
w = va69[va69["연도"] == C.END].pivot(index="산업", columns="시나리오", values="실질VA_십억원").loc[carve] / 1e3
w["AI 프리미엄(%p)"] = lab69.loc[carve, "VA프리미엄_2035_%p"]
w.to_csv(os.path.join(C.OUTPUT, "table3_carveout_69.csv"), encoding="utf-8-sig")
w.style.format({"기준(S1)": "{:,.1f}", "AI확산(Λ=0.5)": "{:,.1f}", "AI 프리미엄(%p)": "{:+.2f}"})
| 시나리오 | AI확산(Λ=0.5) | 기준(S1) | AI 프리미엄(%p) |
|---|---|---|---|
| 산업 | |||
| 반도체 | 235.8 | 227.6 | +0.56 |
| 이차전지 | 9.4 | 9.1 | +0.56 |
| 신재생에너지 | 7.7 | 7.5 | +0.44 |
| 조선업 | 9.8 | 9.5 | +0.50 |
| 철강 | 12.6 | 12.2 | +0.48 |
| 택배 | 12.6 | 12.2 | +0.46 |
| 건물건설건축보수 | 57.3 | 55.8 | +0.42 |
| 토목건설 | 24.5 | 23.9 | +0.42 |
표 4. AI 확산에 따른 취업계수 연변화(2035년, %p) — 고용 중립(중심)과 설문 탄력성(하방 민감도)¶
e = lab62["취업계수변화_설문탄력성_%p"].sort_values()
t4 = lab62.loc[list(e.head(6).index) + list(e.tail(4).index),
["VA프리미엄_2035_%p", "취업계수변화_고용중립_%p", "고용탄력성_ε(설문)", "취업계수변화_설문탄력성_%p"]]
t4.to_csv(os.path.join(C.OUTPUT, "table4_labor_coef.csv"), encoding="utf-8-sig")
t4.style.format("{:+.2f}")
| VA프리미엄_2035_%p | 취업계수변화_고용중립_%p | 고용탄력성_ε(설문) | 취업계수변화_설문탄력성_%p | |
|---|---|---|---|---|
| 산업 | ||||
| 10.가죽제품 | +0.48 | -0.48 | -1.81 | -1.35 |
| 9.섬유ㆍ의복 | +0.48 | -0.48 | -1.81 | -1.35 |
| 19.비금속광물제품 | +0.46 | -0.46 | -1.52 | -1.15 |
| 26.자동차 | +0.50 | -0.50 | -1.14 | -1.08 |
| 27.기타 운송장비 | +0.50 | -0.50 | -1.14 | -1.08 |
| 56.교육서비스업 | +0.58 | -0.58 | -0.80 | -1.05 |
| 5.금속ㆍ비금속광업 | +0.44 | -0.44 | -0.06 | -0.47 |
| 58.사회복지 서비스업 | +0.47 | -0.47 | +0.11 | -0.42 |
| 57.의료ㆍ보건업 | +0.47 | -0.47 | +0.11 | -0.42 |
| 61.사회단체 | +0.47 | -0.47 | +0.11 | -0.42 |
표 5. 정비 전후 비교 — 정비판 대 이전 판¶
이전 판 값은 같은 AI 확산 층을 이전 판 기준 시나리오에 적용해 다시 계산한 것이다(02_분석.ipynb 8절, 검증 셀에서 이전 판 공표 수치와 대조).
AI 확산의 총량 효과(기준 대비 연평균 차이)는 Λ로 보정되므로 정비 전후가 거의 같고, 수준은 기준 시나리오를 따라 움직인다.
LABEL = {"기준_2025_조": "기준 2025(조원)", "기준_2035_조": "기준 2035(조원)", "기준_CAGR": "기준 연평균(%)",
"AI_2035_조": "AI 확산(Λ=0.5) 2035(조원)", "AI_CAGR": "AI 확산(Λ=0.5) 연평균(%)", "AI_차이_%p": "AI 확산(Λ=0.5) 기준 대비(%p)",
"AI_수준차이_조": "AI 확산(Λ=0.5) 2035 수준 차이(조원)", "AI_수준차이_%": "AI 확산(Λ=0.5) 2035 수준 차이(%)",
"L03_2035_조": "AI 확산(Λ=0.3) 2035(조원)", "L03_차이_%p": "AI 확산(Λ=0.3) 기준 대비(%p)",
"L08_2035_조": "AI 확산(Λ=0.8) 2035(조원)", "L08_차이_%p": "AI 확산(Λ=0.8) 기준 대비(%p)"}
tt = cmp[cmp["구분"] == "총량"].set_index("항목").loc[list(LABEL), ["이전 판", "정비판", "차이"]].rename(index=LABEL)
pp = cmp[cmp["구분"] == "62 프리미엄(%p)"].set_index("항목").loc[list(t2.index), ["이전 판", "정비판", "차이"]]
pp.index = [f"AI 프리미엄 {c}(%p)" for c in pp.index]
sm = cmp[cmp["항목"] == "반도체"].set_index("구분").loc[["69 분화 기준 2035(조원)", "69 분화 AI 2035(조원)", "69 분화 프리미엄(%p)"], ["이전 판", "정비판", "차이"]]
sm.index = ["반도체 기준 2035(조원)", "반도체 AI 확산 2035(조원)", "반도체 AI 프리미엄(%p)"]
t5 = pd.concat([tt, pp, sm])
t5.to_csv(os.path.join(C.OUTPUT, "table5_vs_previous.csv"), encoding="utf-8-sig")
r = cmp[cmp["구분"] == "62 프리미엄(%p)"]
r = r["정비판"] / r["이전 판"]
print(f"산업별 프리미엄 비율(정비판/이전 판): 최소 {r.min():.6f} · 최대 {r.max():.6f} (62개 산업)")
t5.style.format("{:,.2f}")
산업별 프리미엄 비율(정비판/이전 판): 최소 1.002474 · 최대 1.002474 (62개 산업)
| 이전 판 | 정비판 | 차이 | |
|---|---|---|---|
| 기준 2025(조원) | 2,178.49 | 2,178.49 | 0.00 |
| 기준 2035(조원) | 2,688.52 | 2,609.03 | -79.49 |
| 기준 연평균(%) | 2.13 | 1.82 | -0.31 |
| AI 확산(Λ=0.5) 2035(조원) | 2,774.24 | 2,692.22 | -82.02 |
| AI 확산(Λ=0.5) 연평균(%) | 2.45 | 2.14 | -0.31 |
| AI 확산(Λ=0.5) 기준 대비(%p) | 0.32 | 0.32 | -0.00 |
| AI 확산(Λ=0.5) 2035 수준 차이(조원) | 85.72 | 83.19 | -2.53 |
| AI 확산(Λ=0.5) 2035 수준 차이(%) | 3.19 | 3.19 | 0.00 |
| AI 확산(Λ=0.3) 2035(조원) | 2,739.66 | 2,658.66 | -81.00 |
| AI 확산(Λ=0.3) 기준 대비(%p) | 0.19 | 0.19 | -0.00 |
| AI 확산(Λ=0.8) 2035(조원) | 2,826.84 | 2,743.26 | -83.58 |
| AI 확산(Λ=0.8) 기준 대비(%p) | 0.51 | 0.51 | -0.00 |
| AI 프리미엄 44.컴퓨터 프로그래밍ㆍ시스템통합관리업(%p) | 0.62 | 0.62 | 0.00 |
| AI 프리미엄 45.정보서비스업(%p) | 0.62 | 0.62 | 0.00 |
| AI 프리미엄 40.출판업(%p) | 0.62 | 0.62 | 0.00 |
| AI 프리미엄 41.영상ㆍ오디오기록물제작 배급업(%p) | 0.62 | 0.62 | 0.00 |
| AI 프리미엄 42.방송업(%p) | 0.62 | 0.62 | 0.00 |
| AI 프리미엄 43.통신업(%p) | 0.62 | 0.62 | 0.00 |
| AI 프리미엄 56.교육서비스업(%p) | 0.58 | 0.58 | 0.00 |
| AI 프리미엄 23.의료ㆍ정밀ㆍ광학기기ㆍ시계(%p) | 0.56 | 0.56 | 0.00 |
| AI 프리미엄 39.음식점ㆍ숙박업(%p) | 0.43 | 0.43 | 0.00 |
| AI 프리미엄 33.건설업(%p) | 0.42 | 0.42 | 0.00 |
| AI 프리미엄 59.문화서비스업(%p) | 0.40 | 0.40 | 0.00 |
| AI 프리미엄 60.스포츠ㆍ오락서비스업(%p) | 0.40 | 0.40 | 0.00 |
| AI 프리미엄 62.수리ㆍ개인서비스업(%p) | 0.40 | 0.40 | 0.00 |
| 반도체 기준 2035(조원) | 256.05 | 227.62 | -28.43 |
| 반도체 AI 확산 2035(조원) | 265.18 | 235.76 | -29.42 |
| 반도체 AI 프리미엄(%p) | 0.56 | 0.56 | 0.00 |
제출용 엑셀¶
한국고용정보원 전달용으로 62·69분류 기준·AI 확산 실질부가가치(2025–2035), 산업별 프리미엄·탄력성·취업계수 변화, 민감도, 정비 전후 비교(표 5)를 한 파일에 담는다.
xl = os.path.join(C.OUTPUT, "AI확산_부가가치_취업계수_전망_62_69_2025-2035.xlsx")
note = pd.DataFrame({"항목": ["단위", "기준 시나리오", "AI 확산 시나리오", "Λ", "산업 배분", "취업계수 변화", "작성"],
"내용": ["실질부가가치 십억 원(2020년 연쇄가격), 프리미엄·취업계수 변화는 연 %p",
f"보고서1 5장 정합화 후 S1, {C.VERSION}(2025 실적, 2026–2035 전망)",
"기준 성장률 + 산업별 AI 프리미엄 누적",
"2035년 실질부가가치 가중평균 프리미엄 0.5%p(민감도 0.3·0.8)",
f"{C.ALLOCATION}: E4-1 2040년 점수 − 1(척도 최저점) × 시점 램프",
"중심: 고용 중립(ε=0) → −프리미엄. 민감도: (ε − 1) × 프리미엄, ε는 E4·E5(2024년 대비 2040년 기대 증감)로 구한 고용 탄력성",
"aiforalab · 보고서2 4장 재현 패키지"]})
with pd.ExcelWriter(xl, engine="openpyxl") as wr:
note.to_excel(wr, sheet_name="설명", index=False)
for g, va in [("62", va62), ("69", va69)]:
for sc in ["기준(S1)", "AI확산(Λ=0.5)"]:
va[va["시나리오"] == sc].pivot(index="산업", columns="연도", values="실질VA_십억원").to_excel(
wr, sheet_name=f"{g}_{'기준' if sc.startswith('기준') else 'AI확산'}")
lab62.to_excel(wr, sheet_name="62_프리미엄_취업계수")
lab69.to_excel(wr, sheet_name="69_프리미엄_취업계수")
t1.to_excel(wr, sheet_name="Λ민감도", index=False)
var.to_excel(wr, sheet_name="배분방식_비교")
t5.to_excel(wr, sheet_name="정비전후_비교")
print("저장:", os.path.basename(xl))
저장: AI확산_부가가치_취업계수_전망_62_69_2025-2035.xlsx
검증 — 정비판 공표 수치와 이전 판 재현¶
- 정비판: 위 표·그림을 만든 산출물(
lambda_sensitivity.csv,ai_va_62.csv,ai_va_69.csv,ai_premium_labor_62.csv)에서 계산한 값과config.PUBLISHED(정비 실행에서 기록한 공표 수치, 정수 조 원·소수 첫째 또는 둘째 자리 %)의 차이가 반올림 범위 안에 있어야 한다. - 이전 판 재현: 같은 AI 확산 층을 이전 판 기준 시나리오에 적용한 결과(
compare_prev.csv의 이전 판 열)가 이전 판 공표 수치(config.PREVIOUS, 이전 판 원고·패키지의 값)를 반올림 범위 안에서 재현해야 한다. 이 점검이 통과하면 정비 전후의 차이는 기준 시나리오 교체에서만 온다.
P = C.PUBLISHED
def pick(df, prefix, col):
return df.loc[[c for c in df.index if c.startswith(prefix)], col].iloc[0]
a35 = tot.loc[C.END, "AI확산(Λ=0.5)"]
v69 = va69[(va69["연도"] == C.END) & (va69["산업"] == "반도체")].set_index("시나리오")["실질VA_십억원"] / 1e3
sv = sens.set_index("Λ(%p)")
calc = {
"기준_2025_조": b25, "기준_2035_조": b35, "기준_CAGR": F.cagr(b25, b35, 10),
"AI_2035_조": a35, "AI_CAGR": F.cagr(b25, a35, 10), "AI_차이_%p": F.cagr(b25, a35, 10) - F.cagr(b25, b35, 10),
"AI_수준차이_조": a35 - b35, "AI_수준차이_%": (a35 / b35 - 1) * 100,
"L03_2035_조": sv.loc[0.3, "2035 AI확산(조원)"], "L03_차이_%p": sv.loc[0.3, "기준 대비(%p)"],
"L08_2035_조": sv.loc[0.8, "2035 AI확산(조원)"], "L08_차이_%p": sv.loc[0.8, "기준 대비(%p)"],
"정보통신_프리미엄_%p": pick(lab62, "44.", "VA프리미엄_2035_%p"), "교육_프리미엄_%p": pick(lab62, "56.", "VA프리미엄_2035_%p"),
"문화_프리미엄_%p": pick(lab62, "59.", "VA프리미엄_2035_%p"),
"반도체_2035_기준_조": v69["기준(S1)"], "반도체_2035_AI_조": v69["AI확산(Λ=0.5)"],
"정보통신_취업계수_%p": pick(lab62, "44.", "취업계수변화_2035_%p"), "건설_취업계수_%p": pick(lab62, "33.", "취업계수변화_2035_%p"),
}
assert set(calc) == set(P) == set(C.PREVIOUS) == set(C.PUBLISHED_SPEC), "검증 항목과 공표 수치 항목이 다르다"
rows = []
for k, (grp, item, dg) in C.PUBLISHED_SPEC.items():
tol = C.tolerance(dg)
rows.append({"구분": "정비판", "항목": k, "계산": calc[k], "기준값": P[k], "허용오차": tol, "통과": abs(calc[k] - P[k]) <= tol})
for k, (grp, item, dg) in C.PUBLISHED_SPEC.items():
tol, v = C.tolerance(dg), F.lookup(cmp, "이전 판", grp, item)
rows.append({"구분": "이전 판 재현", "항목": k, "계산": v, "기준값": C.PREVIOUS[k], "허용오차": tol, "통과": abs(v - C.PREVIOUS[k]) <= tol})
res = pd.DataFrame(rows)
res.to_csv(os.path.join(C.OUTPUT, "verification.csv"), index=False, encoding="utf-8-sig")
display(res)
assert res["통과"].all(), "공표 수치와 계산 결과가 다르다 — 위 표에서 통과=False 항목을 확인한다"
n_new, n_prev = (res["구분"] == "정비판").sum(), (res["구분"] == "이전 판 재현").sum()
print(f"검증 통과: 정비판 공표 수치 {n_new}개 항목과 이전 판 재현 {n_prev}개 항목, 모두 {len(res)}개 항목이 반올림 범위 안에서 일치한다.")
| 구분 | 항목 | 계산 | 기준값 | 허용오차 | 통과 | |
|---|---|---|---|---|---|---|
| 0 | 정비판 | 기준_2025_조 | 2,178.489 | 2,178.000 | 0.500 | True |
| 1 | 정비판 | 기준_2035_조 | 2,609.028 | 2,609.000 | 0.500 | True |
| 2 | 정비판 | 기준_CAGR | 1.820 | 1.820 | 0.005 | True |
| 3 | 정비판 | AI_2035_조 | 2,692.217 | 2,692.000 | 0.500 | True |
| 4 | 정비판 | AI_CAGR | 2.140 | 2.140 | 0.005 | True |
| 5 | 정비판 | AI_차이_%p | 0.320 | 0.320 | 0.005 | True |
| 6 | 정비판 | AI_수준차이_조 | 83.189 | 83.000 | 0.500 | True |
| 7 | 정비판 | AI_수준차이_% | 3.189 | 3.200 | 0.050 | True |
| 8 | 정비판 | L03_2035_조 | 2,658.662 | 2,659.000 | 0.500 | True |
| 9 | 정비판 | L03_차이_%p | 0.192 | 0.190 | 0.005 | True |
| 10 | 정비판 | L08_2035_조 | 2,743.259 | 2,743.000 | 0.500 | True |
| 11 | 정비판 | L08_차이_%p | 0.512 | 0.510 | 0.005 | True |
| 12 | 정비판 | 정보통신_프리미엄_%p | 0.620 | 0.620 | 0.005 | True |
| 13 | 정비판 | 교육_프리미엄_%p | 0.584 | 0.580 | 0.005 | True |
| 14 | 정비판 | 문화_프리미엄_%p | 0.400 | 0.400 | 0.005 | True |
| 15 | 정비판 | 반도체_2035_기준_조 | 227.623 | 228.000 | 0.500 | True |
| 16 | 정비판 | 반도체_2035_AI_조 | 235.756 | 236.000 | 0.500 | True |
| 17 | 정비판 | 정보통신_취업계수_%p | -0.620 | -0.620 | 0.005 | True |
| 18 | 정비판 | 건설_취업계수_%p | -0.425 | -0.420 | 0.005 | True |
| 19 | 이전 판 재현 | 기준_2025_조 | 2,178.489 | 2,178.000 | 0.500 | True |
| 20 | 이전 판 재현 | 기준_2035_조 | 2,688.518 | 2,689.000 | 0.500 | True |
| 21 | 이전 판 재현 | 기준_CAGR | 2.126 | 2.130 | 0.005 | True |
| 22 | 이전 판 재현 | AI_2035_조 | 2,774.242 | 2,774.000 | 0.500 | True |
| 23 | 이전 판 재현 | AI_CAGR | 2.447 | 2.450 | 0.005 | True |
| 24 | 이전 판 재현 | AI_차이_%p | 0.321 | 0.320 | 0.005 | True |
| 25 | 이전 판 재현 | AI_수준차이_조 | 85.724 | 86.000 | 0.500 | True |
| 26 | 이전 판 재현 | AI_수준차이_% | 3.189 | 3.200 | 0.050 | True |
| 27 | 이전 판 재현 | L03_2035_조 | 2,739.664 | 2,740.000 | 0.500 | True |
| 28 | 이전 판 재현 | L03_차이_%p | 0.193 | 0.190 | 0.005 | True |
| 29 | 이전 판 재현 | L08_2035_조 | 2,826.838 | 2,827.000 | 0.500 | True |
| 30 | 이전 판 재현 | L08_차이_%p | 0.514 | 0.510 | 0.005 | True |
| 31 | 이전 판 재현 | 정보통신_프리미엄_%p | 0.619 | 0.620 | 0.005 | True |
| 32 | 이전 판 재현 | 교육_프리미엄_%p | 0.583 | 0.580 | 0.005 | True |
| 33 | 이전 판 재현 | 문화_프리미엄_%p | 0.399 | 0.400 | 0.005 | True |
| 34 | 이전 판 재현 | 반도체_2035_기준_조 | 256.053 | 256.000 | 0.500 | True |
| 35 | 이전 판 재현 | 반도체_2035_AI_조 | 265.179 | 265.000 | 0.500 | True |
| 36 | 이전 판 재현 | 정보통신_취업계수_%p | -0.619 | -0.620 | 0.005 | True |
| 37 | 이전 판 재현 | 건설_취업계수_%p | -0.424 | -0.420 | 0.005 | True |
검증 통과: 정비판 공표 수치 19개 항목과 이전 판 재현 19개 항목, 모두 38개 항목이 반올림 범위 안에서 일치한다.