「月200ドルは高い気もするけれど、ネイティブ機能が使えるなら元は取れるのでは」——この迷いを、私は長いこと感覚のまま放置していました。Rork(Expo 版)の月25ドルと Rork Max の月200ドルでは、差額が月175ドル、年間で2,100ドルにもなります。個人開発でこの判断を勘で決めると、たいてい後悔する側に転びます。私自身、月額ツールを「なんとなく便利そうだから」で契約し、半年後に使っていないことに気づいて解約した経験が一度や二度ではありません。
迷いの正体は、200ドルという数字を「自分のアプリが生む追加収益」と並べて見ていないことです。そこで、感覚を一度すべて数字に落とし、損益分岐点だけで判断できるようにしました。数字にしてしまえば、迷いは驚くほど静かになります。
比べるべきは「料金の差」ではなく「差額が生む追加収益」
よくある間違いは、200ドルという月額そのものを高い・安いで評価することです。本当に比べるべきなのは、Rork から Rork Max に上げることで増える差額175ドルと、その差額でしか作れない機能が生む追加収益です。
Rork Max でしか実現できない代表例は、Live Activities や Dynamic Island、HealthKit / HomeKit 連携、App Clips、Core ML を使った端末内推論といった、Expo の標準範囲では届きにくいネイティブ機能です。これらが「あれば嬉しい」程度なら差額は回収できません。「これがないと成立しないアプリ」のときだけ、差額に意味が出ます。
ここで一度、自分のアプリの企画書を開いて、Rork Max 専用の機能に赤線を引いてみてください。赤線が1本も引けないなら、その時点で答えは出ています。据え置きです。赤線が引けたとき、はじめて次の計算に進む価値があります。
損益分岐の計算式は「手取り」で立てる
判断はとてもシンプルな一本の式に落ちます。
追加で必要な月間純収益 > 175ドル(= 200 − 25)
ただし、アプリの収益はストア手数料や広告ネットワークの取り分を引いた「手取り」で考える必要があります。ここを額面のまま計算すると、黒字に見えていた判断が本番で崩れます。私が個人開発で何度も足をすくわれたのは、いつもこの「額面と手取りの差」でした。
サブスクなら Apple の取り分(小規模事業者プログラムに登録していれば15%、未登録の初年度は30%)、広告なら表示単価そのものの変動を見込みます。手取りベースで差額175ドルを超える見込みが立つかどうか、判断軸はこれだけです。逆に言えば、ここさえ固めれば残りは掛け算にすぎません。
収益3経路の「手取り」を現実的な幅で見積もる
損益分岐の式に入れる数字を楽観で埋めると、どんなアプリでも黒字に見えます。ここでは、私が個人開発の運用で使っている「保守寄りの見積もりレンジ」を置いておきます。数字は市場や地域、季節で大きく動くため、あくまで初期値の目安として扱ってください。
収益経路 手取りを左右する主因 初期見積もりの目安(保守寄り)
サブスク 単価・解約率・ストア手数料 手取り単価 = 表示単価 × 0.85(小規模事業者)。月次解約率は 5〜10% を初期値に
広告 eCPM・表示回数・地域構成 インタースティシャルの eCPM は先進国中心なら数ドル〜十数ドルの幅。バナーは桁が一つ下
買い切り 単価・転換率 機能追加で増える純増分のみ計上。既存の売上は差額回収に数えない
大事なのは、3経路とも「Rork Max のネイティブ機能で増えた分だけ」を入れることです。もともと Expo 版でも取れていた収益を差額回収に混ぜると、計算が自分に都合よく歪みます。増分だけを、それも手取りで。この2点を守るだけで、試算の精度は見違えます。
広告については、eCPM が国別・時間帯別で驚くほど動く点にも触れておきます。私は AdMob のメディエーションを組んで複数ネットワークを競わせていますが、それでも月ごとの振れ幅は小さくありません。だからこそ広告収益は「増えたら嬉しい上振れ」として扱い、損益分岐の主軸はサブスクの手取りで立てるのが、個人開発では安全だと感じています。
コピペで使える試算スクリプト(感度分析つき)
数字を入れ替えながら試せるように、小さな Node スクリプトにしました。サブスク・広告・買い切りの3経路を合算し、手取りで損益分岐を判定します。さらに、保守・標準・楽観の3シナリオを一度に出して、判断が想定の幅にどれだけ左右されるかまで見えるようにしています。
// rork-max-breakeven.mjs 実行: node rork-max-breakeven.mjs
// 自分のアプリの想定値に書き換えてください
const base = {
rorkMonthly: 25 , // Rork(Expo版)の月額(ドル)
rorkMaxMonthly: 200 , // Rork Max の月額(ドル)
// サブスク(Rork Max のネイティブ機能で増える分だけを入れる)
newSubscribers: 30 , // この機能で増える月間サブスク数(標準想定)
subPrice: 4.99 , // 月額単価(ドル)
appleCut: 0.15 , // ストア手数料(小規模事業者は15%=0.15)
// 広告(ネイティブ機能で増えるセッション由来の純増分・手取り)
extraAdRevenue: 40 , // 機能追加で増える月間広告純収益(標準想定)
// 買い切り
extraOneTime: 0 , // 機能由来の買い切り純増(ドル/月・手取り)
};
const gap = base.rorkMaxMonthly - base.rorkMonthly; // 回収すべき差額
// 手取りの追加収益を計算
function addedNet ( v ) {
const subNet = v.newSubscribers * v.subPrice * ( 1 - v.appleCut);
return subNet + v.extraAdRevenue + v.extraOneTime;
}
// 損益分岐に必要なサブスク数(広告・買い切りを差し引いた後)
const breakevenSubs = Math. ceil (
(gap - base.extraAdRevenue - base.extraOneTime) /
(base.subPrice * ( 1 - base.appleCut))
);
// 感度分析: サブスク数と広告を保守0.6倍・楽観1.4倍で振る
const scenarios = {
"保守 (0.6x)" : 0.6 ,
"標準 (1.0x)" : 1.0 ,
"楽観 (1.4x)" : 1.4 ,
};
console. log ( `回収すべき差額: $${ gap }/月` );
console. log ( `必要サブスク数の目安: ${ breakevenSubs }件/月(広告・買い切りを差し引いた後) \n ` );
for ( const [ label , k ] of Object. entries (scenarios)) {
const v = {
... base,
newSubscribers: base.newSubscribers * k,
extraAdRevenue: base.extraAdRevenue * k,
};
const net = addedNet (v);
const margin = net - gap;
const mark = margin >= 0 ? "黒字" : "未回収" ;
console. log (
`${ label }: 手取り追加 $${ net . toFixed ( 2 ) } / 差引 $${ margin . toFixed ( 2 ) } → ${ mark }`
);
}
このスクリプトの値は、まず保守的に入れてみてください。newSubscribers を楽観的に積むと、どんなアプリでも黒字に見えてしまいます。感度分析の「保守(0.6x)」でも黒字が残るなら、その判断は相当に堅いと言えます。逆に「楽観(1.4x)」でようやく黒字になる程度なら、それは黒字ではなく願望です。私は、保守シナリオで最低でもトントンになることを、上げる条件にしています。
具体例で通してみる — 習慣トラッカーアプリの場合
抽象論のままだと使いどころが掴めないので、一つ通してみます。Live Activities とホーム画面ウィジェットで「続けやすさ」を売りにする習慣トラッカーを、Rork Max で作るケースです。これらは Expo の標準では届きにくく、まさに差額に意味が出る機能です。
単価4.99ドル・手数料15%・月次解約率7%とし、ウィジェット由来のリテンション改善で月25件の新規サブスクが積み上がると仮定します。ここで多くの人が間違えるのは、初月の数字だけを見て「25件では届かない」と諦めてしまうことです。サブスクは解約されない限り翌月も生き続けるため、実際には積み上がっていきます。
経過 継続サブスク数(解約7%後) サブスク手取り 広告手取り 差額175ドルとの差引
1ヶ月目 25件 約106ドル 約20ドル −49ドル(未回収)
2ヶ月目 約48件 約205ドル 約20ドル +50ドル(黒字転換)
3ヶ月目 約70件 約296ドル 約20ドル +141ドル
初月だけを見れば「未回収」で、感覚判断ならここで撤退していたかもしれません。ところが解約率7%で積み上げると、2ヶ月目には差額を越え、3ヶ月目には十分な黒字になります。単月のスナップショットで上げどきを決めると、こうした積み上がりを丸ごと取りこぼします。だからこそ、判断は少なくとも3ヶ月の目線で立てるべきです。
サブスクは単月ではなく「積み上がり」で見る
前の例が示すのは、サブスク中心のアプリでは損益分岐が「初月の1点」ではなく「時間をかけて越える線」になる、という構造です。ここを取り違えると、伸びしろのあるアプリを初月の数字で切り捨ててしまいます。
積み上がりを読むうえで一番効くのは、新規獲得数よりも解約率です。同じ月25件の獲得でも、解約率5%と15%では半年後の継続数がまったく違う景色になります。私自身、収益化で最後にものを言うのは獲得の派手さではなく、静かに効く解約率の低さだと感じてきました。Rork Max のネイティブ機能——ウィジェットや Live Activities のような「毎日そっと触れる導線」——が効くのは、まさにこの解約率の部分です。差額を回収する主戦場は、新規の勢いではなく継続の粘りにあります。
数字に出ない判断材料も一度だけ並べる
損益分岐はあくまで主軸ですが、金額に表れない要素もあります。Rork Max のブラウザ内 iOS シミュレータと2クリック公開で短縮される作業時間、Xcode を持たずに Apple 全機種へ出せる身軽さ、これらは時給換算で差額の一部を相殺します。
ただし、これらを過大評価すると損益分岐がなし崩しになります。私は「時短メリットは差額の最大3割まで」と上限を決めて、残り7割は必ず実収益で回収できるかで判断するようにしました。便利さは判断を曇らせやすいので、あえて重みを抑えています。数字の外側にある価値を認めることと、それに判断を明け渡すことは、別のことです。
据え置きという選択も等しく正しい
計算の結果、差額を回収できないなら、Rork のまま据え置くのは負けではありません。むしろ、回収できない機能のために年間2,100ドルを払い続けるほうが、個人開発の体力を確実に削ります。段階的に移行するという発想と同じで、必要になった機能が黒字化の目処を立てたタイミングで上げれば十分です。
まずは上のスクリプトに、自分のアプリの直近1ヶ月の実数を保守的に入れてみてください。感度分析の保守シナリオでもトントンに近づき、3ヶ月の積み上がりで差額を越える絵が描けたら、そのときが Rork Max に上げる正しいタイミングです。同じ料金の壁で迷っている方の判断材料になれば幸いです。お読みいただき、ありがとうございました。