메인 콘텐츠로 건너뛰기
블로그 목록

데이터 인사이트

존재하지 않은 59경주에 예측을 냈습니다

2026년 8월 24일부터 사흘간 KRA 공공데이터가 과거 경주를 복제한 출주표를 내려줬고, OddsCast는 그것을 실제 경주로 읽고 64건의 AI 예측을 발행했습니다. 무엇이 어떻게 잘못됐는지, 어떤 검사가 없어서 못 걸렀는지, 그리고 무엇을 고쳤는지 전부 적습니다.

OddsCast 운영팀3분 분량
목차 · 7개 섹션

무슨 일이 있었나

2026년 8월 24일부터 26일까지 사흘간, OddsCast는 실제로 열리지 않은 59경주에 대해 AI 예측 64건을 만들어 사이트에 올렸습니다.

원인은 KRA 공공데이터 API가 그 사흘 동안 내려준 출주표였습니다. 그 내용이 며칠 전에 실제로 시행된 경주를 그대로 복제한 것이었습니다.

여기 그 내역을 적습니다. 무엇이 잘못됐는지, 왜 바로 못 걸렀는지, 무엇을 고쳤는지입니다.

복제된 카드 목록

받은 날짜·경마장 실제로는
8/24 서울 8/16 서울 (95두 전부 동일)
8/24 영천 8/16 부산경남 (64두 전부)
8/25 영천 8/14 부산경남 (87두)
8/25 제주 8/14 제주 (75두)
8/26 서울 8/15 서울 (103두)
8/26 부산경남 8/15 서울 (103두)
8/26 제주 8/15 제주 (67두)

마지막 줄이 특히 이상합니다. 8월 26일 부산경남 경주라고 받은 103마리가 전부 서울 소속 말이었습니다. 말 이름에 [서울] 접두어가 그대로 붙어 있었고, 경마장 이름만 부산경남으로 바뀌어 있었습니다.

왜 바로 못 걸렀나

응답 형식이 정상이었습니다. 필드가 빠지지도, 값이 깨지지도 않았습니다. 등장하는 말은 전부 실재하는 말이고 전적도 진짜입니다. 8월 24일 영천은 착순까지 내려왔는데, 그것도 8월 16일 부산경남 결과의 복제였습니다.

형식 검사로는 잡을 수 없었습니다. 구별되는 지점은 전부 구조에 있었습니다.

  • 요일. 2년 반 동안 수요일에 시행된 경주가 전 경마장 통틀어 0건인데, 8월 26일 수요일에 27경주가 잡혀 있었습니다. 제주 화요일도 역사상 0건입니다.
  • 말의 재출전 간격. 정상적인 기간에는 같은 말이 다시 나오기까지 최소 12일, 보통 14일입니다. 이 구간은 25일이었고, 심지어 화요일 영천에 나온 말이 금요일 부산경남에 다시 나왔습니다. 실제 경주일(8/2123)에서 이런 불가능한 재출전은 0%였는데 이 구간은 100%였습니다.
  • 확정되지 않는 배당. 사흘 내내 확정 배당과 매출이 한 건도 나오지 않았습니다.

발행인이 두 번 지적했고, 두 번 다 기각했습니다

이 부분을 빼면 기록이 아니라 홍보가 됩니다.

저희 발행인은 이 기간에 "테스트 데이터를 받고 있는 것 같다"고 두 번 이야기했습니다.

첫 번째 기각. 말 이름과 등급에 시험 데이터 표식이 없다는 이유였습니다. 표식을 찾을 수 없으니 정상이라고 판단했습니다.

두 번째 기각. 그 사이 KRA가 확정/잠정 상태를 나타내는 필드를 쓴다는 것을 발견했고, "시험 데이터가 아니라 잠정 착순일 뿐"이라고 결론지었습니다. 그 발견 자체는 맞았지만, 그것이 복제 카드를 설명하지는 않았습니다.

세 번째로 같은 지적을 받고서야 요일 분포와 재출전 간격을 세어봤고, 그때 드러났습니다.

여기서 남은 교훈을 그대로 적어 둡니다. 같은 의심이 두 번 제기되면, 기각한 근거 쪽을 다시 봐야 합니다.

피해와 정정

  • 존재하지 않는 59경주에 AI 예측 64건 발행
  • 그중 5건이 적중률 채점에 반영
  • 채점 대상 6,782경주 → 6,777경주로 정정, 승식별 적중률은 소수점 한 자리 안에서 이동

해당 날짜에는 실제 경주가 없었으므로 그 예측으로 마권을 살 수 있는 경주 자체가 없었습니다. 다만 사이트에는 실제 경주처럼 표시됐고, 그건 저희 잘못입니다.

