BlueAI株式会社BlueAI
カリキュラム/第7章: データ分析/7-2 Claude Code で KPI ダッシュボードを作成

7-2 Claude Code で KPI ダッシュボードを作成

無料

Claude Code で KPI を見える化する HTML ダッシュボードを自作。Chart.js / Streamlit / Looker Studio の使い分けと、売上・アクセス解析・タスク進捗の 3 実例で「数字を意思決定に変える」工程を体得します。

7章: データ分析60分
酒井歩乃加
監修: 酒井歩乃加

フリーランス編集者・ライター / 元マイベスト編集ディレクター

平原尚樹
監修: 平原尚樹

株式会社BlueAI 代表取締役CEO / ソフトウェアエンジニア

このレッスンで身につくこと

前のレッスン 7-1: 競合調査 で集めた情報を、「数字を眺めて意思決定するためのダッシュボード」に変換 する工程に進みます。

数字の羅列は、人間の脳には入ってきません。「先月の売上 312 万円、今月 287 万円」と言われても、それが良いのか悪いのか瞬時には分かりません。同じ数字でも「折れ線で前年同月と並べる」だけで、見た瞬間に判断できる ようになります。これがダッシュボードの本質です。

ポイント

このレッスンのゴール

  • ダッシュボードに 必ず入れるべき 4 要素 を言語化できる
  • HTML+Chart.js / Streamlit / Looker Studio を用途で使い分けられる
  • 売上 KPI / Web アクセス解析 / タスク進捗 の 3 実例を再現できる
  • 手動 / cron / リアルタイム の 3 更新パターンを知り、運用設計までできる
  • 「グラフ多すぎ・色使い過剰・モバイル非対応」の 3 大失敗 を回避できる
  • プロンプトテンプレート 3 つ を持ち帰り、来月のレポートを 5 分で組める

所要時間 — 約 60 分(実機ハンズオン込み) 難易度 — ★★★☆☆


なぜ「数字を眺める場所」を作るのか

ダッシュボード作成は、データ分析の中で 最も ROI が見えやすい 仕事です。1 回作れば毎日・毎週・毎月くりかえし使われる からです。

毎週月曜の朝に上司から「先週の売上どうだった?」と聞かれ、Excel を開いてグラフを作り直しているなら、それは 100% 自動化対象です。1 つ作って URL をブックマークしておけば、聞かれた瞬間にリンクを返すだけで済みます。

気づき

ダッシュボードの価値は「見たいときに見られる」ではなく「見たくない日にも勝手に見える」こと。 週次の朝会で開く / Slack に毎朝貼られる / トイレ前の壁に貼ってある — 生活動線にダッシュボードを置く ところまで設計できると、データに基づく意思決定が日常になります。

項目従来Claude Code
月次レポート作成Excel + PowerPoint で 45 分データ差し替えで 2 分
インタラクティブ機能なしホバー / フィルター 標準
共有PDF 添付URL を Slack に貼るだけ
翌月の再利用0%(毎月作り直し)95% 以上 がそのまま再利用

翌月の再利用率 が決定的な差です。


ダッシュボードに必要な要素 4 つ

良いダッシュボードは、ほぼ例外なく次の 4 つを持っています。逆に言えば、これがないものはダッシュボードと呼ぶ価値がない ということです。

要素 1 — KPI カード(瞬時に分かる主要指標)

画面上部に 3〜6 個の数字 を大きく並べます。基本構成は ラベル + 数字 + 比較値 の 3 段。

┌─────────────────┐
│ 今月の売上       │  ← ラベル(小)
│ ¥3,420,000      │  ← 数字(大)
│ ▲ 12.3% (前月比) │  ← 比較値(中)
└─────────────────┘

比較値(前月比 / 前年同月比 / 目標比)がないと、その数字が良いのか悪いのか判断できません。

要素 2 — トレンドグラフ(時間軸での変化)

KPI カードが「点」、トレンドグラフは「線」。12 ヶ月の折れ線30 日の棒グラフ で「上がっているか下がっているか」を見せます。重要なのは、複数の系列を重ねる こと。

  • 売上の折れ線 + 前年同月の点線
  • 訪問者数の棒 + 目標ラインの横線
  • タスク完了数 + バーンダウン理想線

比較対象が同じ画面に映っているか で、実用度が 10 倍違います。

要素 3 — 内訳(カテゴリ別の分解)

合計値だけ見ても原因は分かりません。

グラフ種別用途
円グラフカテゴリ 3〜5、構成比が主目的
積み上げ棒カテゴリ 4〜8、時系列での変化も見たい
横棒ランキングカテゴリ 10 以上、上位を強調
ヒートマップ2 軸の組み合わせ(曜日 × 時間帯など)

円グラフはカテゴリ 6 個を超えたら使わない。それ以上は横棒に切り替えます。

