카드픽
METHODOLOGY · Trust Gate v1

데이터 방법론

카드픽은 해외 가격의 관측 표본과 중앙값, 이상치 필터를 바탕으로 참고가와 신뢰도 등급을 표시합니다. 표본은 거래 건수가 아니며, HIGH도 가격의 정확성이나 카드의 진품 여부를 보장하지 않습니다. 국내 실거래가와는 구분해서 보세요.

1. 표본 정의 (distinct count)

관측 표본은 실거래 건수나 독립 매물 수가 아닙니다. 카드별로 variant(마감 등 가격 구분) + date(수집 날짜) + source(출처) 조합을 세며, 구매자나 판매자를 세지 않습니다.

distinct_7d  = count(distinct (variant, date, source))
                 WHERE fetched_at > now() - interval '7 days'
distinct_30d = count(distinct (variant, date, source))
                 WHERE fetched_at > now() - interval '30 days'

같은 variant·출처·날짜의 반복 수집은 가격이 달라도 관측 표본 1건으로 셉니다. 반대로 가격이 같아도 수집 날짜가 달라지면 표본 수가 늘어납니다. 표본이 늘었다고 거래가 늘었거나 서로 다른 판매자의 가격을 확인했다는 뜻은 아닙니다.

2. Clean Median + MAD Outlier 제거

중앙값은 극단적인 값의 영향을 줄이기 위해 사용합니다. 최근 30일의 양수 가격 관측값에서 중앙값과 MAD(중앙값으로부터 떨어진 거리의 중앙값)를 구한 뒤, 아래 범위 안에 남은 값으로 중앙값을 다시 계산합니다.

median = percentile_cont(0.5) over price_30d
MAD    = median(|p - median|) for p in price_30d
clean  = price_30d 중 |p - median| < max(3 × MAD, median × 5%)
clean_median = median(clean)
clean_n      = count(clean)

max(3×MAD, median×5%)는 MAD가 0이어도 중앙값의 5%를 필터 폭으로 사용합니다. clean_n은 필터를 통과한 가격 행 수로, 위의 중복 제거 관측 표본 수(distinct)와 다릅니다. 반복 수집된 행도 남아 있을 수 있습니다.

이 필터는 관측된 분포에서 벗어난 값을 줄일 뿐, 모든 가격 오류를 잡지는 못합니다. 잘못 연결된 카드나 출처 오류가 반복되면 통과할 수 있고, 낮은 가격이라는 이유만으로 오류라고 판정하지도 않습니다.

3. Price-band별 Ratio Gate

최신 가격을 그대로 표시할지 판단할 때, 정제된 30일 중앙값과 비교합니다. 아래 범위는 카드픽의 산정 기준이며 시장에서 정상 가격임을 보증하는 범위가 아닙니다. 가격대는 최신 가격이 아니라 비교 기준 중앙값으로 나눕니다.

가격대허용 범위이유
₩3,000 미만절대차 |new - median| < ₩5,000배수 대신 금액 차이 비교
₩3,000 이상, ₩50,000 미만0.3배 이상, 3.0배 이하중앙값 대비 배수 비교
₩50,000 이상0.5배 이상, 2.0배 이하배수 범위를 더 좁게 적용
function cardpick_ratio_gate(p_new, p_median):
  if p_new is null or p_median is null or p_median <= 0: return false
  if p_median < 3000: return abs(p_new - p_median) < 5000
  if p_median < 50000: return 0.3 <= p_new/p_median <= 3.0
  else: return 0.5 <= p_new/p_median <= 2.0

4. 4단계 신뢰도 등급 산출

저장소의 Trust Gate 산정 정의에서는 정제 후 가격 행 수(clean_30d_n)가 5 미만인지 먼저 확인합니다. 그 다음 HIGH, MEDIUM, LOW 순서로 판정합니다. 아래 조건은 관측 데이터의 분류 기준이지 거래량이나 구매 안전 등급이 아닙니다.

등급조건표시 가격화면 라벨
HIGH clean_30d_n ≥ 5, distinct_7d ≥ 5, ratio gate 통과 최신 가격을 display_krw로 표시 현재 참고가
MEDIUM clean_30d_n ≥ 5, HIGH 조건 미충족, distinct_30d ≥ 10 정제된 30일 중앙값을 display_krw로 표시 최근 1개월 중앙값
LOW clean_30d_n ≥ 5, HIGH·MEDIUM 조건 미충족 정제된 30일 중앙값을 display_krw로 표시 30일 중앙값 · 표본 부족
NONE clean_30d_n < 5 null (가격 숨김) "참고가 산출 불가"

5. 신뢰도 분포 (매일 변동)

신뢰도 등급 분포는 가격 수집과 정제 결과에 따라 달라집니다. 특정 등급의 카드 수가 계속 늘거나 줄어든다고 가정하지 않으며, 각 집계 시점의 결과만 사용합니다.

분포는 고정 수치로 적지 않습니다. 등급별 카드 수를 확인할 때는 /facts/site JSON의 catalog.last_count_at과 catalog.trust_distribution을 함께 확인해야 합니다.

6. 운영 기준 요약

7. 이미지·상표 안내

8. 절대 사용하지 않는 패턴

9. 알고리즘 보강 이력

Trust Gate v1은 코드 리뷰와 실제 운영 중 발견한 오류를 바탕으로 다음 항목을 보강했습니다.

10. 자주 묻는 질문

NONE 등급이 왜 이렇게 많나요?

정제 후 가격 행 수가 5 미만이면 산정 정의상 NONE으로 분류합니다. 수집 데이터가 있어도 필터를 통과한 값이 부족할 수 있습니다. 화면에서도 신뢰도 결과나 유효한 표시 가격을 받지 못하면 참고가를 표시하지 않습니다. 이것이 카드의 가치가 없다는 뜻은 아닙니다.

왜 평균(avg) 안 쓰나요?

원화 참고가를 집계할 때 극단적인 관측값의 영향을 줄이기 위해 중앙값과 MAD 필터를 사용합니다. 중앙값도 반복된 출처 오류나 잘못 연결된 카드를 자동으로 바로잡지는 못합니다. Cardmarket의 평균 지표는 별도 출처 지표로 구분합니다.

price_low / price_high는 신뢰 가능?

원천 자료의 low/high는 카드픽의 신뢰도 필터로 산출한 참고가가 아닙니다. 국내 거래 범위나 raw·PSA 9·PSA 10별 가격으로 해석하면 안 됩니다. 카드픽 참고가를 볼 때는 display_krw에 해당하는 표시 가격과 신뢰도, 데이터 기준일을 함께 확인하세요.


질문 · 알고리즘 정정 제안: [email protected] · 설명 수정 (가격 산정 로직 변경 없음)