이 스킬
Damodaran R&D 자본화 감사
L1 재무제표의 연구개발비 라인을 찾아 R&D 자본화 필요 여부와 결손을 표시하는 Damodaran식 정규화 절차. 트리거 — 'R&D capitalization', '연구개발비 자본화', 'Damodaran R&D adjustment'.
이어 가기
예시
이런 질문이 들어오면 이 skill 을 쓴다
- AAPL R&D 자본화 감사
출력
기대 결과
- R&D ?? ?? ?? ??? ??? ???
- ?? L1/L1.5 ?? ?? ? fallbackAccepted ?? blocker
- normalized EBIT/FCFF ?? ? ?? ?
공개 호출 방식
import dartlab
import importlib.resources as resources
import json
import polars as pl
from dartlab.synth.damodaranL15 import buildDamodaranMemo
target = "005930"
c = dartlab.Company(target)
market = getattr(c, "market", "US" if not target.isdigit() else "KR")
currency = getattr(c, "currency", "USD" if market == "US" else "KRW")
company_name = getattr(c, "corpName", getattr(c, "companyName", target))
def _loadReference(name):
return json.loads(resources.files("dartlab.reference.data").joinpath(name).read_text(encoding="utf-8"))
def _safeShow(topic):
try:
table = c.show(topic, freq="Y")
except TypeError:
table = c.show(topic)
except Exception:
return pl.DataFrame()
return table if isinstance(table, pl.DataFrame) else pl.DataFrame()
try:
price_frame = dartlab.gather("price", target, market="US") if market == "US" else dartlab.gather("price", target)
price_date = str(price_frame.tail(1).to_dicts()[0].get("date", "")) if isinstance(price_frame, pl.DataFrame) and price_frame.height else None
except Exception:
price_date = None
memo = buildDamodaranMemo(
target=target,
market=market,
currency=currency,
companyName=company_name,
statements={topic: _safeShow(topic) for topic in ("IS", "BS", "CF")},
countryDefaults=_loadReference("damodaranDefaults.json"),
industryDefaults=_loadReference("damodaranIndustryDefaults.json"),
marketData={"priceDate": price_date} if price_date else {},
)
emit_result(
table=memo["tables"]["rdCapitalization"],
values=memo["headline"],
date=memo.get("asOf"),
units=memo["units"],
sources=memo["sources"],
) 호출 동작
1. 결론 도출
R&D 라인이 있으면 자본화 검토 대상으로, 없으면 fallbackAccepted 결손으로 표시한다.
2. 핵심 근거 수집
Company.show("IS"|"CF")의 snakeId와 항목명을 검색한다.
3. 메커니즘 분석
R&D는 성장 투자 성격이 강하므로 비용 처리된 금액이 크면 NOPAT와 invested capital 정규화 후보가 된다.
4. 반례·한계
상각기간 추정은 아직 reference가 없으므로 엔진 계산이 아니라 감사 절차로 둔다.
5. 후속 모니터링
후속 스킬은 normalizedFinancials와 fcffDcf다.
대표 반환 형태
rdCapitalization : list[dict] — adjustment, status, lineItem, latestYear, latestValue, action.
연계 절차
- recipes.fundamental.valuation.damodaran.accountTraceAudit - 계정 trace 확인.
- recipes.fundamental.valuation.damodaran.normalizedFinancials - 정규화 패널 반영 후보 점검.
런타임
실행 환경별 호환성
| 환경 | 상태 | 비고 / 제한 |
|---|---|---|
| Local Python | supported | — |
| Server | supported | — |
| MCP | unknown | — |
| Web AI | unknown | — |
| Pyodide | unknown | — |
실패 회피
흔한 실패 · 절대 금지
흔한 실패
- 연구개발비 결손을 정상 비용 구조로 오판
절대 금지
- L2 엔진 호출 금지.
- R&D 라인이 없는데 0으로 확정하지 않는다.