🏨 호텔 가격 관리 총괄 매뉴얼
① 큰 그림 — 가격 관리 사이클
1. 수집자사·경쟁사 가격
자동 + 확장 + 수동
2. 검수룸매칭·QA 플래그
데이터 신뢰 확보
3. 비교큐레이션 룸비교
숨은가 포함 실효가
4. 조정워크벤치 추천가
가드 내 적용/요청
5. 추적판매 신호·변동
효과 확인 → 1로
🎯 운영 목표: “경쟁사 실효가(숨은가 포함)보다 근소하게 저렴한 가격을, Net 마진 하한을 지키며 유지”
② 화면 지도 — 어디서 무엇을 하나
🏠 호텔 목록
- 전 호텔 현황 (카드/리스트 모드)
- 긴급 워크리스트: 비쌈 호텔 · 최대 가격차 상위
- 검색(한/영), 재수집·수집요청 버튼
- 미니 KPI: 비쌈/투어픽없음 호텔 수
⭐ 큐레이션 룸비교 (메인)
- 확정 룸그룹별 3사 가격 한 행 비교
- 타이틀줄: 판매 현황 (주간·월간·전월·3개월)
- 숨은가 ON/OFF · 전체 요금 비교 토글
- 경쟁사 대비 판정(±부호) · 룸별 ↗링크(요금·날짜 자동 세팅)
- KPI: 비싼 건 / 입력오류 의심 / 최대 가격차
💰 가격 조정 워크벤치
- 룸·프로모션별 Sale/Net/마크업/경쟁최저 표
- 규칙 적용(원모드 기본) → 미리보기 → 적용/요청
- 열기 칼럼: TP PK TR 요금·날짜 자동 세팅 딥링크
- 변경 없음 사유 행별 표시
🛏 룸 매칭 관리
- 그룹별 확정/보류/제외 + 대표 룸명·메모
- suspect(침실수 불일치 등) 검토
📈 경쟁사 신호 / 요금표
- competitor_signal 시계열 · 자사 실판매
- 요금표 탭: KV 원본 요금 확인
🧪 데이터 QA / 상세
- 중요도(긴급/주의/일반)별 행 검사
- 비교불가 사유 · 조건 요약 확인
③ 수집 관리 — 3가지 경로
| 경로 | 동작 | 주의 |
| 🤖 자동 파이프라인 | 서버 스케줄 수집 (TP_PIPELINE=1). 자사 요금표 6시간 주기 + 버킷 재수집 | 전수 버킷 재수집은 베트남 날짜경계(UTC+7) 시간대 활용 |
| ⚡ 크롬 확장 (빠름) | 페이지에서 수집 오프로딩 — 확장 설치 시 기본 선택. 진행률·단계 표시, 저장 실패 시 실패로 표시 | 확장 수정 시 재팩+zip 버전 검증까지 한 단위. 최신 zip: /downloads/tp-ext.zip |
| 🖱 수동 재수집 | 호텔 카드/상세의 재수집 버튼. 수집 완료 시 트립온 캐시 즉시 무효화 → 신선값 바로 표시 | 재수집 직후 화면 새로고침으로 확인 |
🚨 수집 중 pm2 restart 금지 — 진행 중 수집/작업 상태가 날아감 (restart-wipe 사고 이력). 배포는 수집이 없는 시점에.
④ 일상 운영 루틴
1
호텔 목록 → 긴급 워크리스트 확인“최대 +N원 비쌈” 상위 호텔부터. 비쌈/투어픽없음 카운트로 우선순위
2
호텔 상세 → 큐레이션에서 데이터 신뢰 확인T0 플래그(룸매칭 의심·조식 불일치·입력오류 의심·가격 괴리) 먼저 해소 — 데이터가 틀리면 조정도 틀린다
3
숨은가 ON 상태로 실효가 비교경쟁사 “진짜 가격” 기준으로 비쌈 여부 판단. ↗링크로 실제 페이지 교차 확인
4
가격 조정 워크벤치 → 규칙 적용(미리보기)원모드(경쟁최저 − 범위 랜덤) 기본 · 가드 클램프🟡 확인 · 제외할 룸 체크 해제
5
적용 또는 요청 기록LIVE 호텔 = 승인 시 실전송 / 그 외 = 봉인(기록만). 메모에 조정 근거 남기기
6
판매 현황·경쟁사 신호로 효과 추적큐레이션 타이틀줄 판매 라인(주간/월간/전월/3개월) + 신호 탭 시계열
⑤ 배지·경고 사전 — 보이면 이렇게
요금표 갱신됨 · 대표가 옛 스냅샷자사 스냅샷이 요금표와 불일치 — 평소엔 자동 재수집을 기다렸다 최신가 표시, 이 배지는 재수집 실패/시간초과 시에만 남음→ 잠시 후 새로고침, 계속되면 보고
숨은가 기준경쟁최저가 숨은가(조건 할인 적용가)로 계산됨→ 정상. OFF로 표시가 비교 가능
PK 대비 +N원 비쌈자사가 경쟁최저보다 비쌈 (1박 기준)→ 워크벤치 조정 후보
PK 대비 −N원 저렴자사가 저렴 — 목표 상태→ 과도하게 저렴하면 마진 확인
⚠ 우리 요금 입력오류 의심자사가 경쟁최저의 절반 이하 — 요금 입력 실수 가능성→ 요금표 원본 확인
⚠ 가격 괴리 / 룸매칭 의심매칭·데이터 신뢰 문제→ 룸 매칭 관리에서 재확인
△ 조건 미일치 가격 비교같은 체크인·박수 데이터가 없어 자동최저로 비교→ 재수집으로 조건일치 확보
경쟁사 N곳 가격 미수집일부 경쟁사 데이터 없음→ 재수집
비교불가(표시만)경쟁사 정원 미달 등 — 계산에서 제외→ 참고만
봉인 · 기록만비LIVE 호텔 — 조정이 실전송되지 않음→ 정책 관리에서 LIVE 전환 필요 시
LIVE · 승인 시 실전송실제 요금 API로 전송되는 호텔→ 적용 전 미리보기 필수 확인
🟡 가드 클램프추천가가 Net 하한에 걸려 상향 보정됨→ 정책 하한 검토
⑥ 숨은가 운영
룰 파싱PK 상세 페이지
롱스테이·얼리버드·시즌
위험 게이트모호한 룰은 보류
(미표시 > 과잉할인)
적용판매가 × (100−pct)%
기간·박수·리드일 충족 시
감사1박 vs N박 단가로
이중적용 전수 검증
| 언제 | 무엇을 |
| 숨은가가 안 보일 때 | ①체크인이 룰 기간 안인지 ②박수/리드일 충족인지 ③룰이 위험보류(rulesHeld)인지 순서로 확인. 룰 갱신: node scripts/refresh-hidden-promos.js --apply |
| 숨은가가 이상할 때 | 실제 예약창(결제 단계)에서 [연박혜택] 등 추가 할인 항목과 대조 — 표시 할인율로 판단 금지 |
| 정기 점검 | scripts/audit-hidden-applied.js로 “이미 반영” 0건 유지 확인. 얼리버드 전용 호텔은 예약창 수동 확인 |
⑦ 운영 안전수칙
| 등급 | 수칙 |
| 🚨 | 수집 진행 중 재시작 금지 — 수집 상태 소실 |
| 🚨 | LIVE 호텔에 테스트 전송 금지 — 실제 판매가가 바뀐다. 테스트는 봉인 호텔로 |
| 🚨 | 표시 할인율로 숨은가 “이미 반영” 판정 금지 — 마케팅 표현에 속지 말 것 |
| ⚠️ | 룸매칭 룰(room-sig) 변경 시 npm test 회귀 + TRIPON 추가 엔트리 수동 재검수 |
| ⚠️ | 확장 수정 = 재팩 + zip 버전 검증까지 완료해야 배포로 인정 |
| ⚠️ | 조정 적용 전 미리보기에서 가드 클램프·변경 없음 사유 확인 습관화 |
| ℹ️ | 배포: 코드 수정 후 pm2 restart tourpik-price-report (빌드 없음, public/*는 재시작 불필요) |
⑧ 트러블슈팅 빠른 표
| 증상 | 1순위 원인 | 조치 |
| 로그인 후 호텔 목록이 안 보임 | 검색창에 로그인 아이디 자동완성 | 검색창 비우기 |
| 가격이 실제 사이트와 다름 | 수집 시점 차이 (카드에 수집 기준·날짜 표기) | 재수집 → 새로고침. 트립온은 캐시 자동 무효화됨 |
| “옛 스냅샷” 배지 지속 | 자사 재수집 실패(15분 쿨다운 중) | 잠시 후 재확인, 지속 시 보고 |
| 숨은가 미검출 | 룰 기간 밖 체크인 / 위험보류 룰 | ⑥ 절차로 확인 |
| 전 계정 로그인 불가 | 부팅 시 DB 레이스 | pm2 restart (수집 없는 시점) |
| 확장 수집 멈춤/실패 표시 | 저장(ingest) 실패 — 성공으로 위장하지 않고 실패로 표시됨 | 재시도, 반복 시 보고 |
서비스: pm2 tourpik-price-report · 포트 3201 · 메모리캡 700M · DB PostgreSQL tourpik_price_report