תפריט נגישות

כיצד ניישם אופטימיזציה של רכש בארגון

המאמר יציג מודל מתקדם המחשב את הרכש האופטימלי לארגון. זאת, בהשוואה למודלים הרגילים של תכנון הרכש, המתבצעים על סמך רמות מלאי ונקודות הזמנה, או על סמך הזמנות מלקוחות והשלמות מלאי.

תוכנות ERP מתקדמות אמורות לכלול מערכת לאופטימיזציה של רכש. השיטה המקדמת ביותר מבוססת על מודלים בתחום חקר ביצועים, שמחשבים לגבי כל פריט –

  • איזו כמות כדאי להזמין?
  • מאיזה ספק?
  • מתי?

מערכת זו מיועדת לעסקים שמזמינים פריטים על בסיס שוטף (בניגוד להזמנת פריטים עבור הזמנה מיוחדת), והיא למתאימה לפיכך לעסקים כמו: יצרנים המייצרים אותם פריטים באופן שוטף, בתי מסחר, חברות תחזוקה (עבור מלאי חלקי חילוף) וכד'.

ניתן להבחין בין שתי שיטות שונות לתכנון רכש. בשיטה אחת תכנון הרכש נעשה על סמך רמות מלאי ונקודות הזמנה, או על סמך הזמנות מלקוחות והשלמות מלאי. בשיטה השנייה התוכנה מחשבת את הרכש האופטימלי על סמך שורה ארוכה של משתנים שיוסברו בהמשך מאמר זה.

מערכת האופטימיזציה מתעלמת מנקודת ההזמנה ומרמת המלאי. ניתן להסביר את הרעיון הבסיסי מאחרי מערכת זו באמצעות הדוגמה הבאה. נניח שפריט א' נרכש מספק מסוים. נקודת ההזמנה של פריט זה היא 10 יחידות, ובמלאי ישנם כעת 11 יחידות. נניח עוד כי גם פריט ב' נרכש מהספק שלעיל והמלאי מפריט זה נמוך מנקודת ההזמנה. אם נפיק כעת המלצות להזמנות על סמך נקודות הזמנה, אם תכנון הרכש נעשה על סמך רמות מלאי ונקודות הזמנה, התוכנה תמליץ להזמין את פריט ב' ולא תמליץ להזמין את פריט א'. אולם אם הספק הנידון הוא מרוחק (כך שהעלות להביא את הפריט גבוהה) יש מקום לרכוש את שני הפריטים יחד כדי לחסוך בעלויות אספקה.

זאת ועוד: כאשר קובעים את נקודת ההזמנה ואת רמת המלאי הקביעה נעשית ע"פ הערכה סובייקטיבית. מערכת האופטימיזציה לוקחת בחשבון את כל המשתנים, ועל סמך משתנים אלה מחשבת את הכמות האופטימלית שכדאי להזמין ואת המועדים והספקים האופטימליים.

