본 문서는 운영 정책의 SSOT 입니다. 약관(docs/TERMS.md) · 베타 약관(docs/BETA_TERMS.md) · 운영 SOP(docs/OPS_SOP.md) · 결제 아키텍처(docs/AUTH_PAYMENT.md) 모두 본 문서를 참조합니다.

베타 단계(현재): 무료 게임 only 운영 — 본 정책은 호스트가 임의로 받은 참가비(오프밴드 계좌이체)의 권장 가이드로만 적용. 자동 환불 트리거 없음. Phase 4 결제 도입 후: 본 정책이 자동 환불 엔진의 명세가 됨.


1. 시점별 환불율 (게임 참가비)

기준 시각: games.start_at (UTC 저장, KST 표시). 비교 연산은 서버 시각으로 수행 (클라이언트 시각 신뢰 금지).

취소 시점 환불율 누가 비고
start - 24h 이전 (24시간 초과 전) 100% 참가자 자발 취소 PG 수수료는 호스트 부담 (Phase 4)
start - 24h ~ start - 6h (< 6h 전) 50% 참가자 자발 취소 50% 는 호스트 보전 (대체 인원 모집 비용)
start - 6h 이후 (6시간 미만) 0% 참가자 자발 취소 환불 불가, 매너점수 영향 없음
호스트 취소 (시점 무관) 100% 호스트 발의 호스트 매너 -2.0, 누적 시 자동 ban
우천 자동 취소 100% 시스템 §3-3
정원 미달 자동 취소 100% 시스템 §3-4

경계 처리 명세 (분쟁 차단):


2. 환불 대상자별 책임

사유 환불율 호스트 패널티 참가자 패널티
참가자 자발 취소 (24h+ 전) 100%
참가자 자발 취소 (6~24h 전) 50%
참가자 자발 취소 (6h 미만) 0%
참가자 노쇼 (CONFIRMED 후 미참석) 0% 매너 -0.5, audit_logs 기록
호스트 취소 (사유 무관) 100% 매너 -2.0, 누적 3회 ban
호스트 노쇼 (게임 미진행, 참가자 ≥2명 증언) 100% 매너 -2.0 + 즉시 1회 ban 단계
우천 자동 취소 100%
정원 미달 자동 취소 100%
운영자 판정 (분쟁) 케이스별 케이스별 케이스별

매너 점수 변동은 manner_score_history insert + users.manner_score 갱신 (docs/OPS_SOP.md §2-2 참조).


3. 4가지 케이스 의사결정 트리

3-1. 시작 전 취소 (참가자 발의)

참가자가 `/games/[id]/cancel` 진입
  → 서버에서 (start_at - now()) 계산
  → 환불 % 표시 + 사용자 확인
  → 확정 시:
      payment_intents.status = 'REFUND_REQUESTED'
      refund_intents 생성 (amount = fee × 환불율)
      Phase 4: toss-refund Edge Function 호출 → 결과 webhook 수신 → SETTLED
      베타: 호스트가 직접 송금하도록 알림만 발송

운영자 개입 없음 — 자동 처리. 분쟁 시 §3-5.

3-2. 시작 후 호스트 잠적 (호스트 노쇼)

판정 기준:

처리:

신고 접수 → service-ops 24h 이내 검토
  → 인정: 전원 100% 환불, 호스트 매너 -2.0, ban 단계 1단 (3회 누적 시 영구)
  → 반려: 신고자에게 회신, 매너점수 변동 없음
  → audit_logs 기록 (`HOST_NO_SHOW_CONFIRMED` / `HOST_NO_SHOW_DISMISSED`)

리스크 — Open: check-in 미구현 단계에서는 양측 진술만으로 판정 → 분쟁 폭증 가능. 결제 도입 전에 check-in 우선 도입 권고 (docs/PRD.md §27 참조).

3-3. 우천 자동 취소