技術部データ基盤チームの新飼(shinkai)です。
データ基盤チームでは、技術部の「Agent Ready」方針に基づき、事業部が意思決定に集中できるデータ環境の整備を進めています。今回はその実践として、オリジナルグッズの作成・販売サービス「SUZURI」のセール運用において、スプレッドシートに閉じていたビジネスロジックをdbtで構造化し、CSV1行の入力で目標・実績の全指標を自動算出できるようにした取り組みを紹介します。
背景
SUZURIでは年間を通じて複数回のセールを実施しています。セール期間中は目標に対する進捗(売上・流通額等)を毎日確認する必要があります。
データはBigQueryにありますが、売上の算出ロジックはスプレッドシートの関数に組まれていました。そのため毎日の数値確認には「BIツールからCSVエクスポート → スプレッドシートに転記 → 関数で再計算」という手作業が必要でした。
何を自動化し、何を残すか
最初に考えたのは、事業部とデータ基盤の役割分担です。

スプレッドシートで行われていた作業のうち、確定した目標値に基づく算出処理(日別配分、KPI概算、実績集計、目標との突合)はロジックが固定されておりSQLに書き起こせます。一方、セール企画時の試算プロセス(アイテムの選定、割引額の設定、目標数量の決定)はセールごとに変数と判断基準が変わるため、スプレッドシートに残しました。
この線引きにより、事業部との接合点を「CSVに1行追加してPull Requestを出す」という1つのアクションに集約しています。確定した目標値(流通額と売上)だけをデータ基盤に渡せば、残りはすべて自動で算出されます。
設計方針
精度より実用性を優先する
KPI目標の概算には前年同日の注文単価やCVRをそのまま使っています。最初から完璧な精度を目指すより、まず使える状態にして、運用しながら必要に応じて精度を上げていく方針です。比較セールが存在しない場合、KPI目標はNULLとし、無理に算出しない設計にしています。
表示ロジックはBIツールに委ねる
マートテーブルには日別の目標値と実績値だけを持たせています。累積値や達成率の計算はBIツール側に委ねました。マートの責務を「正確な基礎数値の提供」に限定することで、ダッシュボードの見せ方を事業部が自由に変えられるようにしています。BIツール側で計算式を誤るリスクはありますが、初回のダッシュボード構築時にQA対応することでカバーしています。
CSV1行からの自動算出
セール担当者が入力するCSV(dbt seed)はこれだけです。
sale_name,start_date,end_date,target_gmv,target_revenue,prev_sale_name
サンプルセール,2026-04-01,2026-04-10,50000000,20000000,前年サンプルセール
ここから、目標値の日別配分、KPI目標の概算、実績の自動集計、目標と実績の突合がすべて自動で算出されます。実績集計と突合は定型的な集計処理のため、ここでは設計判断が必要だった日別配分とKPI概算について説明します。
日別配分
目標値を日数で按分します。ただし均等配分ではなく、過去数年分のセール実績を分析して算出した倍率を、セール日数の区分ごとに適用しています。
前年実績からのKPI概算
prev_sale_nameに前年の比較セール名を設定すると、前年同日の注文単価やCVRから目標注文件数・目標DAUを逆算します。前年同日のデータがない日は、前年セール全期間の中央値でフォールバックします。
まとめ
スプレッドシートに閉じていたロジックを1つのマートテーブルに統合し、現在は実運用に入っています。事業部からは「手作業がなくなって助かる」という声に加えて、「何を見るか、何を気にするかに集中できるようになった」という嬉しい声が上がってきています。
セール期間中の進捗管理に絞った今回のスコープを足がかりに、次は目標設定の上流まで構造化していきます。スプレッドシートに閉じたビジネスロジックの構造化は多くの組織に共通する課題だと思いますので、同様の取り組みを検討されている方の参考になれば幸いです。