Calculateur de budget restant
Avec 5 000 de revenus et 2 700 dépensés en logement, alimentation, transport, charges et abonnements, il reste 2 300 : un excédent. Indiquez vos revenus et vos dépenses par catégorie pour voir ce qui reste sur la période. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Revenu
- 5 000
- Nombre de dépenses
- 5
- Dépenses totales
- 2 700
- Restant
- 2 300
- Statut
- surplus
Ce calculateur de budget restant soustrait une liste de dépenses classées du revenu total et indique si la période se clôt en excédent ou en déficit. Envoyez un income fini et non négatif et au moins une ligne de dépense avec une étiquette category et un amount ; le moteur additionne chaque amount, calcule remaining égal à income moins ce total, et classe le signe en surplus, deficit ou balanced. Il n'y a ni trajectoire d'inflation, ni barème fiscal, ni conversion de devises : seulement une soustraction déterministe que vous pouvez figer dans des tests et afficher à côté du détail par catégorie.
Ce que le budget restant signifie et comment l'excédent ou le déficit est signé
Le budget restant est ce qui reste après que chaque dépense listée a été retirée du revenu de la même période : un mois, un cycle de paie ou une enveloppe de projet. Ce calculateur ne prévoit pas l'inflation, ne convertit pas les devises et n'applique pas de barèmes fiscaux.
Il lit un income fini et non négatif et une liste de lignes de dépense classées, chacune avec une étiquette category et un amount dans la même monnaie, puis applique l'identité fermée remaining égal à income moins la somme de ces montants. Un reliquat positif est un surplus ; un reliquat négatif est un deficit dont la magnitude est le manque ; un reliquat nul est balanced.
Les étiquettes category voyagent dans la réponse afin qu'un foyer, une classe ou un script montre quelle part de la dépense s'est logée dans le logement, l'alimentation ou le transport. share est l'amount de la ligne divisé par le total des dépenses, ou zéro lorsque ce total est zéro. L'income lui-même doit être non négatif et fini.
Où un calculateur de budget restant rend service
Les foyers utilisent un calculateur de budget restant lorsqu'un salaire arrive et que le loyer, les courses, le trajet, les factures et les abonnements ont besoin d'un seul chiffre de reliquat avant de planifier la dépense discrétionnaire. Les élèves rencontrent la même identité dans des unités de finances personnelles qui demandent si une enveloppe mensuelle est en excédent ou en déficit selon une liste de dépenses étiquetée.
Les enseignants peuvent produire des corrigés pour des revenus modestes sans se fier à des applications opaques qui mêlent règles de taux d'épargne ou inflation à une simple soustraction. Les outils d'accompagnement utilisent le montant de surplus ou de deficit à côté d'une barre de progression afin que l'apprenant voie le reliquat, non un mur de lignes brutes.
Cas d’usage
Reliquat du salaire du foyer
Soustrayez loyer, alimentation, transport et factures du salaire net pour voir si le mois se clôt en excédent ou en déficit.
Contrôles d'enveloppe en classe
Donnez aux élèves une liste de dépenses étiquetée et un revenu connu afin qu'ils vérifient le budget restant contre la clé d'excédent ou de déficit.
Jeux d'essai déterministes de budget
Alimentez des calculateurs de CI et de produit avec des valeurs stables de remaining, surplus et deficit à partir d'un income et de dépenses classées connus.
Questions fréquentes
Comment le budget restant est-il calculé ?
remaining = income − somme de chaque amount de dépense. Un reliquat positif est surplus ; un reliquat négatif est deficit (rapporté comme un manque positif) ; zéro est balanced.
Que se passe-t-il si un amount de dépense est négatif ?
Dans ce calculateur, les valeurs de dépense ne peuvent pas être négatives, et une validation échouée n'est pas facturée.
Quels champs dois-je envoyer ?
Chaque ligne de dépense exige un category non vide et un amount non négatif.
Que signifie status dans la réponse ?
status vaut surplus lorsque remaining est positif, deficit lorsque remaining est négatif, et balanced lorsque remaining est exactement zéro après l'arrondi à deux décimales.
Le calculateur montre-t-il la part de chaque catégorie ?
Oui. À côté de chaque catégorie s'affiche sa part du total des dépenses. Dans l'exemple, le logement, avec 1 800 sur 2 700, représente deux tiers de tout ce qui est dépensé, ce qui montre tout de suite où pèse le budget.
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/fin/budget \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"income":5000,"expenses":[{"category":"Housing","amount":1800},{"category":"Food","amount":450},{"category":"Transport","amount":220},{"category":"Utilities","amount":180},{"category":"Subscriptions","amount":50}]}'const res = await fetch("https://api.kit.forhosting.com/fin/budget", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"income": 5000,
"expenses": [
{
"category": "Housing",
"amount": 1800
},
{
"category": "Food",
"amount": 450
},
{
"category": "Transport",
"amount": 220
},
{
"category": "Utilities",
"amount": 180
},
{
"category": "Subscriptions",
"amount": 50
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/budget",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"income": 5000,
"expenses": [
{
"category": "Housing",
"amount": 1800
},
{
"category": "Food",
"amount": 450
},
{
"category": "Transport",
"amount": 220
},
{
"category": "Utilities",
"amount": 180
},
{
"category": "Subscriptions",
"amount": 50
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/budget", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"income":5000,"expenses":[{"category":"Housing","amount":1800},{"category":"Food","amount":450},{"category":"Transport","amount":220},{"category":"Utilities","amount":180},{"category":"Subscriptions","amount":50}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"income":5000,"expenses":[{"category":"Housing","amount":1800},{"category":"Food","amount":450},{"category":"Transport","amount":220},{"category":"Utilities","amount":180},{"category":"Subscriptions","amount":50}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/budget", 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
{
"income": 5000,
"expenses": [
{
"category": "Housing",
"amount": 1800
},
{
"category": "Food",
"amount": 450
},
{
"category": "Transport",
"amount": 220
},
{
"category": "Utilities",
"amount": 180
},
{
"category": "Subscriptions",
"amount": 50
}
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.budget",
"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
Les montants de dépense négatifs sont rejetés avec invalid_input car, dans ce modèle, une ligne de dépense ne peut pas être inférieure à zéro. La même arithmétique pure alimente l'outil gratuit du navigateur et la voie API, de sorte qu'une feuille ménagère et un script d'automatisation ne divergent jamais sur le reliquat.
Ce que le budget restant signifie et comment l'excédent ou le déficit est signé
Les valeurs de dépense négatives sortent du modèle : une ligne de dépense ne peut pas être inférieure à zéro, donc le moteur échoue avec invalid_input en nommant la ligne fautive au lieu de transformer en silence un remboursement en crédit. Le parcours est une arithmétique pure, sans Date, sans aléa et sans E/S réseau, de sorte que les mêmes entrées produisent toujours le même JSON et le même montant de surplus ou de deficit que vous pouvez figer dans une feuille ou un test unitaire.
Contrat d'entrée, lignes rejetées et forme d'une réponse réussie
Chaque objet exige category, une chaîne non vide après trim, et amount, un nombre fini non négatif. Si un amount de dépense est négatif, la requête est rejetée avec un message indiquant que les valeurs de dépense ne peuvent pas être négatives : c'est le contrat dur de ce calculateur, et ces échecs ne sont pas facturés. Les champs d'argent sont arrondis à deux décimales ; les parts share en utilisent douze. Les clés de sortie facultatives sont omises plutôt que fixées à null. Envoyez par POST un corps JSON avec deux champs obligatoires. income est l'argent total disponible pour la période ; les alias total_income, salary et revenue sont acceptés afin que tableurs et formulaires typés réutilisent le même contrat. expenses est un tableau non vide d'un à deux cents objets ; les alias items, costs et spending désignent la même liste. Sur chaque ligne, les alias value et cost de amount sont honorés. Les chaînes numériques qui s'analysent comme des décimaux finis sont acceptées ; les chaînes vides, NaN et Infinity échouent avec invalid_input en nommant le champ. Un income manquant, une liste expenses manquante ou vide, un category manquant ou plus de deux cents lignes échouent aussi. En cas de succès, le corps renvoie income, expense_count et les lignes nettoyées avec share ; il indique total_expenses, remaining, status (surplus, deficit ou balanced), surplus (remaining s'il est positif, sinon zéro), deficit (le manque absolu lorsque remaining est négatif, sinon zéro) et une chaîne formula.
Où un calculateur de budget restant rend service
Sur cette page, le travail s'exécute entièrement dans le navigateur ; via l'API, chaque consultation réussie coûte $0.002, une validation échouée n'est pas facturée et rien n'est stocké après le renvoi de la réponse. Associez l'exécution interactive gratuite à l'API tarifée identique lorsque vous passez d'une démonstration sur feuille à un pipeline automatisé sans changer le résultat mathématique ni réimplémenter la soustraction.
Questions techniques
Combien coûte le calculateur de budget ?
L'outil du navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.