Skip to content

KPI・メトリクス設計

概要

プロジェクトおよび委託者のパフォーマンスを定量的に測定し、予算超過・進捗遅延・ボトルネックを早期に検知するためのKPI・メトリクス定義。


KPI一覧

1. 平均Issue完了時間

アサインから完了(MRマージ)までの平均所要時間。見積工数との比較で効率を測定する。

項目定義
計測開始Issue がアサインされた日時
計測終了MR がマージされた日時
算出式Σ(完了日時 - アサイン日時) / 完了Issue数
表示単位時間(h)または日(d)
比較対象見積工数(Issue に設定された estimated_hours

表示形式

平均完了時間: 18.5h
見積平均:     16.0h
効率比:       86.5%  (見積 / 実績)

[棒グラフ: 見積 vs 実績 を Issue ごとに表示]

効率比の判定

効率比評価
>= 90%優良
70% - 89%標準
50% - 69%要改善オレンジ
< 50%問題あり

2. レビュー通過率(一発OK率)

MR提出後、修正なしで一発マージされた割合。

項目定義
一発OKMR提出後、変更要求(Changes Requested)なしでマージ
算出式一発OKのMR数 / 全MR数 × 100
表示単位パーセント(%)

表示形式

一発OK率: 68.0%
全MR数:   25件
一発OK:   17件
要修正:   8件

[円グラフ: 一発OK / 1回修正 / 2回以上修正]

3. 委託者別パフォーマンス

各委託者の生産性・品質を横断的に比較する。

メトリクス算出方法表示
完了Issue数期間内に完了したIssue件数件数
平均完了時間上記「平均Issue完了時間」を委託者別に算出時間
一発OK率上記「レビュー通過率」を委託者別に算出%
獲得報酬額完了Issue の報酬合計
難易度加重スコアEasy:1pt + Medium:2pt + Hard:3pt の合計ポイント

表示形式

+----------+----------+----------+----------+----------+----------+
| 委託者   | 完了数   | 平均時間 | 一発OK率 | 獲得報酬 | スコア   |
+----------+----------+----------+----------+----------+----------+
| 佐藤太郎 | 12件     | 14.2h    | 75.0%    | ¥480,000 | 28pt     |
| 鈴木一郎 | 8件      | 20.1h    | 62.5%    | ¥320,000 | 18pt     |
| 田中花子 | 10件     | 16.8h    | 80.0%    | ¥360,000 | 22pt     |
+----------+----------+----------+----------+----------+----------+

※ ランキング目的ではなく、適切なアサイン判断の参考データとして活用。


4. 週次/月次トレンドグラフ

時系列でKPIの変動を可視化する。

グラフ仕様

グラフX軸Y軸表示内容
Issue完了推移週(or 月)件数完了Issue数の推移(積み上げ棒グラフ)
予算消化推移週(or 月)金額(円)消化額の累積推移(折れ線) + 予算上限ライン
効率比推移週(or 月)パーセント平均効率比の推移(折れ線)
レビュー通過率推移週(or 月)パーセント一発OK率の推移(折れ線)

Issue完了推移グラフ(イメージ)

件数
 10 |
  8 |          ██
  6 |    ██    ██    ██
  4 |    ██    ██    ██    ██
  2 |    ██    ██    ██    ██    ██
  0 +----+-----+-----+-----+-----+---→ 週
      W1    W2    W3    W4    W5

予算消化推移グラフ(イメージ)

金額(万円)
 120 |- - - - - - - - - - - - - - - 予算上限
 100 |                          /
  80 |                    / /
  60 |              / /
  40 |        / /
  20 |  / /
   0 +----+-----+-----+-----+-----+---→ 週
      W1    W2    W3    W4    W5

グラフ表示切替

  • 期間: 直近4週間 / 直近3ヶ月 / カスタム範囲
  • 粒度: 週次 / 月次
  • プロジェクト: 全体 / 個別プロジェクト選択

アラートルール定義

自動検知してダッシュボード通知 + Slack/Discord通知を行うルール。

アラート一覧

IDアラート名条件重要度通知先
A-001予算超過警告予算消化率 > Issue消化率 + 20%🔴 高Slack + ダッシュボード
A-002進捗遅延警告Issue消化率 < 期間経過率 - 15%🟡 中Slack + ダッシュボード
A-003ボトルネック警告レビュー待ち滞留 > 3日🟡 中Slack + ダッシュボード
A-004予算枯渇危険残予算 < 未完了Issue報酬合計の20%🔴 高Slack + ダッシュボード
A-005ETA超過警告ETA予測日 > プロジェクト期限🔴 高Slack + ダッシュボード
A-006委託者過負荷特定委託者の担当Issue数 > 5件🟡 中ダッシュボードのみ

アラート詳細

A-001: 予算超過警告

条件:
  予算消化率 - Issue消化率 > 20%

例:
  予算消化率 = 65%
  Issue消化率 = 25%
  乖離 = 40% → 🔴 アラート発火

意味:
  予算の消化ペースに対してIssueの完了が追いついていない。
  報酬設定が高すぎるか、未完了Issueが多い可能性がある。

対応アクション:
  - 未着手Issueの報酬額を見直す
  - 低優先度Issueをスコープアウトする
  - 委託者の追加アサインを検討する

A-002: 進捗遅延警告

条件:
  期間経過率 - Issue消化率 > 15%

  期間経過率 = (現在日 - 開始日) / (期限日 - 開始日) × 100

例:
  期間経過率 = 60%(プロジェクト期間の60%が経過)
  Issue消化率 = 40%
  遅延度 = 20% → 🟡 アラート発火

意味:
  時間経過に対してIssue消化が遅れている。
  このペースでは期限内に完了しない見込み。

対応アクション:
  - ボトルネックの特定と解消
  - 委託者の追加投入
  - スコープの見直し

A-003: ボトルネック警告

条件:
  レビュー待ちステータスのIssueが3日以上滞留

算出:
  現在日時 - レビュー待ちステータスに遷移した日時 > 72時間

意味:
  レビューが停滞しており、委託者の次タスク着手を阻害している。

対応アクション:
  - レビュアーにリマインド通知を送信
  - 別のレビュアーをアサインする

A-004: 予算枯渇危険

条件:
  残予算 < 未完了Issue報酬合計 × 20%

例:
  残予算 = ¥48,000
  未完了Issue報酬合計 = ¥360,000
  比率 = 13.3% → 🔴 アラート発火

意味:
  残予算で未完了Issueの報酬を賄えない。
  プロジェクト予算の追加か、Issueの優先度見直しが必要。

対応アクション:
  - 予算の追加申請
  - 低優先度Issueのスコープアウト
  - Issue報酬額の見直し

A-005: ETA超過警告

条件:
  ETA予測日 > プロジェクト期限日

算出:
  ETA予測日 = 現在日 + (残Issue数 / 週間完了ペース) × 7

意味:
  現在のペースではプロジェクト期限に間に合わない。

対応アクション:
  - 委託者の追加投入
  - 並行作業の推進
  - スコープの縮小

A-006: 委託者過負荷

条件:
  特定委託者の進行中 + レビュー待ち + FB対応中のIssue数 > 5件

意味:
  1人の委託者に過度にタスクが集中している。
  品質低下やバーンアウトのリスク。

対応アクション:
  - タスクの再分配
  - 新規アサインの一時停止

通知形式

Slack通知テンプレート

🔴 予算超過警告
プロジェクト: ECサイトリニューアル
予算消化率: 65% | Issue消化率: 25% | 乖離: +40%
→ ダッシュボードで確認: https://app.example.com/projects/1
🟡 ボトルネック警告
プロジェクト: ECサイトリニューアル
Issue: #108 決済画面UI
レビュー待ち: 5日経過
担当レビュアー: 山田太郎
→ レビューする: https://gitlab.example.com/mr/108

通知頻度制御

ルール制御
同一アラートの再通知24時間に1回まで
アラート解消時解消通知を1回送信
通知チャンネルプロジェクトごとに設定可能

API連携

エンドポイントメソッド説明
GET /api/v1/metrics/overviewGETKPIサマリー
GET /api/v1/metrics/contractorsGET委託者別パフォーマンス
GET /api/v1/metrics/trends?period=weekly&range=4wGETトレンドデータ
GET /api/v1/alertsGETアクティブアラート一覧
GET /api/v1/alerts/historyGETアラート履歴

レスポンス例: GET /api/v1/metrics/overview

json
{
  "avg_completion_time_hours": 18.5,
  "avg_estimated_hours": 16.0,
  "efficiency_ratio": 86.5,
  "first_pass_rate": 68.0,
  "total_completed_issues": 25,
  "total_mrs": 25,
  "first_pass_count": 17
}

レスポンス例: GET /api/v1/alerts

json
{
  "alerts": [
    {
      "id": "a-001-proj-3",
      "rule_id": "A-001",
      "severity": "high",
      "project_id": 3,
      "project_name": "API基盤構築",
      "message": "予算消化率(92%)がIssue消化率(20%)を大幅に超過しています(乖離: +72%)",
      "triggered_at": "2026-03-27T10:00:00Z",
      "is_acknowledged": false
    }
  ]
}