A little over one year ago, we unveiled quantile grids as our 3.0 forecasting technology. More than ever, Lokad remains committed to delivering the best forecasts that technology can produce, and today, our 4th generation of forecasting technology, namely our probabilistic forecasting engine, is live and available in production for all clients. This new engine consists of a complete rewrite of our forecasting technology stack, and addresses many long-standing challenges that we were facing.

Probabilidades verdaderas

El futuro es incierto sin importar cuán buena sea la tecnología de forecast. En 2012, cuando Lokad se aventuró por primera vez en las profundidades del forecast de cuantiles, nos dimos cuenta rápidamente de que la incertidumbre no debe ser descartada como se hace en el enfoque clásico de forecast, sino que debe ser aceptada. Dicho de manera simple, los costos en la supply chain se concentran en los extremos estadísticos: es la demanda sorprendentemente alta la que provoca un faltante de stock, y la demanda sorprendentemente baja la que genera inventario muerto. En el medio, la supply chain tiende a operar de forma bastante fluida.

Con las cuadrículas de cuantiles, Lokad ofrecía una visión mucho más detallada de los posibles resultados futuros. Sin embargo, como sugiere el nombre, nuestras cuadrículas de cuantiles se construyeron sobre la base de nuestros forecast de cuantiles, en realidad, múltiples capas de cuantiles. Estas cuadrículas de cuantiles demostraron ser tremendamente útiles durante el último año, pero mientras nuestro motor de forecast producía probabilidades, internamente, casi toda su lógica no trabajaba directamente con probabilidades. Las probabilidades que calculamos fueron un subproducto de un sistema de forecast de cuantiles.

Debido a estas raíces en los cuantiles, nuestro motor de forecast 3.0 tenía múltiples limitaciones sutiles. Y aunque la mayoría de estas limitaciones eran demasiado sutiles para ser notadas por los clientes, no pasaron desapercibidas para el equipo de I+D de Lokad. Así, decidimos reiniciar toda nuestra tecnología de forecast con una verdadera perspectiva nativa de forecast probabilístico; y este fue el comienzo del motor de forecast 4.0.

Lead time forecast

Los lead times frecuentemente se asumen como dados. Sin embargo, mientras los lead times pasados son conocidos, los lead times futuros solo pueden ser estimados. Durante años, Lokad había subestimado el desafío de aproximar con precisión los lead times futuros. Los lead times son sutiles: la mayoría de los patrones estadísticos, como la estacionalidad (y el Año Nuevo Chino en particular), que impactan la demanda, también impactan el lead time.

En nuestro motor de forecast 4.0, los lead times se han convertido en ciudadanos de primera clase con su propio modo de forecast de lead time. Ahora, los lead times se benefician de modelos integrados de forecast dedicados. Naturalmente, al ser nuestro motor un motor de forecast probabilístico, los forecast de lead time son una distribución de probabilidades asociadas a un período de tiempo incierto.

Forecast integrado de demanda

Los lead times varían, y sin embargo, nuestro motor de forecast 3.0 estaba atascado con lead times fijos. Desde una perspectiva tradicional, el análisis clásico de safety stock asume que el lead time sigue una distribución normal, mientras que casi todas las mediciones que hemos realizado indican que los lead times variables claramente no se distribuyen normalmente. Aunque nuestros experimentos rutinariamente demostraron que tener un lead time fijo era mejor que tener un modelo defectuoso, quedar atrapado con lead times estáticos, sin embargo, no era la solución perfectamente satisfactoria que buscábamos.

El motor de forecast 4.0 introduce el concepto de forecast integrado de demanda, donde integrated significa integrado en el lead time. El motor toma una distribución completa de probabilidades de lead time, y produce el forecast de demanda probabilístico correspondiente. En la práctica, la distribución de lead time también es calculada por el motor de forecast, como se vio anteriormente. El forecast integrado de demanda finalmente ofrece una respuesta satisfactoria al desafío de manejar lead times variables.

Forecast de nuevos productos