loading diagram…

要素 4 — フィルター / 切り口

見る人が自分で切り替えられる 余地を持たせます。期間(Q1〜Q4)/ 地域・部署 / ドリルダウン / CSV エクスポートなど。

ポイント

最初から全部入れない。要素 1〜3 をまず作り、見る人から「ここ切り替えたい」と言われてから要素 4 を足す。使われないフィルターは UI のノイズ です。


技術スタック選択

最初の 1 個目で技術選択を間違えると、後で全部やり直し になります。

選択肢 1 — HTML + Chart.js(推奨)

最も汎用的でコスト 0。Claude Code との相性も最高。

  • 形態 — HTML 1 ファイル + Chart.js を CDN
  • コスト — 完全無料
  • 共有 — メール添付 / GitHub Pages / Cloudflare Pages
  • 向く規模 — 数万行までのデータ、3〜10 種類のグラフ
> 売上.csv からダッシュボードを作って。
> Chart.js を CDN で読み込み、HTML ファイル 1 つで完結。
> モバイル対応 (レスポンシブ) 必須。

1 ファイル完結 が最大の強み。Slack に貼っても良し、メール添付も良し。

選択肢 2 — Streamlit(Python で動的に)

「ユーザーがスライダーを動かすと再計算される」ような インタラクティブな分析ツール に向きます。データ加工ロジックが重いとき(複雑な集計 / 機械学習モデルの結果表示)に楽。一方でサーバを立てる手間があります。

選択肢 3 — Looker Studio

データが Google Sheets / BigQuery / GA 中心 ならこれが最速。Claude Code との相性は薄いが、データ連携が標準装備。

使い分け一覧

用途推奨理由
経営報告 / 役員 1 枚レポートHTML + Chart.js静的・配布しやすい
分析者が触れる探索ツールStreamlitPython で柔軟
Google 系データで完結Looker Studioデータ連携が標準
自社プロダクト埋め込みHTML + Chart.jsiframe で組み込み可
気づき

最初の 1 個目は HTML + Chart.js が鉄則。Claude Code が CSS / JS / HTML を全部書けるから自由度が最大化します。


実例 1 — 売上 KPI ダッシュ

経営でいちばん使われる構成です。

Step 1 — データ準備

実データが無いなら、Claude にダミー CSV を作らせます。

> 12 ヶ月分の売上サンプル CSV を作って。
> カラム: 月, 売上, 利益, 顧客数, 新規顧客数, 解約数
> 売上は 200 万〜400 万、ゆるい右肩上がりトレンドで。
> ファイル名 sales-2026.csv

Step 2 — ダッシュボード生成

> sales-2026.csv からダッシュボード HTML を作って。
> - 上部に KPI カード 4 つ
>   (今月売上 / 前月比 / 累計売上 / 顧客数)
> - 折れ線: 12 ヶ月の売上推移、前年同月を点線で重ねる
> - 棒グラフ: 月別利益率
> - 横棒: 直近 3 ヶ月の新規 / 解約数
> - Chart.js v4 を CDN、レスポンシブ (768px 以下で縦積み)
> - 配色は #0AA5D4 (ブランド) と #1E293B (アクセント)
> - dashboard-sales.html として保存

配色を指定する のがコツ。指定しないと「鮮やかな赤と青と緑」みたいな主張の強い配色になりがちです。ブランドカラー 1 色 + アクセント 1 色 + グレースケールで、見やすさが一段上がります。

Step 3 — フィルター追加

最初のバージョンが動いたら、機能を 1 つずつ足します。

> dashboard-sales.html に以下を追加して。
> - 期間フィルター (Q1 / Q2 / Q3 / Q4 / 全期間)
> - グラフクリックで詳細モーダル
> - 右上に CSV エクスポートボタン

1 度に全部頼まない。1 機能ずつ追加してブラウザで確認する方が、デバッグが圧倒的に楽です。

Step 4 — モバイル確認

PC で見栄えが良くても、スマホで開くと崩れる ことはよくあります。Chrome DevTools のレスポンシブモード (375px 幅) で確認します。

> スマホ画面で KPI カードが横にはみ出る。
> 768px 以下では KPI カードを縦 1 列、フォントも一回り小さく。

経営層の半分はスマホで開きます。これを軽視すると誰も見なくなります。


実例 2 — Web アクセス解析ダッシュ

GA4 / PostHog からエクスポートしたデータを可視化します。

> ga4-export.csv からダッシュボードを作って。
> - KPI カード 6 つ
>   (今月 PV / 前月比 / UU / 平均滞在時間 / CV 数 / CVR)
> - 折れ線: 過去 30 日の日別 PV、平均値の横線を引く
> - 円グラフ: 流入元別シェア (Top 5、その他にまとめる)
> - 横棒ランキング: 人気ページ Top 10
> - 棒グラフ: デバイス別 (PC / SP / Tablet)
> - 配色は青系統で統一、dashboard-traffic.html

