Calculateur de jours de stock
Voyez combien de temps votre stock attend avant d'être vendu : 50000 de stock moyen face à 365000 de coût des ventes annuel font 50 jours de stock. Valable pour une année, un trimestre ou la période de votre choix. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Stock moyen
- 50 000
- Coût des marchandises vendues
- 365 000
- Jours
- 365
- Coût des ventes quotidien moyen
- 1 000
- Jours de stock
- 50
- Rotation des stocks
- 7,3
Les jours de stock — aussi appelés délai de rotation des stocks, jours de ventes de stocks ou période de détention des stocks — répondent à une question de besoin en fonds de roulement que toute entreprise commerciale ou industrielle finit par se poser : combien de jours, en moyenne, cette société met-elle à transformer le stock en coût des marchandises vendues ? Le chiffre n'est pas une estimation tirée d'un instantané d'entrepôt. C'est un rapport en forme fermée : le stock moyen divisé par le coût des marchandises vendues de la même fenêtre, puis multiplié par le nombre de jours de cette fenêtre. Ce calculateur de jours de stock accepte ces deux totaux du grand livre, éventuellement une durée de période qui vaut par défaut une année de 365 jours, et renvoie le DIO ainsi que le coût quotidien moyen des marchandises vendues.
Comment se calculent les jours de stock et le délai de rotation des stocks
Les jours de stock et le délai de rotation des stocks sont la même identité de fonds de roulement écrite sous deux noms de cours. Commencez par le stock moyen au bilan : en général la moyenne des stocks d'ouverture et de clôture, ou le solde de fin si c'est la convention que votre clôture utilise déjà. Associez-le au coût des marchandises vendues du compte de résultat sur une fenêtre concordante : une année civile, un trimestre ou une période que vous choisissez.
Divisez le stock moyen par le coût des marchandises vendues pour obtenir la fraction du livre de coûts de la période qui reste en entrepôt. Multipliez cette fraction par le nombre de jours de la fenêtre. Le produit est le DIO, le nombre moyen de jours qu'un dollar de stock reste en main avant d'être constaté en coût des marchandises vendues.
Lorsque vous omettez days, le point d'accès prend 365 par défaut, la convention annuelle des manuels. Une année bancaire de 360 jours ou un trimestre de 90 n'est qu'une autre valeur de days — la formule ne change pas. Un stock nul avec un coût des marchandises vendues positif est un cas légitime de livres propres : le DIO vaut zéro parce que rien n'attend d'être vendu.
Un stock négatif est rejeté. Un coût des marchandises vendues de zéro est rejeté parce qu'il diviserait par zéro et laisserait le DIO indéfini. Un coût des marchandises vendues négatif est rejeté pour la même raison.
L'arithmétique est une poignée d'opérations finies ; il n'y a pas d'ancienneté par SKU, pas de couche FIFO, ni de prévision de ce qui quittera l'entrepôt la semaine prochaine.
Où un calculateur de jours de stock justifie sa place
Les contrôleurs et trésoriers utilisent un calculateur de jours de stock à la clôture pour transformer deux lignes de balance de vérification en une seule métrique opérationnelle qu'ils peuvent poser à côté des cycles de production ou d'achat déclarés et voir si le livre tourne vraiment le stock selon cette promesse.
Les responsables des opérations et de la chaîne logistique comparent le DIO de cette année à celui de l'année précédente et à la médiane des pairs avant de changer le stock de sécurité, les quantités commandées ou le rythme des démarques. Prêteurs et analystes de souscription versent les deux mêmes totaux dans une feuille de covenants afin qu'une période de stock qui s'allonge soit visible avant de devenir une surprise de conversion de trésorerie. Une validation en échec ne consomme pas de solde.
Cas d’usage
Clôture de mois et d'exercice
Transformez le stock moyen et le coût des marchandises vendues de la période en jours de stock à côté des cibles de cycle avant de verrouiller la liasse de clôture.
Revues de chaîne logistique et de démarque
Comparez les jours de stock de cette fenêtre à l'année précédente ou à un ensemble de pairs avant de changer le stock de sécurité, les quantités commandées ou le rythme des démarques.
Feuilles de covenants et de souscription
Versez les deux mêmes totaux du livre dans une feuille du prêteur ou du conseil afin qu'une période de stock plus longue apparaisse avant que la conversion de trésorerie ne glisse.
Questions fréquentes
Comment calcule-t-on les jours de stock ?
Si days est omis, il vaut 365. Les deux voies sont le même rapport.
Faut-il utiliser le stock de clôture ou le stock moyen ?
Les deux conventions valent si vous restez cohérent. La formule ne moyenne pas deux soldes à votre place.
Puis-je calculer un DIO trimestriel ou sur 360 jours ?
Oui. Fixez days à 90 pour un trimestre, 360 pour une année bancaire ou toute autre durée positive. Omettez days pour utiliser l'année de 365 jours des manuels.
Quel lien entre la rotation des stocks et le DIO ?
La rotation est le coût des ventes divisé par le stock moyen : 7,3 dans l'exemple de 50000 face à 365000. Le DIO est le nombre de jours de la période divisé par cette rotation.
Le stock ou le coût des ventes peuvent-ils valoir zéro ?
Un stock nul est valable et donne un DIO nul : rien n'attend d'être vendu. Un coût des ventes nul est refusé, car il faudrait diviser par zéro et le résultat n'existe pas.
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/days-inventory-outstanding \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"average_inventory":50000,"cost_of_goods_sold":365000}'const res = await fetch("https://api.kit.forhosting.com/fin/days-inventory-outstanding", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"average_inventory": 50000,
"cost_of_goods_sold": 365000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/days-inventory-outstanding",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"average_inventory": 50000,
"cost_of_goods_sold": 365000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/days-inventory-outstanding", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"average_inventory":50000,"cost_of_goods_sold":365000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"average_inventory":50000,"cost_of_goods_sold":365000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/days-inventory-outstanding", 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
{
"average_inventory": 50000,
"cost_of_goods_sold": 365000
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.days_inventory_outstanding",
"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
Un coût des marchandises vendues nul rend le rapport indéfini, si bien que la tâche échoue avec invalid_input et n'est pas facturée.
Comment se calculent les jours de stock et le délai de rotation des stocks
De façon équivalente, formez d'abord le coût quotidien moyen des marchandises vendues comme cost_of_goods_sold divisé par days, puis divisez le stock moyen par ce rythme quotidien ; les deux voies sont algébriquement identiques et cette capacité utilise la première. La rotation des stocks, indiquée lorsque average_inventory est positif, est le coût des marchandises vendues divisé par le stock moyen, et le DIO est alors days divisé par cette rotation.
Contrat d'entrée, forme de la réponse et erreurs
Si days est fourni et n'est pas supérieur à zéro, la requête échoue. Ces échecs ne sont pas facturés. Exemple : cinquante mille de stock moyen contre trois cent soixante-cinq mille de coût annuel des marchandises vendues produisent une figure de cinquante jours de stock et mille de coût quotidien moyen des marchandises vendues. Envoyez par POST un corps JSON avec deux nombres finis obligatoires et une durée de période facultative. average_inventory est le chiffre de stock de la fenêtre (moyenne d'ouverture et de clôture, ou stock de clôture si c'est la convention que vous utilisez déjà en interne) ; les alias inventory et avg_inventory pointent vers le même champ. cost_of_goods_sold est le coût des marchandises vendues de la même fenêtre ; les alias cogs et cogs_sold sont acceptés pour que les livres conservent le nom de leurs colonnes. days est le nombre de jours de cette fenêtre et vaut 365 lorsqu'il est omis ; les alias period_days, days_in_period et number_of_days sont acceptés. 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 échouent avec invalid_input en nommant le champ. Si cost_of_goods_sold est zéro ou négatif, le gestionnaire refuse la requête avec un message indiquant que le coût des marchandises vendues ne peut pas être zéro, car le DIO est alors indéfini. Si average_inventory est négatif, la requête échoue. En cas de succès, le corps répète average_inventory, cost_of_goods_sold et days, puis indique average_daily_cogs et days_inventory_outstanding. Lorsque le stock est positif, le corps inclut aussi inventory_turnover. Associez le JSON à votre propre ancienneté par SKU si vous avez besoin du récit d'entrepôt ; ce point d'accès renvoie la moyenne de la période, pas un calendrier de lots.
Où un calculateur de jours de stock justifie sa place
Comme l'implémentation est du parse pur 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. Gardez cost_of_goods_sold strictement positif, average_inventory non négatif, figez dans les tests le chiffre de jours arrondi, et vous obtenez des jours de stock reproductibles pour listes de clôture, greffons LMS et workers de périphérie sans dresser un moteur d'entrepôt à vous.
Questions techniques
Que se passe-t-il si le coût des marchandises vendues est zéro ?
La tâche échoue avec invalid_input. cost_of_goods_sold doit être un nombre fini supérieur à zéro ; un chiffre nul rend les jours de stock indéfinis et n'est pas facturé.
Combien coûte le calculateur de jours de stock ?
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.