プロジェクトマスタ(14_mst_project / spec_project_accounting 参照)
1. 概要
焦点質問: PJ別の損益と共通費配賦はどのように計算されるか?
全社損益に加えて、プロジェクト (案件・プロダクト) 別の損益を可視化する。 78タブ(通期P/L) と 79タブ(月次採算表) の二層構造で、異なるユースケースに対応する。
背景・課題
- 14_mst_project: プロジェクトマスタ既存 (PJコード, PJ名, 区分, PM等)
- PJ名列: 31_wrk_order, 32_wrk_invoice, 26_bud_adhoc, 41_trn_budget, 42_trn_journal に既存
- 402_project_profitability.js: V14 で実装済み
- 27_bud_resource (稼働率テーブル) × 22_bud_headcount (給与) で労務費配賦
- 32_wrk_invoice + 33_wrk_bank から売上・直接費を集計
- 共通費配賦 (28_bud_allocation) 実装済み
78タブ vs 79タブの役割分担
| 項目 | 78_pj_pl(通期P/L) | 79_pj_monthly(月次採算表) |
|---|---|---|
| 利用者 | 経営陣 | 現場PM |
| 目的 | 全社の固定費回収・ビジネス全体の収益性評価 | 進行中PJの異常検知・軌道修正 |
| 集計軸 | 科目(縦) × PJ(横)、通期合計 | PJ(縦) × 月(横)、12ヶ月ブレイクダウン |
| 算出範囲 | PJ経常利益まで(共通費配賦・営業外損益込み) | 限界利益まで(共通費配賦前) |
| 仕訳振替INV | 含む(33タブ消込済STL経由) | 含まない |
| 貸倒引当金 | 含む(92タブから読取) | 含まない |
| 共通費配賦 | あり(28タブのルールで按分) | なし |
| 営業外損益 | あり(売上高比で配賦) | なし |
設計根拠 — Controllability Principle(管理可能性の原則): 現場PMがコントロールできるのは「売上」「直接経費」「アサインメンバーの工数(労務費)」のみ。 バックオフィス人件費・家賃等の共通費や、源泉税・貸倒引当金等の税務手続きはPMの裁量外。 79タブはPJが全社固定費を賄うための「限界利益(貢献利益)」を純粋に追う設計とする。
78と79の数値差異は仕様。 制度会計との1円一致を目指すオーバーエンジニアリングは行わない。
2. 設計判断
| # | 選択肢 | メリット | デメリット | 選定 |
|---|---|---|---|---|
| 2-1 | 既存の 14_mst_project + PJ名列をそのまま活用 | 追加列不要。31/32/26/41/42 に PJ名列が既存。22_bud_headcount は 27_bud_resource 経由で按分する設計が自然 | 23/24/25 にはPJ名列がないが全社共通費として配賦する運用で問題なし | 採用 |
| 2-1' | PJマスタに新規列を大量追加 | 情報が一元化 | 既存列で十分。過剰設計 | 不採用 |
| 2-2 | 科目ごとに按分方法を選択可能。28_bud_allocation で管理。データマート計算時に按分 | 配賦基準の変更が容易。科目ごとに最適な按分方法を選べる柔軟性 | — | 採用 |
| 2-2' | 仕訳エンジンで配賦仕訳を生成 | 仕訳帳に配賦が残る | GAS実行時間制限。複雑化+冪等性リスク | 不採用 |
| 2-3 | 既存の 27_bud_resource (稼働率テーブル) で兼務按分 | 402_project_profitability.js が既に実装済み。新規の仕組み不要 | — | 採用 |
| 2-4 | 既存 402_project_profitability.js を改修し共通費配賦行を追加。出力先は 78_sum_project_pl | 既存コードを活用 | — | 採用 |
3. 変更内容
3.1 スキーマ
14_mst_project への列追加
| 既存/新規 | 列名 | 内容 |
|---|---|---|
| 既存 | PJコード | prj_0000, prj_0001, ... |
| 既存 | プロジェクト名 | PJ名 |
| 既存 | PJ区分 | コーポレート, 自社プロダクト, 受託 |
| 既存 | ステータス | 進行中, 完了, 保留 |
| 新規 | 配賦区分 | 配賦元 / 配賦先 / 対象外 |
| 配賦区分 | 意味 | 例 |
|---|---|---|
| 配賦元 | このPJの費用が他PJに配賦される | 指定なし_共通費など |
| 配賦先 | 共通費を受け取る側 | みらいワークス_PM支援 |
| 対象外 | 配賦に一切関与しない | 社内検証PJ |
27_bud_resource (要員稼働率) シート
| 列 | ヘッダー | 内容 |
|---|---|---|
| A | 有効フラグ | TRUE/FALSE |
| B | 要員名 | 22_bud_headcount の氏名・ポジション |
| C | PJ・案件名 | 14_mst_project のプロジェクト名 |
| D | 対象年月 | 月単位で入力(例: 2025-11) |
| E | 稼働率(%) | 0〜1の小数(1 = 100%) |
月ごとに1行。兼務者は同月に複数行(稼働率の合計が1.0)。 工数比配賦と労務費(工数配賦)の両方で使用される。
28_bud_allocation (配賦ルール) シート
| 列 | ヘッダー | 内容 |
|---|---|---|
| A | 有効フラグ | TRUE/FALSE |
| B | 科目名 | 配賦対象の科目 (11_mst_account の科目名) |
| C | 按分方法 | 売上高比 / 工数比 / 均等割 / 手動 |
| D〜 | PJ別配賦率 | 手動の場合のみ使用。列ヘッダーはPJ名。値は0〜1の小数(0.9 = 90%)。DDL実行時に配賦先PJ名が自動設定される |
例:
科目名 | 按分方法 | みらいワークス | 講師等 | ...
────────────────────────────────────────────
地代家賃 | 工数比 | | | ← 自動計算
通信費 | 売上高比 | | | ← 自動計算
役員報酬 | 手動 | 0.9 | 0.1 | ← 合計1.0にすること
法定福利費 | 工数比 | | |
行がない科目はデフォルト (売上高比) で配賦。 営業外損益(支払利息・雑収入等)は28タブの設定に関わらず強制的に売上高比で配賦される。 手動配賦率のバリデーション: 各値は0〜1の範囲、合計が1.0(100%)でなければエラー。
3.2 ロジック
分析ディメンションとファクト
ディメンション(分析軸):
| ディメンション | ソース | 粒度 | 用途 |
|---|---|---|---|
| PJコード / プロジェクト名 | 14_mst_project | PJ単位 | 78タブの列方向展開、79タブの行方向展開 |
| 科目名 | 11_mst_account | 勘定科目単位 | 78タブの行方向展開(表示区分ごとにグルーピング) |
| 対象年月 | 27_bud_resource, 32_wrk_invoice | 月単位 | 79タブの列方向展開(12ヶ月ブレイクダウン) |
| PJ区分 | 14_mst_project | コーポレート / 自社プロダクト / 受託 | PJの性質分類 |
| 配賦区分 | 14_mst_project | 配賦元 / 配賦先 / 対象外 | 共通費配賦のロール判定 |
| 表示区分 | 処理ロジックで付与 | 売上高 / 販管費(直接) / 共通費配賦 / 営業外収益 / 営業外費用 | 78タブのP/Lセクション分類 |
| 按分方法 | 28_bud_allocation | 売上高比 / 工数比 / 均等割 / 手動 | 科目ごとの配賦ドライバー選択 |
ファクト(計測値):
| ファクト | 定義 | 出力先 |
|---|---|---|
| 売上高 | 32_wrk_invoice の承認済/部分決済/決済完了INV(仕訳振替・B/S科目除外) | 78, 79 |
| 直接経費 | 同上のうち販管費に該当する科目 | 78, 79 |
| 労務費(配賦) | 22_bud_headcount の月額給与 × 27_bud_resource の稼働率(%) | 78, 79 |
| 共通費配賦額 | 配賦元PJの費用合計 × 28_bud_allocation の按分ルール | 78のみ |
| 営業外損益(配賦) | 営業外収益・費用を売上高比で配賦先PJに按分 | 78のみ |
| 仕訳振替INV | 33_wrk_bank 消込済STLから親ORD ID経由で認識 | 78のみ |
| 貸倒引当金繰入額 | 92_fs_pl から直接読み取り | 78のみ |
| 限界利益 | 売上高 − 直接経費 − 労務費(配賦) | 79のみ |
| PJ営業利益 | 売上総利益 − 販管費(直接) − 共通費配賦額 | 78のみ |
| PJ経常利益 | PJ営業利益 ± 営業外損益(配賦) | 78のみ |
経理向け補足: 限界利益(=売上高 − 直接経費 − 労務費配賦)は、各プロジェクトが固定費(販管費・営業外費用)をカバーするためにどれだけ貢献しているかを示す指標です。79タブ(月次採算)ではPJマネージャーが自身の管理可能範囲(Controllability Principle)で収益性を判断できるよう、限界利益までを表示しています。
配賦計算
配賦元の特定: 14_mst_project の 配賦区分 列で判定
配賦元: この PJ の費用が他PJに配賦される (例: 指定なし_共通費など)配賦先: 共通費を受け取る側 (例: みらいワークス案件)対象外: 配賦に一切関与しない (例: 社内検証PJ)
按分方法 (28_bud_allocation で科目ごとに設定):
売上高比: 各PJの売上高シェアで按分工数比: 27_bud_resource の稼働率合計シェアで按分均等割: 配賦先PJ数で均等に分割手動: PJ別の配賦率(%)を手入力
配賦計算式:
売上高比: PJ_A の配賦額 = 科目共通費合計 × (PJ_A 売上高 ÷ 配賦先PJ売上高合計)
工数比: PJ_A の配賦額 = 科目共通費合計 × (PJ_A 工数率合計 ÷ 配賦先PJ工数率合計)
均等割: PJ_A の配賦額 = 科目共通費合計 ÷ 配賦先PJ数
手動: PJ_A の配賦額 = 科目共通費合計 × PJ_A手動配賦率(%)
配賦ルールマトリクス:
| 費目カテゴリ | 配賦ドライバー | 基準値ソース | 備考 |
|---|---|---|---|
| 販管費(28タブに行あり) | 28_bud_allocation の按分方法に従う | 売上高比→32_wrk_invoice、工数比→27_bud_resource、均等割→14_mst_project(配賦先PJ数)、手動→28タブD列以降 | 科目ごとに個別設定 |
| 販管費(28タブに行なし) | 売上高比(デフォルト) | 32_wrk_invoice の PJ別売上高シェア | 行がない科目は自動フォールバック |
| 営業外損益(支払利息・雑収入等) | 売上高比(強制) | 32_wrk_invoice の PJ別売上高シェア | 28タブの設定に関わらず強制適用 |
| 人件費(労務費) | 工数比(稼働率按分) | 27_bud_resource × 22_bud_headcount | 要員別×PJ別×月別の稼働率で按分。配賦ではなく直接費計算 |
データソース
| データ | ソース | フィルタ |
|---|---|---|
| P/L実績 | 32_wrk_invoice | 有効フラグ=TRUE、ステータス=承認済/部分決済/決済完了、仕訳振替除外、B/S科目除外(資産計上以外) |
| 仕訳振替INV | 33_wrk_bank → 32_wrk_invoice | 消込済STLから親ORD ID経由で仕訳振替INVを認識(60番台 PHASE 2と同じ) |
| 貸倒引当金繰入額 | 92_fs_pl | マート更新後の値を直接読み取り(将来的に32タブINV出力に移行予定) |
| 労務費 | 27_bud_resource × 22_bud_headcount | 対象年月×稼働率×月額給与 |
処理フロー
buildProjectProfitability()
├─ 1. マスタ読み込み
│ ├─ 11_mst_account → 科目マスタ
│ ├─ 14_mst_project → 配賦区分 (配賦元/先/対象外)
│ ├─ 28_bud_allocation → 科目別按分方法・手動率
│ └─ 22_bud_headcount → 人員マップ
├─ 2. 工数按分 (27_bud_resource × 人員)
├─ 3. 売上・直接費集計 (32_wrk_invoice)
│ └─ 60番台と同じフィルタ適用
├─ 4. 貸倒引当金繰入額 (92_fs_pl から読み取り)
├─ 5. 仕訳振替INV認識 (33_wrk_bank → 32_wrk_invoice)
├─ 6. 共通費配賦 (配賦元PJの費用を配賦先PJに按分)
│ ├─ 販管費 → 28タブのルールで按分(デフォルト: 売上高比)
│ ├─ 営業外損益 → 強制的に売上高比で按分、本来のセクションに表示
│ └─ 手動 → 28タブD列以降の配賦率で按分(バリデーション: 0≤rate≤1, 合計=1.0)
├─ 7. 出力 (78_pj_pl: PJ横並びP/L)
│ ├─ B列: 配賦元合計(全社合計には含めない)
│ ├─ C列〜: 配賦先PJ別の値
│ └─ 最終列: 全社合計(PJ列のみ合算)
└─ 8. 出力 (79_pj_monthly: 月次PJ別採算表)
3.3 出力レイアウト
78_pj_pl (PJ横並びP/L)
表示区分 | 配賦元合計 | PJ_A | PJ_B | ... | 全社合計
──────────────────────────────────────────────────────────────
■ 売上高 | | | | |
売上高 | - | xxx | xxx | | xxx
【売上高 計】 | - | xxx | xxx | | xxx
✨ 売上総利益 | - | xxx | xxx | | xxx
■ 販管費 (直接) | | | | |
役員報酬 | 1,500,000 | - | - | | -
... | | | | |
■ 共通費配賦 | | | | |
役員報酬 | | xxx | xxx | | xxx
... | | | | |
✨ PJ営業利益 | - | xxx | xxx | | xxx
■ 営業外収益 | | | | |
雑収入 | | xxx | xxx | | xxx
■ 営業外費用 | | | | |
支払利息 | | xxx | xxx | | xxx
✨ PJ経常利益 | - | xxx | xxx | | xxx
- B列 (配賦元合計): 配賦元PJの直接費を表示(全社合計には含めない、参考表示)
- 全社合計: PJ列のみ合算(92_fs_pl の営業利益・経常利益と一致)
- 営業外損益: 売上高比で配賦先PJに按分、本来のセクションに表示
79_pj_monthly (月次PJ別採算表)
現場PMが進行中PJの異常を月次で検知するための表。限界利益(貢献利益)まで。
プロジェクト・案件名 | 管理会計 項目 | 通期合計 | 2025-08 | 2025-09 | ... | 2026-07
─────────────────────────────────────────────────────────────────────────
■ PJ_A | 売上高(期待値) | xxx | xxx | xxx | | xxx
| 直接経費(外注等) | xxx | xxx | xxx | | xxx
| 🤖 労務費(配賦) | xxx | xxx | xxx | | xxx
| ✨ 限界利益 | xxx | xxx | xxx | | xxx
| 限界利益率 | xx.x% | xx.x% | xx.x% | | xx.x%
| | | | | |
■ PJ_B | ... | | | | |
| | | | | |
🏢 【全PJ 合計】 | 売上高 合計 | xxx | ... | | |
| 直接経費 合計 | xxx | ... | | |
| 🤖 労務費 合計 | xxx | ... | | |
| 🌟 全社 限界利益 | xxx | ... | | |
| 全社 限界利益率 | xx.x% | ... | | |
スコープ — 意図的に含めない項目:
- 仕訳振替INV(源泉税の預り金相殺等): 税務手続きでありPJの稼ぐ力と無関係
- 貸倒引当金繰入額: 同上
- 共通費配賦: PMの裁量外コスト。月次の配賦基準(売上高比等)が受託の納品月スパイクで歪む
- 営業外損益: PMの管理不能コスト
データソース:
- 32_wrk_invoice: 承認済/部分決済/決済完了のINVから売上・直接経費を集計
- 22_bud_headcount × 27_bud_resource: 稼働率ベースの労務費配賦
- 11_mst_account: 科目分類(営業外損益・B/S科目の除外判定)
フィルタ(78タブと共通 + 追加除外):
- 有効フラグ=TRUE
- ステータス=承認済/部分決済/決済完了
- 仕訳振替INV=除外
- B/S科目=除外(資産計上以外)
- 営業外損益=除外(78タブでは含むが、79タブでは限界利益の対象外)
4. 影響範囲
| 影響対象 | 影響内容 | 対応 |
|---|---|---|
402_project_profitability.js | データソースを32/33タブに変更、共通費配賦、営業外損益配賦、仕訳振替INV認識、貸倒引当金読込、手動配賦率実装 | 改修 |
101_sys_config.js | 14_mst_project スキーマに「配賦区分」列追加、27_bud_resource / 28_bud_allocation / 79_pj_monthly スキーマ追加、DDLでPJヘッダー自動設定 | 改修 |
| 14_mst_project | 「配賦区分」列の追加 | スキーマ変更 |
| 27_bud_resource | 新規シート追加 | DDL追加 |
| 28_bud_allocation | 新規シート追加(D列以降はDDL管理外) | DDL追加 |
| 78_pj_pl | 出力レイアウト変更(共通費配賦行追加) | 出力変更 |
| 79_pj_monthly | 新規出力タブ | 新規追加 |
| 92_fs_pl | 貸倒引当金繰入額の読み取り元 | 参照のみ(変更なし) |
5. テスト仕様
| # | テスト内容 |
|---|---|
| 1 | 78タブの全社合計が92タブ(P/L)の営業利益・経常利益と一致すること |
| 2 | 配賦元PJの費用がB列に正しく集計されること |
| 3 | 配賦先PJに28タブのルール通り配賦されること(売上高比/工数比/均等割/手動) |
| 4 | 手動配賦率のバリデーション: 0≤rate≤1、合計=1.0 |
| 5 | 営業外損益が売上高比で配賦され、本来のセクション(営業外収益/費用)に表示されること |
| 6 | 仕訳振替INV(益税等)がSTL消込済みの場合のみ計上されること |
| 7 | 貸倒引当金繰入額が92タブと一致すること |
| 8 | 対象外PJは78タブに表示されないこと |
| 9 | 60番台と同じフィルタ: 承認済/部分決済/決済完了のみ、仕訳振替除外、B/S科目除外 |
付録A: ADR-0003リンク
設計判断の詳細は §2 設計判断テーブルを参照。
付録B: 配賦選択指針
配賦方法の選択指針:
- 売上高比: 売上に比例して発生する費用(例: 営業関連費、マーケティング費)に適用
- 工数比: 人的リソースの投入量に比例する費用(例: 管理部門の人件費)に適用
- 均等割: 特定のドライバーと関連しない共通費(例: オフィス賃料)に適用
- 手動: 上記ルールに当てはまらない特殊な配賦(例: 特定PJ専用の外注費)に使用