概要
損益計算書(P/L)
売上高 → 売上総利益(粗利)→ 営業利益 → 経常利益の構造。各段階で何が引かれるかを理解する。
営業レバレッジ
売上が増えても固定費(販管費)が大きく変わらない場合、利益率が急速に改善する現象。スケーラブルなシステムと同じ構造。
BigQuery × dbt
EC企業では財務データがBigQueryに集約され、エンジニアがdbtで財務モデルを実装する場面が増えている。
KPIアラート
粗利率急落・前月比下落などを監視する閾値アラートで、異常を早期検知する。
問題
あなたはECサイト企業のエンジニアとして、以下の月次損益データ(架空)を受け取りました。
| 月 | 売上高(万円) | 売上原価(万円) | 販管費(万円) | 営業外費用(万円) |
|---|---|---|---|---|
| 1月 | 8,200 | 4,920 | 2,100 | 80 |
| 2月 | 7,500 | 4,500 | 2,100 | 80 |
| 3月 | 10,400 | 6,240 | 2,200 | 80 |
| 4月 | 9,100 | 5,460 | 2,150 | 80 |
タスク
- Q1. 各月の「売上総利益(粗利)」「営業利益」「経常利益」を計算せよ
- Q2. 各月の「粗利率(%)」と「営業利益率(%)」を計算し、3月の数値が際立っている理由を考察せよ
- Q3. このデータをBigQueryに格納してダッシュボード監視する場合、テーブル設計とKPIアラートを設計せよ
前提: 税金・減価償却は考慮しない。営業外費用 = 支払利息のみ
ヒント(段階的開示)
ヒント1 — P/L構造
売上高
- 売上原価
= 売上総利益(粗利)
- 販管費(販売費及び一般管理費)
= 営業利益
- 営業外費用(+ 営業外収益)
= 経常利益
ヒント2 — 利益率の計算式
- 粗利率 = 売上総利益 ÷ 売上高 × 100
- 営業利益率 = 営業利益 ÷ 売上高 × 100
- 3月に注目: 売上高が10,400万円に急増しているが、原価率(原価÷売上高)は一定か変化しているか?
ヒント3 — Q3 BigQuery設計ポイント
- テーブルに
year_monthカラム(DATE型)を持たせる - KPI は「前月比」「前年同月比」「粗利率しきい値」で考える
- dbt model で自動計算、BigQuery Scheduled Query で月次集計を自動化
P/L 構造図 と 営業レバレッジの可視化
模範解答
Q1. 各月の損益計算
| 月 | 売上高 | 売上原価 | 粗利 | 販管費 | 営業利益 | 営業外費用 | 経常利益 |
|---|---|---|---|---|---|---|---|
| 1月 | 8,200 | 4,920 | 3,280 | 2,100 | 1,180 | 80 | 1,100 |
| 2月 | 7,500 | 4,500 | 3,000 | 2,100 | 900 | 80 | 820 |
| 3月 | 10,400 | 6,240 | 4,160 | 2,200 | 1,960 | 80 | 1,880 |
| 4月 | 9,100 | 5,460 | 3,640 | 2,150 | 1,490 | 80 | 1,410 |
Q2. 利益率の分析
| 月 | 粗利率(%) | 営業利益率(%) |
|---|---|---|
| 1月 | 40.0% | 14.4% |
| 2月 | 40.0% | 12.0% |
| 3月 | 40.0% | 18.8%(最高) |
| 4月 | 40.0% | 16.4% |
考察:
粗利率はすべての月で40.0%で一定 → 売上原価が売上高の60%に固定(変動費モデル)。
3月の営業利益率が18.8%と突出している理由:
1. 売上高が増加したが販管費の増加が小さかった(+100万 vs 売上+2,900万)→ 営業レバレッジ効果
2. 3月はEC業界の繁忙期(新生活・卒業シーズン)→ シーズナリティ
3. 確認すべき点: 販促キャンペーンコストが販管費に正しく計上されているか
粗利率はすべての月で40.0%で一定 → 売上原価が売上高の60%に固定(変動費モデル)。
3月の営業利益率が18.8%と突出している理由:
1. 売上高が増加したが販管費の増加が小さかった(+100万 vs 売上+2,900万)→ 営業レバレッジ効果
2. 3月はEC業界の繁忙期(新生活・卒業シーズン)→ シーズナリティ
3. 確認すべき点: 販促キャンペーンコストが販管費に正しく計上されているか
Q3. BigQuery テーブル設計 + KPI アラート案
-- テーブル: finance.monthly_pnl
-- パーティション: year_month(DATE型, YYYY-MM-01 で月初統一)
CREATE TABLE finance.monthly_pnl (
year_month DATE, -- 例: 2026-01-01
revenue INT64, -- 売上高(万円)
cost_of_goods INT64, -- 売上原価(万円)
gross_profit INT64, -- 売上総利益(万円、計算済み保持)
sga_expense INT64, -- 販管費(万円)
operating_profit INT64, -- 営業利益(万円)
non_op_expense INT64, -- 営業外費用(万円)
ordinary_profit INT64, -- 経常利益(万円)
gross_margin_pct FLOAT64, -- 粗利率(%)
op_margin_pct FLOAT64, -- 営業利益率(%)
updated_at TIMESTAMP -- ETLの更新日時
)
PARTITION BY year_month
OPTIONS (require_partition_filter = false);
KPI アラート設計(DataDog または Cloud Monitoring)
| アラート名 | 条件 | 重要度 |
|---|---|---|
| 粗利率急落アラート | 粗利率 < 38%(通常40%の -2%閾値) | HIGH |
| 営業利益前月比下落 | 営業利益が前月比 -20% 以下 | MEDIUM |
| 売上高急落 | 当月売上が前年同月比 -15% 以下 | HIGH |
| 原価率異常上昇 | 原価率 > 63%(仕入れコスト異常) | HIGH |
実装方針: dbt model で
monthly_pnl ビューを定義し生データから自動計算。
BigQuery Scheduled Query で月次集計を自動化。
Looker Studio / DataDog Dashboard で可視化。
gross_margin_pct < 0.38 の場合に Cloud Monitoring → Slack 通知。
ポイント解説
1
営業レバレッジとは
売上高が増えても固定費(販管費)が大きく変わらない場合、利益率が急速に改善する現象。 エンジニアが「スケーラブルなシステム」を目指す概念と同じ構造(コスト固定・収益スケール)。
売上高が増えても固定費(販管費)が大きく変わらない場合、利益率が急速に改善する現象。 エンジニアが「スケーラブルなシステム」を目指す概念と同じ構造(コスト固定・収益スケール)。
2
粗利率の安定性が重要
粗利率が一定である = 原価管理が安定していることを意味する。 粗利率が月によって大きく変動する場合は「値引き」「仕入れコスト変動」「返品率」などを調査すべきシグナル。
粗利率が一定である = 原価管理が安定していることを意味する。 粗利率が月によって大きく変動する場合は「値引き」「仕入れコスト変動」「返品率」などを調査すべきシグナル。
3
エンジニアが財務データを扱う理由
EC企業では売上・原価・利益がBigQueryなどのデータウェアハウスに集約されることが多く、 エンジニアがdbtで財務モデルを実装したりKPIダッシュボードを構築する場面が増えている。 財務の読み方を知らないと「何を計算しているのかわからない」ままになる。
EC企業では売上・原価・利益がBigQueryなどのデータウェアハウスに集約されることが多く、 エンジニアがdbtで財務モデルを実装したりKPIダッシュボードを構築する場面が増えている。 財務の読み方を知らないと「何を計算しているのかわからない」ままになる。
実務への応用
-
キャンペーンROI評価:
営業利益 / キャンペーン費用を月次BigQueryクエリで計算。 販促費が販管費に含まれるため、「販促費 ÷ 売上高」のレシオ管理が重要。 -
dbt modelの設計:
mart.campaign_roiモデルを作成し、finance.monthly_pnlとmarketing.campaign_spendをJOINしてKPIを自動化。 - シーズナリティ対応: 3月のような繁忙期は前年同月比で比較。前月比だけを見ると「好調」に見えても 前年比では悪化している可能性がある。
次のステップ
発展問題:
キャッシュフロー計算書(CF計算書)の読み方 — 「黒字倒産」の仕組みをPythonで数値シミュレートする
- 参考: 「会計の世界史」(田中靖浩)、「財務3表一体理解法」(国貞克則)
- 参考: CFA Level 1 Financial Reporting分野
今日のまとめ
損益計算書の構造(売上総利益 → 営業利益 → 経常利益)を理解し、
「固定費が大きいほど営業レバレッジが働く」という財務の基本的なメカニズムを押さえた。
エンジニアはBigQuery + dbtでこの財務指標を自動計算・監視する役割を担う場面が増えている。 粗利率・営業利益率の監視アラートを設計することで、経営判断に直結するデータパイプラインを構築できる。
エンジニアはBigQuery + dbtでこの財務指標を自動計算・監視する役割を担う場面が増えている。 粗利率・営業利益率の監視アラートを設計することで、経営判断に直結するデータパイプラインを構築できる。