Calculateur coût mensuel total abonnements
Voyez ce que vos abonnements coûtent vraiment chaque mois : avec un streaming et un journal payés au mois et un stockage en ligne payé à l'année, ce forfait annuel pèse 26,3 % du total mensuel. L'annuel est réparti sur douze mois. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Les applications de streaming, les sièges cloud, les salles de sport, les sites d'actualité et les outils SaaS partagent rarement le même rythme de facturation, de sorte qu'un relevé bancaire ne répond jamais à la vraie question du foyer : quel est le coût mensuel total des abonnements une fois chaque forfait annuel réparti équitablement sur douze mois. Ce calculateur de coût mensuel total d'abonnements accepte une liste de frais avec le type de forfait de chacun, convertit les charges annuelles en les divisant par douze, met à l'échelle les forfaits hebdomadaires et trimestriels avec des facteurs de période fixes, et renvoie la dépense mensuelle récurrente cumulée plus la part de chaque ligne dans ce total. Un frais négatif est rejeté avec une entrée invalide car un grand livre de coûts ne traite pas les remboursements comme des charges d'abonnement.
Que envoyer : abonnements, frais et forfaits de facturation
Chaque entrée est un objet avec un frais non négatif facturé par période de facturation et une chaîne plan décrivant cette période. Plan accepte des libellés courants tels que weekly, biweekly ou fortnightly, monthly, quarterly, semiannual ou half-yearly, et yearly ou annual, avec espaces et tirets normalisés avant la recherche. Le name, label, title ou service facultatif fournit un libellé lisible pour tableaux de bord et reçus ; si vous omettez le nom, le moteur attribue Subscription one, Subscription two, et ainsi de suite dans l'ordre de la liste.
Au moins un abonnement est requis ; un tableau vide échoue à la validation avant tout calcul d'échelle. Les chaînes plan inconnues échouent aussi avec une liste de valeurs acceptées afin que les fautes de frappe apparaissent tôt. Toute la validation s'exécute avant la normalisation, de sorte qu'une mauvaise liste ne renvoie jamais des totaux à moitié remplis qui semblent réussis au client.
Cas d’usage
Audit mensuel personnel des abonnements
Listez chaque charge de streaming, cloud, salle de sport et logiciel avec son vrai forfait et voyez aussitôt la dépense mensuelle réelle du foyer plus la part de chaque service.
Budget équitable des forfaits annuels
Convertissez les renouvellements annuels de logiciels et de stockage en équivalents mensuels pour qu'une réduction yearly côtoie des sièges mensuels sur une seule ligne budgétaire.
Questions fréquentes
Comment calculer le coût mensuel total des abonnements ?
Chaque élément a besoin de fee et plan (par exemple monthly ou yearly).
Comment les forfaits annuels sont-ils convertis en mensuels ?
Les forfaits weekly, biweekly, quarterly et semiannual utilisent des décomptes de périodes fixes sur douze mois.
Que se passe-t-il si un frais est négatif ?
Les frais d'abonnement doivent être non négatifs ; les valeurs négatives sont rejetées et non facturées.
Quels forfaits de facturation sont pris en charge ?
Weekly, biweekly (fortnightly), monthly, quarterly, semiannual (half-yearly) et yearly/annual. Les espaces et tirets dans les chaînes plan sont normalisés.
Comment un abonnement hebdomadaire est-il ramené au mois ?
Le montant hebdomadaire est multiplié par cinquante-deux semaines, puis divisé par douze. Un forfait trimestriel suit la même logique avec quatre périodes par an, et un forfait semestriel avec deux.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/str/monthly-subscriptions-total \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"subscriptions":[{"name":"Streaming","fee":15.99,"plan":"monthly"},{"name":"Cloud storage","fee":119.88,"plan":"yearly"},{"name":"News","fee":12,"plan":"monthly"}]}'const res = await fetch("https://api.kit.forhosting.com/str/monthly-subscriptions-total", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"subscriptions": [
{
"name": "Streaming",
"fee": 15.99,
"plan": "monthly"
},
{
"name": "Cloud storage",
"fee": 119.88,
"plan": "yearly"
},
{
"name": "News",
"fee": 12,
"plan": "monthly"
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/monthly-subscriptions-total",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"subscriptions": [
{
"name": "Streaming",
"fee": 15.99,
"plan": "monthly"
},
{
"name": "Cloud storage",
"fee": 119.88,
"plan": "yearly"
},
{
"name": "News",
"fee": 12,
"plan": "monthly"
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/monthly-subscriptions-total", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"subscriptions":[{"name":"Streaming","fee":15.99,"plan":"monthly"},{"name":"Cloud storage","fee":119.88,"plan":"yearly"},{"name":"News","fee":12,"plan":"monthly"}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"subscriptions":[{"name":"Streaming","fee":15.99,"plan":"monthly"},{"name":"Cloud storage","fee":119.88,"plan":"yearly"},{"name":"News","fee":12,"plan":"monthly"}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/monthly-subscriptions-total", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"subscriptions": [
{
"name": "Streaming",
"fee": 15.99,
"plan": "monthly"
},
{
"name": "Cloud storage",
"fee": 119.88,
"plan": "yearly"
},
{
"name": "News",
"fee": 12,
"plan": "monthly"
}
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.monthly_subscriptions_total",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Que envoyer : abonnements, frais et forfaits de facturation
Envoyez un corps JSON avec un tableau subscriptions obligatoire ; les alias items, list, services et plans sont acceptés lorsque votre client utilise déjà un autre nom de champ. Fee peut arriver comme nombre ou chaîne numérique ; les alias amount, price, cost et charge correspondent à la même valeur afin que les exports de facturation et les constructeurs de formulaires conservent des clés familières. Les frais négatifs déclenchent invalid_input avec un message indiquant que le frais ne peut pas être négatif : la promesse produit de ce calculateur est un total de coût mensuel récurrent, pas un grand livre de remboursements. Les frais extrêmement élevés et les listes très longues sont plafonnés pour que l'arithmétique de l'isolate Worker reste bornée.
Comment les équivalents mensuels et le total sont calculés
Pour chaque abonnement, le moteur multiplie le frais facturé par le nombre de fois que ce forfait survient en une année, puis divise par douze pour produire un équivalent mensuel : weekly utilise cinquante-deux périodes, biweekly vingt-six, monthly douze, quarterly quatre, semiannual deux et yearly une. Cela signifie qu'un forfait yearly de cent dix-neuf virgule quatre-vingt-huit devient neuf virgule quatre-vingt-dix-neuf par mois, tandis qu'un frais monthly de quinze virgule quatre-vingt-dix-neuf reste quinze virgule quatre-vingt-dix-neuf. Les produits intermédiaires utilisent l'arithmétique en virgule flottante ordinaire ; chaque champ monétaire de la réponse est ensuite arrondi half-up à deux décimales pour que les résultats ressemblent à une devise sur un relevé plutôt qu'à de longues fractions binaires. Chaque ligne de résultat inclut son index basé sur zéro, le nom d'affichage, le fee renvoyé, le libellé canonique de plan, monthly_cost et share_pct du grand total mensuel. Le total_monthly de premier niveau somme les contributions mensuelles avant arrondi afin que le grand total reste cohérent avec le calcul des lignes avant l'arrondi half-up final. yearly_projection multiplie la même somme mensuelle avant arrondi par douze pour une vue annualisée sans changer la promesse produit centrée sur le mois. Le champ count égale le nombre de lignes d'entrée, currency_decimals vaut toujours deux, et method est toujours monthly_subscriptions_total pour que le code aval puisse brancher sans inspecter les formes. Abonnements manquants, listes vides, fee manquant, plan manquant, frais non numériques, forfaits inconnus et frais négatifs échouent tous avec invalid_input et ne sont pas facturés après le rejet. Des entrées identiques produisent toujours le même JSON car le chemin est une arithmétique pure sans réseau, sans graine aléatoire et sans horloge murale.
Usage de l'API, tarification, flux budgétaires et limites pratiques
Appelez le calculateur gratuit de coût mensuel total d'abonnements dans le navigateur lorsque vous auditez une pile personnelle, décidez quel forfait annuel annuler en premier, ou enseignez le budget du foyer sans construire une feuille de calcul de facteurs de période. Gardez les listes dans des tailles ordinaires de foyer ou d'équipe ; le plafond publié d'abonnements protège le runtime de l'isolate tout en couvrant des piles médias et logicielles complètes. La promesse produit est la normalisation transparente des forfaits et la dépense mensuelle récurrente cumulée, non le scraping marchand en direct ni la classification de flux bancaires : ces intentions appartiennent à d'autres outils avec d'autres termes de recherche et d'autres moteurs. Utilisez l'API prépayée lorsqu'une application de finance personnelle, un coach de dépenses, un assistant d'achats SaaS, un bot de coûts partagés familiaux ou un flux d'intégration a besoin d'un contrat KIT stable à $0.002 par élément réussi ; les échecs de validation ne consomment jamais de solde après le rejet du moteur. Associez cet endpoint à des convertisseurs de devises uniquement lorsque tous les frais partagent déjà une même devise : cette capacité ne convertit pas les changes, n'applique ni taxe de vente, ni crédits d'essai, ni codes promo. Les auteurs qui livrent des SDK peuvent mapper le tableau lines en tableaux de comparaison et afficher total_monthly dans une bannière de synthèse pour les décisions d'annuler ou de conserver, en utilisant share_pct pour mettre en évidence le plus grand poids mensuel.
Cas d'intégration
Applications budgétaires et bots financiers
Les applications de dépenses et les chatbots appellent un endpoint prépayé stable au lieu de réimplémenter les facteurs de forfait, pourcentages de part et gardes de frais négatifs dans chaque langage client.
Questions techniques
Le calculateur de coût mensuel total d'abonnements est-il gratuit ?
L'outil navigateur s'exécute gratuitement sur votre appareil. Les appels API utilisent le solde KIT prépayé à $0.002 par élément réussi ; les échecs de validation ne sont pas facturés.