mcpField
B
business-intelligence

business-intelligence

github.com/borgheiデータ・データベース1.0k1.5k 回インストール5 日前に更新
リポジトリ

business-intelligence について

business-intelligenceは、エージェント向けにダッシュボード設計、KPI定義、レポート作成のパターン、データストーリーテリングを支援するBIスキルです。ローカルファイル用スクリプトで指標を検証し、CSVからKPI状況を計算して、特定製品に依存しないダッシュボード仕様を生成します。

主な機能

  1. 01KPIの定義と検証
  2. 02ダッシュボードレイアウト仕様の生成
  3. 03KPI状況と差異の計算
  4. 04レポート自動化のパターン
  5. 05指標のストーリーテリングとガバナンス指針

活用シーン

  1. 01KPIを定義し完全性を確認
  2. 02KPI定義からダッシュボードレイアウトを生成
  3. 03CSVデータと目標の差異を計算
  4. 04経営層向けレポートやアラートの案を作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/borghei/claude-skills --skill business-intelligence

インストール後、Claude Code で/business-intelligenceを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

scripts/
dashboard_spec_generator.py
kpi_tracker.py
metric_validator.py

詳細

ビジネスインテリジェンス

エージェントはシニア BI スペシャリストとして、ダッシュボードを設計し、KPI フレームワークを定義し、レポート作成パイプラインを自動化し、データを経営層向けのストーリーにまとめます。

最初に確認すること

ダッシュボードを設計する前に、以下の入力情報を確認してください。情報が不足している、または曖昧で、その違いが結果に影響する場合は質問してください。結果に影響しない場合は、妥当なデフォルトを使用し、何を採用したかを明記してください。

  • 対象ユーザー: 経営層、業務担当者、またはセルフサービス(ページのレイアウト、詳細度、指標の数を決定します)。
  • 主要な質問と更新頻度: ダッシュボードがどのような意思決定を支援するのか、データをどの程度新しく保つ必要があるのか(指標の範囲と、ライブデータと抽出データのどちらを選ぶかを決定します)。
  • KPI の定義: 指標ごとの計算式、データソース、担当者、RAG しきい値(これらは KPI テンプレートと metric_validator.py が必要とする正確な項目です)。

一覧全体ではなく、この依頼で特に重要な 2~3 項目について質問してください。ユーザーがすぐに結果を求める場合は、結果を作成し、冒頭に前提を記載してください。

ワークフロー

  1. レポートのニーズを明確にする -- 対象ユーザー(経営層、業務担当者、セルフサービス)、ダッシュボードが答えるべき主要な質問、更新頻度を特定します。必要なデータソースが存在し、アクセス可能であることを確認します。
  2. KPI と指標を定義する -- KPI 定義テンプレートを使って、各指標の計算式、データソース、粒度、担当者、RAG しきい値を指定します。
  3. ダッシュボードのレイアウトを設計する -- 視覚的な階層(最も重要な指標を左上に配置し、上から下へ概要から詳細へと展開)を適用します。グラフ選択マトリックスを使ってグラフの種類を選択します。1 ページあたりの可視化は 5~8 個に制限します。
  4. セマンティックレイヤーを構築する -- BI ツールのセマンティックモデルで指標の計算、階層、行レベルセキュリティを定義し、利用者が一貫した数値を得られるようにします。
  5. レポートを自動化する -- 以下のパターンを使って、スケジュール配信(PDF/メール、Slack アラート)としきい値ベースのアラートを設定します。
  6. 検証して反復する -- KPI の値が信頼できる情報源のクエリと一致することを確認します。ダッシュボードの読み込み時間を確認します(目標:5 秒未満)。ステークホルダーからフィードバックを集め、改善します。

KPI 定義テンプレート

# Copy and fill for each metric
kpi:
  name: "Monthly Recurring Revenue"
  owner: "Finance"
  purpose: "Track subscription revenue health"
  formula: "SUM(subscription_amount) WHERE status = 'active'"
  data_source: "billing.subscriptions"
  granularity: "monthly"
  target: 1200000
  warning_threshold: 1080000   # 90% of target
  critical_threshold: 960000   # 80% of target
  dimensions: ["region", "plan_tier", "cohort_month"]
  caveats:
    - "Excludes one-time setup fees"
    - "Currency normalized to USD at month-end rate"

ダッシュボード設計の原則

視覚的な階層:

  1. 最も重要な指標を左上に配置する
  2. 上から下へ、サマリーカード、トレンドグラフ、詳細テーブルの順に配置する
  3. 関連する指標をグループ化し、余白で論理的なセクションを区切る
  4. RAG ステータスの色:緑 #28A745 | 黄 #FFC107 | 赤 #DC3545 | グレー #6C757D

グラフ選択マトリックス:

