Calculadora FIFO de inventario
Compre 100 unidades a 10 y 50 a 12, venda 120, y FIFO da un coste de lo vendido de 1.240 y unas existencias finales de 360: las 30 unidades más recientes a 12. Introduzca los lotes del más antiguo al más nuevo. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Unidades vendidas
- 120
- Cantidad de compras
- 2
- Unidades disponibles
- 150
- Unidades restantes
- 30
- Mercancía disponible
- 1 600
La valoración de inventario por primero en entrar, primero en salir responde a una pregunta de cierre que una sola identidad mercantil no puede resolver: dados los lotes de compra que siguen en el estante y las unidades que salieron, ¿cuánto valen las existencias finales y cuál es el coste de las mercancías vendidas? FIFO trata las unidades más antiguas como las primeras vendidas, de modo que el stock restante se valora a los costes unitarios más recientes. Esta calculadora FIFO de inventario acepta una lista ordenada de lotes de compra —unidades y coste unitario por lote, el más antiguo primero— más las unidades vendidas, consume esas unidades desde el frente de la cola y devuelve tanto el valor del inventario final como el coste de las mercancías vendidas.
Cómo la valoración FIFO convierte lotes de compra en COGS e inventario final
El primero en entrar, primero en salir es una hipótesis de flujo de costes, no un mapa de almacén. Usted envía los lotes de compra en orden cronológico, el lote más antiguo primero: cada fila es una cantidad de unidades compradas a un coste unitario declarado. Las existencias de apertura son simplemente el primer lote si esas unidades llegaron el período anterior y siguen en libros; no hay un campo aparte de inventario inicial ni un sello de fecha, porque el motor nunca lee un reloj.
Las unidades vendidas se despegan entonces de los lotes restantes más antiguos hasta satisfacer la cantidad vendida. El coste de las mercancías vendidas es la suma de las unidades tomadas de cada lote consumido por el coste unitario de ese lote. El inventario final es la suma de las unidades que aún reposan en lotes posteriores por los costes unitarios de esos lotes.
Las dos cifras vuelven a sumar las mercancías disponibles —el coste total de cada unidad con la que se partió—, que es la misma identidad que usan los libros mercantiles, salvo que aquí ambos lados se derivan de lotes y no de una línea tapón de coste de mercancías vendidas. Recorrido de manual: cien unidades a diez, luego cincuenta unidades a doce, y ciento veinte unidades vendidas.
FIFO toma el primer lote entero (mil de coste) y veinte unidades del segundo lote (doscientos cuarenta), de modo que el coste de las mercancías vendidas es mil doscientos cuarenta y el inventario final son las treinta unidades restantes a doce, o trescientos sesenta. Si las unidades vendidas igualan las unidades disponibles, el inventario final es cero y se consume cada lote. Si las unidades vendidas son cero, el coste de las mercancías vendidas es cero y el inventario final coincide con las mercancías disponibles.
Lo que esta calculadora no hace es ordenar lotes por una fecha de calendario, aplicar último en entrar primero en salir, calcular un coste unitario medio ponderado, convertir divisas ni reconstruir la identidad de tres líneas inventario inicial más compras netas menos coste de las mercancías vendidas. Envíe los lotes ya ordenados; el motor solo los recorre desde el frente y devuelve ambos valores.
Dónde aporta valor una calculadora FIFO de inventario
Controllers y contables usan una calculadora FIFO de inventario en el cierre para convertir los lotes de compra del período y las unidades vendidas en las dos cifras que necesitan tanto la cuenta de resultados como el balance: coste de las mercancías vendidas e inventario final bajo la hipótesis de flujo de costes primero en entrar, primero en salir que su política ya nombra.
Los papeles de trabajo de paquetes fiscales en jurisdicciones que exigen o permiten FIFO necesitan el mismo recorrido fijado, no una hoja que reordenó los lotes en silencio. Auditores y prestamistas vuelcan los mismos lotes en un papel de trabajo para que un inventario de cierre que no se derive de los lotes más antiguos sea visible antes de firmarse.
Los merchandisers que compran en mercados alcistas usan FIFO porque el stock restante se valora a costes unitarios más nuevos, en general más altos, y quieren esa valoración sin reconstruir un motor de inventario perpetuo. Es una búsqueda y un trabajo distintos de la identidad mercantil que resta un coste de mercancías vendidas dado del inventario inicial más las compras netas, de los días de inventario pendientes, del giro de inventario y de un recuento físico: esas herramientas parten de otras entradas y responden a otras preguntas.
La validación fallida no consume saldo. Mantenga los lotes en orden de primero en entrar, las unidades vendidas dentro de las unidades en mano, fije las cifras redondeadas en las pruebas y obtendrá un cierre FIFO reproducible para listas de comprobación, oráculos de aula y workers de borde sin montar un motor de almacén propio.
Qué puede hacer con ella
Cierre FIFO de mes y de ejercicio
Convierta los lotes de compra ordenados y las unidades vendidas en coste de mercancías vendidas e inventario final antes de cerrar el paquete, y compare las capas restantes con un recuento físico.
COGS de la cuenta de resultados bajo política FIFO
Valore las unidades expedidas a los costes unitarios restantes más antiguos para que la línea de coste de mercancías vendidas coincida con una política contable de primero en entrar, primero en salir, y no con una media ponderada.
Papeles de auditoría y calendarios fiscales FIFO
Vuelque los mismos lotes en un papel de trabajo para que un inventario de cierre que no se derive de los lotes más antiguos sea visible antes de firmarse.
Preguntas frecuentes
¿Cómo se calcula la valoración FIFO de inventario?
Envíe los lotes de compra, el más antiguo primero, más las unidades vendidas. La calculadora consume unidades desde el frente de la cola. El coste de las mercancías vendidas es el de las unidades consumidas; el inventario final es el de las unidades que siguen en lotes posteriores. Ambos vuelven a sumar las mercancías disponibles.
¿Qué ocurre si las unidades vendidas superan el inventario disponible?
Las unidades vendidas deben ser un número finito mayor o igual que cero y no deben superar la suma de unidades de los lotes; la sobreventa no se factura.
¿Cómo envío las existencias de apertura?
Ponga las existencias de apertura como el primer lote de compra (el más antiguo). No hay un campo aparte de inventario inicial ni un sello de fecha: el orden cronológico es el orden del array.
¿Es lo mismo que inventario final igual a inicial más compras menos COGS?
No. Esa identidad mercantil parte de tres totales de libro y no recorre lotes. Esta calculadora deriva el inventario final y el coste de las mercancías vendidas a partir de los lotes de compra bajo FIFO.
¿Calcula también LIFO o coste medio ponderado?
No. Solo aplica primero en entrar, primero en salir: toma las unidades vendidas de los lotes más antiguos. Tampoco ordena los lotes por fecha, así que introdúzcalos ya en el orden en que se compraron.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su 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)Ejemplo de solicitud
{
"purchases": [
{
"units": 100,
"unit_cost": 10
},
{
"units": 50,
"unit_cost": 12
}
],
"units_sold": 120
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fin.fifo_for_inventories",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_items | 200 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Si las unidades vendidas superan las unidades en mano, la tarea falla con invalid_input en vez de inventar un almacén negativo.
Contrato de entrada, forma de la respuesta y comportamiento ante errores
Cero unidades vendidas está permitido. Los importes monetarios se redondean half-up a dos decimales. Ejemplo: cien unidades a diez más cincuenta unidades a doce con ciento veinte vendidas produce mil doscientos cuarenta de coste de mercancías vendidas y trescientos sesenta de inventario final, con treinta unidades restantes en el segundo lote. Envíe por POST un cuerpo JSON con dos campos obligatorios. purchases es un array no vacío de objetos lote, como máximo doscientas filas, cada una con units estrictamente mayor que cero y unit_cost mayor o igual que cero; los alias batches, lots y layers apuntan a la misma lista para que la hoja conserve el nombre de sus columnas. En cada fila, quantity y qty alias units, y cost, price y cost_per_unit alias unit_cost. units_sold es la cantidad expedida durante el período; se aceptan los alias sold, quantity_sold y qty_sold. Cada campo numérico puede llegar como número JSON o como cadena numérica. Los campos ausentes, las cadenas vacías y los valores no finitos —NaN, Infinity o texto que no se interpreta como número— fallan con invalid_input nombrando el campo. Un coste unitario negativo, un units_sold negativo o un lote cuyas units sean cero o negativas se rechaza y no se factura. Si la validación pasa, el cuerpo informa purchase_count, units_available, units_sold, units_remaining, goods_available como el coste total de cada lote, cost_of_goods_sold, ending_inventory, remaining_layers como los lotes sobrantes con units, unit_cost y value, y una cadena de fórmula que reafirma el recorrido FIFO. Combine el JSON con su propio recuento físico si necesita el relato de almacén; este endpoint devuelve la valoración por flujo de costes, no un recuento cíclico, no LIFO y no una conversión de divisas.
Dónde aporta valor una calculadora FIFO de inventario
Los equipos de producto integran el contrato en paquetes de cierre ERP, deberes LMS y pruebas CI que deben fijar tanto cost_of_goods_sold como ending_inventory sin llamar a una API del libro mayor. Como la implementación es parse pura de nivel A, cada llamada correcta cuesta el precio base publicado $0.002 sin tokens de modelo ni red saliente.
Preguntas técnicas
¿Cuánto cuesta la calculadora FIFO de inventario?
La herramienta del navegador es gratuita. Las peticiones API usan saldo prepago KIT a $0.002 por llamada correcta; la entrada inválida no se factura.