| 경쟁사 가격 출처 우선순위 | 의미 |
|---|---|
| 1️⃣ 조건일치 (bucket) | 같은 체크인·박수로 수집된 값 — 가장 신뢰 |
| 2️⃣ 라이브 | 실시간 수집값 |
| 3️⃣ 자동최저 | 다른 체크인의 최저값 — 날짜를 표기하고 “조건 미일치 비교 △” 경고 |
룸매칭 의심 · 가격 괴리 · 조식 불일치 · 입력오류 의심(경쟁최저 ½ 이하) · 고지≠실제 할인율
diff > 0 — 가격 조정 1순위
가격 미상 · 경쟁가 미수집 · 정원 미달(표시만)
우리가 같거나 저렴
룸매칭: 자동매칭 폐기 → stay-level 비교 + 수동 확정 매칭. room-sig 정규화로 후보 생성, 침실수 불일치 등은 suspect 플래그로 경고만.
| 마크업 우선순위 | 프로모션 행 > 룸 행 > 호텔 공통 · 새 Sale = Net × (1+마크업%) |
|---|---|
| 건너뜀 | 경쟁가 없는 룸 · 체크 해제 룸 (사유 행별 표시: 제외됨/가드동일/경쟁가없음/이미목표) |
| 최종 방어 | 서버 정책 가드가 전송 직전 재검증·차단 |
| 도구 | 용도 |
|---|---|
npm test | 문법 + 스케줄 + 락 + 룸매칭(room-sig) 회귀 |
scripts/audit-hidden-applied.js | 숨은가 전제(조건 할인 미반영) 전수 감사 — 1박 vs N박 단가 |
scripts/refresh-hidden-promos.js | 숨은가 룰 전수 재파싱 (dry-run 기본 · --apply 백업 후 반영 · 위험 청소) |
scripts/audit-room-matches.js · audit-official-products.js · check-curated-cond.mjs | 룸매칭 · 자사 스냅샷 · 큐레이션 조건 정합 감사 |