1. 概要

焦点質問: 年度末までの着地見込み(P/LB/S・CF)は?

計画シートは 32_wrk_invoice の INV(未処理含む) をベースに、年間の見通しを P/L・B/S・CF で表示する。計上シートが承認済+消込済のみを対象とするのに対し、計画シートは未処理INVや仕訳振替も含めた年間着地を示す。

41_trn_budget は使用しない。 32_wrk_invoice が計画を兼ねる。

項目内容
出力タブ63_pl_monthly_plan, 64_pl_ytd_plan, 73_bs_plan, 82_cf_indirect_plan, 84_cf_daily_plan
関数buildBudgetTrendDataMart(計画パイプライン部分)
ファイル06_datamart_main.js, 06_datamart_ingest.js, 06_datamart_pl.js, 06_datamart_bs.js, 06_datamart_cf.js, 06_datamart_daily_cf.js

2. データソース

計上 vs 計画: ソースの違い

計上計画
INV32 の承認済・決済完了のみ32 の全INV(未処理含む)
仕訳振替除外(STL消込時に認識)含む(計画として反映)
B/S科目除外(STL消込時に計上)含む(直接計上)
STL33 の消込済+JNL_IDあり使用しない
期ずれ解消生成しない(STL待ち)生成する(計画として完結)
パイプライン使用しない21_bud_pipeline の確度加重データを合流

経理向け補足: 計画では仕訳振替INV(給与天引き分の振替仕訳など)を含めることで、費目別の総額ベースで予算を表示します。一方、計上(実績)では仕訳振替はSTL消込時点で認識するため、二重計上を防いでいます。

計上 vs 計画: シート対応表

計上計画内容
61_pl_monthly63_pl_monthly_planP/L 単月
62_pl_ytd64_pl_ytd_planP/L 累積
71_bs73_bs_planB/S 残高推移
81_cf_indirect82_cf_indirect_planCF 間接法
83_cf_daily84_cf_daily_planCF 日次

3. 対象判定・フィルタ条件

計上シートと計画シートでは、INVの選別ルールが異なる。

#条件計上での処理計画での処理理由
F1有効フラグ=FALSEスキップスキップ共通: 無効行は全処理で除外
F2請求ステータス=未承認スキップ含む計画は未処理も含め着地見込みを表示
F3決済手段=仕訳振替スキップ(STL消込時認識)含む計画では費目別総額を表示するため
F4科目マスタ上B/S科目のINVスキップ(STL経由で計上)直接計上計画ではSTLなしで完結させる
F5仕訳振替ペアのB/S科目INV除外仕訳振替ペアは片方のみ含むと不整合
F6決済手段=資産計上B/S即時計上+CF除外同左共通ルール
F7パイプライン(確度加重)対象外21_bud_pipeline から合流受注確定前案件の売上見込み

4. 処理ロジック

計画パイプライン(マトリクス)

項番処理フェーズ入力(論理名)入力(物理名: タブ.列)処理詳細 / 変換ロジック出力(論理名)出力(物理名: タブ.列)例外処理
P1.1データ取込全INV(仕訳振替・B/S・未処理含む)32_wrk_invoicedmIngestPlanData_()booked=false(計画扱い、期ずれ解消も生成)planData変数
P1.1bパイプライン合流確度加重パイプライン21_bud_pipelinedmIngestPipelinePlanData_() — 確度×金額の加重データpipeResult.planData変数シート未存在時はスキップ
P1.2P/L・B/S振り分けplanCtx変数dmProcessAllEvents_() → P/L・B/S分類 + 期ずれ(計上+解消の両方)martPl, martBs変数
P1.3集計planCtx変数dmCalcPl_dmCalcBs_dmCalcCf_計算結果変数
P1.4出力: P/L計画planCtx変数dmBuildPlOutput_() — 単月(.outM) + 累積(.outY)P/L計画63/64タブ
P1.5出力: B/S計画planCtx変数dmBuildBsOutput_()B/S計画73タブ
P1.6出力: CF計画planCtx変数dmBuildCfOutput_() — 間接法CF計画82タブ
P1.7出力: CF日次計画sheetInv32_wrk_invoicedmBuildPlanCashflow_({ includeActual: true, bankSheet }) — 全INV+実績STLのハイブリッドCF日次計画84タブ

