月の途中でプランを上げたとき、いくら請求するか。日割りにすると、25日の変更で4,360円になりました。
日割りをやめて満額を請求すると9,800円です。差は5,440円で、これは利用者の払いすぎになります。
期中の変更を日割りにする場合としない場合を計算しました。月末に近いほど差が広がります。
サブスク課金で期中の変更をどう扱うかを、実際に計算して比べました。月額3,000円のプランから9,800円のプランへ上げる場面です。
1か月を30日として計算しました。変更した日の前日まで旧プラン、当日から新プランという分け方です。
const used = day - 1; // 変更日の前日まで const rest = DAYS - used; const a = Math.floor((PLANS.小 * used) / DAYS); const b = Math.floor((PLANS.中 * rest) / DAYS); // a + b が請求額
変更した日 日割りの計算 請求額 月額との差
1日 小 0円 + 中 9800円 9,800円 0円
5日 小 400円 + 中 8493円 8,893円 -907円
10日 小 900円 + 中 6860円 7,760円 -2,040円
15日 小 1400円 + 中 5226円 6,626円 -3,174円
20日 小 1900円 + 中 3593円 5,493円 -4,307円
25日 小 2400円 + 中 1960円 4,360円 -5,440円
30日 小 2900円 + 中 326円 3,226円 -6,574円
上の表を見てください。25日に変更した場合、日割りなら4,360円です。旧プランぶんの2,400円と、新プランの残り6日ぶんの1,960円を足しています。
変更した日 請求額 日割りとの差 利用者の損得
1日 9,800円 0円 同じ
5日 9,800円 907円 払いすぎ
15日 9,800円 3,174円 払いすぎ
25日 9,800円 5,440円 払いすぎ
30日 9,800円 6,574円 払いすぎ
満額を請求すると、どの日に変更しても9,800円です。実装は簡単になります。
代わりに、月末に近いほど差が広がります。25日の変更で5,440円、30日なら6,574円です。1か月ぶんの料金の3分の2にあたります。
日割りを止めたときの動きは、仕様として書かれています。Stripeも比例配分を無効にすると、次の請求書が生成されたときに、顧客は新しい料金で全額を請求されますとしています。
つまり意図して選べる設定です。問題になるのは、選んだつもりがないまま既定の動きで運用している場合です。
月末に近いほど、日割りとの差が広がる。
毎月同じ額を請求するだけなら簡単です。難しくなるのは、期中に何かが変わったときの扱いです。
サブスク課金は、決まった周期で決まった額を請求する仕組みです。ここまでは単純です。
難しくなるのは周期の途中で何かが変わったときです。プランの変更、数量の増減、解約などです。
このときの考え方が比例配分です。Stripeの説明も比例配分では、部分的な利用を反映し、サブスクリプション料金の一定割合を顧客に請求しますとしています。
前の節では1か月を30日として計算しましたが、単位は選べます。Stripeはデフォルトでは、Stripe は秒単位で比例配分を計算しますとしています。
4番目は小さく見えて揉めます。変更した当日を旧プランに含めるか、新プランに含めるかを決めておいてください。
すべてが比例配分の対象になるわけではありません。Stripeは比例配分は請求期間より前に発生した請求にのみ適用されますとしています。
使った量に応じて請求する形も対象外です。あとから量が確定するものは、比例配分では扱えません。
前の節は1か月を30日と置いた計算です。実際には月の日数が違い、切り捨ての位置でも数円動きます。ここで見せているのは、日割りにするかどうかで差がどれだけ出るかという大きさです。端数の扱いそのものは消費税計算の記事で扱っています。
計算できても、それをいつ請求するか、いつ返すかは別の話です。既定の動きを知らないまま運用すると噛み合いません。
サブスク課金で見落としやすいのが、計算した差額がいつ動くかです。計算と入金は別です。
Stripeの説明は、はっきり書いています。マイナスの比例配分は自動的に返金されず、プラスの比例配分はすぐには請求されません。
つまり次回の請求書で相殺されるのが既定です。プランを下げた利用者が、その場で返金を期待していると食い違います。
前の節の表を見せられる形にしておくと、問い合わせが減ります。いくらが旧プランぶんで、いくらが新プランぶんかという内訳です。
内訳がないと、4,360円という金額の根拠が分かりません。月額9,800円のプランに変えたのに、なぜその額なのかが伝わらない形になります。
1番目は変更が実際にどれくらい起きるかで決まります。年に数件なら、日割りを作り込まずに手で処理するほうが早い場合もあります。
計算できることと、いつ動くかは別に決める。
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る