Calculateur FIFO des stocks
Achetez 100 unités à 10 et 50 à 12, vendez-en 120 : FIFO donne un coût des ventes de 1 240 et un stock final de 360, soit les 30 dernières unités à 12. Saisissez les lots du plus ancien au plus récent. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Unités vendues
- 120
- Nombre d'achats
- 2
- Unités disponibles
- 150
- Unités restantes
- 30
- Marchandises disponibles
- 1 600
La valorisation des stocks selon le premier entré, premier sorti répond à une question de clôture qu'une seule identité commerciale ne peut résoudre : étant donné les lots d'achat encore en rayon et les unités parties, quelle est la valeur du stock final et quel est le coût des marchandises vendues ? Le FIFO traite les unités les plus anciennes comme vendues en premier, si bien que le stock restant est valorisé aux coûts unitaires les plus récents. Ce calculateur FIFO des stocks accepte une liste ordonnée de lots d'achat — unités et coût unitaire par lot, le plus ancien d'abord — plus les unités vendues, consomme ces unités depuis le front de la file et renvoie à la fois la valeur du stock final et le coût des marchandises vendues.
Comment la valorisation FIFO transforme les lots d'achat en CMV et stock final
Le premier entré, premier sorti est une hypothèse de flux de coûts, non un plan d'entrepôt. Vous envoyez les lots d'achat en ordre chronologique, le lot le plus ancien d'abord : chaque ligne est une quantité d'unités achetées à un coût unitaire déclaré. Le stock d'ouverture est simplement le premier lot si ces unités sont arrivées la période précédente et figurent encore en livres ; il n'y a ni champ distinct de stock d'ouverture ni tampon de date, car le moteur ne lit jamais une horloge.
Les unités vendues sont ensuite détachées des lots restants les plus anciens jusqu'à ce que la quantité vendue soit satisfaite. Le coût des marchandises vendues est la somme des unités prises sur chaque lot consommé multipliée par le coût unitaire de ce lot. Le stock final est la somme des unités encore présentes dans les lots ultérieurs multipliée par les coûts unitaires de ces lots.
Les deux chiffres se reportent sur les marchandises disponibles — le coût total de chaque unité dont vous êtes parti —, qui est la même identité que les livres commerciaux utilisent, sauf qu'ici les deux côtés sont dérivés des lots plutôt que d'une ligne bouchon de coût des marchandises vendues. Parcours de manuel : cent unités à dix, puis cinquante unités à douze, et cent vingt unités vendues.
Le FIFO prend le premier lot entier (mille de coût) et vingt unités du second lot (deux cent quarante), si bien que le coût des marchandises vendues est mille deux cent quarante et le stock final les trente unités restantes à douze, soit trois cent soixante. Si les unités vendues égalent les unités disponibles, le stock final est zéro et chaque lot est consommé. Si les unités vendues sont zéro, le coût des marchandises vendues est zéro et le stock final égale les marchandises disponibles.
Ce que ce calculateur ne fait pas, c'est trier les lots selon une date de calendrier, appliquer le dernier entré premier sorti, calculer un coût unitaire moyen pondéré, convertir des devises ou reconstruire l'identité en trois lignes stock d'ouverture plus achats nets moins coût des marchandises vendues. Envoyez les lots déjà ordonnés ; le moteur ne fait que les parcourir depuis le front et renvoie les deux valeurs.
Où un calculateur FIFO des stocks gagne sa place
Les contrôleurs et les teneurs de livres utilisent un calculateur FIFO des stocks à la clôture pour transformer les lots d'achat de la période et les unités vendues en les deux chiffres dont le compte de résultat et le bilan ont tous deux besoin : le coût des marchandises vendues et le stock final sous l'hypothèse de flux de coûts premier entré, premier sorti que leur politique nomme déjà.
Les dossiers fiscaux des juridictions qui exigent ou autorisent le FIFO ont besoin du même parcours figé, non d'une feuille qui a réordonné les lots en silence. Les auditeurs et les prêteurs versent les mêmes lots dans un papier de travail afin qu'un stock de clôture qui ne découle pas des lots les plus anciens soit visible avant la signature.
Les merchandisers qui achètent sur des marchés en hausse utilisent le FIFO parce que le stock restant est valorisé à des coûts unitaires plus récents, en général plus élevés, et ils veulent cette valorisation sans reconstruire un moteur d'inventaire permanent. C'est une recherche et un travail distincts de l'identité commerciale qui soustrait un coût des marchandises vendues donné du stock d'ouverture plus les achats nets, des jours de stock, de la rotation des stocks et d'un inventaire physique : ces outils partent d'autres entrées et répondent à d'autres questions.
Une validation échouée ne consomme pas de solde. Gardez les lots en ordre de premier entré, les unités vendues dans les unités en main, figez les chiffres arrondis dans les tests, et vous obtenez une clôture FIFO reproductible pour listes de contrôle, oracles de classe et workers de bord sans dresser un moteur d'entrepôt à vous.
Cas d’usage
Clôture FIFO de mois et d'exercice
Transformez les lots d'achat ordonnés et les unités vendues en coût des marchandises vendues et stock final avant de verrouiller le pack, puis comparez les couches restantes à un inventaire physique.
CMV du compte de résultat sous politique FIFO
Valorisez les unités sorties aux coûts unitaires restants les plus anciens afin que la ligne de coût des marchandises vendues corresponde à une politique comptable premier entré, premier sorti, et non à une moyenne pondérée.
Dossiers d'audit et tableaux fiscaux FIFO
Versez les mêmes lots dans un papier de travail afin qu'un stock de clôture qui ne découle pas des lots les plus anciens soit visible avant la signature.
Questions fréquentes
Comment calcule-t-on la valorisation FIFO des stocks ?
Envoyez les lots d'achat, le plus ancien d'abord, plus les unités vendues. Le calculateur consomme les unités depuis le front de la file. Le coût des marchandises vendues est celui des unités consommées ; le stock final est celui des unités encore dans les lots ultérieurs. Les deux se reportent sur les marchandises disponibles.
Que se passe-t-il si les unités vendues dépassent le stock disponible ?
Les unités vendues doivent être un nombre fini supérieur ou égal à zéro et ne doivent pas dépasser la somme des unités des lots ; la survente n'est pas facturée.
Comment envoyer le stock d'ouverture ?
Placez le stock d'ouverture comme premier lot d'achat (le plus ancien). Il n'y a ni champ distinct de stock d'ouverture ni tampon de date : l'ordre chronologique est l'ordre du tableau.
Est-ce la même chose que stock final égal ouverture plus achats moins CMV ?
Non. Cette identité commerciale part de trois totaux de grand livre et ne parcourt pas les lots. Ce calculateur dérive le stock final et le coût des marchandises vendues à partir des lots d'achat sous FIFO.
Le calculateur gère-t-il aussi le LIFO ou le coût moyen pondéré ?
Non. Il applique uniquement le premier entré, premier sorti, en prélevant les unités vendues sur les lots les plus anciens. Il ne trie pas non plus les lots par date : saisissez-les déjà dans l'ordre d'achat.
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/fifo-for-inventories \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"purchases":[{"units":100,"unit_cost":10},{"units":50,"unit_cost":12}],"units_sold":120}'const res = await fetch("https://api.kit.forhosting.com/fin/fifo-for-inventories", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"purchases": [
{
"units": 100,
"unit_cost": 10
},
{
"units": 50,
"unit_cost": 12
}
],
"units_sold": 120
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fin/fifo-for-inventories",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"purchases": [
{
"units": 100,
"unit_cost": 10
},
{
"units": 50,
"unit_cost": 12
}
],
"units_sold": 120
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fin/fifo-for-inventories", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"purchases":[{"units":100,"unit_cost":10},{"units":50,"unit_cost":12}],"units_sold":120}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"purchases":[{"units":100,"unit_cost":10},{"units":50,"unit_cost":12}],"units_sold":120}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fin/fifo-for-inventories", 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
{
"purchases": [
{
"units": 100,
"unit_cost": 10
},
{
"units": 50,
"unit_cost": 12
}
],
"units_sold": 120
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.fifo_for_inventories",
"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.
Limites
max_items | 200 |
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
Si les unités vendues dépassent les unités en main, la tâche échoue avec invalid_input au lieu d'inventer un entrepôt négatif.
Contrat d'entrée, forme de la réponse et comportement en cas d'erreur
Zéro unité vendue est autorisé. Les montants d'argent sont arrondis half-up à deux décimales. Exemple : cent unités à dix plus cinquante unités à douze avec cent vingt vendues donnent mille deux cent quarante de coût des marchandises vendues et trois cent soixante de stock final, avec trente unités restantes dans le second lot. Envoyez par POST un corps JSON avec deux champs obligatoires. purchases est un tableau non vide d'objets lot, au plus deux cents lignes, chacune avec units strictement supérieur à zéro et unit_cost supérieur ou égal à zéro ; les alias batches, lots et layers pointent vers la même liste afin que la feuille conserve le nom de ses colonnes. Sur chaque ligne, quantity et qty sont des alias de units, et cost, price et cost_per_unit des alias de unit_cost. units_sold est la quantité sortie pendant la période ; les alias sold, quantity_sold et qty_sold sont acceptés. Chaque champ numérique peut arriver comme nombre JSON ou comme chaîne numérique. Les champs manquants, les chaînes vides et les valeurs non finies — NaN, Infinity ou un texte qui ne s'interprète pas comme un nombre — échouent avec invalid_input en nommant le champ. Un coût unitaire négatif, un units_sold négatif ou un lot dont les units sont zéro ou négatives est refusé et n'est pas facturé. En cas de succès, le corps indique purchase_count, units_available, units_sold, units_remaining, goods_available comme le coût total de chaque lot, cost_of_goods_sold, ending_inventory, remaining_layers comme les lots restants avec units, unit_cost et value, et une chaîne de formule qui reformule le parcours FIFO. Associez le JSON à votre propre inventaire physique si vous avez besoin du récit d'entrepôt ; ce point de terminaison renvoie la valorisation par flux de coûts, non un inventaire cyclique, non le LIFO et non une conversion de devises.
Où un calculateur FIFO des stocks 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
Que coûte le calculateur FIFO des stocks ?
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.