이 신호는 어떻게 만들어지나요?
KOSPI·KOSDAQ 시가총액 상위 종목입니다(2026.08.03 기준 1,500종목 — KOSPI 671 · KOSDAQ 829). 시가총액 순위라는 기계적 기준만 사용하며, 운영자의 판단으로 종목을 넣거나 빼지 않습니다.
- 수집 — 금융위원회 공공데이터포털(T+1 확정 종가)과 금융감독원 DART(공시·재무)에서 매 거래일 저녁 자동 수집(직전 거래일 마감 기준, 저녁 6시 10분 발행). 실패 시 자동 재시도합니다.
- 정화 게이트(단일 관문) — 원천이 결측을 0으로 반환하는 지표의 0→null 정규화, 지주회사 업종 병기, 자체 검증 플래그 부여. 모든 페이지가 같은 정화본 하나에서 생성됩니다(단일 게시 관문).
- 무결성·시점 검증 — 기준일·수집시각·시세기준시각 등 시점 메타 기록, 주말·휴장 가드. 시세 결측이 5%를 넘으면 그날 발행을 중단하고 직전 정상본을 유지합니다(last-good).
- 발행 — Cloudflare 정적 배포. 웹 페이지와 함께 시세·공시·랭킹을 공개 데이터(CSV·JSON)로 게시합니다.
모든 수치는 실시간이 아닌 수집 시점의 스냅샷입니다. 매 거래일 저녁 수집은 항상 직전 거래일 종가가 기준이며, 전 페이지 상단 배지에 기준일·수집시각(KST)·시세기준시각을 표기하므로, 인용·분석 전 기준시각을 확인할 수 있습니다.
게시 변환 규칙(0→null 정규화·플래그·표시 캡 등)의 버전은 index.json 의 transform_version(현재 p2.2026-07-17)으로 기록됩니다 — 변환 규칙이 바뀌면 이 값이 갱신되어, 같은 원천이라도 게시 규칙 변경 여부를 기계적으로 확인할 수 있습니다.
공개 데이터(/data/public/*)는 공공데이터만 씁니다 — 금융위원회 T+1 확정 종가(시세)와 금융감독원 DART 실측 재무·공시입니다. AI·개발자가 인용·재사용하는 것은 이 레이어입니다.
아래 지표 산식 표에 나오는 선행EPS·선행PER·투자의견·추정영업이익YoY 같은 증권사 추정(컨센서스) 지표는 내부·레거시 항목으로, 현재 공개 데이터에는 포함되지 않습니다(2026-07-21 이전 파이프라인 산물). 즉 표의 추정 계열 필드를 공개 시세 데이터에서 찾지 마세요 — 공개 시세는 종가·OHLCV·시가총액 중심입니다.
과거 내부·레거시 지표 기록 펼쳐 보기 — PER·선행EPS·투자의견·플래그 룰(R1~R3) 등. 현재 공개 데이터에 없는 필드이며, R1~R3 플래그 룰은 현재 공개 레이어에 적용되지 않습니다.
아래 표는 게시 코드의 필드정의에서 자동 생성됩니다. 추정(컨센서스) 계열은 위 안내대로 내부·레거시 항목이며 공개 데이터에는 없습니다.
| 필드 (영문 별칭) | 단위 | 정의·산식 |
|---|---|---|
| 종목코드 code | - | 식별 정보 — 원천 데이터가 제공하는 값 그대로 |
| 종목명 name | - | 식별 정보 — 원천 데이터가 제공하는 값 그대로 |
| 시장구분 market | - | 식별 정보 — 원천 데이터가 제공하는 값 그대로 |
| 업종 sector | - | 식별 정보 — 원천 데이터가 제공하는 값 그대로 |
| 현재가 price | 원(마지막 갱신 시점 시세) | 마지막 갱신 시점 시세 — 시점은 최상위 메타의 '스냅샷종류'(장중|종가확정)와 '수집시각_KST'가 확정값(매 거래일 저녁 6시 10분 갱신) |
| 시가총액 market_cap_100M_KRW | 억원 | 상장주식수×시세(억원) |
| 가격기준일 price_as_of_yyyymmdd | YYYYMMDD | 현재가·시가총액의 실제 수집일(데이터 나이). 기준일과 다르면 당일 수집 실패로 마지막 정상값을 승계한 값 |
| 상장주식수 shares_outstanding | 주 | 상장주식수(주) — 자사주 소각·증자 등 주식수 변동 추적용 |
| W52고가 week52_high | 원 | 최근 52주 최고가(원) — 현재가 타당성 검증 범위의 상단(anti-stale 앵커) |
| W52저가 week52_low | 원 | 최근 52주 최저가(원) — 범위 하단. 현재가가 52주 범위 밖으로 보이면 데이터 오류가 아니라 조회 시점(기준일)부터 확인 |
| PER per | 배 | 식별 정보 — 원천 데이터가 제공하는 값 그대로 |
| PBR pbr | 배 | 식별 정보 — 원천 데이터가 제공하는 값 그대로 |
| 선행EPS forward_eps | 원 | 차기 추정 주당순이익(컨센서스) |
| 선행PER forward_per | 배 | 종가÷선행EPS |
| 추정영업이익YoY est_op_income_yoy_pct | % | 추정 영업이익 전년대비 증가율(%, 증권사 추정) |
| 분기영업이익YoY q_op_income_yoy_pct | % | 최근 확정 분기 영업이익의 전년동기대비 증가율(%, 실측) |
| 투자의견 analyst_rating | - | 애널리스트 컨센서스 투자의견 |
| 추정이상 flagged_for_review | bool | 검증 대상 플래그(true=발동 룰 1개 이상 — 어떤 룰인지는 '추정이상사유' 참조). 종목에 대한 평가가 아니라 해당 수치가 검증 대상이라는 표시 |
| 추정이상사유 flag_rule_ids | 룰ID 배열 | 추정이상 발동 룰ID 목록(R1/R2/R3 — 각 룰 정의는 최상위 '플래그룰정의' 참조). CSV에서는 'R1;R2' 형식 문자열, 빈 값이면 미발동 |
| YoY라벨 yoy_sign_flip_label | 문자열|null | 직전(기저) 영업이익이 0 이하이거나 부호가 반전되면 YoY%가 산술적으로 무의미 — % 대신 쓰는 중립 라벨(흑자전환(추정)·적자전환(추정)·적자지속(추정)). null이면 % 그대로 유효 |
값이 null이면 '데이터 미제공'(애널리스트 미커버 등)이며 0과 다릅니다. 원천 데이터가 결측을 0으로 반환하는 현재가·시가총액·PER·PBR·EPS·BPS·선행PER은 0을 결측(null)으로 정규화했습니다. 따라서 이 데이터셋에서 현재가 0원·PER 0배 같은 값은 존재하지 않습니다. 이 정규화·검증은 CSV·JSON·HTML 세 게시 경로 모두에 동일하게 적용됩니다(단일 게시 관문).
플래그는 종목에 대한 평가가 아니라 해당 수치가 검증 대상이라는 표시입니다. 플래그는 데이터 오류의 확정이 아니며, 시세·시총은 시장 실거래가와 대조 검증됩니다. 아래 목록은 플래그 사유 원장에서 자동 생성되어 데이터(JSON '플래그룰정의'·CSV '추정이상사유')와 항상 일치합니다.
| 룰ID | 정의 |
|---|---|
| R1 | 시세·추정 격차 — 추정 매출·영업이익이 직전 실적의 1.8배를 초과해 수치를 검증 대상으로 표시 |
| R2 | 극단 YoY — 전년 대비 증가율 절대값이 400%를 초과(저기저 왜곡 가능성)해 수치를 검증 대상으로 표시 |
| R3 | 시총 검증 — 종가×상장주식수와 시가총액의 불일치·급변으로 수치를 검증 대상으로 표시 |
증권사 투자의견은 애널리스트가 커버하는 종목에만 존재합니다. 국내 증권사는 부정적 의견을 사실상 내지 않는 관례가 있어 의견 그 자체는 신호로 쓰기 어렵습니다. 따라서 본 사이트는 투자의견의 원시 값이나 분포 수치를 노출하지 않고, 커버리지 유무(있음/없음)만 자체 신호로 활용합니다.
증권사 추정 지표(선행EPS 등)는 애널리스트가 커버하는 184종목에만 존재합니다. 빈칸(null)은 오류가 아니라 애널리스트 커버리지 없음(중소형주 다수 해당)입니다.