データに関する質問グラフの種類代替案
時系列の推移折れ線面グラフ
全体に対する割合ドーナツ/ツリーマップ積み上げ棒グラフ
カテゴリ間の比較棒グラフ/縦棒グラフブレットグラフ
分布ヒストグラム箱ひげ図
関係性散布図バブルチャート
地理情報コロプレスマップ塗りつぶし地図

経営層向けダッシュボードの例

+------------------------------------------------------------+
|                   EXECUTIVE SUMMARY                         |
| Revenue: $12.4M (+15% YoY)   Pipeline: $45.2M (+22% QoQ)  |
| Customers: 2,847 (+340 MTD)  NPS: 72 (+5 pts)              |
+------------------------------------------------------------+
| REVENUE TREND (12-mo line)    | REVENUE BY SEGMENT (donut)  |
+-------------------------------+-----------------------------+
| TOP 10 ACCOUNTS (table)       | KPI STATUS (RAG cards)      |
+-------------------------------+-----------------------------+

レポート自動化のパターン

スケジュールレポート(cron 形式):

report:
  name: Weekly Sales Report
  schedule: "0 8 * * MON"
  recipients: [[email protected], [email protected]]
  format: PDF
  pages: [Executive Summary, Pipeline Analysis, Rep Performance]

しきい値アラート:

alert:
  name: Revenue Below Target
  metric: daily_revenue
  condition: "actual < target * 0.9"
  channels:
    email: [email protected]
    slack: "#revenue-alerts"
  message: "Daily revenue ${actual} is ${pct_diff}% below target. Top factors: ${top_factors}"

自動生成ワークフロー(Python):

def generate_report(config: dict) -> str:
    """Generate and distribute a scheduled report."""
    # 1. Refresh data sources
    refresh_data_sources(config["sources"])
    # 2. Calculate metrics
    metrics = calculate_metrics(config["metrics"])
    # 3. Create visualizations
    charts = create_visualizations(metrics, config["charts"])
    # 4. Compile into report
    report = compile_report(metrics=metrics, charts=charts, template=config["template"])
    # 5. Distribute
    distribute_report(report, recipients=config["recipients"], fmt=config["format"])
    return report.path

セルフサービス BI の成熟度モデル

レベル能力ユーザーができること
1 - 利用者表示とフィルターダッシュボードを開き、フィルターを適用し、データをエクスポートする
2 - 探索者アドホッククエリ簡単なクエリを記述し、基本的なグラフを作成し、分析結果を共有する
3 - 構築者ダッシュボードの設計データソースを組み合わせ、計算フィールドを作成し、レポートを公開する
4 - モデラーデータモデルの定義セマンティックモデルを作成し、指標を定義し、パフォーマンスを最適化する

パフォーマンス最適化チェックリスト

  • 1ページあたりのビジュアライゼーションを制限します(最大5~8個)
  • 負荷の高いダッシュボードでは、ライブ接続の代わりにデータ抽出またはマテリアライズドビューを使用します
  • ビジュアライゼーション層での計算フィールドを最小限にし、ロジックをセマンティック層またはデータウェアハウスに移します
  • コンテキストフィルターを適用してクエリの範囲を絞り込みます
  • 粒度に問題がない場合は、データソース側で集計します
  • データの更新をオフピーク時間帯にスケジュールします
  • クエリの実行時間を監視して記録し、ダッシュボードの読み込み時間を5秒未満にすることを目指します

クエリ最適化の例:

-- Before: full table scan
SELECT * FROM large_table WHERE date >= '2024-01-01';

-- After: partitioned, filtered, and column-pruned
SELECT order_id, customer_id, amount
FROM large_table
WHERE partition_date >= '2024-01-01'
  AND status = 'active'
LIMIT 10000;

データストーリーテリングの構成

エージェントは、あらゆるインサイトを「状況・課題・解決策」の構成で提示します。

  1. 状況 -- 「前四半期は、リテンションを10%改善することを目標としていました。」
  2. 課題 -- 「エンタープライズ顧客の解約率が5%上昇しました。オンボーディングに30日かかっていることが原因です。」
  3. 解決策 -- 「オンボーディングを14日に短縮すると、解約率が40%低下する相関があり、年間200万ドルのコスト削減が見込めます。」

ガバナンス

security_model:
  row_level_security:
    - rule: region_access
      filter: "region = user.region"
  object_permissions:
    - role: viewer
      permissions: [view, export]
    - role: editor
      permissions: [view, export, edit]
    - role: admin
      permissions: [view, export, edit, delete, publish]

スクリプト

python scripts/kpi_tracker.py --definitions kpis.json --data sales.csv
python scripts/kpi_tracker.py --definitions kpis.json --data sales.csv --json
python scripts/dashboard_spec_generator.py --definitions kpis.json --title "Sales Dashboard"
python scripts/dashboard_spec_generator.py --definitions kpis.json --layout 3-column --json
python scripts/metric_validator.py --definitions metrics.json --strict
python scripts/metric_validator.py --definitions metrics.json --json

ツールリファレンス

