Skip to content

feat(market): show the market analysis as a report with provisional sales - #40

Open
yes-david wants to merge 1 commit into
mainfrom
feat/market-report
Open

yes-david wants to merge 1 commit into
mainfrom
feat/market-report

Conversation

@yes-david

Copy link
Copy Markdown
Member

변경 내용

  • /markets를 보고서 형태로 다시 구성했습니다. 1 상권 개요와 집계 범위, 2 점포 현황, 3 매출 현황, 4 결제 고객 분석, 5 세부 업종 경쟁 점포, 6 분기별 원본 지표 순서입니다.
  • /api/markets/report 응답에 ADR 0002 잠정 값(provisionalSales)을 추가했습니다. 계산은 app/src/features/market/provisional.ts가 합니다.
    • 월매출(잠정) = 매출 원값, 점포당 월매출(잠정) = 원값 ÷ 유사 업종 점포 수, 결제 1건당 평균 금액 = 원값 ÷ 매출 건수. 원 단위 정수 문자열이며 ROUND_HALF_UP입니다.
    • 원값이나 분모가 없거나 분모가 0이면 null입니다.
    • 화면은 "잠정" 표시, 근거 링크, 원값을 함께 보여 줍니다. plan_results에 저장하지 않고 재무 가정에 자동으로 넣지 않습니다.
  • MARKET_LIMITATIONS와 매출 원값 지표 설명을 잠정 값 제공에 맞게 고쳤습니다. 이 문구는 /api/industries·/api/markets/areas 응답에도 나갑니다.
  • 보고서 화면 공통 상단 탭(app/src/components/ReportNav.tsx)과 억·만 단위 금액 표시 함수(app/src/lib/format-won.ts)를 추가했습니다.
  • 쓰지 않게 된 QuarterTrendChart.tsx와 관련 CSS를 지웠습니다.
  • 문서: docs/domains/market.md, docs/PRODUCT.md(상권 분석 행, 제외 범위), docs/ARCHITECTURE.md(app/src/components 위치)

제공하지 않은 항목(공식 적재 자료가 없음): 주변 인프라, 상권 내 인기 업종 순위·업종 단계·업종 비중, 매출 상·중·하위 구간, 소비·메뉴 분석. 보고서 단위는 자치구가 아니라 상권입니다.

검증

  • npm --prefix app run verify:fast 통과(이 commit만 있는 worktree에서 실행). Vitest 239 passed, 32 skipped. skipped는 테스트 DB·data/raw/ 원본이 필요한 테스트입니다.
  • 새 테스트: ADR 0002 표본 검산(184,219,542원 ÷ 11 = 16,747,231원), 반올림, 분모 없음·0의 null, 금액 표시 문구.
  • 화면: 개발 서버에서 API 응답을 임시 테스트 값으로 바꿔 desktop(1280)·mobile(390)을 확인했습니다. 자료 부족 분기, 빈 상태, API 오류 상태, 가로 넘침 없음(0px)을 확인했습니다.
  • 실행하지 못한 검사: verify:db, verify:e2e. 로컬 Docker와 환경파일이 없었습니다. 실제 적재 데이터로 화면을 보지 못했습니다.

위험·후속

🤖 Generated with Claude Code

…ales

Rebuild /markets as a sectioned report (overview and scopes, store counts,
sales, customer mix, detailed-industry competition, source table) under a
shared top tab bar. The report API now returns ADR 0002 provisional values
(monthly sales, per-store monthly sales, average payment) with their basis
links; they are shown next to the raw value and never stored or copied into
plan assumptions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant