Vai al contenuto
BI, AI e ML per l'azienda

Previsione della domanda e delle scorte

Lo storico delle vendite e le giacenze sono già nel gestionale. Il tuo data scientist costruisce un modello di previsione con scikit-learn, Muvia lo esegue ogni notte vicino ai dati e mette previsto, venduto e sottoscorta davanti a chi riordina.

Scenario illustrativo: descrive un caso tipo, non il progetto di un cliente.

Vendite dal gestionale, giacenze dal database di magazzino, piano promozioni e sell-out dei distributori entrano in Muvia, dove un modello costruito dal team calcola le previsioni; escono una tabella di previsioni, un cruscotto previsto contro venduto, un allarme di sottoscorta e un report dei riordini.

La previsione spesso c'è già, ma vive sul portatile di qualcuno.

In molte aziende un analista ha già costruito un modello che prevede la domanda per articolo. Gira a mano, su un export del gestionale, quando c'è tempo; i numeri finiscono in un file che gli acquisti forse aprono.

Muvia non vende una previsione già pronta: il modello resta del vostro team, con le sue feature e le sue scelte. Muvia lo fa girare con regolarità sui dati governati e porta il risultato dove si decide il riordino.

Per chi
Data scientist e analisti che costruiscono il modello; acquisti, supply chain e magazzino che ne usano le previsioni.

Cosa ottieni

Il modello resta tuo
Algoritmo, feature e riaddestramento li decide il team. Muvia non sostituisce il data scientist: gli dà un posto dove il modello gira davvero.
Previsto e venduto affiancati
Il cruscotto mostra dove e quando il modello sbaglia, così si sa quando è il momento di rivederlo.
Il sottoscorta si vede prima
L'allarme parte dalla copertura prevista, non dallo scaffale vuoto, e resta nel registro allarmi con chi lo gestisce.
Un'esecuzione che si può verificare
Ogni notte gira la stessa versione della funzione sugli stessi dati governati; un modello nuovo è una versione nuova, provata prima di andare in produzione.

Per il team tecnico

Come si costruisce in Muvia

  1. 1

    Porta in Muvia vendite e giacenze

    Il gestionale e il database di magazzino diventano sorgenti copiate ogni notte, in modo incrementale e su connessione cifrata. Promozioni e sell-out arrivano come file; ogni sorgente diventa una tabella interrogabile.

  2. 2

    Prepara le feature in SQL

    Nell'editor SQL calcoli le vendite settimanali per articolo e magazzino, le medie mobili, il valore della stessa settimana dell'anno prima e le promozioni attive. Il risultato è un dataset con campi stabili: il contratto tra i dati e il modello.

  3. 3

    Costruisci il modello

    Il data scientist addestra un modello scikit-learn nel suo ambiente, sui dati scaricati con l'API in sola lettura, e lo allega come file joblib a una funzione Python. In alternativa la funzione può riaddestrare uno stimatore scikit-learn a ogni esecuzione, sulla finestra di storico che riceve.

  4. 4

    Esegui le previsioni ogni notte

    Un flusso programmato passa le feature alla funzione e scrive le previsioni in una tabella gestita. Prima lo provi in modalità prova, che non scrive nulla; poi puoi ricalcolare lo storico per vedere come avrebbe previsto le settimane passate.

  5. 5

    Confronta e avvisa

    Un cruscotto mette previsto e venduto sullo stesso grafico, per articolo e magazzino. Un allarme si apre quando la copertura prevista scende sotto la soglia, e il report dei riordini parte ogni lunedì.

Funzione Python

import joblib

FEATURE = ["venduto_sett_1", "media_mobile_4", "stesso_periodo_aa",
           "promo_attiva", "settimana_anno"]

def transform(inputs, params, ctx):
    model = joblib.load(ctx.file("domanda.joblib"))
    df = inputs["rows"]
    out = df[["articolo", "magazzino", "settimana", "giacenza"]].copy()
    out["domanda_prevista"] = model.predict(df[FEATURE]).clip(min=0)
    prevista = out["domanda_prevista"].where(out["domanda_prevista"] > 0)
    out["copertura_sett"] = out["giacenza"] / prevista
    out["sottoscorta"] = out["copertura_sett"] < params["copertura_minima"]
    ctx.logger.info("previsioni calcolate: %d righe", len(out))
    return {"rows": out}
Il modello addestrato dal team viaggia con la versione della funzione: Muvia lo carica e scrive le previsioni nella tabella gestita.
I dati che servono
  • Ordini e righe di vendita per articolo e cliente, dal gestionale su SQL Server
  • Giacenze e scorte di sicurezza per magazzino, dal database Oracle del magazzino
  • Piano promozioni, da un file Excel caricato ogni mese
  • Sell-out settimanale dei distributori, file CSV ricevuti via SFTP
Le parti di Muvia usate

Portaci una domanda a cui oggi non sai rispondere.

Partiamo da una domanda vera della tua azienda e ti mostriamo il percorso dalla fonte al cruscotto, con i tuoi sistemi e non con quelli di una demo.