Articoli Taggati ‘Puntualità’

scritto da | on , , | Nessun commento

La puntualità di consegna è un KPI molto importante in quanto rappresenta uno degli elementi fondamentali del livello di servizio offerto al cliente. Calcolare la puntualità non è così agevole come sembra infatti esistono diverse insidie nel suo calcolo. Per prima cosa consideriamo l’indice di puntualità di consegna verso il cliente come il totale delle righe d’ordine consegnate puntuali sul totale delle righe consegnate in un intervallo di tempo. Per prima cosa devo definire quando una riga è considerata consegnata puntuale, per fare questo devo calcolare la differenza tra la data di spedizioni e la data di consegna prevista se la differenza è negativa o uguale a zero considero la riga puntuale, se è maggiore di zero devo considerare eventuali giorni di tolleranza ovvero in alcuni settori potrebbe essere tollerato che la consegna venga sforata di ½ giorni pertanto fino a due giorni posso considerare la consegna puntuale differentemente se non c’è tolleranza differenza positiva genera una consegna non puntuale. || Continua a leggere

scritto da | on , | Nessun commento

Un indicatore per valutare il servizio fornito al cliente è dato dalla puntualità delle consegne che indica la precisione a livello temporale della logistica. Per misurare la puntualità di consegna si confrontano due date: la data di consegna confermata presa dall’ordine e la data del documento di trasporto.
Per la nostra elaborazione partiamo da una tabella spedizioni in cui inseriamo le seguenti informazioni ricavate dagli ordini e dai DDT:
CLIENTE, ORDINE, CODICE, DATA CONSEGNA, DATA BOLLA

Per prima cosa calcoliamo la differenza tra le due date:

SELECT spedizioni.ORDINE, spedizioni.CODICE, spedizioni.DACO, spedizioni.DABO, IIf([DABO]=0,IIf([DACO]>=DATE(),0,DATE()-[DACO]),[DABO]-[DACO]) AS GG, IIf([GG]<-5,"ANTICIPO",IIf([GG]<5,"PUNTUALE","RITARDO")) AS CHK
FROM spedizioni
WHERE (((spedizioni.DACO)<=#1/31/2008#));

A questo punto incrociamo la query puntualità con la tabelle delle classi di puntualità cosi definita:

ORD Classe inf sup
1 <=-30 -9000 -30
2 ]-30;-7] -29 7
3 ]-7;-4] -6 -4
4 ]-4;0] -3 0
5 ]0;4] 1 4
6 ]4;7] 5 7
7 ]7;14] 8 14
8 ]14;30] 15 30
9 ]30;60] 31 60
10 ]60;180] 61 180
11 >=180 181 9000
SELECT Puntualità.CLIENTE, Puntualità.CODICE, classi.Classe
FROM Puntualità, classi
WHERE (((Puntualità.GG) BETWEEN [classi]![inf] AND [classi]![sup]));

Ora raggruppiamo per classie e clienti la query precedente:

SELECT classi.ORD, classi.Classe, classi.Cliente, COUNT(CP00.CODICE) AS [N RIGHE]
FROM CP00 INNER JOIN classi ON CP00.Classe = classi.Classe
GROUP BY classi.ORD, classi.Classe;

In questo modo abbiamo ottenuto una statistica per classi di puntualità e cliente, sulla base della prima query è possibile costruire una statistica per mese in questo modo con tre query a cascata (pm00, pm01, puntualità mensile):

pm00

SELECT CLng(Format([DACO],"yyyy")) AS ANNO, CLng(Format([DACO],"m")) AS MES, IIf([CHK]="ANTICIPO","PUNTUALE",[CHK]) AS CK, Puntualità.CODICE
FROM Puntualità;

pm01

TRANSFORM COUNT(pm00.CODICE) AS ConteggioDiCODICE
SELECT pm00.ANNO, ([MES]) AS MESE, COUNT(pm00.CODICE) AS TOT
FROM pm00
GROUP BY pm00.ANNO, ([MES])
PIVOT pm00.CK;

Puntualità mensile

SELECT pm01.MESE, [PUNTUALE]/[TOT] AS PUN, [RITARDO]/[TOT] AS RIT
FROM pm01;

News