recipes.fundamental.quality.forensics.dataCoverageAudit Recipes Recipe observed

Forensics Data Coverage Audit

포렌식 분석 전에 Company.show 원표와 L1.5 helper가 실제로 어떤 기간·계정 coverage를 갖는지 확인해 결손을 0으로 채우는 회귀를 막는다. 트리거 — '포렌식 데이터 coverage', '원표 결손 점검'.

이 스킬

Forensics Data Coverage Audit

포렌식 분석 전에 Company.show 원표와 L1.5 helper가 실제로 어떤 기간·계정 coverage를 갖는지 확인해 결손을 0으로 채우는 회귀를 막는다. 트리거 — '포렌식 데이터 coverage', '원표 결손 점검'.

Recipes observed recipes.fundamental.quality.forensics.dataCoverageAudit

이어 가기

절차

실행 순서

  1. 1

    IS/BS/CF 중 누락된 표가 있으면 답변에 명시한다.

  2. 2

    normalizedPanel의 mapped metric count가 낮으면 riskScore를 해석하지 않는다.

예시

이런 질문이 들어오면 이 skill 을 쓴다

  • 삼성전자 포렌식 데이터 coverage
  • BS IS CF 원표 결손 점검

출력

기대 결과

  • IS BS CF rowCount와 periodCount
  • normalizedPanel metric coverage
  • 결손 시 후속 분석 차단 사유

공개 호출 방식

import dartlab
from dartlab.synth.evidenceForensics import buildEvidenceForensicsMemo

target = "005930"
c = dartlab.Company(target)
statements = {}
for topic in ("IS", "BS", "CF"):
    try:
        statements[topic] = c.show(topic, freq="Y")
    except TypeError:
        statements[topic] = c.show(topic)
    except Exception:
        pass

memo = buildEvidenceForensicsMemo(
    target=target,
    market=str(getattr(c, "market", "KR")),
    companyName=str(getattr(c, "corpName", target)),
    statements=statements,
)

emit_result(
    table=memo["tables"]["dataCoverageAudit"],
    values={"target": target, "decisionStatus": memo["decisionStatus"], "riskScore": memo["headline"]["riskScore"]},
    date=memo["asOf"],
    sources=memo["sources"],
)

호출 동작

1. 결론 도출

coverage가 충분하면 usable, 핵심 원표 일부가 없으면 usableWithGaps, panel 자체가 없으면 insufficientStatements로 판정한다.

2. 핵심 근거 수집

Company.show("IS"|"BS"|"CF") 반환 DataFrame의 row 수, 기간 컬럼 수, 최신 period, 표준 metric 매핑 수를 모은다.

3. 메커니즘 분석

coverage audit은 모든 세부 포렌식 스킬의 선행 gate다. 이 단계에서 결손을 숨기면 매출·현금·운전자본 계산이 모두 거짓 안전 신호로 바뀐다.

4. 반례·한계

금융업, 지주회사, 상장 기간 짧은 회사는 IS/BS/CF가 있어도 metric coverage가 낮을 수 있다. 결손은 위험이 아니라 분석 가능성 제한으로 표시한다.

5. 후속 모니터링

coverage가 낮으면 accountTraceLedger에서 어떤 metric이 빠졌는지 확인하고, 충분하면 revenueToCashBridge로 넘어간다.

대표 반환 형태

column의미
datasetIS, BS, CF, normalizedPanel
statusok 또는 missing
rowCount원표 행 수
periodCount기간 컬럼 수
latestPeriod최신 기간
requiredFor후속 계산에서 쓰는 이유

연계 절차

  1. engines.company - 대상 기업 facade에서 원표 topic을 확보한다.
  2. recipes.fundamental.quality.forensics.accountTraceLedger - metric별 raw 계정 trace 확인.
  3. recipes.fundamental.quality.forensics.revenueToCashBridge - coverage 충분 시 매출-현금 bridge 실행.

기본 검증

  • IS/BS/CF 중 누락된 표가 있으면 답변에 명시한다.
  • normalizedPanel의 mapped metric count가 낮으면 riskScore를 해석하지 않는다.

런타임

실행 환경별 호환성

환경상태비고 / 제한
Local Python supported
Server supported
MCPunknown
Web AIunknown
Pyodide limited

실패 회피

흔한 실패 · 절대 금지

흔한 실패
  • topic 이름을 추측하고 c.topics 확인 없이 실패를 숨김
  • 분기/연간 컬럼을 섞어 같은 period처럼 사용
절대 금지
  • 결손 원표를 0으로 채우지 않는다.
  • latestPeriod 없이 최신 데이터라고 말하지 않는다.
  • coverage가 낮은데 riskScore를 단정하지 않는다.