Works 一覧に戻る

アナリティクスダッシュボード

SaaS プロダクトの KPI をリアルタイムに可視化するダッシュボード。BigQuery からデータを集計し、Recharts でグラフ表示。PM としての経験を活かしてメトリクス設計から関わり、エンジニアとして実装まで一貫して担当しました。

技術スタック

ReactTypeScriptBigQueryRechartsPython

タグ

データ分析ダッシュボードPM

概要

SaaS プロダクトの事業指標をリアルタイムで把握するための社内ダッシュボードです。PM としてメトリクス設計に携わり、エンジニアとして実装まで一貫して担当しました。

背景と課題

以前はスプレッドシートで手動集計していたため:

これらを自動化し、常に最新の数字を誰でも確認できる環境を作ることが目標でした。

メトリクス設計

PM の経験から、ダッシュボードに載せる指標を3層に整理しました:

  1. North Star Metric: 週次アクティブユーザー数
  2. Input Metrics: 新規登録数・機能利用率・継続率
  3. Health Metrics: エラー率・レイテンシ・チャーン率

「何でも見られる」ではなく「意思決定に必要なものだけ見られる」設計にすることで、ダッシュボードの利用率が上がりました。

技術構成

BigQuery → Python → API

from google.cloud import bigquery
from datetime import datetime, timedelta

def get_weekly_active_users(project_id: str) -> list[dict]:
    client = bigquery.Client(project=project_id)
    query = """
        SELECT
          DATE_TRUNC(event_date, WEEK) AS week,
          COUNT(DISTINCT user_id) AS wau
        FROM `events.user_activity`
        WHERE event_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 12 WEEK)
        GROUP BY 1
        ORDER BY 1
    """
    return [dict(row) for row in client.query(query).result()]

Recharts によるグラフ

<ResponsiveContainer width="100%" height={300}>
  <LineChart data={wauData}>
    <XAxis dataKey="week" />
    <YAxis />
    <Tooltip />
    <Line type="monotone" dataKey="wau" stroke="#1F5C00" strokeWidth={2} />
  </LineChart>
</ResponsiveContainer>

成果