CF日次 計上 (83_cf_daily)

項番処理フェーズ入力(論理名)入力(物理名: タブ.列)処理詳細 / 変換ロジック出力(論理名)出力(物理名: タブ.列)例外処理
P2.1CF日次計上承認済/決済完了INV32_wrk_invoicedmBuildPlanCashflow_({ approvedOnly: true }) — 承認済INVのみ、決済日_計画ベースCF日次計上83タブ

5. 財務ロジック (FRD)

※ 本セクションは経理担当・CFOが検証可能な表現で記述。技術用語は使用しない。 → 技術詳細: §4 参照

5.1 計上と計画の差異

計上(実績)と計画は、同じ請求データから異なる範囲を集計することで生成される。

  • 計上: 承認が完了し、決済が消し込まれた取引のみを反映する。経理が確認済みの確定値。
  • 計画: 未承認・未決済を含むすべての請求を反映する。年度末までの着地見込みを示す。

計画では以下の追加処理を行い、計上では表示されない項目を含める:

  • 仕訳振替の反映: 給与天引き分などの内部振替を含め、費目別の総額を表示する。計上では消込時に認識するため計画のみで表示される。
  • B/S科目の直接計上: 計上では消込(STL)を経由してB/Sに反映するが、計画ではSTLなしで直接計上し、計画として完結させる。
  • 期ずれ解消の生成: 発生月と決済月が異なる取引について、計画では経過勘定(未払金・前払費用等)の計上と解消の両方を自動生成する。計上ではSTL消込まで経過勘定が残る。

5.2 ビジネスドライバー対応

本システムの予算計画は「ドライバーベース・プランニング」を採用している。各予算タブは事業活動の主要な指標(ドライバー)に基づいてINV(請求・債権債務)を自動生成し、これらのINVの合計が計画P/Lを構成する。

各予算タブは固有のビジネスドライバーに基づいて 32_wrk_invoice へ INV を自動起票し、計画データの源泉となる。

予算タブビジネスドライバーINV生成ロジック説明
21_bud_pipeline確度(ヨミ)「受注」× MRR/スポット金額spec_rpa_pipeline受注確定案件の売上計画
22_bud_headcount人員数 × 給与単価spec_rpa_hc人件費ドライバー(最大12行/人/月)
23_bud_subscription契約数 × 月額/年額spec_rpa_saasSaaS支出(決済ラグ対応)
24_bud_capex_loan取得価額 / 耐用年数spec_rpa_capex減価償却・借入返済
25_bud_finance取引金額spec_rpa_finance資金移動(2行/取引: 借方・貸方)
26_bud_adhoc1件ごとの経費額spec_rpa_adhoc単発経費

5.3 予実差異の定義

指標計算式符号の解釈
金額差異実績 − 計画収益科目: 正=好意的(実績超過)/ 費用科目: 正=不利(超過)
差異率金額差異 ÷計画

符号ルールとの整合: P/L内部では収益=正・費用=負で管理する(spec_pl P2.1 参照)が、差異分析では科目区分ごとに絶対額ベースで比較する。収益科目は「実績 > 計画 → 好意的」、費用科目は「実績 > 計画 → 不利」と解釈する。

科目レベルの要因分解(レート差異・能率差異・数量差異等)は現行スコープ外。将来対応は TODO_future 参照。


6. 出力スキーマ

シート一覧

