予算期間設定
会社情報画面に予算開始月を設定し、予算関連画面のデフォルト表示期間を予算年度に合わせる
DB変更: companies テーブルに budget_start_month :integer default:1 を1カラム追加するのみ。既存テーブルの変更なし。
地代家賃との関係: 地代家賃の適用開始日(effective_from)とは独立。同期させない。
全画面影響サマリー
会社スコープ
| 画面 | メニュー | 影響 | 変わるもの |
| 会社情報 | 設定 | 新規 | 予算開始月セレクト + プレビュー追加 |
| 年間予実対比 | 集計 | 高 | 期間セレクタのデフォルト → 予算年度 |
| 予実対比 | 集計 | 中 | 期間セレクタの月選択範囲 |
| 進捗分析 | 詳細分析 | 中 | 月セレクタの年度グルーピング |
| 月次レポート | 集計 | 低 | 月セレクタのグルーピング |
| ABC分析 / 商品別 / 曜日別 / 支払種別 / 仕入分析 / お支払い | - | なし | - |
店舗スコープ
| 画面 | メニュー | 影響 | 変わるもの |
| 予算設定: 一覧 | 予算設定 | 高 | 期間セレクタのデフォルト → 予算年度 |
| 年間予実対比 | 集計 | 高 | 期間セレクタのデフォルト → 予算年度 |
| 費用設定: 履歴 | 設定 | 高 | 年ナビ → 年度ナビ、表示範囲変更 |
| 予実対比 | 集計 | 中 | 期間セレクタの月選択範囲 |
| 月次集計 | 集計 | 中 | 月セレクタの年度グルーピング |
| 月次レポート | 集計 | 中 | 月セレクタ + 12ヶ月テーブル範囲 |
| 進捗分析 | 詳細分析 | 中 | 月セレクタの年度グルーピング |
| 感度分析 | 詳細分析 | 中 | 月セレクタの年度グルーピング |
| 月次予算設定 | 予算設定 | 低 | 月セレクタのデフォルト |
| 日次レポート | 集計 | 低 | 期間セレクタ |
| 費用設定: 一覧 | 設定 | 低 | なし(当月表示のみ) |
| ABC分析 / FD分析 / 流入分析 / 店舗情報 / 連携設定 / 休業日設定 / 地代家賃設定 | - | なし | - |
会社情報 会社スコープ NEW
担当者メールアドレスの下に「予算期間設定」セクションを追加
予算設定: 一覧 店舗スコープ
デフォルト表示期間が予算年度(4月〜翌3月)に変更
| 項目 |
2026年4月 | 2026年5月 | 2026年6月 | 2026年7月 | 2026年8月 | 2026年9月 | 2026年10月 | ... | 2027年3月 |
| 月次目標利益 | ¥3,976,000 | ¥3,976,000 | ¥3,390,000 | ¥3,390,000 | ¥3,591,000 | - | - | - | - |
| 目標FD仕入費率 | 29.2% | 29.2% | 29.2% | 29.2% | 29.2% | - | - | - | - |
| 目標PA人件費率 | 4.8% | 4.8% | 3.0% | 3.0% | 3.6% | - | - | - | - |
| 目標客単価 | ¥5,000 | ¥5,000 | ¥5,000 | ¥5,000 | ¥5,000 | - | - | - | - |
セレクタで任意の範囲に変更可能。1月〜3月のデータも消えない。
集計: 年間予実対比 店舗スコープ 会社スコープ
デフォルト期間が予算年度に変更。サマリー・予実対比の月列が4月起点に。
サマリー
| 項目 | 2026年4月 | 2026年5月 | 2026年6月 | ... 〜 2027年3月 |
| 予算値 | 実績値 | 差額 | 予算値 | 実績値 | 差額 | 予算値 | 実績値 | 差額 | ... |
| 営業利益 | ¥3,976,000 | - | - | ¥3,976,000 | - | - | ¥3,390,000 | - | - | ... |
| FD仕入額 | ¥5,110,000 | - | - | ¥5,110,000 | - | - | ¥4,672,000 | - | - | ... |
| 人件費額 | ¥5,657,000 | - | - | ¥5,657,000 | - | - | ¥5,483,000 | - | - | ... |
1月〜3月のデータは「前年度」としてセレクタで切り替え可能。
費用設定: 履歴 店舗スコープ
年ナビが「年度」単位に変更、表示範囲が4月〜翌3月に。
| 年月 | 費用予算 | アクション |
| 2026年4月 | ¥218,700 | 設定 |
| 2026年5月 | ¥218,700 | 設定 |
| 2026年6月 | ¥218,700 | 設定 |
| ... | ... | |
| 2027年1月 | ¥218,700 | 設定 |
| 2027年2月 | ¥218,700 | 設定 |
| 2027年3月 | ¥218,700 | 設定 |
年ナビが「前年/翌年」→「前年度/翌年度」に変更。year_monthクエリ範囲も予算年度に連動。
集計: 予実対比 店舗スコープ 会社スコープ
月内の日次比較のため、データ取得に変化なし。表示内容は同一。
| 項目 | 予算 | 実績 + 概算値 |
| 予算値(税抜) | 構成比 | 実績値(税抜) | 予算対比 | 予算対比率 |
| 総売上 | ¥5,250,000 | 100.0% | ¥5,364,177 | ¥+114,177 | 102.2% |
| フード売上 | ¥3,150,000 | 60.0% | ¥3,338,042 | ¥+188,042 | 106.0% |
| ドリンク売上 | ¥2,100,000 | 40.0% | ¥1,799,660 | ¥-300,340 | 85.7% |
| FD仕入 | ¥1,533,000 | 29.2% | ¥1,295,856 | ¥-237,144 | 84.5% |
| 地代家賃 | ¥218,700 | 4.2% | ¥218,700 | ¥0 | 100.0% |
| 営業利益 | ¥1,192,800 | 22.7% | ¥1,484,799 | ¥+291,049 | 124.5% |
この画面は月内の日次データで比較するため、予算開始月の変更はデータに影響しない。
詳細分析: 進捗分析 店舗スコープ 会社スコープ
月セレクタの年度グルーピング。目標値はMonthlyBudgetから月単位取得で変化なし。
表示データ
2026年04月
FD仕入費率
24.2%目標FD仕入費率 29.2%
セレクタ選択肢: 【2026年度】 2026年04月, 05月, ... 2027年03月 | 【2025年度】 2025年04月, ... 2026年03月
目標値(FD仕入費率29.2%等)はMonthlyBudgetから月単位取得のため変化なし。
詳細分析: 感度分析 店舗スコープ
月セレクタの年度グルーピング。固定費・目標値の取得ロジックは変化なし。
対象月選択
2026年04月
実績ページへ
セレクタ選択肢: 【2026年度】 2026年04月, 05月, ... 2027年03月 | 【2025年度】 2025年04月, ... 2026年03月
固定費¥2,272,200等はMonthlyBudget/MonthlyCostから月単位取得のため変化なし。
実装詳細
DB変更、モデルメソッド、コントローラ修正
DB Migration(1カラム追加のみ)
add_column :companies, :budget_start_month, :integer, default: 1, comment: "予算開始月(1-12)"
Company モデル追加(Sorbet対応)
validates :budget_start_month, inclusion: { in: 1..12 }, allow_nil: true
sig { params(year: Integer).returns(T::Hash[Symbol, Integer]) }
def budget_period(year)
s = budget_start_month || 1
if s == 1
{ from: year * 100 + 1, to: year * 100 + 12 }
else
{ from: year * 100 + s, to: (year + 1) * 100 + (s - 1) }
end
end
sig { params(year: Integer).returns(T::Array[T::Hash[Symbol, T.untyped]]) }
def budget_months(year)
s = budget_start_month || 1
(0..11).map do |offset|
m = ((s - 1 + offset) % 12) + 1
y = offset < (13 - s) ? year : year + 1
{ year: y, month: m, year_month: y * 100 + m,
date: Time.zone.parse("#{y}-#{m}-01") }
end
end
修正対象ファイル
| ファイル | 修正内容 |
companies_controller.rb | company_paramsに:budget_start_month追加 |
profile.html.haml | 予算期間設定セクション追加 |
monthly_budgets_controller.rb | indexのデフォルトstart/endをbudget_months起点に |
annual_budget_summary.rb | build_annual_budget_summaryのデフォルトfrom/to変更 |
monthly_cost_histories_controller.rb | beginning_of_year→budget_period |
company.rb | バリデーション + budget_period/budget_months追加 |
地代家賃設定との関係
同期しない。地代家賃の適用開始日(effective_from)は物件契約に基づく日付。予算開始月とは独立して管理する。適用月モーダルも地代家賃の適用開始日から算出し、予算開始月には連動しない。