Web アクセス特有の落とし穴

落とし穴対処
Bot トラフィックを含むフィルター済みデータをエクスポート
タイムゾーンずれエクスポート時に JST 指定
サンプリングされた数字GA4 のサンプリング有無を確認
Direct が異常に多いUTM パラメータ未設定を疑う

生データを盲信しない。「あれ、この数字おかしい」と感じたら Claude に「違和感のある点を 3 つ挙げて」と聞いて、データ品質チェックまでやらせます。


実例 3 — タスク進捗ダッシュ

Asana / Notion / Jira などから CSV エクスポートして可視化します。

> tasks.csv からスクラム風のタスク進捗ダッシュを作って。
> - KPI カード 4 つ
>   (Total / Done / In Progress / Blocked)
> - バーンダウンチャート (理想線 + 実績線)
> - 担当者別の Done タスク数 (横棒)
> - 期限超過タスクを赤でハイライトしたテーブル
> - dashboard-tasks.html

バーンダウン は、スプリント期間で残タスクが 0 に減るのを可視化するグラフ。理想線(均等に減る直線)と実績線(毎日の残数)を重ねます。実績線が理想線より上にあれば遅れている のが見た瞬間に分かるのが威力。

毎週金曜のレビューで画面共有しながら 5 分で振り返る運用が定着すると、テキスト議事録より圧倒的に効率的です。

ポイント

チームに 1 枚 が一番効きます。個人別ダッシュは目線がバラけるので、まずはチーム全体の数字を 1 つに集約しましょう。


データ更新の仕組み — 手動 / cron / リアルタイム

「作って終わり」ではなく、更新し続けて初めて価値が出る ものです。

レベル 1 — 手動更新(最初はこれで十分)

CSV を差し替えて「再生成して」と頼むだけ。月 1 回のレポートならこれで十分、所要 2 分。

> sales-2026-06.csv に新月データを追加した。
> dashboard-sales.html のデータ部分だけ差し替えてグラフ更新。

レベル 2 — cron / GitHub Actions

データソースが API や DB なら、定期実行に乗せます。

# 毎日 8:00 にデータ取得 → ダッシュ再生成
0 8 * * * cd ~/work/dashboard && \
  python fetch-data.py > data/$(date +\%Y-\%m-\%d).csv && \
  claude -p "今日のデータでダッシュ再生成" > dashboard.html

毎朝出社したら最新版が用意されている 状態が作れます。

レベル 3 — リアルタイム更新

EC のリアルタイム売上、ライブイベント参加者数など。WebSocket / SSE / fetch ポーリングで実装。

月次レポートをリアルタイムにしても意味はありません。大半は レベル 2 で十分

用途推奨レベル
月次経営報告レベル 1
週次チームレビューレベル 1〜2
営業日次トラッキングレベル 2(毎朝 8 時)
ライブイベント / 競売レベル 3

失敗パターン

失敗 1 — グラフ多すぎ

「あれもこれも」と詰め込むと、1 画面 15 個のグラフ みたいになります。これは ダッシュボードではなくグラフカタログ

Bad

悪い例

  • 1 画面にグラフ 15 個、スクロールしないと全部見えない
  • どこを見ればいいか分からない
  • 印刷すると 5 ページに分かれる
Good

良い例

  • 1 画面に 5〜8 個まで
  • KPI カード 4 + メイングラフ 1 + サブ 2〜3
  • 重要度の低い情報は ドリルダウンの先
  • A4 1 枚(PC モニタ 1 画面)に収まる

「何を見せたいか」を 1 文で書ける ダッシュが良いダッシュです。

失敗 2 — 色使い過剰

お任せだと、デフォルトで 虹色のグラフ が出てきがちです。

Bad
  • グラフごとに別色(赤・青・緑・黄・紫)
  • 赤字 / 黒字を赤緑で分ける(色覚多様性 NG)
  • 背景・文字・グラフが全部派手な色
Good
  • ベース色 1 つ(ブランドカラー)
  • アクセント色 1 つ(強調用)
  • グレースケールで濃淡をつける
  • 赤緑の代わりに 青/オレンジ を使う
