• Status: Accepted (旧形式「## ステータス: 採用済み」より転記)
  • Mode: Critical (内容から推定・旧 README 一覧より移設)
  • Kruchten Type: Property
  • Scope: product
  • Implementation Status: Done (INV ステータス遷移実装済)

Kruchten Type は ADR-0031 (2026-05-13) で遡及追加。分類根拠は ADR-0031 §決定セクションおよび docs/adr/README.md の Kruchten 3 分類ガイドを参照。 Status / Mode / Scope は 2026-06-11 に遡及追加 (ADR-0031 corrigendum パターン)。出典: Status = 旧形式「## ステータス」節の機械転記 / Mode = 旧 README §既存 ADR 一覧の推定値 (git 履歴) / Scope = ADR-0049 4 層分類の遡及付与 (PR レビューで確定)。

ステータス: 採用済み

コンテキスト

財務諸表では「予算」「実績」「期ずれ調整」の 3 つのデータが必要になる。これらを別テーブルで管理するか、INV の状態遷移で表現するかを選択する必要があった。また後払い(未払金)・前払い(前払費用)・前受け(前受金)といった期ずれパターンが複数存在する。

決定

INV の「請求ステータス」遷移で実績/予算を切り替え、期ずれは dmIsAccruedExpense_ による判定で自動処理する。

請求ステータス財務上の扱い
未処理予算(計画値)として P/L に計上
承認済実績(確定値)として P/L に計上
決済完了実績 + 決済 STL が紐づいた状態

期ずれ判定:

  • pYm ≠ sYm(発生月 ≠ 決済月)かつ後払い → 未払金/未払費用 で期ずれ解消
  • 支払期限 < 発生日(前払い INV)→ 前払費用
  • 前受け収入 → 前受金

理由

  1. ADR-0001(INV を SSOT とする)の延長線上にある決定。予算・実績を別テーブルに持つとデータの二重管理が発生する
  2. ステータス遷移という状態機械のモデルは、GAS の「メニュー操作→承認→決済」という業務フローと自然に対応する
  3. 期ずれパターンを dmIsAccruedExpense_ 関数に集約することで、データマート層での処理が一元化される(ADR-0006 と整合)

結果・影響

  • ポジティブ: 予算と実績が 1 つの INV テーブルで管理でき、予実比較がシンプルなフィルタで実現できる
  • ポジティブ: ステータスを見るだけで「この INV は予算か実績か」が判断できる
  • ネガティブ: 期ずれパターンが 3 種類あるため、dmIsAccruedExpense_ の条件分岐が複雑になりがち
  • 注意: P/L INV 消込の未払金解消は「期ずれあり(pYm ≠ sYm)の場合のみ」実行する。同月の場合は二重減算防止のためスキップ

Confirmation (準拠確認 / Fitness Function)

本セクションは ADR-0036 (Accepted 2026-05-14) で遡及追加された。ADR-0031 パターン (業界標準準拠メタデータ後付け = 誤字修正範疇) に準拠する遡及で本文の意思決定内容は不変。

  • 検証手段: 既存テスト (testT* / test_{slice_id}_{condition})
  • 実行頻度: Nightly
  • 違反時の対応: Slack 通知