החישובים של האופטימיזציה מבוססים על שיטות בתחום חקר ביצועים. לא ניתן להציג כאן את האלגוריתם עצמו, אבל יש מקום להסביר בקצרה את הבעיה שהתוכנה פותרת. אם היקף מכירות ידוע מראש, לדוגמה, בדיוק אותה כמות נמכרת מדי שבוע, ואם האספקה קבועה, והעלויות של הובלה ואחסנה זניחות, תכנון הרכש הוא משימה פשוטה יחסית: מידי שבוע רוכשים את הכמות שתימכר במהלך השבוע. אולם בפועל, היקף המכירות אינו ידוע מראש, אלא בכל יום נמכרת כמות אחרת; ניתן לרכוש את הפריטים אצל ספקים שונים, שזמני האספקה שלהם שונים, והמחירים שלהם שונים; והוצאות ההובלה והאחסנה אינן זניחות. כיוון שהמכירות אינן קבועות, וזמני האספקה אינם קבועים, על מנת להימנע ממצבים של חוסר מלאי, העסק מחזיק מלאי ביטחון או רזרווה. מה צריך להיות גודלו של מלאי זה? מצד אחד יש מקום להגדיל את מלאי הביטחון כדי להקטין את מספר המקרים שבהם העסק יגיע למצב של חוסר מלאי. אולם מצד שני, אחזקת מלאי ביטחון גדול כרוכה בהוצאות (ריבית על הכסף, הוצאות אחסנה, קלקול מלאי כתוצאה מאחסנה ממושכת וכד'). זאת ועוד: כאשר הוצאות ההובלה הן משמעותיות (כגון, בעת הובלה מחו"ל), מצד אחד יש מקום להגדיל את הרכש (ולכן, גם את המלאי על המדף) כדי לצמצם את החלק היחסי של עלויות ההובלה (יחסית לעלות של הסחורה). אולם מצד שני, כאמור, אם מגדילים את הכמות הנרכשת, מגדילים גם את הוצאות הריבית, האחסנה והנזק כתוצאה מקלקול מוצרים לאחר אחסנה ממושכת. סיבוך נוסף יכול לנבוע מאילוץ לגבי נפח המחסנים (מה שמכתיב את כמות המלאי המקסימלית שניתן לאחסן). וכך עולה השאלה: מה תוכנית הרכש שתביא לעסק רווח מקסימלי? זו הבעיה שמערכת האופטימיזציה פותרת. 

אחד המשתנים הדרושים לחישובי האופטימיזציה הוא עלות חוסר. נתון זה מציין מה הנזק שנגרם לעסק כתוצאה מחוסר במלאי במשך יום. לא תמיד קל להעריך את עלות החוסר, אולם אי אפשר לפתור את בעיית האופטימיזציה, אם עלות החוסר לא ידועה. אם מניחים שעלות החוסר היא אפס, מגיעים לפתרון האבסורדי, שלא כדאי להחזיק מלאי ביטחון (משום שאין נזק כאשר חסר מלאי). כאשר העסק מוכר פריטים, ניתן לחשב את עלות החוסר על סמך הרווח ממכירת פריט (ניתן להפיק באמצעות מחולל הדוחות דוח שמחשב את הרווח לפריט, ולעדכן נתון זה ברשומת הפריט). לעומת זאת, כאשר המלאי דרוש לתחזוקה, עלות החוסר היא בדרך כלל הנזק שנגרם מהשבתת המכונה (עבורה דרוש הפריט). כאשר המלאי הוא חומרי גלם הדרושים לייצור, עלות החוסר היא הנזק שייגרם כתוצאה מעיכוב בייצור של האב. ככל שעלות החוסר גבוהה יותר יש לשמור כמות גדולה יותר כמלאי ביטחון.

תוכנת האופטימיזציה פועלת בשלושה שלבים. בשלב הראשון עוברים על ההיסטוריה של תנועות הפריטים ומחשבים נתונים שונים הדרושים לחישוב האופטימזציה, כגון: צריכה יומית ממוצעת, זמן אספקה לכל ספק וכד'. נתונים אלה אמורים להיות מוצגים במסך, שם ניתן לעדכן אותם. לדוגמה, אם ידוע שהצריכה הממוצעת מפריט מסוים עומדת לעלות ב- 10%, ניתן לתקן בהתאם את סעיף צריכה ממוצעת. בשלב השני, מפעילים את האלגוריתם של האופטימיזציה, וכאמור מחשבים לגבי כל פריט איזו כמות כדאי לרכוש, מאיזה ספק ומתי. נתונים אלו מוצגים בדוחות האופטימיזציה. לבסוף, בשלב השלישי ניתן להפיק הזמנות רכש על סמך הדוחות.

נתונים לחישוב האופטימיזציה

לגבי כל אחד מהפריטים תוכנת האופטימיזציה אמורה להתחשב בנתונים הבאים:

צריכה יומית / חודשית: הכמות שיוצאת מהמלאי במשך יום / חודש.

עלות חוסר: הנזק שייגרם כתוצאה מחוסר מלאי במשך יום אחד.

הגבלת נפח: נתון זה דרוש אם המחסן בו נמצא הפריט מוגבל בנפח (לדוגמה: מקרר).

עלות אחסנה: עלות האחסנה ליום של יחידה אחת של הפריט. יש לחשב נתון זה על סמך דוחות תמחיר, ולעדכן את תוצאות החישוב ברשומת הפריט. ככל שעלות האחסנה גבוהה יותר, יש  להקטין את הכמות שנשמרת כמלאי ביטחון.

תקופת אחסנה: מספר הימים בהם מותר לאחסן את הפריט (לפני שעובר תאריך פג-תוקף). לדוגמה, זמן האחסנה של מוצרי מזון או מוצרים כימיים מוגבל בימים. ככל שתקופת האחסנה קצרה יותר, כך יש להקטין את הכמות הנשמרת כמלאי ביטחון.

יתרה: יתרה במלאי.

יתרת הזמנות: יתרת הזמנות פתוחות (הזמנות מלקוחות והזמנות מספקים).

זמן יצור / אספקה (ימים): משך הזמן בימים הדרוש לייצור או לאספקת הסחורה (ממועד הזמנת הפריט).

זמן אחסנה מקסימלי (ימים): לאחר איזו תקופה יש להוריד את הפריט מהמדף (נתון זה רלוונטי במיוחד לפריטי מזון ותרופות). ככל שזמן האחסנה המקסימלי קצר יותר, יש לשמור כמות קטנה יותר כמלאי ביטחון.

צריכה יומית מחושבת: איזו כמות יוצאת מהמלאי כל יום, בממוצע. נתון זה הוא על סמך חישוב שהתוכנה ערכה כעת על תנועות המלאי.

צריכה יומית מהפריט: איזו כמות יוצאת מהמלאי כל יום, בממוצע. נתון זה נשלף מרשומת הפריט.

סטיית תקן צריכה יומית: סטיית תקן היא מדד סטטיסטי של פיזור הנתונים. במילים אחרות, סטיית התקן מציינת באיזו מידה הצריכה היא קבועה, כלומר, באיזו מידה בכל יום יוצאת מהמלאי כמות דומה. ככל שסטיית התקן גבוהה יותר, יש לשמור כמות גדולה יותר כמלאי ביטחון.

הנתונים הרלוונטיים לגבי כל אחד מהספקים הם:

עלות קבועה להזמנה: סך ההוצאות הקבועות בהזמנת פריט מספק. לדוגמה: אם יש לשלוח משאית כדי להביא את הפריט מהספק, אזי משלוח המשאית הוא עלות קבועה, משום שהיא אינה תלויה בכמות שתוזמן. ככל שהמחיר הקבוע להזמנה גבוה יותר, עדיף להזמין את הפריט בתדירות נמוכה יותר ובכמות גדולה יותר בכל פעם. כתוצאה מכך, ככל שהעלות הקבועה להזמנה גבוהה יותר, מלאי הביטחון גבוה יותר.

תדירות הביקור: ישנם ספקים שמביאים את הפריטים לעסק (כלומר, הם מבצעים את ההובלה). בסעיף זה רושמים כל כמה ימים הספק שולח סחורה. אם הספק אינו שולח סחורה (אלא העסק נוסע להביא את הפריטים) יש לרשום בסעיף זה את המספר 0.

זמן אספקה ממוצע: תוך כמה ימים בממוצע (מתאריך ההזמנה) הספק מספק בפועל את ההזמנה (Lead time). התוכנה מחשבת את זמן האספקה על סמך הפרש הזמן בימים בין מועד הוצאת הזמנת הרכש לבין מועד הפקת תעודת משלוח רכש. ככל שזמן האספקה ארוך יותר, יש להזמין את השלמת המלאי מוקדם יותר.

סטיית תקן זמן אספקה: סטיית התקן של זמן האספקה. באיזו מידה זמן האספקה (שנרשם בסעיף הקודם) הוא קבוע. ככל שהפיזור גבוה יותר (= סטיית תקן של זמן האספקה גבוהה) יש לשמור מלאי גדול יותר על מנת להימנע ממצב של חוסר מלאי.

לגבי כל פריט וכל ספק  יש להתחשב בנתונים הבאים:

כמות מינימאלית להזמנה: מגבלה של הספק לגבי הכמות המינימאלית שהוא מוכן לספק (לגבי כל פריט).

מחיר: מחיר ליחידה כפונקציה של כמות (לדוגמה: מ- 1 ועד 100 המחיר הוא א', מעל 100 המחיר הוא ב'). לעתים כדאי לרכוש כמות גדולה יותר על מנת לחסוך במחיר ליחידה.

לבסוף, יש להתחשב גם בנתון הבא:

ריבית שנתית: % הריבית שמשקף את ערך הכסף. ככל ש- % זה גבוה יותר, עלות הכסף שיש להשקיע במלאי הביטחון גבוהה יותר, מה שעלול להוביל להקטנה של מלאי הביטחון.

כמובן, עם כמות כזו של נתונים רלוונטיים, החישוב אינו קל, מה גם שאי אפשר לפתור את הבעיה באמצעות תכנות ליניארי. אבל לא צריך לדאוג: ישנן תוכנות שפותרות את הבעיה בצורה מדויקת לחלוטין. החיסכון לעסק הוא עצום.

כותב המאמר הנו:

ד"ר אברהם מידן,מנכ"ל חשבשבת

Abraham@wizsoft.com       

פרסום באתר