AI に GA4 月次レポートを書かせるプロンプト 6 本と検算方法:原因を求めると半分以上の文に誤りが出た

GA4 公開サンプルデータの月別集計表を 6 種類のプロンプトで AI に渡し、生成文を 1 文ずつ表と突き合わせました。原因の推測を求めると 24 文中 13 文(54.2%)に誤りが出て、そのうち 12 文が表から確かめられない原因だった結果と、プロンプトごとの検算方法をまとめます。

22分で読めます Data
左に数字の表、右に AI が書いた文章の行が並び、表のセルから文章の行へ照合の点線が伸びて、上の行はチェック、下の行はバツが付いているイラスト
この記事は AI が下書きを補助し、運営者が内容を確認して公開しています。

GA4 の数字を毎月スライドや Slack にまとめていて、ChatGPT や Claude に「要約して」と頼んでいる方向けの記事です。コピーして使えるプロンプト(AI に渡す指示文)6 本と、AI の文章を上司に出す前に間違いを見つける検算の手順を、実際に試した結果つきで紹介します。読み終わると、AI に書かせる部分と書かせない部分を分けて、短い時間で確かめられるようになります。

この記事で分かること

  • GA4 の月次レポートを AI に書かせるときのプロンプト 6 本(文面つき)
  • 同じ表を渡しても、プロンプトによって「表に無いこと」を書く割合が大きく変わったこと
  • 数値の突き合わせ、変化率の再計算、原因文の根拠確認という 3 段階の検算の手順
  • 件数・日付・金額は AI に書かせず、機械で埋めるという分け方

ざっくり言うと:誤りは「計算」より「表に無い話」から生まれた

GA4 の公開サンプルデータから 3 か月分の月別集計表を作り、6 種類のプロンプトで AI に文章を書かせました。生成された文を 1 文ずつ表と突き合わせたところ、計算の誤りは全体で 1 件だけでした。

一方で、原因の推測を求めたプロンプトでは 24 文中 13 文(54.2%)が誤りで、そのうち 12 文は表から確かめられない原因でした。自由に「要約して」と頼んだプロンプトでも 21 文中 5 文(23.8%)が、表に無い事実か表から確かめられない原因でした。

逆に「表に無いことは書かない」と制約を付けたプロンプトは、自由要約と同じくらいの長さ(16 文)を書きながら、誤りは 0 件でした。ただし、これはモデル 1 種で各 1 回だけ試した結果です。一般的な割合ではない点に注意してください。

なぜこの記事を書いたか:このサイトでも AI に書かせない部分を決めている

筆者はこのサイトの運用で、記事の修正にも AI を使っています。ただし、文の置き換え・更新日・「更新履歴」の記入は、AI ではなくスクリプト(AI を使わない決まった処理)が行う形にしています。しかも置き換えるのは、本文に 1 回だけ現れる文に限っています。

別の改善を試したときも、修正担当の AI が直した記事を再レビューしたところ、2 回目の試験運転で 4 本中 3 本が「段落が 3 文以内の目安を超える」と判定され、不合格で止まりました。

AI の提供元も同じ立場です。Anthropic の公式ガイドは、幻覚(AI が事実と違う内容をもっともらしく書くこと)を減らす手法は誤りを大きく減らすが完全には無くせないので、重要な情報は必ず検証するよう書いています(Anthropic: Reduce hallucinations)。そこで、月次レポートの文章でこれを試すことにしました。

正解表を作る:GA4 公開サンプルデータの月別集計

検算するには、まず「正解」が必要です。今回は Google が公開している GA4 の e コマースのサンプルデータを使いました。Google Merchandise Store の BigQuery(Google のデータ分析用データベース)へのイベントエクスポートを難読化(元の値が分からないように加工すること)したもので、2020 年 11 月 1 日から 2021 年 1 月 31 日までの 3 か月分が入っています(Google: GA4 e コマースのサンプルデータセット)。

