El principio de Pareto, también conocido como la regla del 80/20 (Puede ser también 70/30 en algunos casos), es un concepto que sugiere que, en muchos casos, el 80% de los efectos provienen del 20% de las causas. Es útil en una variedad de contextos, incluyendo la gestión de negocios, la calidad del software y el análisis de datos. 

¿Qué es el principio de Pareto?

El principio de Pareto se utilizó originalmente para describir la distribución de la riqueza en Italia por Vilfredo Pareto. Hoy en día, se aplica en muchos otros campos para identificar las causas más significativas de un problema. Por ejemplo, en el desarrollo de software, el 80% de los bugs pueden provenir del 20% del código.

¿Cuándo usar el principio de Pareto?

  • Análisis de eficiencia: Identificar áreas que requieren mayor atención.
  • Optimización de recursos: Maximizar el uso de los recursos más efectivos.
  • Mejora de procesos: Focalizar en los problemas más críticos.
  • Optimización de ventas vs costos: Optimizar los productos que se venden/fabrican y minimizar los gastos de inversión.
  • Estrategia de cobranza de cartera: Recuperación de la mayor cantidad de dinero con el menor esfuerzo posible. 

Ejemplo práctico en JavaScript

Vamos a crear un script simple en JavaScript para aplicar el principio de Pareto en un análisis de ventas. Imaginemos que tenemos un conjunto de datos que representa las ventas de diferentes productos.

// Datos de ejemplo
const ventas = [
  { producto: 'Producto A', cantidad: 150 },
  { producto: 'Producto B', cantidad: 200 },
  { producto: 'Producto C', cantidad: 50 },
  { producto: 'Producto D', cantidad: 300 },
  { producto: 'Producto E', cantidad: 100 }
];

// Función para calcular el principio de Pareto (80/20)
function calcularPareto(ventas) {
  // Calcular el total de ventas
  const totalVentas = ventas.reduce((sum, venta) => sum + venta.cantidad, 0);

  // Ordenar las ventas de mayor a menor cantidad
  const ventasOrdenadas = ventas.sort((a, b) => b.cantidad - a.cantidad);

  // Inicializar variables
  let ventasAcumuladas = 0;
  const resultado = [];

  // Calcular el 80% del total de ventas y el 20% del total de productos
  const umbralVentas = totalVentas * 0.8;
  const umbralProductos = Math.ceil(ventas.length * 0.2);

  // Filtrar los productos que generan el 80% de las ventas, asegurando al menos el 20% de los productos
  for (let i = 0; i < ventasOrdenadas.length; i++) {
    resultado.push(ventasOrdenadas[i]);
    ventasAcumuladas += ventasOrdenadas[i].cantidad;
    
    // Si se alcanzan o superan el 80% de las ventas y se ha incluido al menos el 20% de los productos, detener
    if (ventasAcumuladas >= umbralVentas && resultado.length >= umbralProductos) {
      break;
    }
  }

  return resultado;
}

// Calcular el principio de Pareto (80/20)
const ventasPareto = calcularPareto(ventas);
console.log('Productos que generan el 80% de las ventas:', ventasPareto);

Ejemplo funcional

Como siempre, te comparto el código funcional para que juegues con el desde kosole.dev

Explicación

  1. Calcular total de ventas: Suma de las cantidades de todos los productos.
  2. Ordenar las ventas: De mayor a menor cantidad.
  3. Inicializar variables: ventasAcumuladas para sumar ventas y resultado para almacenar productos seleccionados.
  4. Calcular umbrales: 80% del total de ventas (umbralVentas) y 20% del total de productos (umbralProductos).
  5. Filtrar productos:Se añaden productos a resultado.Se acumulan las ventas.Si se alcanza el 80% de las ventas acumuladas y se ha incluido al menos el 20% de los productos, se detiene la selección.
  6. Se añaden productos a resultado.
  7. Se acumulan las ventas.
  8. Si se alcanza el 80% de las ventas acumuladas y se ha incluido al menos el 20% de los productos, se detiene la selección.

Este ejemplo esta ajustado para no depender de uno o pocos productos sino que se incluya por lo menos el 20% de los productos, es una modificación adaptada para un caso de uso real en donde una empresa no puede desistir de todos sus productos y quedarse solo con uno o dos productos, sino que de forma optima se garantiza cumplir con el principio y manteniendo una producción balanceada con bajo riesgo. Ya que en un escenario "poco normal" puede resultar que una empresa tenga 1 o 2 productos que abarquen el 80% de sus ingresos  de un total de 20 productos, pero en un mundo "Real" no puede depender o arriesgar su negocio dejando solo esos 2 productos, debe diversificar para reducir el riesgo futuro. 

Lo fundamental de entender es que Pareto es un principio no una regla, y se puede  ajustar ese principio según las necesidades del problema a resolver.

No existe una solución única para un problema, siempre hay soluciones que se adaptan mejor o peor según sea el caso a solucionar. 
Jodacame

Para finalizar les comparto un gráfico del ejemplo anterior en donde se puede ver con facilidad el momento que se cumple la condición

Gráfico de ejemplo

Gráfico del ejemplo del principio de Pareto