무슨 일이 있었나
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일입니다. 이 구간은 2
5일이었고, 심지어 화요일 영천에 나온 말이 금요일 부산경남에 다시 나왔습니다. 실제 경주일(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 공식 채널에서만 가능합니다.