حاسبة هدر الاشتراكات
خطة شهرية بقيمة 15.99 لم يستخدمها أحد لمدة 4 أشهر تهدر 63.96 في السنة، وتجري هذه الحاسبة الحساب نفسه لكل اشتراك في قائمتك. تُحوَّل الفواتير الأسبوعية والفصلية والسنوية أولًا إلى مبلغ شهري. مجانية في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
نادٍ رياضي توقفتم عن زيارته، وتجربة بث تحولت إلى خطة مدفوعة، ومقعد SaaS لا يسجّل إليه أحد ما زالوا يتركون القيد نفسه في كل كشف. تحوّل حاسبة هدر الاشتراكات هذه تكلفة كل اشتراك ودورة فوترته وأشهر عدم استخدامه إلى مال ضائع في السنة، حتى ترى الأسرة أو الفريق التسرب السنوي بدل مجموع إنفاق خام. تُحوَّل الخطط الأسبوعية والشهرية والسنوية أولاً إلى مكافئ شهري بعوامل فترات ثابتة، ثم تُضرب في أشهر الخمول ضمن نافذة اثني عشر شهرًا. النتيجة رقم حتمي لهدر سنوي يمكنكم تثبيته في بوت ميزانية أو اجتماع إلغاء أو إبقاء. تُرفض التكاليف السالبة كإدخال غير صالح لأن دفتر الهدر ليس حاسبة استرداد.
متى تفيدك مراجعة الاشتراكات غير المستخدمة
استدعوا حاسبة هدر الاشتراكات المجانية في المتصفح عندما تبحثون عن مجموعات بث منسية أو عضويات نادٍ بلا استخدام أو مقاعد برمجيات تتجدد بينما لا يسجّل أحد. اقرنوا هذه النقطة الطرفية بحاسبة مجموع إنفاق فقط عندما تحتاجون أيضًا الجزء المستخدم من المجموعة: تجيب هذه القدرة المال الخامل في السنة لا الفاتورة المتكررة كاملة. أبقوا القوائم ضمن أحجام أسرية أو فرقية عادية؛ ويحمي سقف الاشتراكات المنشور زمن تشغيل العزل ويغطي مع ذلك مجموعات وسائط وبرمجيات كاملة.
تتبع مدخلات المصدر قواعد الاحتفاظ ذاتها لسائر عناصر parse، والنتائج آمنة للتثبيت في تجهيزات التكامل المستمر لأن الخوارزمية حتمية تمامًا بلا شبكة ولا نموذج ولا وصول إلى نظام الملفات. وعد المنتج هدر شفاف لأشهر عدم الاستخدام، لا كشط تجار حي ولا تصنيف تغذية مصرفية: تلك المقاصد لأدوات أخرى بألفاظ بحث ومحركات أخرى.
حالات الاستخدام
مراجعة أسرية للبث غير المستخدم
أدرجوا كل خطة بث ونادٍ وأخبار مع عدد الأشهر التي لم يستخدمها أحد، وشاهدوا فورًا تسرب الأسرة السنوي وهدر كل خدمة خاملة.
هدر مقاعد SaaS للفريق
حوّلوا تجديدات البرمجيات السنوية والمقاعد الشهرية إلى هدر بأشهر الخمول حتى تلغي المشتريات الرخص الخاملة قبل الفاتورة التالية.
تدريب ميزانية على الإلغاء أو الإبقاء
يستدعي مدرّبو المال وروبوتات الدردشة نقطة طرفية مدفوعة مسبقًا مستقرة بدل إعادة تنفيذ عوامل الدورة وسقوف الاثني عشر شهرًا وحراسات التكلفة السالبة في كل لغة عميل.
الأسئلة الشائعة
كيف يُحسب هدر الاشتراكات في السنة؟
يُحوَّل كل cost إلى مكافئ شهري من دورة فوترته ثم يُضرب في أشهر عدم الاستخدام ضمن نافذة اثني عشر شهرًا (سقف 12).
ماذا يحدث إذا كانت تكلفة الاشتراك سالبة؟
يجب أن تكون تكاليف الاشتراك غير سالبة؛ وتُرفض القيم السالبة ولا تُفوتر.
كيف تُحوَّل دورات الفوترة السنوية والأسبوعية؟
يستخدم weekly اثنتين وخمسين فترة، وbiweekly ستًا وعشرين، وquarterly أربعًا، وsemiannual اثنتين، ثم تُطبَّق أشهر الخمول على ذلك الرقم الشهري.
ماذا لو ظل الاشتراك غير مستخدم أكثر من 12 شهرًا؟
يقصر الهدر السنوي أشهر عدم الاستخدام على 12، فيبلّغ السطر عن سنة كاملة من التكلفة كتسرب.
ما دورات الفوترة التي يمكنني إدخالها؟
أسبوعية وكل أسبوعين وشهرية وربع سنوية ونصف سنوية وسنوية. وإذا كتبت دورة غير معروفة تُرفض مع قائمة الدورات المقبولة، حتى يظهر الخطأ الإملائي فورًا ولا يدخل في مجموعك السنوي.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر 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"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
ودجة المتصفح مجانية؛ وتستخدم استدعاءات API رصيدًا مدفوعًا مسبقًا بمبلغ $0.002 لكل عنصر ناجح.
ماذا ترسلون: التكلفة ودورة الفوترة وأشهر عدم الاستخدام
تقبل دورة الفوترة weekly أو biweekly أو fortnightly وmonthly وquarterly وsemiannual أو half-yearly وyearly أو annual، مع تطبيع المسافات والشرطات قبل البحث. يمنح name أو label أو title أو service الاختياري صفًا مقروءًا للوحات؛ وإذا أغفلتم الاسم يعيّن المحرك Subscription one ثم Subscription two وهكذا حسب ترتيب القائمة. يلزم اشتراك واحد على الأقل؛ وتفشل المصفوفة الفارغة في التحقق قبل حساب أي هدر. وأشهر عدم الاستخدام السالبة تفشل أيضًا لأن زمن الخمول لا يجري إلى الوراء. وتفشل سلاسل الدورة المجهولة بقائمة القيم المقبولة حتى تظهر أخطاء الكتابة مبكرًا. أرسلوا جسم JSON يضم مصفوفة subscriptions إلزامية؛ وتُقبل الأسماء البديلة items وlist وservices وplans عندما يستخدم عميلكم اسم حقل آخر سلفًا. كل عنصر كائن بثلاث حقائق لازمة: cost وهو المبلغ المفوتر في كل دورة؛ وbilling_cycle وهو إيقاع ذلك القيد؛ وmonths_unused وهو كم شهرًا من نافذة اثني عشر شهرًا ظلّت الخدمة فيه خاملة. قد يصل cost رقمًا أو سلسلة رقمية؛ والأسماء البديلة amount وprice وfee وcharge تقابل القيمة نفسها حتى تحتفظ صادرات المصارف وبناة النماذج بمفاتيح مألوفة. تثير التكاليف السالبة invalid_input برسالة أن التكلفة لا يجوز أن تكون سالبة: وعد المنتج مال ضائع على اشتراكات خاملة، لا دفتر استرداد. والتكاليف البالغة الكبر وعدّ أشهر الخمول والقوائم الطويلة جدًا محدودة كي تبقى رياضيات عزل Worker محصورة. يجري التحقق كله قبل التحجيم، فلا تُرجع قائمة سيئة هدرًا سنويًا نصف مملوء يبدو ناجحًا لعميل لا يفحص سوى نجاح HTTP.
كيف يُحسب الهدر السنوي من أشهر الخمول
لكل اشتراك يضرب المحرك التكلفة المفوترة في عدد مرات وقوع تلك الدورة في سنة ثم يقسم على اثني عشر لينتج مكافئًا شهريًا: weekly يستخدم اثنين وخمسين فترة، وbiweekly ستًا وعشرين، وmonthly اثني عشر، وquarterly أربعًا، وsemiannual اثنتين، وyearly واحدة. يعني ذلك أن خطة yearly بقيمة مئة وتسعة عشر فاصلة ثمانية وثمانين تصير تسعة فاصلة تسعة وتسعين في الشهر، بينما تبقى رسوم monthly البالغة خمسة عشر فاصلة تسعة وتسعين خمسة عشر فاصلة تسعة وتسعين. ستة أشهر خاملة على خطة السحابة yearly تلك تهدر إذن تسعة وخمسين فاصلة أربعة وتسعين في السنة؛ واثنا عشر شهرًا خاملًا تهدر التكلفة السنوية كاملة؛ وثمانية عشر شهرًا خاملًا ما زالت تبلغ عن تسرب سنة كاملة لأن المنتج يجيب مالًا ضائعًا في السنة لا مجموعًا متعدد السنوات. تستخدم النواتج الوسيطة حسابًا عشريًا عائمًا عاديًا؛ ثم تُقرَّب كل حقول المال في الاستجابة half-up إلى منزلتين عشريتين كي تبدو النتائج عملة على كشف لا كسورًا ثنائية طويلة. ثم تُطبَّق أشهر عدم الاستخدام داخل نافذة اثني عشر شهرًا: waste_per_year يساوي المكافئ الشهري مضروبًا في الأصغر بين months_unused واثني عشر. يتضمن كل سطر نتيجة فهرسه الصفري واسم العرض و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 مئة ضعف الهدر على ذلك المجموع السنوي (صفر عندما تكون كل التكاليف صفرًا). يساوي الحقل count عدد أسطر الإدخال، وcurrency_decimals اثنان دائمًا، وmethod دائمًا subscription_waste حتى يتفرع الرمز اللاحق دون استنشاق الأشكال. الاشتراكات الناقصة والقوائم الفارغة وcost الناقص والدورة الناقصة وmonths_unused الناقص والقيم غير الرقمية والدورات المجهولة والتكاليف السالبة تفشل كلها بـ invalid_input ولا تُفوتر بعد الرفض.
أين تستحق واجهة API لهدر الاشتراكات موضعها
استخدموا API المدفوعة مسبقًا عندما يحتاج تطبيق مالية شخصية أو مدرّب نفقات أو مساعد مشتريات SaaS أو بوت تكاليف أسرية مشتركة أو تدفق إلغاء أو إبقاء إلى عقد ثابت بمبلغ $0.002 لكل عنصر ناجح؛ ولا تستهلك إخفاقات التحقق رصيدًا بعد رفض المحرك. يمكن لمن ينشرون SDK أن يسقطوا المصفوفة lines في جدول إلغاء أول، ويُظهروا total_waste_per_year في شريط ملخص، ويستخدموا unused_pct لبيان كم من المجموعة السنوية خامل. المدخلات المتطابقة تنتج دائمًا JSON نفسه لأن المسار حساب خالص بلا بذرة عشوائية وبلا ساعة جدارية، وهو ما تحتاجه بوتات الميزانية وعروض الدروس عند تجميد تسرب سنوي مرجعي.
أسئلة تقنية
هل حاسبة هدر الاشتراكات مجانية؟
تعمل أداة المتصفح مجانًا على جهازكم. تستخدم استدعاءات API رصيد KIT المدفوع مسبقًا بمبلغ $0.002 لكل عنصر ناجح؛ ولا تُفوتر إخفاقات التحقق.