このデータは GA のデモアカウントの数字とは異なり、比べられないと公式ページに書かれています。そのため、GA4 の画面ではなく、次の SQL(データベースに出す問い合わせ文)で作った表を正解にしました。

WITH events AS (
  SELECT
    SUBSTR(event_date, 1, 6) AS month,
    user_pseudo_id,
    event_name,
    (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS ga_session_id,
    ecommerce.purchase_revenue_in_usd AS revenue_usd
  FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
  WHERE _TABLE_SUFFIX BETWEEN '20201101' AND '20210131'
)
SELECT
  month,
  COUNT(DISTINCT CONCAT(user_pseudo_id, CAST(ga_session_id AS STRING))) AS sessions,
  COUNT(DISTINCT user_pseudo_id) AS users,
  COUNTIF(event_name = 'purchase') AS purchase_events,
  ROUND(SUM(IF(event_name = 'purchase', revenue_usd, 0)), 2) AS revenue_usd
FROM events
GROUP BY month
ORDER BY month

数え方は公式の基本クエリ集に合わせました。ユーザーは user_pseudo_id(サイトに初めて来たときに割り当てられる識別子)の重複を除いた数、セッションは ga_session_id を event_params(イベントごとの付加情報を入れた列)から取り出して数えています(Google: 基本的なクエリ)。売上の purchase_revenue_in_usd は purchase イベントでだけ値が入る列です(GA4 BigQuery Export schema)。

2026 年 11 月 5 日に実行した結果が次の表です。処理したデータ量は約 1.04GB でした。

月セッションユーザー購入イベント売上(USD)
2020年11月108,40179,4212,054144,260
2020年12月133,368104,3152,434160,555
2021年1月118,38094,7901,20457,350

プロンプト 6 本と、生成された文章

6 本とも、冒頭は同じ文と表です。違うのは最後の指示文だけにしました。こうしておくと、結果の差を指示文の差として比べられます。

以下は、あるECサイトの GA4 データを BigQuery で月別に集計した表です。

(ここに上の表を Markdown(記号で表や見出しを書く文字の書き方)の文字のまま貼る)

使ったモデルは Anthropic の claude-sonnet-5-5 で、2026 年 11 月 5 日に各プロンプトを 1 回ずつ実行しました(システムプロンプト(AI の振る舞いを最初に決める前置きの指示)は最小限にし、ツール(AI が検索や計算に使う追加機能)は使っていません)。ChatGPT や Gemini では試していないので、同じ割合になるとは限りません。

OpenAI の公式ガイドは、同じ系列のモデルでも版(スナップショット)が違うと結果が変わりうると書いています(OpenAI: Prompt engineering)。そのため、モデル名と日付を書いておきます。

プロンプト 1:自由要約

この表をもとに、上司に提出する月次レポートの要約を書いてください。

見出しや派生指標(表の値どうしを割り算などして作る指標)の表まで付いた、読みやすいレポートが返ってきました。ただし「12月は新規ユーザーが急増しました」という文がありました。表にあるのはユーザー数で、新規ユーザー数ではありません。

プロンプト 2:数値の列挙のみ

表にある数値だけを使い、月ごとに各指標の値を文章で並べてください。解釈・評価・原因は書かないでください。

「2021年1月:セッションは118,380、ユーザーは94,790、購入イベントは1,204、売上は57,350米ドルです。」のような文が 3 か月分並びました。

プロンプト 3:前月比の計算

2021年1月の各指標(セッション、ユーザー、購入イベント、売上)について、前月(2020年12月)比の増減率を小数第1位まで計算し、1指標につき1文で書いてください。

計算式を先に示してから、「売上は2020年12月の160,555ドルから2021年1月の57,350ドルへ減少し、前月比で64.3%減でした。」のような結果 4 文を書きました。計算過程の 4 行も、判定ではそれぞれ 1 文として数えたので、後の表では 8 文になっています。

プロンプト 4:原因の推測

2021年1月に数字が変化した原因を推測して、上司向けに説明してください。

一番長い回答でした。季節要因、計測の不具合、決済導線の問題、流入の質、商品構成の 5 つを候補に挙げ、「可能性があります」と断りながら説明しています。

プロンプト 5:テンプレート穴埋め

次のテンプレートの穴を埋めて、2021年1月の4指標(セッション、ユーザー、購入イベント、売上)について1行ずつ書いてください。前月比は2020年12月との比較で、小数第1位までの%で書いてください。そのあとに、表から言える解釈を1〜2文だけ書いてください。

テンプレート: {月}の{指標}は{値}(前月比{率})

「2021年1月の売上は57,350 USD(前月比 -64.3%)」のような 4 行と、解釈 2 文が返ってきました。

プロンプト 6:「表に無いことは書かない」制約付き

この表をもとに、上司に提出する月次レポートの要約を書いてください。ただし次を守ってください。
- 表に無い数値・事実・原因は書かない。
- 原因はこの表からは確かめられないため推測しない。分からないことは「この表からは分からない」と書く。
- 計算した値(増減率など)を書く場合は、計算式を括弧で添える。
- 各文の最後に、根拠にした表の行(月)と列(指標)を【】で書く。

この制約は、各社の公式ガイドの考え方を組み合わせたものです。Anthropic は「分からないと言ってよい」と明示する方法と、主張ごとに裏付けを探させ、見つからない主張は取り下げさせる方法を紹介しています(Anthropic: Reduce hallucinations)。OpenAI も、回答を人が選んだ資料の範囲に限定するために、その資料を文脈として渡す、と書いています(OpenAI: Prompt engineering)。

回答では「2021年1月に購入イベントと売上が大きく落ち込んだ原因は、この表からは分かりません。【2021年1月/購入イベント、売上】」のように、分からないことを分からないと書いていました。

誤りの分類と誤り率:1 文ずつ判定した結果

生成文を 1 文ずつ、次の 4 種類に分けました。表の 1 行や箇条書きの 1 行も 1 文として数えています。「前年同月と比べる」のような次の行動の提案は、データについての記述ではないので数えていません。

分類意味例
表と一致表の値、または表から正しく計算できる値だけで書かれている売上は前月比 64.3% 減
計算誤り表の値から計算した結果が合っていない11 月の購入率 1.90%(正しくは 1.89%)
表に無い数値・事実表に無い指標や事実を書いている12 月は新規ユーザーが急増
根拠のない原因表からは確かめられない原因を書いている年末商戦後の反動が考えられる

判定は筆者が行い、数値は次の節の再計算と突き合わせました。結果は次のとおりです。

6 本のプロンプトが書いた文の判定結果を 100% 積み上げ横棒で比べた図。原因の推測(プロンプト 4)は表と一致が 11 文で、根拠のない原因 12 文と計算誤り 1 文が半分以上を占める。自由要約(プロンプト 1)は 21 文中 5 文が表に無い事実か根拠のない原因。残りの 4 本は全文が表と一致

プロンプト判定した文表と一致計算誤り表に無い数値・事実根拠のない原因誤り率
1. 自由要約211601423.8%
2. 数値の列挙のみ330000%
3. 前月比の計算880000%
4. 原因の推測2411101254.2%
5. テンプレート穴埋め660000%
6. 「表に無いことは書かない」制約16160000%

誤り率は、「計算誤り + 表に無い数値・事実 + 根拠のない原因」の文の数を、筆者が判定した文の数で割って計算しました。図 1 のとおり、誤りはプロンプト 1 と 4 に集中しています。

判定で迷った文もありました。「流入減より成約率と単価の低下が主因」(プロンプト 1・4・5)は、売上を「セッション × 購入率 × 購入 1 件あたりの売上」に分けると表から確かめられるので、表と一致に入れました。プロンプト 6 の「この表からは分からない」という文は、表で言える範囲の限界を正しく書いているので、これも表と一致に入れています。

誤り 18 件のうち計算誤りは 1 件だけで、残りの 17 件は「表に無い事実」と「根拠のない原因」でした。AI は計算そのものより、表の外の話を付け足すところで誤りやすい、と考えられます。

プロンプト 4 の原因はどれも「可能性があります」と断ってあり、内容としてはありそうな話です。ただし、表からは 1 つも確かめられません。上司が「季節要因が主因」と読み取ってしまうと、確かめていない話が事実として広まります。

検算の手順:数値、変化率、原因の 3 段階

AI の文章を上司に出す前に、次の順で確かめます。図 2 がその流れです。

AI のレポート文を提出する前の流れ図。正解表を用意し、プロンプトで文章を作ったあと、数値の突き合わせ、変化率の再計算、原因文の根拠確認の 3 段階で検算し、通らない文は削るか機械で埋めた値に置き換えてから提出する

  1. 生成文から数値をすべて抜き出し、正解表の値と 1 つずつ比べる
  2. 前月比や購入率など、AI が計算した値を自分で計算し直す
  3. 原因や背景を書いた文に印を付け、表のどの行・列が根拠かを確かめる
  4. 根拠が示せない文は削るか、「この表からは分からない」に書き換える

手順 2 の再計算は、表計算ソフトでも次のような 1 行のコードでもできます。式は「(当月 − 前月) ÷ 前月 × 100」です。

const pct = (prev, cur) => ((cur - prev) / prev * 100).toFixed(1);
console.log(pct(160555, 57350)); // 売上の 1 月前月比 → -64.3

筆者がこの方法で再計算した結果が次の表です。AI が書いた前月比(プロンプト 1・3・4・5・6)は、すべてこの値と一致しました。

指標2020年12月の前月比2021年1月の前月比
セッション+23.0%−11.2%
ユーザー+31.3%−9.1%
購入イベント+18.5%−50.5%
売上+11.3%−64.3%

AI が自分で付け足した派生指標も検算しました。購入率(購入イベント ÷ セッション)は 11 月 1.8948%、12 月 1.8250%、1 月 1.0171% です。プロンプト 1 と 6 は 1.89%・1.83%・1.02% と書いて一致しましたが、プロンプト 4 は 11 月を 1.90% と書いていて、これが唯一の計算誤りでした。

購入 1 件あたりの売上は 11 月 70.23 ドル、12 月 65.96 ドル、1 月 47.63 ドルで、1 月は前月比 27.8% 減です。プロンプト 4 の「約28%低下」とは一致しました。

手順 3 では、プロンプト 1 の「新規ユーザーが急増」が引っかかります。公式の基本クエリ集では、新規ユーザーは first_visit または first_open イベントで判定するとされています(Google: 基本的なクエリ)。今回の表にはその列が無いので、この文は削るか、別に集計してから書き直す必要があります。

プロンプトの選び方と、組み合わせる検算

6 本は「どこまで AI に書かせるか」が違います。用途に合わせて選び、決まった検算と組にすると、確かめる時間を短くできます。図 3 と次の表に、今回の結果をもとにした組み合わせをまとめました。

6 本のプロンプトについて、向く場面、今回の誤り率、組み合わせる検算方法を 1 行ずつ並べた比較図。原因の推測は誤り率 54.2% で提出文には使わず調査メモ扱いとし、「表に無いことは書かない」制約付きを上司向けの要約に勧めている

プロンプト向く場面今回の誤り率起きやすい誤り組み合わせる検算
1. 自由要約下書きのたたき台23.8%表に無い事実、根拠のない原因数値の突き合わせと原因文の根拠確認
2. 数値の列挙のみ数字の読み上げ0%写し間違い数値の突き合わせ
3. 前月比の計算増減率を文にする0%計算・丸めの誤り変化率の再計算
4. 原因の推測調べる候補を出す54.2%根拠のない原因提出文には使わない
5. テンプレート穴埋め毎月の定型文0%穴の値の誤り機械で埋めた値と比べる
6. 「表に無いことは書かない」制約上司向けの要約0%今回は無し根拠の【行・列】を見て突き合わせ

プロンプト 4 は役に立たないわけではありません。「次に何を調べるか」の候補出しには使えますが、出てきた原因は検証前の仮説として、提出する文章とは分けて扱うのが安全です。

AI に書かせない部分:件数・日付・金額は機械で埋める

検算をさらに減らすには、そもそも数値を AI に書かせないことです。プロンプト 5 のテンプレートを、AI ではなくスクリプトや表計算の数式で埋めれば、穴の部分は検算が要らなくなります。AI には、残りの解釈 1〜2 文だけを、プロンプト 6 の制約付きで書かせます。

{月}の{指標}は{値}(前月比{率})        ← BigQuery の表から機械で埋める
購入イベントの減少幅がセッションより大きい。 ← AI が書く(表に無いことは書かない)

図 4 は、この分担を表したものです。冒頭で紹介した、このサイトの記事修正で「文の置き換え・更新日・更新履歴はスクリプトが書く」形と同じ考え方です。

レポート文の構造図。月・指標・値・前月比の 4 つの穴は BigQuery の集計表からスクリプトで埋め、その下の解釈 1 文だけを AI が「表に無いことは書かない」指示付きで書く分担を示している

この分け方にすると、検算の対象は解釈の 1〜2 文に絞られます。Anthropic のガイドも、プロンプトを直す前に成功の基準と、それを試す方法を決めておくことを前提にしています(Anthropic: Prompt engineering overview)。「数値は機械、解釈は AI」と決めておくこと自体が、その基準作りになります。

つまずきやすい点

丸めの桁で「合わない」ように見える

12 月の購入率は 1.8250% で、小数第 2 位に丸めると 1.83% になります。AI と自分の丸め方が違うと、どちらも正しいのに数字がずれて見えます。検算では、丸める前の値まで出してから比べると判断がぶれません。

期間の区切りがずれる

BigQuery の event_date は、登録したタイムゾーンでの日付を YYYYMMDD 形式の文字列で持っています(GA4 BigQuery Export schema)。月別集計を UTC(世界の基準になる標準時)など別の基準で区切ると、月末・月初のデータが隣の月に入り、正解表そのものがずれます。

表は文字で渡す

今回は表を Markdown の文字のまま貼りました。文字で渡すと、検算のときに AI の文と表の数値をそのままコピーして比べられます。画像で渡す方法は今回試していないので、この記事では比べていません。

サンプルデータは内部で完全には揃っていない

公式ページによると、このサンプルデータは難読化のため一部の項目にプレースホルダ(本物の値の代わりに入れた仮の値)が入っていて、データの中で数字どうしが完全には合わない場合があります(Google: GA4 e コマースのサンプルデータセット)。今回の数字は検算の練習用で、実在の店舗の業績として読むものではありません。

1 回の結果を一般化しない

今回の誤り率は、モデル 1 種・各 1 回・表 1 つで筆者が判定した結果です。自社で使う場合は、自分の表とモデルで同じ判定を数回やってから、どのプロンプトを使うかを決めてください。

まとめ

  • 同じ表を渡しても、原因の推測を求めると 24 文中 13 文、自由要約でも 21 文中 5 文が誤りでした。計算誤りは 1 文だけで、残りは表から確かめられない原因や表に無い事実でした。
  • 「表に無いことは書かない」「分からないことは分からないと書く」「根拠の行と列を書く」と指示すると、今回の試行では誤りが 0 件になりました。
  • 提出前は、数値の突き合わせ、変化率の再計算、原因文の根拠確認の順で検算し、件数・日付・金額は AI ではなく機械で埋めるのが安全です。

次にやること

月次レポートの数字そのものを整えたい方は、ダッシュボードのページで、GA4 や BigQuery のデータをどう見える形にするかを確認できます。AI に書かせた SQL や集計の正しさに不安がある場合は、BigQuery SQL レビューパックも用意しています。

参考にした一次情報

更新履歴

  • 2026-11-09: 定期点検で、本文の7か所を直しました。