24년에 구상하고 26년에 완성한 "투자부동산 공정가치 자동 산출기" — 회계 결산 담당자가 AI로 감사 근거모형을 다시 만든 이야기
📝 한 줄 요약 (바쁘면 이것만)
기말 결산 때 투자부동산을 공정가치로 공시하려면 "그 가격이 왜 그 값이냐"는 근거가 있어야 합니다. 보통은 감정평가사에게 맡기지만, 그 전에 회사가 직접 시장 실거래 + 시점수정으로 합리성을 검증하는 약식 모형이 필요해요. 이걸 공공데이터 API(국토교통부 실거래가 + 한국부동산원 지가변동률)로 자동 수집해서, 백데이터 증빙이 되는 산출모형 계산 HTML을 만들었습니다. 24년에 n8n으로 처음 구상했던 걸, 26년에 AI로 깔끔하게 재구성했어요.
🎯 이런 분께 도움이 됩니다
회사에서 결산·재무보고를 담당하는 분 (투자부동산 공정가치 주석을 만드셔야 하는 분)
주식 투자할 때 사업보고서·감사보고서의 자산가치가 적정한지 직접 따져보고 싶은 분
공공데이터 API로 부동산 시세를 자동 수집하는 파이프라인이 궁금한 분
"반복 업무에 사람 판단이 꼭 필요한 부분"을 AI로 어떻게 남기는지 보고 싶은 분
😫 문제 상황 (Before)
재무제표에서 투자부동산(임대수익·시세차익 목적으로 보유하는 토지·건물)은 공정가치로 평가해서 공시하는 경우가 많습니다. 그런데 감사보고서 주석을 보면 보통 이렇게 한 줄로 끝나요:
"투자부동산의 공정가치는 당사가 최근 이용가능한 유사거래가격을 반영한 평가금액에 근거하여 산정하였습니다."
문제는 이 한 줄 뒤에 깔린 산출근거입니다.
투자자 입장에서는 이 공정가치 금액이 맞아?? 라고 생각할 수 있고, 심지어는 해당 투자부동산의 주소를 알고있다면 아니 내가 이동네 시세를 아는데 이가격이 아닌데 가격을 다운시켰네?? 내가 산주식 이거 벨류업을 하질않네?? 라고 할수도 있습니다.
또한 실무적으론 감사인(회계사)이 "그래서 그 평가금액이 어떻게 나온 건데요?"라고 물으면, 재현 가능한 모형을 내놓아야 accept을 받습니다. 결산 담당자 입장에서는: 해당 이슈에 대한 해소를 위해서는 근거가 필요한데 보통은 기말에 감정평가사로부터 평가를 받고 보고서를 제출하지만 분기감사 또는 약식 회사 검토가 필요합니다. 이때 유사 토지의 실거래가(평당가격)를 기준점으로 잡고 → 지가변동률 누적분으로 시점수정 → 지역·개별요인 비교를 하는 비준가액을 산출하여 공정가치를 판별하는 거래사례비교법(去來事例比較法, Sales Comparison Approach)을 사용하게 됩니다.
매번 엑셀로 인근 실거래를 손으로 긁어모으고
시점(거래일 → 결산일) 차이를 지가변동률로 보정하고
면적당 단가 평균을 내서 보유 면적을 곱하고
장부가와 비교해 "손상도 재평가도 불필요하다"는 논리를 세워야 합니다
저는 사실 이 작업을 2024년에 n8n과 커서(Cursor)에서 클로드를 써서 처음 구상했었어요. 그때는 API가 없거나 내용이 부족했던 시절이라 사이트에서 직접 조회해 엑셀을 받는 구조였고, 실제 회사 실무에 적용했던 모형입니다. 그 n8n 워크플로우 로직(Schedule Trigger, Set 노드 — 평가대상 입력, HTTP Request,— 국토부 실거래가,HTTP Request — 부동산원 지가변동률,Function 노드 (JS) — 핵심 계산,OpenAI 노드 — 이상치 검수 + 코멘트,Google Sheets노드, Email전송)과 cursor의 산출물(약식평가보고서)은 기록으로서 남아 있었죠. 이번에 그걸 처음부터 다시, 더 깔끔하게 재구성하기로 했습니다.
🛠️ 사용한 도구
hermes agent (과거 구축한 워크플로우 자료 던지고 대화하면서 데이터 수집·계산·문서화를 시킴)
국토교통부 실거래가 공개 API (상업·업무용 부동산 매매 데이터)
한국부동산원 R-ONE 지가변동률 API (지역별·월별 땅값 변동률)
결과물: 단일 HTML 파일 (브라우저로 열면 바로 동작, 서버 불필요)
🔧 작업 과정 (스토리텔링)
1막. "샘플 주소를 줄게" — 그런데 데이터가 안 잡힌다
시연용으로 서울 여의도의 한 빌딩 주소를 샘플로 잡았습니다. 먼저 그 동네의 지가변동률부터 뽑았어요. 한국부동산원 API로 2023년 1월부터 2025년 12월까지 36개월치 월별 변동률을 긁어서, 전월대비 상승률과 전년 말 대비 상승률, 전년 동기대비 상승률을 산출하고 지가변동률 표를 만들었습니다. 그리고 거래일과 결산일 사이의 땅값 변화를 보정하는 "시점수정계수"를 계산했습니다. 이 "시점수정계수"는 가격변동률을 사용하기로 하였고 산식은 다음과 같습니다. 시점수정치=k=1∏n(1+Nk)
*N : FY년 지가변동률
36개월을 복리로 누적하니 계수가 나왔습니다. "이 동네 땅값은 3년간 약 10.6% 올랐다"는 한 줄짜리 숫자(계수 1.105844)로 압축된 거죠.
그런데 실거래가를 수집하는 단계에서 막혔습니다. 토지 단독 거래 API로 여의도를 조회하니 거래가 거의 없었어요. 알고 보니 여의도 같은 도심 빌딩은 토지만 따로 거래되지 않고, 토지+건물이 통째로 거래되더군요. AI가 이걸 짚어줬습니다. "토지 단독 실거래가 아니라 상업·업무용 부동산 매매 API를 써야 합니다."
2막. AI가 잡아준 함정 — "집합"과 "일반"
상업용 부동산 API를 붙였더니 이번엔 진짜 함정이 나왔습니다. 여의도동 거래를 36개월 긁으니 824건이 나왔는데, 그중 815건이 "집합"이었어요. 집합 = 빌딩 안의 개별 호실(한 층, 한 사무실) 거래라서, 토지(대지) 면적이 안 나옵니다. 토지 공정가치를 구하려는데 분모가 없는 거죠.
여기서 24년 회사 실무 때의 기억이 딱 맞아떨어졌습니다. 그때 우리 회사는 공장만 뽑아냈기 때문에 면적이 깔끔하게 있었어요. 공장은 토지+건물이 통째로(=API 용어로 "일반" 거래) 거래되니까요. 같은 원리로, 빌딩도 "일반" 거래만 추려야 대지면적이 잡힙니다.
AI에게 "일반 거래만 필터해서 대지면적이 있는 표본이 몇 건인지 세봐"라고 시켰더니 — 824건 중 단 9건. 그 9건이 진짜 우리가 쓸 수 있는 데이터였습니다.
3막. 가장 중요한 건 "끌고 오는 것"보다 "걸러내는 것"
9건을 거래금액 ÷ 대지면적으로 단가를 내봤더니, 단가가 ㎡당 3,200만 원부터 7억 7,000만 원까지 18배 차이가 났습니다. 그냥 평균 내면 숫자가 엉망이 되죠. 들여다보니:
41㎡, 19㎡짜리 초소형 자투리 거래 (빌딩 부지가 아님) → 제외
같은 물건을 두 번 신고한 중복 거래 → 하나만
대지를 쪼개 신고한 지분 거래 → 제외
진짜 대형 업무빌딩 통거래 4건 → 채택
이게 이 모형의 심장입니다. 24년에 처음 만들 때도 핵심은 "데이터를 자동으로 끌고 오되, 이상치를 사람이 걸러내는 것"이었어요. 거래 수집은 자동화하되, "이건 자투리라 빼고, 이건 지분이라 빼고"는 사람이 판단해야 합니다. 완전 자동화하면 4,200만 원짜리 자투리가 7억짜리 빌딩 평균을 오염시키니까요.
그래서 HTML에 체크박스를 넣었습니다. 9건을 다 보여주고, 각 거래에 "정상/지분/자투리/중복" 태그를 달아두고, 사람이 체크를 끄면 평균에서 빠지고 즉시 재계산됩니다.
4막. 입력값만 바꾸면 살아 움직이는 모형
마지막으로 전체를 하나로 엮었습니다:
정상 4건 평균 단가 = ㎡당 약 6,328만 원
× 시점수정계수 1.105844 (3년 땅값 상승 반영)
= 공정가치 단가 ㎡당 약 6,998만 원
× 보유 면적 = 공정가치 총액
장부가와 비교 → 공정가치가 더 높으면 "손상 징후 없음"
면적, 장부가, 시점수정계수를 입력창에서 바꾸면 모든 숫자가 실시간으로 다시 계산됩니다. 검증을 위해 손계산과 브라우저 결과를 자릿수까지 대조했는데 정확히 일치했어요. 그리고 해당 HTML로 약식평가보고서 백데이터자료 첨부로 쓸수 있게 되었습니다.
또한 이렇게 계산하는 방법으로 재무제표의 주석에서 투자부동산 공정가치 내용을 보고 해당 회사의 투자부동산의 위치를 명확히 알고 있다면 투자에 비슷한 매커니즘으로 장부금액과의 비교를 해볼 수 있습니다. 하두 요새 기업주주가치제고니 벨류업이니 해서 자산재평가가 이슈다 보니...투자자인 주주입장에서 회사 IR이나 관련부서에 문의를 넣으려면 그래도 논리구성을 해서 따져야 하지않겠습니까? ㅎㅎ 무턱대고 "아 내가 그 동네 시세를 아는데... 이렇게 시작하지 마시고..."
✅ 결과 (Before / After)
Before
인근 실거래를 사이트에서 손으로 긁어 엑셀에 붙여넣기
거래일–결산일 시점차 보정을 수작업 계산
이상치 판단·평균·면적 곱셈을 매번 엑셀 수식으로
가격시점·면적이 바뀌면 시트를 통째로 다시
After
공공 API가 36개월 실거래·지가변동률을 자동 수집
이상치는 체크박스 한 번으로 포함/제외 → 평균 즉시 재계산
가격시점이 바뀌면 계수 숫자 하나만 교체
출처가 전부 공개 API라 누구나 재현 가능 (감사인이 직접 검증 가능)
가장 큰 변화는 "한 줄짜리 주석 뒤의 모형이 투명해졌다"는 점입니다. 결산 담당자에게 가장 좋은 시나리오는 장부가와 산출 모형의 값 차이가 작은 것이에요. 차이가 작으면 "자산손상 평가도, 자산 재평가도 할 필요가 없다"는 논리가 깔끔하게 섭니다. 이 도구는 그 차이를 한눈에 보여줍니다.
💬 배운 팁
효과적이었던 것
샘플로 시작해서 함정을 먼저 만난 것. 실제 회사 데이터가 아니라 시연용 샘플(여의도)로 돌렸더니, "도심 빌딩은 집합거래라 대지면적이 없다"는 핵심 함정을 안전하게 발견했습니다.
과거 실무 경험을 AI에게 맥락으로 준 것. "우리 회사는 공장만 뽑아서 면적이 있었다"는 한마디가 "일반 거래만 필터링"이라는 정확한 해법으로 이어졌어요.
사람 판단이 필요한 곳을 자동화하지 않은 것. 이상치 제거는 일부러 체크박스로 남겼습니다.
하지 말 것
실거래를 무조건 평균 내지 말 것. 자투리·지분·중복이 섞이면 18배 편차가 평균을 망칩니다.
분모를 건물면적으로 쓰지 말 것. 토지 공정가치인데 건물면적으로 나누면 "그건 건물값 아니냐"고 반박당합니다. 반드시 대지면적.
🌍 다른 업무에도 적용된다면
투자자 입장의 자산 저평가 스크리닝: 요즘 주식시장에서 자산가치가 핫합니다. 주주들이 회사에 보유 부동산 재평가를 요구하는 일도 많아요. 사업보고서·감사보고서의 투 자부동산 항목을 찾아, 이 모형으로 간이 평가를 해보면 장부가가 시세 대비 저평가인지 투자자가 직접 가늠할 수 있습니다.
감정평가 전 사전 검토: 보통은 리스크를 없애려고 기말에 감정평가사를 통해 재평가하고 주석에 기입합니다. 이 약식 모형은 그 정식 감정 전에 회사가 스스로 합리성을 점검하는 용도로 맞습니다.
같은 "공공 API 수집 → 이상치 사람 검수 → 자동 재계산" 구조는 원자재 시세, 환율, 임대료 벤치마크 같은 다른 공정가치 평가에도 그대로 응용됩니다.
※ 본문의 여의도 주소·숫자는 메커니즘 시연용 샘플이며 특정 회사 자산과 무관합니다. 거래·지가 데이터는 공공 API(data.go.kr·한국부동산원 R-ONE)의 공개값으로 누구나 재현할 수 있습니다. 본 모형은 정식 감정평가가 아닌 약식 거래사례비교법이며, 실제로는 최종 공정가치는 감사인 협의·정식 감정으로 확정합니다.