Calculateur de stock de clôture
Avec 10 000 de stock d'ouverture, 25 000 d'achats nets et des ventes au coût de 20 000, il doit rester 15 000 en stock dans les comptes, sur 35 000 disponibles à la vente. Saisissez les trois totaux de 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
- Stock initial
- 10 000
- Achats nets
- 25 000
- Coût des marchandises vendues
- 20 000
- Marchandises disponibles à la vente
- 35 000
- Stock final
- 15 000
Le stock de clôture — aussi appelé inventaire final ou stock final — est l'identité commerciale qui relie le chiffre de stock du bilan aux achats de la période et au coût des marchandises vendues. Tout détaillant, grossiste ou fabricant qui tient un inventaire permanent ou intermittent finit par se poser la même question de clôture : après les achats de cette période et le coût des marchandises vendues de cette période, quelle valeur reste-t-il en entrepôt ? Le chiffre n'est pas un inventaire physique. C'est une identité de forme fermée : stock d'ouverture plus achats nets moins coût des marchandises vendues. Ce calculateur de stock de clôture accepte ces trois totaux du grand livre, refuse toute entrée négative et renvoie la valeur du stock de clôture ainsi que les marchandises disponibles à la vente comme intermédiaire.
Comment se calculent le stock de clôture, l'inventaire final et les marchandises disponibles à la vente
L'identité d'inventaire commercial est la même équation de manuel écrite sous plusieurs noms de cours : stock de clôture, inventaire final et stock final. Commencez par le stock d'ouverture au bilan — les marchandises déjà en main au début de la fenêtre, aussi appelées stock initial ou inventaire d'ouverture. Ajoutez les achats nets de la même fenêtre.
Les achats nets sont les achats de marchandises moins les retours et avoirs sur achats moins les escomptes sur achats, plus le fret à l'entrée lorsque c'est la convention que votre clôture utilise déjà ; ce calculateur ne ventile pas ces quatre lignes pour vous — vous envoyez le total déjà netté. La somme du stock d'ouverture et des achats nets est le coût des marchandises disponibles à la vente, le gisement de marchandises qui aurait pu être vendu pendant la période.
Retranchez de ce gisement le coût des marchandises vendues. Le reste est le stock de clôture, les marchandises qui devraient encore figurer aux livres à la clôture. De façon équivalente, le stock de clôture est égal au stock d'ouverture plus les achats nets moins le coût des marchandises vendues ; les deux voies sont algébriquement identiques et cette capacité utilise cette forme, tout en indiquant les marchandises disponibles à la vente comme intermédiaire.
Un stock d'ouverture nul est un premier exercice légitime : l'entrepôt démarre vide et le stock de clôture n'est que les achats nets moins le coût des marchandises vendues. Des achats nets nuls sont une fenêtre sans achat légitime. Un coût des marchandises vendues nul est une fenêtre sans vente légitime, dans laquelle le stock de clôture coïncide avec les marchandises disponibles à la vente.
L'arithmétique est une poignée d'additions finies et une soustraction ; il n'y a pas d'ancienneté par SKU, pas de couche FIFO ou LIFO, pas d'inventaire physique, ni de prévision de ce qui quittera l'entrepôt la semaine prochaine. Si le coût des marchandises vendues dépasse les marchandises disponibles à la vente, l'identité renvoie tout de même un stock de clôture négatif plutôt que d'échouer : c'est une incohérence de livres que l'appelant peut voir, non une erreur de validation d'entrée.
Où un calculateur de stock de clôture gagne sa place
Contrôleurs et teneurs de livres utilisent un calculateur de stock de clôture à la clôture pour transformer trois lignes de la balance de vérification en chiffre de stock final qu'ils passent avant de verrouiller le dossier, puis comparent ce chiffre de livre à un inventaire physique afin que la démarque inconnue apparaisse comme un écart et non comme un bouchon silencieux.
Acheteurs et merchandisers vérifient la même identité lorsqu'ils planifient la commande suivante : si le stock d'ouverture plus les achats nets prévus moins le coût des marchandises vendues prévu laisserait l'entrepôt trop mince ou trop lourd, le plan d'achat change avant l'expédition. Auditeurs et prêteurs versent les mêmes trois totaux dans une liasse de travail ou une feuille de covenants afin qu'un stock de clôture qui ne découle pas des achats et du coût des marchandises vendues soit vu avant de devenir un retraitement.
C'est une recherche et un travail différents des jours de stock, de la rotation des stocks, d'une couche FIFO et d'un inventaire physique : ces outils partent d'autres entrées et répondent à d'autres questions. Une validation en échec ne consomme pas le solde. Conservez les trois champs non négatifs et finis, figez dans les tests le stock de clôture arrondi, et vous obtenez un chiffre de stock final reproductible pour les listes de clôture, les oracles de cours et les workers de bord, sans dresser un moteur d'entrepôt à vous.
Cas d’usage
Clôture de mois et d'exercice
Transformez le stock d'ouverture, les achats nets et le coût des marchandises vendues en chiffre de stock de clôture passé avant de verrouiller le dossier, puis comparez-le à un inventaire physique.
Planification des achats et du réassort
Projetez le stock de clôture à partir du stock d'ouverture, des achats nets prévus et du coût des marchandises vendues attendu avant de changer une quantité commandée ou le rythme des démarques.
Liasses d'audit et feuilles de prêteur
Versez les mêmes trois totaux du grand livre dans une liasse de travail afin qu'un stock de clôture qui ne découle pas des achats et du coût des marchandises vendues soit visible avant la signature.
Questions fréquentes
Comment calcule-t-on le stock de clôture ?
De façon équivalente, additionnez le stock d'ouverture et les achats nets pour obtenir les marchandises disponibles à la vente, puis retranchez le coût des marchandises vendues. Les deux voies sont la même identité.
Que se passe-t-il si une entrée est négative ?
Le stock d'ouverture, les achats nets et le coût des marchandises vendues doivent chacun être un nombre fini supérieur ou égal à zéro ; un total de grand livre négatif n'est pas facturé.
Que sont les achats nets ? Envoie-t-on les achats bruts ?
Envoyez le chiffre déjà netté : achats moins retours et avoirs sur achats moins escomptes sur achats, plus le fret à l'entrée s'il entre dans votre clôture. Le calculateur ne ventile pas ces lignes.
Le stock de clôture peut-il ressortir négatif ?
Oui, si le coût des marchandises vendues dépasse le stock d'ouverture plus les achats nets. Ce résultat est renvoyé plutôt que rejeté afin que vous voyiez l'incohérence de livres. Les entrées négatives, elles, sont rejetées.
Le calculateur utilise-t-il le FIFO ou le LIFO ?
Aucun des deux. Il applique l'identité du stock à des totaux que vous avez déjà, sans couches de coût, sans ancienneté des articles ni inventaire physique. La méthode de valorisation choisie est déjà comprise dans les totaux saisis.
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/ending-inventory \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"beginning_inventory":10000,"net_purchases":25000,"cost_of_goods_sold":20000}'const res = await fetch("https://api.kit.forhosting.com/fin/ending-inventory", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"beginning_inventory": 10000,
"net_purchases": 25000,
"cost_of_goods_sold": 20000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/ending-inventory",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"beginning_inventory": 10000,
"net_purchases": 25000,
"cost_of_goods_sold": 20000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/ending-inventory", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"beginning_inventory":10000,"net_purchases":25000,"cost_of_goods_sold":20000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"beginning_inventory":10000,"net_purchases":25000,"cost_of_goods_sold":20000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/ending-inventory", 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
{
"beginning_inventory": 10000,
"net_purchases": 25000,
"cost_of_goods_sold": 20000
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.ending_inventory",
"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
Comment se calculent le stock de clôture, l'inventaire final et les marchandises disponibles à la vente
Un stock d'ouverture, des achats nets ou un coût des marchandises vendues négatifs sont rejetés : un total de grand livre ne peut pas être négatif pour cette identité, et la tâche échoue avec invalid_input au lieu d'inventer un entrepôt signé.
Contrat d'entrée, forme de la réponse et comportement en cas d'erreur
Si l'une des trois entrées est négative, le gestionnaire refuse la requête avec un message indiquant que le champ ne peut pas être négatif ; ces échecs ne sont pas facturés. Zéro est autorisé sur chaque champ. Exemple : dix mille de stock d'ouverture, vingt-cinq mille d'achats nets et vingt mille de coût des marchandises vendues produisent trente-cinq mille de marchandises disponibles à la vente et quinze mille de stock de clôture. Envoyez par POST un corps JSON avec trois nombres finis obligatoires dans une seule monnaie. beginning_inventory est le stock d'ouverture de la fenêtre ; les alias beginning_stock, opening_inventory et opening_stock pointent vers le même champ afin que la feuille conserve le nom de ses colonnes. net_purchases sont les achats de marchandises déjà nettes de la même fenêtre ; les alias purchases, net_purchase et merchandise_purchases sont acceptés. cost_of_goods_sold est le coût des marchandises vendues de la même fenêtre ; les alias cogs, cost_of_sales et cogs_sold sont acceptés pour que les livres conservent le nom de leurs colonnes. Chaque champ numérique peut arriver comme nombre JSON ou chaîne numérique. Les champs absents, les chaînes vides et les valeurs non finies — NaN, Infinity ou texte qui ne s'interprète pas comme un nombre — échouent avec invalid_input en nommant le champ. En cas de succès, le corps répète beginning_inventory, net_purchases et cost_of_goods_sold, indique goods_available_for_sale comme stock d'ouverture plus achats nets et ending_inventory comme ce sous-total moins le coût des marchandises vendues, tous deux arrondis half-up à deux décimales, plus une chaîne de formule qui réaffirme l'identité. Associez le JSON à votre propre inventaire physique ou à vos couches FIFO si vous avez besoin du récit d'entrepôt ; ce point d'accès renvoie l'identité de la période, pas un calendrier de lots, pas un coût unitaire et pas une conversion de devises.
Où un calculateur de stock de clôture gagne sa place
Parce que l'implémentation est parse pure de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant.
Questions techniques
Combien coûte le calculateur de stock de clôture ?
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.