サブスク無駄計算機
月額15.99のプランを4か月使わなければ、年間63.96の無駄になります。一覧にしたサブスクごとにこの計算を行い、週払いや年払いも月額に直してから比べます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
通わなくなったジム、有料プランに移行した配信の試用、誰もログインしない SaaS 席は、明細のたびに同じ請求を残します。このサブスク無駄計算機は、各契約の cost、請求周期、未使用月数を年間で無駄になった金額へ変換し、家計やチームが生の支出合計ではなく年間の漏れを見られるようにします。週次・月次・年次のプランはまず固定の周期係数で月換算され、十二か月窓の未使用月数を掛けます。結果は決定的な年間無駄額であり、予算ボットや解約か継続かの会議に固定できます。負の料金は無効入力として拒否されます。無駄台帳は返金計算機ではありません。
送るもの:料金、請求周期、未使用月数
各要素は必須の三点を持つオブジェクトです。cost は数値でも数値文字列でもよく、別名 amount、price、fee、charge は同じ値に対応するので、銀行エクスポートやフォーム構築ツールは慣れたキーを保てます。
請求周期は weekly、biweekly または fortnightly、monthly、quarterly、semiannual または half-yearly、yearly または annual を受け付け、検索前に空白とハイフンを正規化します。任意の name、label、title、service はダッシュボード向けの読みやすい行を与えます。
名前を省略するとエンジンはリスト順に Subscription one、Subscription two と付けます。少なくとも一件の契約が必要で、空配列は無駄を計算する前に検証失敗します。製品の約束は未使用サブスクで失われた金額であり、返金台帳ではありません。
負の未使用月数も失敗します。遊休時間は逆行できません。未知の周期文字列は受理値の一覧とともに失敗し、誤入力を早く表面化します。
極端に大きい料金、遊休月数、非常に長いリストは上限があり、Worker isolate の計算が有界に保たれます。
サブスクの見直しに役立つ場面
忘れられた配信スタック、使っていないジム会員、誰もログインしないのに更新されるソフト席を探すときは、ブラウザの無料サブスク無駄計算機を呼び出してください。検証失敗はエンジンが拒否したあと残高を消費しません。本能力は年間の未使用金額に答え、定期請求の全額には答えません。
リストは通常の家計やチーム規模に収めてください。公開された契約件数上限は isolate 実行時間を守りつつ、メディアとソフトのフルスタックも覆います。入力は他の parse 項目と同じ保持規則に従い、結果はネットワークもモデルもファイルシステムもない完全に決定的な算法なので継続的インテグレーションのフィクスチャに固定できます。
製品の約束は未使用月の透明な無駄であり、店舗のライブ収集や銀行フィード分類ではありません。それらの意図は別の検索語と別のエンジンを持つ別の道具に属します。経路は乱数シードも壁時計もない純粋算術であり、予算ボットや授業デモが基準となる年間漏れを凍らせるときに必要とする性質です。
活用例
家庭の未使用配信の点検
配信・ジム・ニュースの各プランと誰も使わなかった月数を並べ、家計の年間漏れと休止サービスの無駄をすぐに確認します。
チーム SaaS 席の無駄
年次ソフト更新と月額席を未使用月の無駄に直し、調達が次の請求の前に休止ライセンスを解約できるようにします。
よくある質問
サブスクの年間無駄はどう計算しますか?
各 cost を請求周期から月換算し、十二か月窓の未使用月数を掛けます(上限は 12)。
サブスクの料金が負のときはどうなりますか?
サブスク料金は非負でなければならず、負の値は拒否され課金されません。
年次と週次の請求周期はどう換算しますか?
weekly は五十二周期、biweekly は二十六、quarterly は四、semiannual は二を使い、その月額に未使用月を掛けます。
12 か月を超えて未使用だった場合は?
年間無駄は未使用月を 12 で上限するので、行は一年分の料金を漏れとして報告します。
無駄になっている割合も分かりますか?
はい、年間の支払総額のうち未使用分が占める割合も表示されます。例では年間455.76のうち123.9が無駄で、割合は27.19%です。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/fin/subscription-waste \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"subscriptions":[{"name":"Streaming","cost":15.99,"billing_cycle":"monthly","months_unused":4},{"name":"Cloud storage","cost":119.88,"billing_cycle":"yearly","months_unused":6},{"name":"News","cost":12,"billing_cycle":"monthly","months_unused":0}]}'const res = await fetch("https://api.kit.forhosting.com/fin/subscription-waste", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"subscriptions": [
{
"name": "Streaming",
"cost": 15.99,
"billing_cycle": "monthly",
"months_unused": 4
},
{
"name": "Cloud storage",
"cost": 119.88,
"billing_cycle": "yearly",
"months_unused": 6
},
{
"name": "News",
"cost": 12,
"billing_cycle": "monthly",
"months_unused": 0
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/subscription-waste",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"subscriptions": [
{
"name": "Streaming",
"cost": 15.99,
"billing_cycle": "monthly",
"months_unused": 4
},
{
"name": "Cloud storage",
"cost": 119.88,
"billing_cycle": "yearly",
"months_unused": 6
},
{
"name": "News",
"cost": 12,
"billing_cycle": "monthly",
"months_unused": 0
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/subscription-waste", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"subscriptions":[{"name":"Streaming","cost":15.99,"billing_cycle":"monthly","months_unused":4},{"name":"Cloud storage","cost":119.88,"billing_cycle":"yearly","months_unused":6},{"name":"News","cost":12,"billing_cycle":"monthly","months_unused":0}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"subscriptions":[{"name":"Streaming","cost":15.99,"billing_cycle":"monthly","months_unused":4},{"name":"Cloud storage","cost":119.88,"billing_cycle":"yearly","months_unused":6},{"name":"News","cost":12,"billing_cycle":"monthly","months_unused":0}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/subscription-waste", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"subscriptions": [
{
"name": "Streaming",
"cost": 15.99,
"billing_cycle": "monthly",
"months_unused": 4
},
{
"name": "Cloud storage",
"cost": 119.88,
"billing_cycle": "yearly",
"months_unused": 6
},
{
"name": "News",
"cost": 12,
"billing_cycle": "monthly",
"months_unused": 0
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.subscription_waste",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
API 呼び出しは成功一件あたり $0.002 の前払い残高を使います。
送るもの:料金、請求周期、未使用月数
必須の subscriptions 配列を含む JSON 本体を送信してください。クライアントが別のフィールド名を使っている場合、別名 items、list、services、plans も受け付けます。cost は各周期で請求される金額、billing_cycle はその請求の間隔、months_unused は十二か月窓のうちサービスが遊んでいた月数です。負の cost は invalid_input を起こし、料金は負にできないというメッセージになります。検証は換算の前にすべて走るので、悪いリストが HTTP 成功だけを見るクライアントに対して半分埋まった年間無駄を成功のように返すことはありません。
未使用月数から年間無駄をどう計算するか
契約ごとにエンジンは請求された cost にその周期が一年で何回起きるかを掛け、十二で割って月換算を作ります。weekly は五十二周期、biweekly は二十六、monthly は十二、quarterly は四、semiannual は二、yearly は一です。したがって yearly プランの百十九点八八は月九点九九になり、monthly の十五点九九は十五点九九のままです。未使用月はその後、十二か月窓の中で適用されます。その yearly クラウドプランで六か月未使用なら一年で五十九点九四が無駄になり、十二か月未使用なら年額全額が無駄になり、十八か月未使用でも通年の漏れを報告します。製品は複数年の累計ではなく一年あたりの無駄に答えるからです。waste_per_year は月換算に months_unused と十二の小さい方を掛けた値です。中間積は通常の浮動小数点演算を使い、応答の各金額フィールドは half-up で小数二桁に丸められ、明細の通貨のように見え、長い二進分数には見えません。各結果行はゼロ始まりの index、表示名、エコーされた cost、正規の billing_cycle、months_unused、monthly_cost、annual_cost、上限後の unused_months_in_year、waste_per_year を含みます。上位の total_waste_per_year は丸め前の無駄寄与を合計し、最終 half-up の前に行の計算と総額が一致するようにします。total_annual_cost は年換算した全コストの合計、unused_pct はその年額に対する無駄の百倍です(すべての cost がゼロならゼロ)。count は入力行数に等しく、currency_decimals は常に二、method は常に subscription_waste なので、下流コードは形を嗅がずに分岐できます。欠落した subscriptions、空リスト、欠落した cost、欠落した周期、欠落した months_unused、非数値、未知の周期、負の cost はすべて invalid_input で失敗し、拒否後は課金されません。
サブスク無駄 API が本領を発揮する場面
家計アプリ、支出コーチ、SaaS 調達補助、家族の分担ボット、解約か継続かの導入フローが成功一件あたり $0.002 の安定した契約を必要とするときは前払い API を使います。使っている分のスタックも必要なときだけ、この endpoint を支出合計計算機と組み合わせてください。SDK を出す作者は lines 配列を解約優先の表へ写し、要約バナーに total_waste_per_year を出し、unused_pct で年間スタックのどれだけが遊んでいるかを示せます。同一入力は常に同一の JSON を生みます。
連携の活用例
解約か継続かの家計コーチ
家計コーチとチャットボットは、周期係数・十二か月上限・負の料金ガードをクライアント言語ごとに再実装せず、安定した前払い endpoint を呼びます。
技術的な質問
サブスク無駄計算機は無料ですか。
ブラウザの道具はお使いの端末で無料です。API 呼び出しは成功一件あたり $0.002 の KIT 前払い残高を使い、検証失敗は課金されません。