計画シート — 63/64/73/82/84
1. 概要
焦点質問: 年度末までの着地見込み(P/L・B/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 計画: ソースの違い
| 計上 | 計画 | |
|---|---|---|
| INV | 32 の承認済・決済完了のみ | 32 の全INV(未処理含む) |
| 仕訳振替 | 除外(STL消込時に認識) | 含む(計画として反映) |
| B/S科目 | 除外(STL消込時に計上) | 含む(直接計上) |
| STL | 33 の消込済+JNL_IDあり | 使用しない |
| 期ずれ解消 | 生成しない(STL待ち) | 生成する(計画として完結) |
| パイプライン | 使用しない | 21_bud_pipeline の確度加重データを合流 |
経理向け補足: 計画では仕訳振替INV(給与天引き分の振替仕訳など)を含めることで、費目別の総額ベースで予算を表示します。一方、計上(実績)では仕訳振替はSTL消込時点で認識するため、二重計上を防いでいます。
計上 vs 計画: シート対応表
| 計上 | 計画 | 内容 |
|---|---|---|
| 61_pl_monthly | 63_pl_monthly_plan | P/L 単月 |
| 62_pl_ytd | 64_pl_ytd_plan | P/L 累積 |
| 71_bs | 73_bs_plan | B/S 残高推移 |
| 81_cf_indirect | 82_cf_indirect_plan | CF 間接法 |
| 83_cf_daily | 84_cf_daily_plan | CF 日次 |
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_invoice | dmIngestPlanData_() — booked=false(計画扱い、期ずれ解消も生成) | planData | 変数 | — |
| P1.1b | パイプライン合流 | 確度加重パイプライン | 21_bud_pipeline | dmIngestPipelinePlanData_() — 確度×金額の加重データ | pipeResult.planData | 変数 | シート未存在時はスキップ |
| P1.2 | P/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日次計画 | sheetInv | 32_wrk_invoice | dmBuildPlanCashflow_({ includeActual: true, bankSheet }) — 全INV+実績STLのハイブリッド | CF日次計画 | 84タブ | — |
CF日次 計上 (83_cf_daily)
| 項番 | 処理フェーズ | 入力(論理名) | 入力(物理名: タブ.列) | 処理詳細 / 変換ロジック | 出力(論理名) | 出力(物理名: タブ.列) | 例外処理 |
|---|---|---|---|---|---|---|---|
| P2.1 | CF日次計上 | 承認済/決済完了INV | 32_wrk_invoice | dmBuildPlanCashflow_({ 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_saas | SaaS支出(決済ラグ対応) |
| 24_bud_capex_loan | 取得価額 / 耐用年数 | spec_rpa_capex | 減価償却・借入返済 |
| 25_bud_finance | 取引金額 | spec_rpa_finance | 資金移動(2行/取引: 借方・貸方) |
| 26_bud_adhoc | 1件ごとの経費額 | spec_rpa_adhoc | 単発経費 |
5.3 予実差異の定義
| 指標 | 計算式 | 符号の解釈 |
|---|---|---|
| 金額差異 | 実績 − 計画 | 収益科目: 正=好意的(実績超過)/ 費用科目: 正=不利(超過) |
| 差異率 | 金額差異 ÷ | 計画 |
符号ルールとの整合: P/L内部では収益=正・費用=負で管理する(spec_pl P2.1 参照)が、差異分析では科目区分ごとに絶対額ベースで比較する。収益科目は「実績 > 計画 → 好意的」、費用科目は「実績 > 計画 → 不利」と解釈する。
科目レベルの要因分解(レート差異・能率差異・数量差異等)は現行スコープ外。将来対応は TODO_future 参照。
6. 出力スキーマ
シート一覧
| タブ番号 | タブ名 | 内容 | 対応する計上タブ | 出力関数 |
|---|---|---|---|---|
| 63 | 63_pl_monthly_plan | P/L 単月計画 | 61_pl_monthly | dmBuildPlOutput_ (.outM) |
| 64 | 64_pl_ytd_plan | P/L 累積計画 | 62_pl_ytd | dmBuildPlOutput_ (.outY) |
| 73 | 73_bs_plan | B/S 残高推移計画 | 71_bs | dmBuildBsOutput_ |
| 82 | 82_cf_indirect_plan | CF 間接法計画 | 81_cf_indirect | dmBuildCfOutput_ |
| 82b | 82b_cf_indirect_plan_ytd | CF 間接法累積計画 | 81b_cf_indirect_ytd | dmBuildCfOutput_ (.outCY) |
| 84 | 84_cf_daily_plan | CF 日次計画 | 83_cf_daily | dmBuildPlanCashflow_ |
共通フォーマット
- ヘッダー行:
【対象期】 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 | 前受金(負債)として計上 |
| 期首以前のINV | pYm ≦ obMonthStr | 繰越利益剰余金 or 経過勘定OBに集約 |
8. テスト仕様
| テストID | テスト名 | 前提条件 | 期待結果 |
|---|---|---|---|
| PLAN-01 | 計画 P/L 出力 | 32 に未承認 INV 含 | 63/64 に全 INV ベース P/L 出力 |
| PLAN-02 | 計画 B/S 出力 | 32 に B/S 科目 INV | 73 に B/S 科目が STL なしで計上 |
| PLAN-03 | 計画 CF 間接法 | P/L・B/S 生成済 | 82 に間接法 CF 出力 |
| PLAN-04 | CF 日次計画 | 未決済 INV + 実績 STL | 84 に未決済+実績ハイブリッド出力 |
| 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.js | buildBudgetTrendDataMart | 計画パイプライン実行 + 出力(ステップ5b) |
601_datamart_ingest.js | dmIngestPlanData_ | 32の全INV読み込み(計画用) |
601_datamart_ingest.js | dmIngestPipelinePlanData_ | 21_bud_pipeline の確度加重データ読み込み |
602_datamart_main.js | dmProcessAllEvents_ | P/L・B/Sマート振り分け(実績/計画共通) |
602_datamart_main.js | dmIsAccruedExpense_ | 未払費用該当判定(中小企業会計指針 第30項) |
603_datamart_pl.js | dmBuildPlOutput_ | P/L構築(計上/計画共通) |
604_datamart_bs.js | dmBuildBsOutput_ | B/S構築(計上/計画共通) |
605_datamart_cf.js | dmBuildCfOutput_ | CF間接法構築(計上/計画共通) |
606_datamart_daily_cf.js | dmBuildPlanCashflow_ | CF日次(計上/計画)構築 |
606_datamart_daily_cf.js | dmBuildDailyCashflow_ | CF日次(実績)構築 |