Files
jarca-ledger-mcp/docs/srs/Interface/req-022_monthly-settlement-read-model-foundation.md
T

2.7 KiB

REQ-022 Monthly settlement read-model foundation

  • Status: Approved
  • Type: Interface
  • Priority: High
  • Owner: 렛저장인
  • Source Discovery: docs/discovery/dcy-015_20260711_monthly-settlement-page-requirements-wireframe.md
  • Source Issues: #3 [Feature] 월정산 페이지 기능 요구사항 정의, #4 [Design] 월정산 페이지 와이어프레임 수준 섹션 설계안
  • Depends On: REQ-005, REQ-020, REQ-021
  • Created At (KST): 2026-07-11 20:56 KST
  • Approved At (KST): 2026-07-11 21:05 KST

1. Intent

Build the internal read-only monthly settlement summary model that later dashboard slices can consume without duplicating formulas in Streamlit UI code.

2. In Scope

  • Parse and validate a target month in YYYY-MM form.
  • Compute the selected month basis date as the KST month end.
  • Add an application/service-layer read model for monthly settlement summary.
  • Reuse existing monthly cashflow, budget, uncategorized/review, account/import, and asset snapshot services where available.
  • Return a structured summary with at least:
    • selected month and basis date
    • actual income, actual expense, net cashflow, savings rate
    • budget overrun count
    • unresolved blocker count skeleton
    • source coverage/status fields needed by later UI slices
  • Add focused tests for month parsing, basis date, empty/synthetic DB behavior, and core summary shape.

3. Out of Scope

  • Streamlit 월정산 page or routing.
  • Detailed blocker/import/account/asset section UI.
  • Monthly close persistence, monthly_settlements table, transaction locks, MCP tool, or export.

4. Acceptance Criteria

  • AC-1: A service/application entrypoint returns a deterministic monthly settlement summary for a selected month.
  • AC-2: Invalid month input fails with a clear validation error or documented fallback.
  • AC-3: Basis date is the selected month end under KST assumptions.
  • AC-4: KPI values reuse existing service definitions rather than dashboard-local formulas.
  • AC-5: The returned model is suitable for later Streamlit and MCP extension without exposing raw import payloads or raw local paths.
  • AC-6: Focused automated tests cover summary shape and at least one synthetic fixture result.
  • AC-7: python -m ruff check . and the relevant pytest slice pass.

5. Notes

This REQ is the foundation slice split out of the deleted umbrella REQ-022 Monthly settlement read-only dashboard.

6. Approval Notes

  • 2026-07-11 21:05 KST: Lead approval after user directed continued progression from the dcy-015 split. This first slice is approved independently because it is the foundation read model and does not introduce Streamlit UI, close persistence, MCP tools, or export side effects.