무엇을 고쳤나

감지. 3주 안의 두 출주표가 출전마의 90% 이상을 공유하면 경보가 울립니다.

이 기준이 안전한지 먼저 쟀습니다. 2023년 이후 실제로 시행된 카드 12만 7,223쌍을 전부 대조했습니다.

결과
최대 겹침 50% (2쌍뿐)
90% 이상 겹친 경우 0건

실제 경주일끼리는 거의 겹치지 않습니다. 말이 다시 나오기까지 최소 12일이 필요하기 때문입니다.

조치. 처음에는 경보만 울렸습니다. 그런데 경보가 울린 다음 날 아침에도 예측은 계속 나갔습니다. 사람이 손으로 표시를 해줘야 예측·사이트·채점이 그 경주를 제외하는 구조였기 때문입니다. 그래서 사흘이 더 걸렸습니다.

지금은 완전히 일치하는 카드가 스스로 격리됩니다. 전 두수가 겹치고 출전이 20두 이상이면 자동으로 제외 표시가 붙고, 예측 생성·경주 목록·사이트맵·적중률 채점이 모두 그 표시를 읽습니다.

부분적으로만 겹치는 경우(90~99%)는 경보만 울립니다. 완전 일치 아래로는 근거가 기계적이지 않고, 실제 경주일을 숨기는 쪽이 더 나쁜 오류이기 때문입니다.

시각. 검사는 하루 한 번에서 매시로 옮겼습니다. 8월 24일 카드는 오전 10시 50분에 도착했는데, 그날 검사는 8시 50분에 이미 지나간 뒤였습니다.

왜 이걸 공개하는가

경마 예측 서비스가 자기 사고를 적는 경우는 드뭅니다. 적중률만 크게 적어두는 편이 보기 좋습니다.

다만 저희가 팔 수 있는 것이 그 반대라고 생각합니다. 적중률의 상한이 55% 부근이라는 것도, 측정해서 버린 아이디어가 스물여섯 개라는 것도 같은 이유로 적고 있습니다.

숫자가 틀렸을 때 틀렸다고 적지 않는 곳의 맞았다는 숫자는 확인할 방법이 없습니다.

이 글은 정보·분석 콘텐츠이며 마권 구매는 KRA 공식 채널에서만 가능합니다.

이 글에 자주 받는 질문

존재하지 않는 경주에 예측이 나갔다는 게 무슨 뜻인가요?

2026년 8월 24일부터 26일까지 KRA 공공데이터 API가 출주표를 내려줬는데, 그 내용이 8월 14~16일에 실제로 시행된 경주의 복제였습니다. OddsCast는 그것을 그날 열리는 경주로 읽고 59경주에 대해 64건의 AI 예측을 만들어 사이트에 올렸습니다.

그 예측을 보고 마권을 산 사람이 있나요?

해당 날짜에는 실제 경주가 없었으므로 그 예측으로 마권을 살 수 있는 경주 자체가 존재하지 않았습니다. 다만 사이트에는 실제 경주인 것처럼 표시됐습니다.

적중률 수치에도 영향이 있었나요?

5건이 채점에 반영됐다가 되돌렸습니다. 채점 대상 경주 수가 6,782건에서 6,777건으로 줄었고 승식별 적중률은 소수점 한 자리 안에서만 움직였습니다.

왜 바로 알아채지 못했나요?

출주표와 결과 응답이 모두 정상적인 형식으로 왔고, 등장하는 말도 전부 실재하는 말이었습니다. 구별할 수 있는 단서는 데이터의 형식이 아니라 구조에 있었습니다. 예를 들어 2년 반 동안 수요일에 시행된 경주가 한 건도 없는데 8월 26일 수요일에 27경주가 잡혀 있었습니다.

다시 일어나지 않게 무엇을 바꿨나요?

3주 안의 두 출주표가 출전마의 90% 이상을 공유하면 감지하는 검사를 넣었습니다. 실제 경주일끼리는 거의 겹치지 않습니다. 2023년 이후 실제 카드 12만 7,223쌍을 대조했을 때 90%를 넘긴 경우는 한 건도 없었고, 최대 겹침은 50%였습니다. 완전히 일치하는 카드는 자동으로 격리돼 예측·사이트·채점에서 제외됩니다.

태그

  • #사고기록
  • #데이터
  • #검증
  • #KRA
  • #투명성

이번 주 경주는 말마다 점수와 예상 순위로 정리해 두었습니다.

출마표, AI 예상, 지난 적중 기록을 한 화면에서 봅니다. 카카오 계정으로 바로 가입할 수 있고, 지금은 무료입니다.