La matrice di Kraljic ha lo scopo di classificare i tipi di acquisto, indicando le politiche più opportune, tale classificazione è fatta in base a due caratteristiche: l’importanza degli articoli e la loro reperibilità. In base a queste due caratteristiche classifichiamo gli articoli in questo modo
Importanza | Reperimento | Tipo |
ALTO | ALTO | Supply |
ALTO | BASSO | Leverage |
BASSO | ALTO | Bottleneck |
BASSO | BASSO | Purchasing |
Per gli articoli di tipo purchasing, l’acquisto può essere delegato ai singoli stabilimenti. Per ottenere buone condizioni occorre mettere in concorrenza molti fornitori (circa l’80% degli acquisti aziendali ricadono in questa categoria).
Per gli articoli leverage occorre eseguire una politica di negoziazione fra molti fornitori. Gli articoli supply sono articoli come le fonti energetiche e i prodotti complessi da realizzare, infine gli articoli bottleneck sono articoli che conviene produrre piuttosto che acquistare.
Per poter classificare gli articoli in base alla matrice di Kraljic è necessario definire delle metriche per misurare l’importanza ed il grado di reperimento di un articolo, a questo scopo utilizzeremo tre metriche elementari (una per l’importanza e due per il grado di reperimento). Per definire l’importanza consideriamo l’incidenza del costo dell’articolo sul prezzo di vendita, mentre per il grado di reperimento si considera la media ponderata (0,5 e 0,5) tra il leadtime ed il numero di fornitori dell’articolo.
Per determinare la prima metrica implodiamo i codici d’acquisto per verificare in quanti codici padre si trova l’articolo per calcolare l’incidenza.
SELECT CODICI.CODICE, DISTINTA.PADRE AS C1, DISTINTA_1.PADRE AS C2, DISTINTA_2.PADRE AS C3, DISTINTA_3.PADRE AS C4, DISTINTA_4.PADRE AS C5, DISTINTA.D§QTAS AS CO1, DISTINTA_1.D§QTAS AS CO2, DISTINTA_2.D§QTAS AS CO3, DISTINTA_3.D§QTAS AS CO4, DISTINTA_4.D§QTAS AS CO5 INTO [distinta implosa] FROM ((((CODICI LEFT JOIN DISTINTA ON CODICI.CODICE = DISTINTA.FIGLIO) LEFT JOIN DISTINTA AS DISTINTA_1 ON DISTINTA.PADRE = DISTINTA_1.FIGLIO) LEFT JOIN DISTINTA AS DISTINTA_2 ON DISTINTA_1.PADRE = DISTINTA_2.FIGLIO) LEFT JOIN DISTINTA AS DISTINTA_3 ON DISTINTA_2.PADRE = DISTINTA_3.FIGLIO) LEFT JOIN DISTINTA AS DISTINTA_4 ON DISTINTA_3.PADRE = DISTINTA_4.FIGLIO; |
SELECT CODICI.CODICE, DISTINTA.PADRE AS C1, DISTINTA_1.PADRE AS C2, DISTINTA_2.PADRE AS C3, DISTINTA_3.PADRE AS C4, DISTINTA_4.PADRE AS C5, DISTINTA.D§QTAS AS CO1, DISTINTA_1.D§QTAS AS CO2, DISTINTA_2.D§QTAS AS CO3, DISTINTA_3.D§QTAS AS CO4, DISTINTA_4.D§QTAS AS CO5 INTO [distinta implosa] FROM ((((CODICI LEFT JOIN DISTINTA ON CODICI.CODICE = DISTINTA.FIGLIO) LEFT JOIN DISTINTA AS DISTINTA_1 ON DISTINTA.PADRE = DISTINTA_1.FIGLIO) LEFT JOIN DISTINTA AS DISTINTA_2 ON DISTINTA_1.PADRE = DISTINTA_2.FIGLIO) LEFT JOIN DISTINTA AS DISTINTA_3 ON DISTINTA_2.PADRE = DISTINTA_3.FIGLIO) LEFT JOIN DISTINTA AS DISTINTA_4 ON DISTINTA_3.PADRE = DISTINTA_4.FIGLIO;
Determiniamo i padri:
SELECT [distinta implosa].CODICE, IIf([C5] IS NOT NULL,[C5],IIf([C4] IS NOT NULL,[C4],IIf([C3] IS NOT NULL,[C3],IIf([C2] IS NOT NULL,[C2],IIf([C1] IS NOT NULL,[C1],NULL))))) AS PAPRE FROM [distinta implosa]; |
SELECT [distinta implosa].CODICE, IIf([C5] Is Not Null,[C5],IIf([C4] Is Not Null,[C4],IIf([C3] Is Not Null,[C3],IIf([C2] Is Not Null,[C2],IIf([C1] Is Not Null,[C1],Null))))) AS PAPRE FROM [distinta implosa];
A questo punto dal listino aggiungiamo per ogni codice padre il prezzo e calcoliamo l’incidenza del codice figlio in questo modo:
SELECT ESP.FIGLIO, Avg(([COSTO FIGLIO]/[COSTO PADRE])) AS Incidenza FROM ESP GROUP BY ESP.FIGLIO; |
SELECT ESP.FIGLIO, Avg(([COSTO FIGLIO]/[COSTO PADRE])) AS Incidenza FROM ESP GROUP BY ESP.FIGLIO;
Per determinare la seconda metrica consideriamo il leadtime massimo di acquisto e rapportiamo il leadtime del singolo codice con il leadtime massimo, mentre per la seconda parte della metrica rapportiamo il numero dei fornitori per il numero massimo dei fornitori. A questo punto avremo una tabella del genere:CODICE, IMPORTANZA, REPERIBILITA.