> グラフ配色を見直して。
> ブランド色 #0AA5D4 主軸、強調は #F59E0B、それ以外は
> グレーの濃淡 (#1E293B, #64748B, #CBD5E1) で統一。
> 赤緑は使わない (色覚多様性対応)。

失敗 3 — モバイル非対応

PC でしか動かない ダッシュは、半分の利用者を切り捨てています。経営層・営業はスマホで開く頻度が高いです。

Good
  • CSS Grid / Flex で 768px 以下は自動縦積み
  • KPI カードは縦 1 列 or 2 列
  • フォント 16px 以上、タップ領域 44px 以上
  • ==Chart.js の responsive: true== を必ず指定
> 768px 以下のとき:
> - KPI カードは 2 列 × 2 行
> - グラフは縦並び、高さ 240px
> - body 16px、見出し 20px

プロンプトテンプレート 3 つ

ここまでの内容を コピペで使えるテンプレ に圧縮しました。

テンプレ 1 — KPI ダッシュボード(汎用)

[CSV ファイル名] からダッシュボード HTML を作って。

データ構造:
- [列名と意味を 3〜5 行で]

構成:
- KPI カード [4-6] 個 ([カード1] / [カード2] / ...)
- メイングラフ (折れ線): [軸]
- サブグラフ (棒/円): [軸]
- フィルター: [期間 / カテゴリ]

技術:
- Chart.js v4 を CDN
- レスポンシブ (768px 以下で縦積み)
- 配色は [ブランド色] と [アクセント色] のみ

出力:
- ファイル名 [filename].html
- データは HTML 内に直書き
- モバイル動作確認済み

テンプレ 2 — 月次レポート(差分更新)

先月作った dashboard.html のデータを更新して。

新データ: [新 CSV ファイル名]
追加月: [YYYY-MM]

ルール:
- グラフ構造は変えない、データの追記のみ
- KPI カードの「今月」「前月比」を更新
- ファイル名 dashboard-[YYYY-MM].html として別名保存
- 前月版から変化が大きい指標があればコメント

テンプレ 3 — リアルタイム監視

[API エンドポイント] からポーリングするダッシュを作って。

間隔: [N] 秒ごと
表示:
- 現在値 (KPI カード)
- 過去 [N] 分の折れ線
- 閾値 [VALUE] 超過は赤でハイライト

実装:
- HTML + JS (fetch API)
- localStorage に [N] 件保存
- Page Visibility API で非表示時停止
- エラー時はトースト通知
ポイント

==テンプレを ~/templates/dashboard/ に保存== しておくと、来月以降は「テンプレ cat → プロンプトに貼る」だけで 5 分で完成。


やってみよう

机上で読むだけでなく、1 つ必ず作ってみる。所要 30 分。

# パターン A — 自社の売上データ
> sales.csv からダッシュボードを作って。
> KPI カード 4 + 12 ヶ月折れ線 + カテゴリ別棒グラフ。
> Chart.js v4 / レスポンシブ / 配色は青系統。

# パターン B — 個人の家計簿
> kakeibo.csv から月別の支出カテゴリ内訳を円グラフで。

# パターン C — チーム週次 KPI
> weekly-kpi.csv からバーンダウン + 担当者別 Done 数。

読んだだけだと 3 日後に忘れます


まとめ

  1. 必要な 4 要素 — KPI カード / トレンドグラフ / 内訳 / フィルター
  2. 技術は HTML + Chart.js がデフォルト。Python なら Streamlit、Google 系なら Looker Studio
  3. 実例 3 つ — 売上 / Web アクセス / タスク進捗
  4. 更新は 手動 / cron / リアルタイム の 3 レベル、大半は cron で十分
  5. 失敗 3 種 — グラフ多すぎ / 色使い過剰 / モバイル非対応
  6. 配色は ブランド色 1 + アクセント 1 + グレースケール
  7. 生活動線にダッシュを置く ところまで運用設計する
章末演習

章末演習 — 所要 30〜45 分。

  1. 手元の任意の CSV (売上 / 家計簿 / タスク / アクセス解析) を 1 つ選ぶ
  2. テンプレ 1 を埋めて Claude Code に投げる
  3. ブラウザで確認、配色とモバイル対応を 1 回ずつ修正指示
  4. Chrome DevTools の 375px 幅で崩れないことを確認
  5. Slack / メールで誰かに URL かファイルを共有してフィードバックをもらう

Bonus — テンプレ 2 (月次差分) を ~/templates/dashboard/ に保存し、cron 登録の手順までメモ化する。

<Quiz question="ダッシュボードに必ず入れるべき 4 要素はどれ?" options={["KPI カード / トレンドグラフ / 内訳 / フィルター","タイトル / 著者名 / 日付 / バージョン","ヘッダー / フッター / サイドバー / メイン"]} answer={0} />

<Quiz question="ダッシュボードのモバイル対応で最も重要なのはどれ?" options={["CSS Grid / Flex で 768px 以下は縦積み、Chart.js の responsive を有効化","PC 版とは別に専用アプリを開発する","モバイル用にデータ量を 10 分の 1 に減らす"]} answer={0} />


次のレッスン 7-3: CSV 処理 では、ダッシュに渡す前段の CSV 変換・結合・クリーニング を自動化します。月次レポート作業を更にもう一段圧縮できます。