TL;DR
- 정확도 수치는 "얼마나 맞혔나"만으로 정해지지 않습니다. "무엇을 맞혔다고 칠 것인가"라는 채점 정의가 절반을 결정합니다.
- 우리는 현행 정의로 평균 오차 11.62%를 공개하고 있습니다(7일 예측, 표본 19건, 2026-08-01 기준).
- 같은 기간·같은 예측에 매칭과 집계 정의만 바꿔 여덟 가지로 다시 채점한 표를 /track-record에 상시 공개합니다. 매일 자동으로 갱신됩니다.
- 여덟 중 우리 수치보다 좋아 보이는 정의가 셋 있습니다. 우리는 그 셋 중 어느 것도 쓰지 않습니다. 왜 안 쓰는지가 이 노트의 내용입니다.
- 정의를 느슨하게 한다고 숫자가 좋아지는 것도 아닙니다. 여덟 중 셋은 오히려 크게 나빠집니다 — 가장 느슨한 조합이 가장 나쁜 숫자를 냈습니다.
왜 정의를 공개하나
정확도 수치는 그것이 가장 필요한 순간에 가장 많이 의심받습니다. 결재 서류에 붙은 숫자를 보는 쪽에서 "본인들에게 유리한 기준으로 잰 것 아니냐"고 묻는 것은 정당한 질문입니다. 실제로 채점 정의를 조금만 바꿔도 같은 예측이 전혀 다른 점수를 받습니다.
이 의심을 말로 반박할 방법은 없습니다. 방법은 하나뿐입니다 — 다른 정의로 재채점한 결과를 우리 손으로 같이 내놓는 것. 그중에 우리 숫자보다 좋아 보이는 것이 있다면, 그것을 쓰지 않고 있다는 사실 자체가 근거가 됩니다.
무엇을 바꾸고 무엇을 고정했나
- 고정한 것: 예측 자체입니다. 여덟 행 모두 과거에 실제로 내놓았던 같은 예측을 씁니다. 어느 행에서도 예측을 다시 만들지 않습니다.
- 바꾼 것: 그 예측을 실측과 어떻게 짝지을지(매칭), 어떤 품목까지 채점할지(모집단), 무엇을 한 단위로 평균낼지(집계) 세 가지뿐입니다.
- 미래 정보 누설은 0입니다. 날짜를 ±2일까지 허용하는 행이 있는데, 이것은 실측을 찾는 범위를 넓히는 것이지 예측을 만든 시점을 늦추는 것이 아닙니다. 예측 시점은 어느 행에서도 동일하며, 허용 폭(2일)이 예측 기간(7일)보다 짧아 예측 이전의 실측에 닿는 것이 구조적으로 불가능합니다.
여덟 가지 정의 (2026-08-01 기준)
| 채점 정의 | 표본 | 평균 오차 | 현행 대비 | 우리가 쓰나 |
|---|---|---|---|---|
| 현행 — 대표 시장 · 날짜 정확 일치 | 19건 | 11.62% | — | 사용 중 |
| 날짜를 ±2일까지 허용 | 57건 | 11.57% | −0.05%p | 미사용 |
| 시장 구분 없이 전부 매칭 | 37건 | 60.03% | +48.41%p | 미사용 |
| 현행 — 상위 30개 품목 채점 | 19건 | 11.62% | — | 사용 중 |
| 전 품목 채점 | 85건 | 9.99% | −1.63%p | 미사용 |
| 현행 — 예측을 실제로 한 날만 | 11일 | 12.69% | +1.07%p | 사용 중 |
| 예측을 못 한 날까지 포함 | 29일 | 4.81% | −6.81%p | 미사용 |
| 세 가지를 모두 완화 | 255건 | 62.91% | +51.29%p | 미사용 |
표본 단위가 행마다 다르다는 점에 주의해 주십시오. 위 여섯 행은 예측-실측 짝의 개수(건)이고, 집계 축 두 행은 날짜의 개수(일)입니다. "29일"을 "29건"으로 읽으면 규모를 크게 오해하게 됩니다.
음수(−)는 그 정의를 쓰면 우리 오차가 더 낮아 보인다는 뜻입니다. 여덟 중 그런 정의는 셋 — 그리고 우리는 셋 다 쓰지 않습니다.
느슨하게 한다고 좋아지지 않는다
이 표를 만들기 전 우리 예상은 "기준을 풀수록 숫자가 좋아질 것"이었습니다. 계획서에는 세 정의를 동시에 완화한 행을 "가장 유리한 조합"이라고 적어 두기까지 했습니다. 실측은 정반대였고, 그래서 이름을 "세 가지를 모두 완화"로 고쳤습니다.
- 시장 구분 없이 전부 매칭 — 60.03% (+48.41%p) 도매가로 만든 예측을 소매·친환경 실측에까지 붙이면 애초에 다른 것을 비교하게 됩니다. 같은 품목이라도 도매와 소매는 가격대가 다르므로 오차가 폭증합니다. 표본이 19건에서 37건으로 늘어난 것도 같은 예측이 여러 시장에 중복으로 붙었기 때문입니다.
- 세 가지를 모두 완화 — 62.91% (+51.29%p) 가장 느슨한 정의가 가장 나쁜 숫자를 냈습니다. 완화가 곧 유리함이 아니라는 것 자체가 이 행의 발견입니다.
이것은 우리 정의가 옳다는 증명이 아니라, "느슨한 기준으로 재면 잘 나온다"는 통념이 여기서는 성립하지 않는다는 사실 기술입니다.
좋아 보이는데 쓰지 않는 정의 둘
- 날짜를 ±2일까지 허용 — 11.57% (−0.05%p) 차이가 0.05%p입니다. 사실상 같은 숫자라 기준을 느슨하게 할 이유가 없습니다. 표본이 19건에서 57건으로 세 배가 되는데도 오차가 거의 그대로라는 점은, 오히려 현행 매칭이 표본을 편식하고 있지 않다는 방증으로 읽습니다.
- 전 품목 채점 — 9.99% (−1.63%p) 우리는 현재 상위 30개 품목만 채점합니다. 전 품목으로 넓히면 평균 오차가 1.63%p 낮아집니다. 즉 채점 대상을 넓히는 쪽이 우리에게 유리합니다.
전 품목 채점은 실제로 검토 중인 변경입니다. 다만 이 표를 만드는 작업 중에는 바꾸지 않았습니다. 정의 사다리를 만들다가 더 유리한 정의로 갈아타는 것은 이 노트가 경계하는 바로 그 행동이기 때문입니다. 바꾸게 된다면 별도로, 바꿨다고 적고 바꾸겠습니다.
가장 좋아 보이는 숫자가 가장 쓸모없다
표에서 눈에 띄게 좋은 행이 하나 있습니다. "예측을 못 한 날까지 포함"이 4.81%로, 현행보다 6.81%p 낮습니다. 이 노트에서 가장 중요한 문단이 여기입니다.
이 정의는 예측이 없던 날을 오차 0%로 계산합니다. 최근 30일 중 실제로 채점이 이뤄진 날은 11일뿐입니다. 나머지 날들은 주말·비거래일이거나 업스트림 데이터 공백이어서 채점할 표본 자체가 없었습니다. 그 날들을 "오차 0%"로 세어 평균에 넣으면 숫자는 당연히 내려갑니다.
내려간 것은 오차가 아니라 분모의 성격입니다. 예측을 안 한 날은 잘 맞힌 날이 아닙니다. 이 4.81%는 "우리가 얼마나 정확한가"에 대해 아무것도 말해 주지 않습니다.
그런데도 공개하는 이유
- 이 정의는 실제로 쓰이는 흔한 수법입니다. 숨기면 "그럼 그렇게 재면 몇 퍼센트인데?"라는 질문에 답할 수 없습니다.
- 우리 손으로 계산해 표에 올려 두고 쓰지 않는 편이, 우리가 이 함정을 알고 피했다는 것을 보이는 유일한 방법입니다.
- 대신 이 숫자는 표 안에만 둡니다. 페이지 요약·검색 결과 미리보기·공유 카드 어디에도 싣지 않습니다. 문맥 없이 잘려 나가면 완전히 다른 주장이 되기 때문입니다. 이 노트의 요약문에도 이 수치는 넣지 않았습니다.
참고로 실제 채점일만 평균낸 값은 12.69%로, 짝 단위 현행 수치(11.62%)보다 오히려 조금 높습니다. 같은 데이터라도 무엇을 한 단위로 묶느냐에 따라 이만큼 달라집니다.
이 표를 만들면서 우리가 낸 결함 둘
정직성 장치를 만드는 과정 자체도 틀릴 수 있습니다. 실제로 두 번 틀렸고, 둘 다 조용히 틀렸습니다.
- 실패했는데 성공으로 기록됐다. 사다리 계산이 통째로 실패한 적이 있습니다. 그런데 배치 작업은 "성공"으로 기록되고 결과 칸만 비어 있었습니다. 계산이 깨져도 본 작업(정확도 산출)은 계속되도록 예외를 삼키게 해 둔 탓입니다. 화면에서는 "아직 배포가 안 됐나"와 구분되지 않았습니다. 지금은 삼키되 조용하지 않게 — 실패 사유를 배치 기록에 남기고, 그 경로를 검증하는 테스트를 두었습니다.
- 값이 실행할 때마다 달랐다. 시장 구분을 푸는 행에서, 같은 조건에 여러 실측이 동시에 걸리는데 정렬 기준이 부족했습니다. 그래서 데이터베이스가 그때그때 다른 행을 골랐고, 같은 계산이 15.65%와 63.32% 사이를 오갔습니다. 정렬 기준을 추가해 고정했습니다.
두 번째가 더 위험한 종류입니다. 값이 틀린 게 아니라 매번 달랐기 때문에, 한 번만 보고 지나갔다면 발견하지 못했을 것입니다. 공개하는 숫자는 같은 조건에서 같은 값이 나와야 한다 — 당연해 보이지만 저절로 되지는 않습니다.
Caveats — 이 표를 어디까지 믿어야 하나
- 수치는 2026-08-01 스냅샷입니다. 사다리는 매일 자동으로 다시 계산되므로, 오늘 /track-record에서 보시는 값은 이 노트와 다를 수 있습니다. 이 노트를 인용하실 때는 기준일을 함께 적어 주십시오. 최신 값은 언제나 페이지 쪽이 맞습니다.
- 표본 19건은 여전히 작습니다. 정의를 바꾸면 표본이 최대 255건까지 늘지만, 그것은 같은 예측이 여러 실측에 붙어 부풀려진 결과이지 관측이 늘어난 것이 아닙니다. 우리는 어느 행에도 통계적 유의성 배지를 붙이지 않습니다.
- 여전히 7일 단기 예측뿐입니다. 30일·90일 구간은 채점할 표본을 아직 축적하는 중입니다. 구매·계약 판단에 정작 필요한 구간이 검증 전이라는 사실은 노트 #01 이후 달라지지 않았습니다.
- 여덟 가지가 가능한 정의의 전부는 아닙니다. 우리가 생각해 낸 여덟 가지일 뿐입니다. 실측가가 0원인 표본처럼 평균 오차를 수학적으로 계산할 수 없어 행으로 만들지 못한 경우도 있습니다(해당 표본 수는 페이지에 별도로 공시하며, 현재 0건입니다). 더 불리한 정의를 제안해 주시면 추가하겠습니다.
- 이 표는 우리 정의가 옳다는 증명이 아닙니다. "우리가 무엇을 골랐고 무엇을 고르지 않았는가"의 공개입니다. 고른 것이 최선인지는 보시는 분이 판단하실 몫입니다.
재현법
- 직접 확인: https://ecochn.org/track-record — 이 표가 "이 숫자는 어떤 정의에서 나왔나" 섹션에 매일 갱신되어 공개됩니다. 각 행의 표본 수와 단위, 현행 대비 차이를 함께 표기합니다.
- 이전 노트: 노트 #02 — 기준선 대비 우위가 좁혀졌을 때 무엇을 공개했는지. 이 노트와 같은 태도의 다른 사례입니다.
- 방법 재현: 과거 예측치와 실측을 짝지어 평균 절대 백분율 오차를 계산하되, (1) 실측을 찾는 날짜 허용 폭 (2) 채점할 품목 범위 (3) 평균을 내는 단위(짝 단위 vs 날짜 단위) 셋만 바꿔 가며 같은 계산을 반복하면 동일한 프레임을 재현하실 수 있습니다.
- 데이터 출처: 도매가는 공공데이터포털 aT(B552845) 및 도매시장 경락(at.go.kr), 기상 외생변수는 기상청 ASOS. 전부 공개 정부 데이터입니다.
맺음 — 숫자보다 정의를 먼저 묻는 쪽에게
"예측 정확도 90%" 같은 문장은 그 자체로는 검증할 수 없습니다. 무엇을 맞혔다고 쳤는지, 몇 개를 쟀는지, 언제 잰 것인지가 없기 때문입니다. 그런 문장을 결재 서류에 붙이면 질문 한 번에 무너집니다.
우리가 하려는 것은 그 반대입니다. 숫자 하나를 크게 쓰는 대신, 그 숫자가 어떤 선택 위에 서 있는지를 같은 화면에 놓습니다. 우리가 고르지 않은 정의까지 계산해서 나란히 두는 것은, 고르지 않았다는 사실이 고른 것보다 더 많은 것을 말해 주기 때문입니다.
다음 노트에서는 볼륨 가중 오차와 방향 편향처럼, 지금 우리가 아예 재고 있지 않은 축을 다룰 예정입니다. 평균 오차가 멀쩡해도 한쪽으로 치우쳐 틀리고 있다면 그것은 별개의 문제이고, 우리는 아직 그 축을 보지 않고 있습니다. (발행 캘린더는 약속하지 않습니다 — 쓸 내용이 쌓였을 때만 냅니다.)
고지
이 노트는 투자·매매 조언이 아닙니다. EcoChain은 공개 데이터 기반의 가격 참고 정보를 제공하며, 구매·계약 의사결정의 책임은 이용자에게 있습니다.