ツール目的主なフラグ
kpi_tracker.pyデータを目標値と比較してKPIを算出し、RAGステータスと差異を報告します--definitions <json>、--data <csv/json>、--json
dashboard_spec_generator.pyKPI定義からダッシュボードのレイアウト仕様(グラフの種類、位置、フィルター)を生成します--definitions <json>、--title、--layout 2-column/3-column、--json
metric_validator.py指標の定義について、完全性、命名、しきい値のロジック、一貫性を検証します--definitions <json>、--strict、--json

トラブルシューティング

問題考えられる原因解決策
ダッシュボードの読み込みが遅い(5秒超)ビジュアライゼーションが多すぎる、またはライブ接続のクエリが生テーブルを参照している1ページあたりのウィジェットを5~8個に減らします。負荷の高いダッシュボードでは、データ抽出またはマテリアライズドビューに切り替えます
ダッシュボードとソースクエリでKPI値が異なるダッシュボードで、セマンティック層にない追加のフィルター、通貨換算、または計算フィールドが適用されているすべての指標ロジックをセマンティック層に集約し、ダッシュボードレベルの計算フィールドを削除します
RAGのしきい値で誤警報が発生する警告/重大の割合が季節的なパターンに対して適切に調整されていない季節ごとにしきい値を調整するか、移動ベースラインを使用します。metric_validator.py --strict で検証します
関係者がダッシュボードを利用しないダッシュボードが適切な問いに答えていない、または行動につながるコンテキストが不足している「状況・課題・解決策」のストーリーテリングフレームワークを使って再設計し、注釈と目標値を追加します
行レベルセキュリティによって予期せずデータが非表示になるセキュリティルールの範囲が広すぎる、またはユーザーとロールのマッピングが正しくないRLSルールを監査し、各ロールのサンプルユーザーでテストして、フィルタリングされた行数を記録します
スケジュール済みレポートのメールが迷惑メールに振り分けられるPDF添付ファイルが大きい、または送信者の評価に問題がある添付ファイルのサイズを小さくし、埋め込みリンクに切り替えます。IT部門と連携して送信者のドメインを許可リストに登録します
metric_validator.py で数式と集計の不一致が報告されるformula フィールド(例:「SUM(...)」)が、宣言された aggregation と一致していない2つのフィールドを一致させます。ツールでは集計フィールドが使用され、数式は意図を記述します

成功基準

  • ページビューの95%で、ダッシュボードの読み込み時間が5秒未満であること。
  • 本番環境へのデプロイ前に、KPI定義がエラーなしで metric_validator.py --strict を通過すること。
  • エグゼクティブダッシュボードが次の視覚的階層に従っていること:左上にサマリーカード、中央にトレンド、下部に詳細テーブル。
  • すべてのKPIについて、定義ファイルに担当者、目標値、RAGしきい値が記載されていること。
  • 90日以内に、対象ユーザーの少なくとも60%でセルフサービスBIの利用がレベル2(エクスプローラー)に達すること。
  • スケジュール済みレポートが、設定されたスケジュールの時間帯から15分以内に配信されること。
  • データストーリーテリングが「何を/それが何を意味するか/次に何をするか」の構成に従い、すべてのインサイトで影響を数値化していること。

対象範囲と制限

対象範囲: ダッシュボードの設計とレイアウト、KPI フレームワークの定義、レポート自動化のパターン、データストーリーテリング、セルフサービス BI の実現、行レベルセキュリティの設定、可視化のベストプラクティス。

対象外: データウェアハウスのインフラストラクチャ、ETL/ELT パイプラインの開発、生データの取り込み、機械学習モデルの構築、BI ツールのインストールまたはライセンス。

制限事項: Python ツール(kpi_tracker.py、dashboard_spec_generator.py、metric_validator.py)はローカルの JSON ファイルと CSV ファイルのみを処理し、稼働中のデータベースや BI プラットフォームには接続しません。すべてのスクリプトは Python 標準ライブラリを使用し、外部依存関係はありません。ダッシュボード仕様はプラットフォームに依存しないため、個別の BI ツール(Tableau、Power BI、Looker など)向けに手作業で変換する必要があります。

統合ポイント

  • アナリティクスエンジニア(data-analytics/analytics-engineer):ダッシュボードが使用するマートモデルとセマンティックレイヤーのメトリクスを提供します。スキーマの変更にはダッシュボードの更新が必要です。
  • データアナリスト(data-analytics/data-analyst):アドホック分析を作成し、再利用可能なダッシュボードへ発展させる場合があります。可視化の標準を共有します。
  • プロダクトチーム(product-team/):プロダクト KPI とユーザー向け分析の要件を定義します。
  • C レベルアドバイザー(c-level-advisor/):経営層向けダッシュボードにより、戦略目標を測定可能な KPI に落とし込みます。
  • 財務(finance/):財務 KPI(MRR、CAC、LTV)について、BI ダッシュボードと財務チームの定義を整合させる必要があります。

コメント