SaaSの売上計上と請求のズレを管理する方法と月次の手順

2026.11.07

サブスクリプション型のサービスを提供するスタートアップでは、「今月いくら請求したか」と「今月いくら売上になったか」が一致しない月がよくあります。年額プランを一括で請求した月は請求額が大きく膨らみます。一方で、会計上の売上は契約期間に合わせて少しずつ計上していきます。

このズレ自体は、誤りではありません。問題は、ズレの中身を誰も説明できない状態になることです。請求の一覧と会計の売上が合わないまま月次決算を締めると、経営会議で数字の根拠を聞かれたときに答えられません。

この記事では、売上計上と請求がズレる理由、典型的なパターン、放置したときの問題、そして月次で管理するための手順を、経営者・経営企画の方向けに順を追って整理します。

売上計上と請求がズレるのはなぜか

まず言葉をそろえておきます。

  • 請求: 顧客に代金を求めること。請求書を発行した金額が「請求額」です
  • 売上計上: 会計上、その月の売上として帳簿に載せること
  • 前受金: すでに請求・入金を受けたものの、まだサービスを提供していない分の金額。会社にとっては「これから提供する義務」にあたります

サブスクリプションの売上は、原則として、サービスを提供した期間に応じて計上します。たとえば年額120万円の契約を1月に一括で請求した場合でも、1月の売上は1か月分の10万円です。残りの110万円は前受金として残り、2月以降に毎月10万円ずつ売上へ振り替えていきます。

請求と売上計上のタイミングの違い(例) 請求 年額120万円を1月に一括請求 1月 12月 計上 毎月10万円ずつ売上に計上(12か月)

つまり、請求は「お金を求めるタイミング」、売上計上は「サービスを提供したタイミング」に合わせるため、両者は自然にズレます。具体的な会計処理の方法は、顧問の税理士・会計士と確認したうえで決めてください。

ズレが生まれる典型的な4つのパターン

ズレの原因は、おおむね次の4つに分けられます。自社でどれが起きているかを把握しておくと、照合の作業が楽になります。

年額前払い 請求は一括、 計上は月割り 期中の契約変更 アップグレードや 途中解約の日割り 初期費用・導入支援 提供する時期と 請求する時期が別 請求漏れ・二重請求 契約と請求の 登録ミス

1. 年額前払い

最も多いパターンです。請求は契約開始月に一括で行い、売上は12か月に分けて計上します。請求月だけ請求額が大きく、残りの月は請求がゼロになります。

2. 期中の契約変更

月の途中でプランを上げた、席数を増やした、途中で解約したといったケースです。差額を日割りで請求するのか、翌月にまとめて請求するのかで、請求と計上の月がずれます。

3. 初期費用・導入支援

導入時の設定支援などを別料金にしている場合、作業を提供する時期と請求する時期が異なることがあります。逆に、サービスを先に提供して後から請求する「後払い」の場合は、売上だけが先に立ち、まだ請求していない金額が残ります。

4. 請求漏れ・二重請求

1〜3は仕組み上のズレですが、4は単純な登録ミスです。契約内容と請求の設定が一致していないために起きます。**このズレだけは「直すべき誤り」**なので、1〜3と分けて扱うことが大切です。

ズレを放置すると起きる3つの問題

ズレそのものは自然に生まれます。しかし、中身を説明できないまま放置すると、次のような問題につながります。

MRRの誤認 請求額基準だと 月ごとに波打つ 資金の錯覚 前受金を利益と 取り違える 締めの遅れ 月末に差額の 原因探しが発生

MRRの誤認

MRR(月次経常収益。毎月繰り返し得られる売上)を請求額から数えると、年額契約を請求した月だけ大きく跳ね上がります。成長しているのか、たまたま年額請求が重なっただけなのかが見分けにくくなります。MRRとARRの違いはMRRとARRの違いで詳しく解説しています。

資金の錯覚

年額前払いの入金は、手元の現金を増やします。しかし、その大半はこれから提供するサービスの対価です。前受金を「使える利益」と取り違えると、採用や投資の判断を誤るおそれがあります。

締めの遅れ

請求一覧と会計の売上が合わない理由を、月末になってから一件ずつ探すことになります。原因が分からないまま翌月に持ち越すと、ズレが積み重なり、確認の手間がさらに増えます。

ズレを管理する基本は「前受金残高」で説明すること

ズレを管理するうえで軸になるのが、前受金残高です。請求したのにまだ売上になっていない金額を、毎月の残高として追いかけます。考え方は次の計算式で表せます。

前受金残高の計算式(月次) 期首の 前受金残高 (円) + 当月の 請求額 (円) - 当月の 売上計上額 (円) = 期末の前受金残高(円)