El forecast de la demanda para un producto nuevo es sencillamente difícil. Dado que, en este caso, el forecast obviamente no puede apoyarse en el historial de ventas, el motor de forecast tiene que basarse en otros datos conocidos sobre el producto antes de su lanzamiento. Nuestro motor de forecast 3.0 ya contaba con un sistema de tags, diseñado precisamente para este caso de uso específico. Sin embargo, lamentablemente, los tags no aportaban tanta información como nos hubiera gustado y se dejó cierta precisión sobre la mesa.

Con 4.0, este desafío específico se revisa con la introducción de categorías y jerarquías. Las categorías y jerarquías son más expresivas y estructuradas que los tags, y transmiten mucha más información. El motor de forecast 4.0 aprovecha al máximo este marco de datos más rico para ofrecer forecast más precisos, siendo el forecast para nuevos productos el caso de uso más agudo.

Faltante de stock y promociones

La intención del motor de forecast es forecastear la demanda futura. Sin embargo, nuestro conocimiento de la demanda pasada es típicamente imperfecto, ya que solo se conocen realmente las ventas pasadas. Las ventas suelen ser una aproximación razonable de la demanda, pero vienen acompañadas de múltiples sesgos, siendo los casos más comunes el faltante de stock y las promociones. Nuestro motor 3.0 ya contaba con algunas heurísticas para abordar este sesgo, además los forecast de cuantiles son intrínsecamente más robustos que los forecast promedio (clásicos). Sin embargo, una vez más, la situación no era enteramente satisfactoria para nosotros.

El motor 4.0 introduce la noción de demanda sesgada, que puede ser censurada o inflada. Cuando la demanda de un producto determinado en un día dado se marca como censurada, le estamos indicando al motor de forecast que la demanda debería haber sido mayor, y que la verdadera demanda de ese día permanece desconocida. El motor aprovecha esta información para refinar los forecast, incluso cuando el historial está lleno de eventos que han distorsionado la señal de la demanda.

Demanda ultra-escasa

Si bien los forecast de cuantiles son enormemente superiores a los forecast promedio o mediano clásicos cuando se trata de estimar las probabilidades de eventos raros, los cuantiles comienzan a demostrar sus límites al tratar de estimar eventos super-raros. Por ejemplo, nuestros modelos de cuantiles tenían dificultades para manejar adecuadamente artículos que se venden solo una o dos veces al año, así como para gestionar niveles de servicio superiores al 98%.

Los modelos probabilísticos nativos, tal como se implementaron en nuestro motor 4.0, se comportan mucho mejor cuando se trata de demanda ultra-escasa y eventos “raros” en general. Estos modelos podrían haberse implementado dentro de un marco de forecast de cuantiles (un forecast probabilístico se puede convertir fácilmente en un forecast de cuantiles); pero nuestro motor 3.0 no tenía la infraestructura para soportarlos. Por ello, se implementaron en el motor 4.0.

Integrado en Envision

Las versiones 2.0 y 3.0 de nuestro motor de forecast contaban con una interfaz de usuario web. A primera vista, parecía fácil. Sin embargo, la interfaz de usuario estaba, en realidad, ignorando el factor que representa el verdadero desafío de utilizar (cualquier) motor de forecast, que es proporcionar un control completo de los datos transferidos al motor de forecast. De hecho, el principio de garbage-in, garbage-out sigue siendo un problema demasiado frecuente.

El motor 4.0 se interconecta desde Envision, nuestro lenguaje específico de dominio orientado a la optimización cuantitativa para comercio. Invocar el motor de forecast requiere una serie de argumentos de datos proporcionados desde un script de Envision. Este enfoque requiere un poco más de esfuerzo inicial, sin embargo, los beneficios en productividad se hacen evidentes rápidamente; tan pronto como se realizan ajustes en los datos de entrada.

El lanzamiento de nuestro motor de forecast 4.0 es solo la primera parte de una serie de importantes mejoras que se han traído a Lokad en las últimas semanas. Estate atento para más.