AIで月次レポートを作る方法|途中実績・比較期間・見込みを分ける

架空の問い合わせ件数で、月途中の実績と同期間比較、単純日割りの参考見込み、目標残量を分けて検算します。

AIものさし編集部

AIで月次レポートを作るときは、対象月だけでなく、何日までのデータか、確定か速報かを入力へ付けます。月途中の実績を前月末の数字とそのまま比較すると、計算はできても、報告したい変化と違うものを説明してしまいます。

この記事では、架空の問い合わせ件数で、途中実績、同じ経過日数の比較、月末の参考見込み、目標までの残量を分けます。計算はローカルで検査しましたが、実データの取得、AI生成、将来予測の精度、定期配信は検証していません。

速報版には、集計時点と状態を付ける

説明用の報告は、2026年10月10日までを集計した速報版です。10月11日以降の問い合わせはまだ分かりません。時間の基準は日本時間、問い合わせを1件と数える条件は両月で同じと仮定します。

表は横にスクロールできます

データID対象期間件数この例の状態
M012026年9月1日~30日900件月末まで確定
M022026年9月1日~10日300件同期間比較用の確定値
M032026年10月1日~10日400件月途中の速報
M042026年10月1日~31日の目標1,100件目標。実績ではない

これは独自の架空集計です。重複問い合わせの扱い、対象外の除外、記録の遅れなどは、実際の業務で定義します。「速報」という状態は、現在分かっている範囲と、後から訂正され得ることを示すために残します。

資料をAIへ渡すときも、M03の400件を「10月確定実績」と呼ばせません。最初にデータの期間、状態、版を読み取らせ、入力の意味が合ってから本文へ進みます。

同じ経過日数の差と、前月全体との差を区別する

9月1~10日の300件と10月1~10日の400件なら、差は100件、増減率は100 ÷ 300で約33.3%です。一方、10月途中の400件を9月全体の900件と比べると、差は−500件、前月全体900件を基準にした相対差(期間不一致)は約−55.6%になります。

表は横にスクロールできます

計算値何を比べたか
400 − 300+100件各月1~10日の件数差
(400 − 300)÷300約+33.3%各月1~10日の増減率
(400 − 900)÷900約−55.6%前月全体900件を基準にした相対差(期間不一致)

最後の式自体が計算不能なのではありません。ただし、それを期間差の説明なしに「10月の問い合わせが前月比55.6%減」と書けば、月が終わったように読めてしまいます。今回の速報文では、同じ経過日数の比較を明記します。

同じ10日間でも、曜日、営業日、休業日、施策、受付の遅延が同じとは限りません。EurostatのData adjustmentsでは、暦日調整は月ごとの祝日・週末数の違いによる影響を除いて月次データの比較可能性を高め、季節調整は毎年繰り返す季節要因の影響を除くと説明しています。今回の例では季節調整や営業日調整は行っていません。Eurostat:Data adjustments(新しいタブで開く)

単純日割りの見込みを、実績へ混ぜない

10月の最初の10日間が400件なので、1暦日あたり40件です。これが10月の31日間ずっと続くという仮定なら、40 × 31 = 1,240件になります。

この1,240件は、実際に発生した件数でも、精度を検証した予測でもありません。「最初の10日間と同じ日平均が残りの日も続く」という単純なシナリオです。将来分を実績へ足して、10月の確定値として報告しません。

表は横にスクロールできます

種類今回の値付ける説明
途中実績400件10月1~10日の速報
月末の参考見込み1,240件同じ暦日平均が続く仮定
月間目標1,100件目標設定値

月末に件数が増える業務や、土日には受付しない業務なら、暦日の日割りは実態に合わない場合があります。見込みの計算方法を変えるなら、その理由と使った条件を残し、前の見込みと区別します。

目標までの残量を、別の問いとして計算する

目標1,100件から途中実績400件を引くと、残りは700件です。10月11~31日は21暦日なので、残り期間で必要な日平均は700 ÷ 21、約33.3件になります。

