Diagrama de stocks y flujos

Acumulaciones y lo que las llena o vacía.

Definición

El diagrama de stocks y flujos dibuja depósitos donde algo se acumula y las tuberías que los llenan o vacían, con el nivel pintado dentro de cada caja y el grosor de cada tubería según su caudal. Las variables que regulan cada válvula y las nubes de lo que queda fuera del modelo también aparecen. Sirve para explicar por qué un inventario, una plantilla o una cartera crece o se vacía.

El almacén engorda mientras el lineal se vacía: el cuello no es la compra, es la reposición
Datos
category · label · source · target · value · group
Buena para
Explicar que un nivel cambia por la diferencia entre lo que entra y lo que sale.
Evítala cuando
Cuando necesitas contar una secuencia en el tiempo: los caudales son simultáneos y la horizontal no es un reloj.
Se lee bien
Entre 2 y 11 elementos; dibuja hasta 13
Datos que faltan
Se niega a dibujar y dice qué valor falta.
Accesibilidad
Lector de pantalla: tabla de datos · respeta «reducir movimiento»

Forma de los datos

Qué columnas pide

ColumnaTipoPara qué
categorystringLa clase de la fila, y lo único que distingue las TRES clases de fila de esta tabla: «depósito» (lo que se acumula), «flujo» (la válvula que lo llena o lo vacía) o «variable» (lo que regula una válvula). Un tipo desconocido FALLA con la lista: pintarlo como caja genérica convertiría una válvula en un depósito y diría que ahí se acumula algo que solo pasa.
labelstringEl nombre del elemento, que es además su CLAVE: el de un depósito es lo que los flujos escriben en «Desde» y «Hasta», y el de un flujo lo que una variable escribe para decir qué válvula regula. Dos nombres iguales fallan, porque la tubería dejaría de saber a cuál llena.
sourcestringEl depósito del que sale el flujo. Solo se lee en las filas de tipo «flujo». VACÍA significa que el caudal viene de fuera del modelo: eso es una nube y se dibuja, no es un hueco.
targetstringDos trabajos según la clase de fila, y por eso es una sola columna: en una fila de flujo, el depósito al que entra el caudal (vacía = nube de destino); en una fila de variable, el nombre del flujo cuya válvula regula, y ahí NO puede estar vacía.
valuenumberLas dos magnitudes de la figura, en la misma columna porque cada fila solo tiene una: en un depósito es el NIVEL (el alto de lo pintado dentro) y en un flujo el CAUDAL (el grosor de la tubería). Un CERO escrito vale y se dibuja —depósito vacío, válvula cerrada—; una celda en blanco FALLA, porque leerla como cero afirmaría un vacío que nadie ha medido. En una fila de variable es opcional y solo se ESCRIBE: no dimensiona nada.
group · opcionalstringLa unidad de la fila («uds» en un depósito, «uds/semana» en un flujo). OPCIONAL: sin ella las cifras salen desnudas. Es el rol canónico más cercano —el vocabulario no tiene una palabra para «la unidad de la magnitud»— y por eso lleva esta nota. Los depósitos tienen que coincidir entre sí y los flujos entre sí: comparten escala, y el saldo es una resta.

Tamaños

Ancha por necesidad

Esta pieza necesita anchura para que cada rótulo quepa entero. El motor prefiere decirlo a apretarla.

A menos de 480 px sus rótulos no caben sin pisarse o recortarse, y el motor no la publica así. En el móvil se ve la versión ancha, a tamaño legible y sin recortar, dentro de un marco que se desliza.

Cuándo usarla

Tres preguntas antes de elegirla

¿Hay algo que se acumula entre la entrada y la salida?

Si sólo hay caudales que pasan sin quedarse, un Sankey reparte los flujos.

Sí: quédate con diagrama de stocks y flujos

No: usa Diagrama de Sankey

¿Te basta con una foto de niveles y caudales en un momento?

Si importa cómo evoluciona cada nivel semana a semana, el diagrama de flujo acumulado lo sigue.

Sí: quédate con diagrama de stocks y flujos

No: usa Diagrama de flujo acumulado

¿Tienes cifras para niveles y caudales?

Si sólo quieres explicar qué refuerza o frena qué, sin medir, un bucle causal lo dice sin números.

Sí: quédate con diagrama de stocks y flujos

No: usa Bucle causal

Código

La misma pieza, con tus datos

import { getPreset, renderComposition } from 'visx-render/node';

const spec = await getPreset('stock-flow');
spec.data.rows = misFilas; // category, label, source, target, value
const { svg, warnings } = await renderComposition(spec);

También en React con Chart y prepareComposition. Guía para desarrolladores →

Dudas

¿Qué tipos de fila tiene la tabla?

Tres: «depósito» (lo que se acumula), «flujo» (la válvula que lo llena o vacía) y «variable» (lo que regula una válvula). Un tipo desconocido hace fallar la pieza.

¿Qué son las nubes?

El origen o el destino de un flujo que queda fuera del modelo. Se dibujan cuando el campo «Desde» o «Hasta» de un flujo va vacío.

¿Puedo poner un depósito a cero?

Sí: un cero escrito se dibuja como depósito vacío o válvula cerrada. Las unidades de los depósitos tienen que coincidir entre sí, y las de los flujos también.

¿Qué hace si faltan datos?

Se niega a dibujar y dice qué valor falta.

¿Cómo se ve en el móvil?

A menos de 480 px el motor no la compone sin pisar o cortar rótulos, y lo dice. En el móvil se ve la versión ancha, a tamaño legible, dentro de un marco que se desliza.

Relacionadas

Otras formas de responder «cómo funciona algo»

Guía para elegir: cómo funciona algo →