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

Cross Section Anomaly Rank

scan.quality, scan.audit, scan.disclosureRisk 같은 L1.5 횡단 primitive를 포렌식 후보 발굴에만 사용하고, 단일 기업 결론은 원표 selfRun으로 다시 검증하게 만든다. 트리거 — '포렌식 이상치 랭킹', 'scan primitive 이상치'.

이 스킬

Cross Section Anomaly Rank

scan.quality, scan.audit, scan.disclosureRisk 같은 L1.5 횡단 primitive를 포렌식 후보 발굴에만 사용하고, 단일 기업 결론은 원표 selfRun으로 다시 검증하게 만든다. 트리거 — '포렌식 이상치 랭킹', 'scan primitive 이상치'.

Recipes observed recipes.fundamental.quality.forensics.crossSectionAnomalyRank

이어 가기

절차

실행 순서

  1. 1

    scan 결과가 비면 빈 후보를 그대로 드러낸다.

  2. 2

    candidate row를 투자 판단처럼 쓰지 않는다.

예시

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

  • 공시리스크 이상치 후보 뽑고 원표로 검증
  • scan quality 기반 포렌식 후보

출력

기대 결과

  • scan primitive 기반 후보 표
  • universe와 axis
  • 단일 기업 검증으로 넘길 target

공개 호출 방식

import dartlab
from dartlab.synth.evidenceForensics import buildEvidenceForensicsMemo

target = "005930"
scanRows = []
for axis in ("quality", "audit", "disclosureRisk"):
    try:
        df = dartlab.scan(axis)
        rows = df.head(5).to_dicts() if hasattr(df, "head") else []
        for row in rows:
            row["axis"] = axis
        scanRows.extend(rows)
    except Exception:
        pass

memo = buildEvidenceForensicsMemo(
    target=target,
    market="KR",
    companyName=target,
    scanRows=scanRows,
)

emit_result(
    table=memo["tables"]["crossSectionAnomalyRank"],
    values={"target": target, "candidateRows": len(memo["tables"]["crossSectionAnomalyRank"])},
    date=memo["asOf"],
    sources=memo["sources"],
)

호출 동작

1. 결론 도출

scan primitive는 후보 발굴만 한다. 결과는 candidate 또는 watch row이며 단일 기업 위험 결론이 아니다.

2. 핵심 근거 수집

dartlab.scan("quality"), dartlab.scan("audit"), dartlab.scan("disclosureRisk") 같은 L1.5 횡단 primitive의 상위 row를 받는다.

3. 메커니즘 분석

횡단면 이상치는 selfRun 타깃 선택에 유용하다. 하지만 개별 회사의 원표와 공시 본문 검증을 통과해야 엔진 후보 신호가 된다.

4. 반례·한계

prebuilt scan 기준일, 결손값, 축별 score 정의가 다르다. 후보 row에는 universe와 axis를 반드시 남긴다.

5. 후속 모니터링

상위 후보는 deepDive를 통해 Company.show 원표 기반으로 다시 실행한다.

대표 반환 형태

column의미
rank후보 순위
target종목 코드 또는 ticker
name회사명
metricscan axis 또는 metric
score후보 score
statuscandidate/watch

연계 절차

  1. engines.scan - quality, audit, disclosureRisk primitive로 후보를 발굴한다.
  2. recipes.fundamental.quality.forensics.deepDive - 후보별 원표 검증.
  3. recipes.fundamental.quality.forensics.engineCandidateMemo - 반복 성공 신호만 승격 후보.

기본 검증

  • scan 결과가 비면 빈 후보를 그대로 드러낸다.
  • candidate row를 투자 판단처럼 쓰지 않는다.

런타임

실행 환경별 호환성

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

실패 회피

흔한 실패 · 절대 금지

흔한 실패
  • scan column 이름이 축마다 달라 score 추출 실패
  • 후보 상위권이 데이터 결손 회사로 채워짐
절대 금지
  • scan 후보를 분석 결론으로 확정하지 않는다.
  • universe, 기준일, axis 없이 후보를 나열하지 않는다.