これは達成する確率ではありません。700件が必要という量の計算です。「参考見込み1,240件が目標を超えるから、達成は確実」とも判断しません。

400 ÷ 1,100は約36.4%で、目標に対する現時点の進捗率です。10日経過したという時間の進み方とは別の指標として表示します。残量や日平均を表示するときも、丸めた値を再計算へ戻さず、元の400・1,100・21を使います。

掲載例の計算を分数で照合する

次のコードは、期間と値を上のとおり設定した例の検算です。Fractionへ整数を渡し、途中の値を丸めず扱います。Python公式:fractions(新しいタブで開く)

from fractions import Fraction as F
from calendar import monthrange

previous_full = 900
previous_first10 = 300
current_first10 = 400
target = 1100
elapsed_days = 10
month_days = monthrange(2026, 10)[1]

same_window_change = F(current_first10 - previous_first10, previous_first10)
unmatched_window_change = F(current_first10 - previous_full, previous_full)
daily = F(current_first10, elapsed_days)
scenario = daily * month_days
remaining_days = month_days - elapsed_days
remaining_target = target - current_first10
required_daily = F(remaining_target, remaining_days)
progress = F(current_first10, target)

assert same_window_change == F(1, 3)
assert unmatched_window_change == F(-5, 9)
assert scenario == 1240
assert (remaining_days, remaining_target) == (21, 700)
assert required_daily == F(100, 3)
assert progress == F(4, 11)
print(same_window_change, scenario, remaining_target, required_daily, progress)

このコードは指定した10月と架空値の計算用です。データの締め状態を自動で判定するものでも、実際の問い合わせを取得するものでもありません。前期の分母が0なら増減率は定義できず、経過日数0や残日数0も別に扱う必要があります。汎用の集計処理として、そのまま全期間へ使わないでください。

AIへは、実績・見込み・目標を別欄で返させる

次の架空集計から、月途中の速報レポート案を作ってください。
日本時間で10月10日までのデータです。10月全体は未確定です。
9月全体900件、9月1~10日300件、10月1~10日400件、10月目標1100件です。
実績の比較は対象期間を明記し、今月途中と前月全体を同条件の月次比較と書かないでください。
参考見込みは、暦日平均が続く仮定として実績と別欄へ置いてください。
目標、残量、進捗率を分け、達成確率へ読み替えないでください。
曜日・季節性・営業日調整を行ったとは書かないでください。
原因は推測せず、追加確認する条件を残してください。
出力:速報の対象期間、観察、比較条件、参考見込みと仮定、目標残量、未確認事項。
この依頼ではデータ取得、定期実行、配信は行いません。

短い報告文なら、「10月1~10日の問い合わせは速報400件。同じ1~10日の9月300件に対して100件増、約33.3%増。月間目標1,100件まで残り700件。暦日平均40件が続く場合の参考見込みは1,240件だが、月末実績や達成保証ではない」と書けます。

この例から、どの施策で増えたかは分かりません。経路や記録方法の変更、曜日構成などを確認する問いへつなげ、観察と原因を同じ文へ押し込みません。

月末に締めるときは、速報を上書きしない

確定した月次を作る際は、対象月、集計時点、定義、入力版を記録します。速報版を消して差し替えるだけでは、会議でどの数字を使ったか追えなくなります。訂正があれば、旧値、新値、変更理由、対象の報告を対応させます。

自動化する場合も、単に日付が来たことと、必要なデータが締まったことを区別します。速報を配信するなら速報と分かる表題にし、確定月次とは別の状態で管理します。この記事で定期実行や送信を設定したわけではありません。

毎月の文章を長くするより、比較できる実績、仮定付きの見込み、判断に必要な未確認事項を分けて渡します。AIへ説明を任せても、数字がどの期間と状態を表すかは、元の集計条件へ戻れるようにしてください。

参考資料

公式資料の確認日:2026年10月20日。件数、目標、報告文は独自の架空例です。掲載コードと計算をローカルで検査しました。実データ取得、AI生成、予測精度、季節・営業日調整、定期配信、画面表示は未検証です。