タブ番号タブ名内容対応する計上タブ出力関数
6363_pl_monthly_planP/L 単月計画61_pl_monthlydmBuildPlOutput_ (.outM)
6464_pl_ytd_planP/L 累積計画62_pl_ytddmBuildPlOutput_ (.outY)
7373_bs_planB/S 残高推移計画71_bsdmBuildBsOutput_
8282_cf_indirect_planCF 間接法計画81_cf_indirectdmBuildCfOutput_
82b82b_cf_indirect_plan_ytdCF 間接法累積計画81b_cf_indirect_ytddmBuildCfOutput_ (.outCY)
8484_cf_daily_planCF 日次計画83_cf_dailydmBuildPlanCashflow_

共通フォーマット

  • ヘッダー行: 【対象期】 YYYY年8月〜YYYY+1年7月 (実績反映: ...)
  • 月別列には (実績) / (予算) の区分ラベルを付与(boundaryMonthStr 基準)
  • スキーマシートにはフィルターを自動設定
  • 列幅自動調整はラベル列を除く数値・日付列のみ
  • 出力形式は計上シートと同一(dmApplyDwhFormat_ で統一出力)

7. エッジケース・境界条件

ケース条件処理
CF日次計画の二重計上防止84_cf_daily_plan未決済残高ベース + 実績STLのハイブリッド方式で二重計上を防止
B/S直接計上+期ずれあり(計画)pYm ≠ sYm かつ !isActual正の値: pYmで計上→sYmで解消。負の値: pYmの計上取消→sYmに移動
仕訳振替ペアのB/S科目ORDに仕訳振替ペアが存在するB/S INV除外(片方だけ含むと不整合)
パイプライン未存在21_bud_pipeline シートなしスキップ(pipeResult = { planData: [], viewData: [] })
前払いINV決済月(sYm) < 発生月(pYm)前払費用として経過勘定処理(sYmで計上→pYmで解消)
前受金(収入の前受け)収入かつ sYm < pYm前受金(負債)として計上
期首以前のINVpYm ≦ obMonthStr繰越利益剰余金 or 経過勘定OBに集約

8. テスト仕様

テストIDテスト名前提条件期待結果
PLAN-01計画 P/L 出力32 に未承認 INV 含63/64 に全 INV ベース P/L 出力
PLAN-02計画 B/S 出力32 に B/S 科目 INV73 に B/S 科目が STL なしで計上
PLAN-03計画 CF 間接法P/L・B/S 生成済82 に間接法 CF 出力
PLAN-04CF 日次計画未決済 INV + 実績 STL84 に未決済+実績ハイブリッド出力
PLAN-05仕訳振替含む32 に仕訳振替 INV計画 P/L に含まれる(計上 P/L には含まれない)
PLAN-06期ずれ解消(後払)pYm ≠ sYm の費用 INV計画 B/S に未払金の計上+解消
PLAN-07期ずれ解消(前払)sYm < pYm の費用 INV計画 B/S に前払費用の計上+解消
PLAN-08パイプライン合流21 に確度付データ計画 P/L に確度加重後の売上合流
PLAN-09マート更新テスト6xx_*.js 変更時buildBudgetTrendDataMart 実行で 63/64/73/82/84 出力

付録

付録A: 実装ファイル

ファイル関数役割
602_datamart_main.jsbuildBudgetTrendDataMart計画パイプライン実行 + 出力(ステップ5b)
601_datamart_ingest.jsdmIngestPlanData_32の全INV読み込み(計画用)
601_datamart_ingest.jsdmIngestPipelinePlanData_21_bud_pipeline の確度加重データ読み込み
602_datamart_main.jsdmProcessAllEvents_P/L・B/Sマート振り分け(実績/計画共通)
602_datamart_main.jsdmIsAccruedExpense_未払費用該当判定(中小企業会計指針 第30項)
603_datamart_pl.jsdmBuildPlOutput_P/L構築(計上/計画共通)
604_datamart_bs.jsdmBuildBsOutput_B/S構築(計上/計画共通)
605_datamart_cf.jsdmBuildCfOutput_CF間接法構築(計上/計画共通)
606_datamart_daily_cf.jsdmBuildPlanCashflow_CF日次(計上/計画)構築
606_datamart_daily_cf.jsdmBuildDailyCashflow_CF日次(実績)構築