期末の前受金残高(円) = 期首の前受金残高(円) + 当月の請求額(円) - 当月の売上計上額(円)

先ほどの例に当てはめると、1月は「0円 + 120万円 - 10万円 = 110万円」です。2月は「110万円 + 0円 - 10万円 = 100万円」になります。この式が毎月成り立っていれば、請求と売上のズレはすべて前受金の増減で説明できます。

式を使うときは、次の2点をそろえてください。

  • 期間の単位をそろえる: 請求額も売上計上額も「当月(1か月)」の金額で入れます。年額の契約は、月額に割り直してから計上額を出します
  • 金額の基準をそろえる: 請求書は税込、会計の売上は税抜で管理していることがよくあります。どちらかに統一してから比べます

なお、後払いの契約では向きが逆になります。売上計上が請求より先になるため、「まだ請求していない売上」が残高として残ります。こちらも同じ考え方で、月ごとの残高を追いかけます。

月次で回す照合の4ステップ

前受金残高の考え方を、毎月の作業に落とし込みます。月次決算でズレを確認する手順とあわせて、次の4ステップで進めるのがおすすめです。

1 請求額を 集計 2 計上額を 算出 3 前受金と 照合 4 差異の 原因を記録

ステップ1: 請求額を集計する

当月に発行した請求書を、契約ごとに一覧にします。年額・月額・日割りなど、請求の種類も一緒に記録しておくと後の照合が楽になります。

ステップ2: 売上計上額を算出する

契約ごとに、当月に提供したサービスの金額を出します。年額契約なら月額に割り直した金額、月の途中で始まった契約なら提供した日数分の金額が目安です。

ステップ3: 前受金残高と照合する

前述の計算式で期末の前受金残高を出し、会計帳簿の前受金残高と比べます。一致していれば、請求と売上のズレはすべて説明できている状態です。

ステップ4: 差異の原因を記録する

一致しない場合は、差額の原因を前述の4パターンに当てはめて記録します。請求漏れ・二重請求が見つかった場合は、顧客への訂正対応まで含めて担当者と期限を決めます。原因を残しておくと、翌月以降の照合が短く済みます。

経営会議では、請求額・売上計上額・前受金残高の3つを並べて報告すると、数字の動きを説明しやすくなります。月次の数字を見る全体像は、経営管理の完全ガイドもあわせて参考にしてください。

Cockpitで経営数字を一か所にまとめる

請求と売上計上のズレを説明するには、売上の指標と会計の数字を並べて見られる環境が役に立ちます。

Cockpitは、合同会社GILOSが提供する、スタートアップのための経営管理プラットフォームです。MRRやARPA、解約率といったMetricsに加え、PL・BS・CF・HRを一元管理することができます。freee・マネーフォワードなどの会計データや、Salesforceの営業パイプラインの取込に対応しています。

月次決算から取締役会資料までの経営オペレーションを支援することを掲げており、属人化したExcelの予実管理を置き換えることを目的の一つとして設計されています。主な対象は、Series A〜B、社員10〜100名規模の急成長中のテクノロジー企業です。CFOが不在の会社や、経営企画が少人数の体制でも運用することができます。

まとめ

売上計上と請求のズレは、サブスクリプション型の事業では自然に生まれるものです。大切なのは、ズレをなくすことではなく、毎月その中身を説明できる状態にしておくことです。

  • 請求は「お金を求めるタイミング」、売上計上は「サービスを提供したタイミング」に合わせる
  • ズレは「年額前払い」「期中の契約変更」「初期費用・導入支援」「請求漏れ・二重請求」の4つに分けて考える
  • 「期末の前受金残高 = 期首の前受金残高 + 当月の請求額 - 当月の売上計上額」で毎月説明する
  • 期間は当月(1か月)、金額は税込・税抜のどちらかにそろえる
  • 請求漏れ・二重請求だけは「直すべき誤り」として、担当者と期限を決めて対応する

まずは直近1か月分の請求一覧と会計の売上を並べ、前受金残高の式が成り立つかを確かめるところから始めてみてください。

関連記事


Cockpitの資料請求・デモのご依頼は、こちらのお問い合わせフォームから受け付けています。経営数字の管理についてお悩みの方は、お気軽にご相談ください。

経営管理の課題を、Cockpitで解決しませんか

現在の経営管理フローについてお話をうかがい、どこまで自動化・一元化できるかを整理します。

資料請求・デモ依頼

Salesforce・HubSpotをお使いの方は、商談データを無料診断もできます(商談CSVを読み込むだけ・CSVの中身は送信されません)