일일결산¶
이 페이지에서 찾을 수 있는 것
일일결산 / 일일 매출 / 환자별 매출 / 구분별 매출 / 분야별 매출 / 시술별 매출 / 담당의별 / 담당직원별 / 매출 엑셀 / 보험 매출 / 비급여
하루 매출과 수납 현황을 종합적으로 보고, 환자별/구분별/시술별/담당의별/담당직원별로 분석하는 화면입니다. 데스크/실장이 마감 시 매일 확인하는 핵심 매출 화면이며, 같은 페이지에서 일간/주간/월간/연간으로 기간을 변경하며 분석 가능합니다.
화면 구성¶
| 영역 | 위치 | 내용 |
|---|---|---|
| 상단 헤더 | 화면 위 | 날짜 선택, 기간 탭(일간/주간/월간/연간), 매출 필터, 엑셀 다운로드 |
| 탭 메뉴 | 헤더 아래 | 일일결산 / 환자별 / 구분별 / 분야별 / 시술별 / 담당의별 / 담당직원별 |
| 본문 영역 | 가운데 | 선택된 탭 내용 (집계표 / 환자 목록 / 그룹별 표 / 크로스탭) |
| 요약 카드 | 본문 위 (탭에 따라) | 총 매출, 수납, 미수, 환불, 할인, 결제 수단별 |
상단 헤더 옵션¶
날짜 선택¶
- 단일 날짜 (일간 모드)
- 시작일~종료일 범위 (주간/월간/연간 자동 변환)
기간 탭 (4개)¶
| 탭 | 의미 |
|---|---|
| 일간 | 단일 날짜 (기본) |
| 주간 | 주 단위 보기 (WeeklySalesPage로 이동) |
| 월간 | 월 단위 (MonthlySalesPage) |
| 연간 | 연 단위 (YearlySalesPage) |
→ 같은 데이터를 기간별로 다르게 조회. 모두 같은 백엔드 API(/api/vegas/daily-sales-breakdown) 사용.
매출 필터 (3가지)¶
| 필터 | 의미 | 사용 시점 |
|---|---|---|
| 매출+수납 | 청구액(progress_notes.total_amount) + 수납액(payments.paid_amount) 모두 표시 | 기본, 종합 분석 |
| 매출 | 청구액만 (오더 합계) | 매출 인식 기준 분석 |
| 수납 | 실제 결제만 | 현금 흐름 분석 |
💡 매출 ≠ 수납: 매출은 차트에 입력된 시점(
progress_notes.total_amount), 수납은 실제 결제(payments.paid_amount). 분납 환자는 매출 ≠ 수납.
엑셀 다운로드¶
현재 탭 + 필터 기준 .xlsx 파일.
7개 탭 상세¶
일일결산 탭 (기본)¶
종합 요약 카드 + 결제 수단별 표.
요약 카드: | 항목 | 의미 | |-----|-----| | 총 매출 (청구액) | progress_notes.total_amount 합 | | 총 수납 | payments.paid_amount 합 (cancelled, refund 제외) | | 미수 | 청구 - 수납 | | 환불 | 환불액 합 | | 할인 | discount_amount 합 |
결제 수단별 표: - 현금 / 통장입금 / 카드 / 간편결제 / 선수납 / 포인트 별 합계 - 영수증 발급액(현금영수증, 카드매출전표 등) 구분
보험유형별 표 (byInsurance): - 일반 / 건강보험 / 자보 / 보훈 별 신환/재진 건수 + 매출액
환자별 탭 (PatientDetailTab)¶
환자 단위로 진료비 + 결제 + 미수액 표시.
| 컬럼 | 의미 |
|---|---|
| 환자명 / 차트번호 | |
| 시술 항목 | 차트 오더 콤마 구분 (베이직탕, 슈링크 등) |
| 청구액 | progress_notes.total_amount |
| 수납액 | 결제 완료액 |
| 미수액 | |
| 결제 방법 | 카드/현금/선납권 |
| 담당의/담당직원 |
→ "오늘 누가 얼마 진료받았는지" 한눈에 확인.
구분별 탭¶
진료구분(visit_type) 그룹별 매출: - 일반 / 건강보험 / 자보 / 보훈
| 컬럼 | 의미 |
|---|---|
| 구분 | 일반/건강보험/자보/보훈 |
| 차트 건수 | 해당 구분의 차트 수 (work-item 28 fix: 빈 차트 제외) |
| 청구액 | total_amount 합 |
| 수납액 | paid_amount 합 |
| 환불 | refund_amount 합 |
| 할인 | discount_amount 합 |
분야별 탭¶
진료분야(pn.medical_field) 그룹별 매출. 다이어트 / 피부 / 한방 등 (병원 설정 기반).
시술별 탭¶
procedure_type 별 그룹. 슈링크 / 베이직탕 / 약침 등.
담당의별 탭¶
progress_notes.doctor 별 그룹.
담당직원별 탭¶
progress_notes.staff 별 그룹. 김보민 5/1 보고 화면이 이 탭 — 장서아 실장 카운트가 부풀려졌던 이슈.
→ work-item 28 fix로 빈 차트(오더 0건)는 제외. 정확한 카운트.
빈 차트 자동 제외 (work-item 28 fix)¶
이전에는 시술 오더가 없는 빈 차트도 카운트에 포함되어 통계가 부풀려졌습니다.
2026-05-01 fix 적용: 모든 그룹별 통계에서 EXISTS progress_note_orders 조건으로 빈 차트 제외.
| 영향 화면 | 카운트 정확도 |
|---|---|
| 일일결산 담당직원별 | ✅ 정확 (장서아 실장 22→18 등) |
| 일일/주간/월간/연간 결산 | ✅ 모두 정확 (같은 API 공유) |
자주 쓰는 동작¶
시나리오 1 — 마감 시 일일결산¶
오늘 매출 마감
- 메뉴 > 매출/결산 > 일일결산
- 상단 날짜 = 오늘 (자동 디폴트)
- 일일결산 탭 (기본)
- 요약 카드 확인: 총 매출 / 수납 / 미수 / 환불
- 결제 수단별 표 확인 (현금/카드/계좌이체 합계)
- 미수가 있으면 미수 처리 흐름으로 정리
- 마감 보고
시나리오 2 — 담당직원별 성과 분석¶
특정 직원 성과 확인
- 담당직원별 탭 클릭
- 자동으로 staff 기준 그룹 표 표시
- 직원별 차트 건수 / 청구액 / 수납액 정렬 가능
- 엑셀 다운로드로 보고용 자료 추출
시나리오 3 — 시술별 매출 분석¶
어떤 시술이 매출 많이 났나
- 시술별 탭 클릭
- procedure_type 기준 그룹 표
- 시술 카테고리별 매출 정렬
- 분야별 탭과 비교하면 시술 카테고리 vs 진료분야 차이도 확인 가능
시나리오 4 — 주간/월간 결산으로 확장¶
주간 매출로 확장 보기
- 상단 기간 탭에서 "주간" 클릭 →
WeeklySalesPage로 이동 - 같은 7개 탭 구조 + 주간 일별 표 추가
- 같은 방식으로 월간/연간으로 확장 가능
시나리오 5 — 크로스탭 분석 (구분 × 담당의)¶
구분별 담당의별 교차 분석
- 구분별 탭 클릭
- 우측 그룹 모드 전환 → "담당의별 크로스" 옵션
- 행=구분, 열=담당의 형태로 매출 표시
- 담당의별 어떤 진료구분에 강한지 비교
권한별 차이¶
| 기능 | 권한 |
|---|---|
| 일일결산 조회 (모든 탭) | 🟢 모든 직원 |
| 매출 필터 변경 | 🟢 모든 직원 |
| 엑셀 다운로드 | 🟢 모든 직원 (개인정보 마스킹 포함) |
| 환자별 상세 진입 | 🟢 모든 직원 |
| 결제 정정 (해당 차트로 진입) | 🟢 모든 직원 (단 결제 삭제는 level 3) |
→ 일일결산 자체는 조회 페이지라 모든 직원 접근 가능. 단 PROD 매출 데이터라 회사 외부 유출 주의.
자동 검증 (정합성)¶
일일결산과 관련된 정합성 봇 알림:
| 검사 번호 | 내용 | 처리 |
|---|---|---|
| 1 | paid_amount 불일치 | 차트 → 결제 정정 |
| 5 | 초과 결제 | 수납 처리 → 환불 |
| 14 | 수납됐는데 시술 기록 없음 | 차트 → 시술 항목 추가 |
→ 정합성 점검 처리 참조.
자주 발생하는 문제 / FAQ¶
Q1. 담당직원별 카운트가 어제 본 거랑 달라요. A. work-item 28 fix (2026-05-01) 적용 후 빈 차트가 카운트에서 제외됩니다. 이전엔 부풀려졌던 수치가 정확화됐습니다 (예: 4월 심수진 60→36).
Q2. 매출과 수납이 달라요. A. 정상입니다. - 매출 = 청구액: 차트에 시술 입력 시점 (분납 환자도 전액 매출 인식) - 수납 = 실결제: 환자가 실제 낸 금액 - 차이 = 미수 또는 분납 잔금
Q3. 환불 금액이 매출에서 차감 안 됐어요. A. 매출 = 청구액 기준이라 환불은 별도 컬럼에 표시됩니다. 순매출 보려면 청구액 - 환불액으로 직접 계산하세요. 또는 매출 필터를 "수납"으로 변경하면 환불 차감된 실결제만 표시.
Q4. 같은 날짜인데 일일결산 vs 담당직원별 합계가 달라요. A. 다음 항목 확인: 1. 매출 필터가 같은지 (매출+수납 / 매출 / 수납) 2. 협찬 차트 제외 여부 (담당직원별은 협찬 제외, 일일결산은 포함) 3. 담당직원별은 staff 미지정 차트도 별도 그룹으로 표시됨
Q5. 선납권으로 결제한 건 어디 보이나요? A. 결제 수단별 표에 "선수납" 컬럼으로 표시됩니다. 단 차트 매출 인식은 청구액 기준이라 별도 분리 필요. 자세한 건 패키지/선납권 참조.
Q6. 엑셀 다운로드가 너무 느려요. A. 기간이 길면 데이터 양이 많아 시간 소요됩니다. 가능하면 일간/주간 단위로 받으세요.
Q7. 어제 매출이 갑자기 늘었어요. A. 다음 가능성: 1. 어제 차트 입력이 늦게 됨 (지연 입력) 2. 분납 환자의 잔금이 어제 결제됐을 수 있음 3. 환불 취소(restore) 발생 → 환자별 탭에서 어제 시술 입력 시간 확인하세요.
Q8. 차트는 있는데 매출에 안 잡혀요. A. 차트에 시술 오더(progress_note_orders)가 0건이면 매출 통계에서 제외됩니다 (정확화 fix). 시술이 있었다면 차트에 오더 추가 후 저장.
Q9. 주간 결산은 일일결산 7일치 합과 같나요? A. 네, 같은 백엔드 API라 동일합니다. 차이가 있다면 환불/취소가 다른 날짜에 발생했거나, 협찬 제외 여부 등을 확인하세요.
Q10. 마감 보고 양식대로 한꺼번에 보고 싶어요. A. 엑셀 다운로드 시 표준 마감 보고 양식이 적용됩니다. 추가 컬럼이 필요하면 개발팀에 문의해서 양식 변경 가능.
관련 페이지¶
- 수납 처리 — 결제 정정 / 환불 / 미수
- 차트(진료실) — 매출 정정 시 차트 진입
- 주간/월간/연간 결산 — 같은 API 공유
- 정합성 점검 처리 — 매출 관련 봇 알림 (1, 5, 14번)
- 환자 검색 — 환자별 매출 추적