תנודתיות ביקוש וסיווג XYZ — למה שני פריטי A דורשים מדיניות שונה
סיווג ABC עונה על שאלה אחת: כמה כסף הפריט מייצג. הוא אינו עונה — ואינו יכול לענות — על השאלה כמה קשה לחזות אותו. סיווג XYZ הוא הממד השני: הוא מודד את תנודתיות הביקוש דרך מקדם ההשתנות, וההצלבה של השניים מייצרת תשעה תאים שכל אחד מהם דורש מדיניות מלאי אחרת. בלי הממד הזה מייצרים שתי טעויות בו-זמנית — עודף מלאי על הפריטים הצפויים וחוסרים על התנודתיים.
מה ABC לא יכול לספר לכם
סיווג ABC ממיין את המצאי לפי שווי הצריכה השנתי ומחלק אותו לשלוש קבוצות. זו חלוקה נכונה ושימושית, והיא עונה על השאלה "על מה שווה להשקיע תשומת לב ניהולית". אבל היא ממד אחד, ולממד אחד יש נקודה עיוורת קבועה: הוא מודד גודל ולא צורה.
קחו שני מק״טים בקבוצה A, שניהם נצרכים 1,200 יחידות בשנה באותה עלות ליחידה. מבחינת ABC הם תאומים זהים ויקבלו בדיוק את אותה מדיניות. הראשון נצרך כמאה יחידות בכל חודש, בלי יוצא מן הכלל. השני נצרך אפס בתשעה חודשים ומאות יחידות בשלושה. מבחינת תכנון אלה שני עולמות: על הראשון אפשר להחזיק כרית קטנה ולחדש אוטומטית, ועל השני כל כרית סבירה תהיה או גדולה מדי אחת-עשרה חודשים בשנה או קטנה מדי בחודש שבו ההזמנה מגיעה.
זו אינה בעיה תיאורטית. כשרמת השירות אחידה לכל הקטלוג, המערכת מייצרת שתי טעויות הפוכות באותו מסך: חיץ מיותר על הפריטים היציבים — הון כלוא שאף אחד לא ירגיש בו — וחיץ חסר על התנודתיים, שנגמרים דווקא כשצריך אותם.
הנוסחה: מקדם ההשתנות של הביקוש
המדד שמתרגם "כמה קשה לחזות" למספר הוא מקדם ההשתנות (Coefficient of Variation) של הביקוש התקופתי. הוא מחושב מסדרת הביקוש החודשית — אותה סדרה שממנה נגזרת סטיית התקן בחישוב מלאי הביטחון.
- הביקוש החודשי — הכמות שיצאה בפועל בכל חודש בחלון המדידה, כולל חודשים שבהם יצאו אפס יחידות.
- סטיית התקן — מדגמית (חלוקה ב-n−1 ולא ב-n). זו אותה מוסכמה שבה מחושבת סטיית התקן של הביקוש בנקודת ההזמנה, ושתי הנוסחאות חייבות להסכים.
- התוצאה חסרת יחידות ומבוטאת באחוזים, ולכן היא משווה בין מק״ט שנמכר באלפים למק״ט שנמכר ביחידות.
הספים המקובלים לחלוקה לשלוש קבוצות הם 10% ו-25%: מתחת ל-10% הביקוש נחשב יציב (X), בין 10% ל-25% משתנה (Y), ומעל 25% תנודתי (Z). אלה ברירות מחדל ולא חוקי טבע — עסק עם עונתיות מובהקת ימצא שכמעט כל הקטלוג שלו יוצא Y או Z בספים האלה, ואצלו הספים צריכים לזוז. מה שאסור לשנות הוא שהגבולות חייבים להיות חצי-פתוחים: CV של 10% בדיוק שייך ל-Y ולא ל-X. בגבול סגור אותו מק״ט נספר בשתי רצועות, וסכום שלוש הרצועות גדול ממספר המק״טים.
דוגמה מספרית: שני פריטי A זהים לחלוטין ב-ABC
שני המק״טים בטבלה נצרכו 1,200 יחידות באותה שנה, באותה עלות ליחידה. שווי הצריכה השנתי שלהם זהה, ולכן סיווג ABC מציב אותם באותה קבוצה בדיוק.
| חודש | MAT-201 (יציב) | MAT-202 (תנודתי) |
|---|---|---|
| ינואר | 96 | 0 |
| פברואר | 104 | 0 |
| מרץ | 99 | 400 |
| אפריל | 101 | 0 |
| מאי | 98 | 0 |
| יוני | 102 | 350 |
| יולי | 97 | 0 |
| אוגוסט | 103 | 0 |
| ספטמבר | 100 | 450 |
| אוקטובר | 100 | 0 |
| נובמבר | 101 | 0 |
| דצמבר | 99 | 0 |
מה הדוגמה מלמדת
הממוצע החודשי זהה — 100 יחידות — ולכן כל מדד שנשען על הממוצע בלבד יראה את שני המק״טים כאותו פריט. סטיית התקן המדגמית היא שמפרידה ביניהם: 2.4 יחידות ב-MAT-201 מול 182.2 יחידות ב-MAT-202.
מכאן נגזר ה-CV. עבור MAT-201 מתקבל 2.4%, כלומר X מובהק; עבור MAT-202 מתקבל 182%, כלומר Z מובהק. אותה קבוצת ABC בדיוק, ושני קצוות של סולם התנודתיות.
שימו לב לתשעת החודשים שבהם MAT-202 לא נמכר כלל. אילו היו נספרים כנתון חסר ולא כאפס, החישוב היה רץ על שלושה חודשים בלבד — 400, 350 ו-450 יחידות — והיה מחזיר CV של כ-12%, כלומר Y, פריט משתנה במידה סבירה. חודש בלי מכירה הוא ביקוש אפס, וההכרעה הזו היא ההבדל בין המדד לבין ההפך שלו.
מטריצת ABC-XYZ — תשעה תאים, ולכל תא מדיניות משלו
ההצלבה של שני הסיווגים יוצרת תשעה תאים, מ-AX (יקר וצפוי) ועד CZ (זול ובלתי צפוי). הטבלה אינה קישוט: היא הופכת את הסיווג להחלטה תפעולית, וזו הסיבה היחידה לחשב אותו.
| תא | מה זה אומר | מדיניות מומלצת |
|---|---|---|
| AX | יקר וצפוי | ליבת הקטלוג — חידוש אוטומטי, חיץ קטן, מעקב שוטף |
| AY | יקר, תנודתיות בינונית | חידוש אוטומטי עם בדיקה תקופתית של הפרמטרים |
| AZ | יקר ובלתי צפוי | תכנון ידני מול צבר ההזמנות — חיץ גבוה או ייצור לפי הזמנה |
| BX | בינוני וצפוי | חידוש אוטומטי, סקירה שבועית |
| BY | בינוני, תנודתיות בינונית | חידוש אוטומטי, סקירה שבועית עד חודשית |
| BZ | בינוני ובלתי צפוי | לשקול הזמנה לפי דרישה במקום החזקת חיץ |
| CX | זול וצפוי | הזמנה בכמות גדולה ובתדירות נמוכה |
| CY | זול, תנודתיות בינונית | הזמנה בכמות גדולה ובתדירות נמוכה |
| CZ | זול ובלתי צפוי | מועמד ראשון לגריעה מהקטלוג או להזמנה לפי דרישה בלבד |
שני התאים שקובעים את התוצאה
AZ הוא הפריט שגורם לרוב הפעמים שבהן קו הייצור נעצר: הוא יקר, ולכן אי אפשר להחזיק ממנו הרבה, והוא בלתי צפוי, ולכן אי אפשר לתזמן אותו. הפתרון שלו הוא בדרך כלל הסכם זמינות מול הספק או מעבר לייצור לפי הזמנה — לא הגדלת החיץ, שרק כולאת עוד הון באותה אי-ודאות.
CZ הוא ההפך הגמור: זול מספיק כדי שאיש לא ישים לב אליו, ובלתי צפוי מספיק כדי שכל ניסיון לתכנן אותו ייכשל. הוא ממלא את המדפים, צורך זמן ספירה, ומייצר את רוב שורות המלאי המת. ברוב הקטלוגים הוא גם התא המאוכלס ביותר, ולכן הוא הרשימה שכדאי לפתוח בה.
מה זה עושה למלאי הביטחון
הסיווג מתחיל להחזיר כסף ברגע שהוא נכנס לנוסחה. מלאי הביטחון נגזר משלושה גורמים, ושניים מהם משתנים בין X ל-Z.
- Z — מקדם שנגזר מרמת השירות שנבחרה: 1.28 ל-90%, 1.65 ל-95%, 1.88 ל-97%, 2.05 ל-98% ו-2.33 ל-99%.
- סטיית תקן של הביקוש — אותה σ שממנה חושב ה-CV, ולכן פריט Z נכנס לנוסחה עם מספר גדול בהרבה.
- זמן אספקה — באותה יחידת זמן שבה נמדד הביקוש.
נחזור לשני המק״טים מהדוגמה, בזמן אספקה של חודש אחד וברמת שירות אחידה של 95%, כלומר מקדם של 1.65. עבור MAT-201 המקדם מוכפל בסטיית תקן של 2.4 יחידות, והתוצאה היא כארבע יחידות מלאי ביטחון. עבור MAT-202 אותו מקדם מוכפל בסטיית תקן של 182.2 יחידות, והתוצאה היא כ-301 יחידות. אותה קבוצת ABC, אותה רמת שירות, וחיץ גדול פי שבעים וחמישה — משום שסטיית התקן היא ששולטת בנוסחה.
השכבה השנייה היא רמת השירות עצמה. במקום רמה אחידה לכל הקטלוג, אפשר להזיז אותה לפי התא: פריטי X מקבלים רמת שירות גבוהה יותר מפריטי Z באותה קבוצת ערך, כי עלות הכרית שלהם זולה — מעט יחידות קונות ביטחון רב. בפריט תנודתי כל אחוז נוסף של רמת שירות עולה עשרות יחידות, ולכן שם משתלם יותר לטפל במקור אי-הוודאות מאשר לממן אותו במלאי.
⚠️ זו מוסכמה שיש לה אסכולה נגדית, ולכן ראוי לומר אותה במפורש: יש גישה שמעלה דווקא את רמת השירות של פריטי Z כדי לכסות את אי-הוודאות. בשתי הגישות מלאי הביטחון של AZ נשאר גבוה מזה של AX — הוויכוח הוא על עוצמת הפער, לא על כיוונו. מה שחשוב הוא שהמוסכמה תיאמר ליד המספר ולא תוסתר בתוכו.
חמש טעויות שהופכות את ה-CV למספר חסר משמעות
החישוב עצמו הוא שתי שורות באקסל, ובדיוק משום כך קל להריץ אותו לא נכון. חמש הטעויות הבאות חוזרות כמעט בכל יישום ראשון:
- החודש הנוכחי בתוך הסדרה. הקובץ נטען ב-2 בחודש, ולכן החודש האחרון מכיל יומיים של מכירות. תצפית נמוכה אחת בקצה מנפחת את סטיית התקן של כל הקטלוג — מק״ט שנמכר 200 יחידות בכל חודש בלי יוצא מן הכלל יוצא Z. החודש החלקי צריך לצאת מהחישוב, ולא לקבל תיקון יחסי.
- חודש בלי מכירה שנספר כנתון חסר. אז התנודתיות נמדדת רק על החודשים המוצלחים, וה-CV של מק״ט ספורדי יוצא נמוך דווקא משום שהוא ספורדי — כלומר הפריט הכי בלתי צפוי בקטלוג מסווג X.
- מק״ט חדש שמסווג Z. שלושה חודשי היסטוריה אינם "ביקוש תנודתי" אלא היעדר תצפיות. הסף המקובל הוא שישה חודשי ותק לפחות, והמק״טים שמתחתיו צריכים להיות מסומנים כלא-מסווגים ולא מוסתרים: סינון שקט משפר את המספר ומרוקן אותו ממשמעות.
- מק״ט בלי ביקוש כלל שמקבל CV. חלוקה בממוצע אפס אינה אינסוף אלא לא מוגדרת. פריט כזה אינו Z — הוא נושא לשאלה אחרת לגמרי, זיהוי מלאי מת.
- רענון הסיווג בכל טעינת קובץ. זו הטעות היחידה מבין החמש שאינה בחישוב אלא בשימוש: פריט שקופץ בין X ל-Y מדי שבוע בגלל רעש שובר את המדיניות שנגזרה ממנו. רבעון הוא תדירות סבירה, וההשוואה בין הרענונים — מי עבר תא — היא לרוב המידע החשוב יותר.
איך זה מחושב אצלנו
במודול המלאי של Dashboardim סיווג ה-XYZ מחושב מסדרת הביקוש החודשית שנגזרת מקובץ ההזמנות — אותה סדרה בדיוק שממנה נגזרת סטיית התקן בנקודת ההזמנה, כדי ששני המסכים לא ימסרו שני מספרים סותרים על אותו פריט.
המוסכמות מוצהרות במסך ולא מוסתרות: החודש הנוכחי יוצא מהסדרה מפני שהוא חלקי; חודש בלי מכירה נספר כאפס; הגבולות חצי-פתוחים; סטיית התקן מדגמית; ומק״ט עם פחות משישה חודשי ותק מסומן כלא ניתן לסיווג עם הסיבה לצידו, ואינו נעלם מהספירה. הספים ניתנים לכוונון, והמטריצה סופרת מק״טים ושווי מלאי — לא שורות קובץ.
ומה שנגזר מזה: רמת השירות בחישוב מלאי הביטחון מוצמדת לתא ה-ABC-XYZ, יחסית לרמת הבסיס שנבחרה במסך ובגבולות סולם רמות השירות. הבחירה שלכם נשארת הבחירה שלכם; המטריצה רק מזיזה אותה לכיוון הנכון לכל תא.
שאלות נפוצות
מה ההבדל בין סיווג ABC לסיווג XYZ?
ABC מודד כמה כסף הפריט מייצג — שווי הצריכה השנתי שלו. XYZ מודד כמה קשה לחזות אותו — מקדם ההשתנות של הביקוש החודשי. אלה שני ממדים שאינם תלויים זה בזה: שני פריטים יכולים להיות שניהם A עם אותו שווי צריכה בדיוק, כשאחד נצרך בקצב אחיד והשני מגיע בשלוש הזמנות ענק. ABC לבדו אינו מבחין ביניהם, ולכן ייתן להם את אותה מדיניות מלאי.
איך מחשבים מקדם השתנות (CV) של הביקוש?
CV = סטיית התקן של הביקוש החודשי ÷ הביקוש החודשי הממוצע. מק״ט שנצרך בממוצע 100 יחידות בחודש עם סטיית תקן של 2.4 יחידות מקבל CV של 2.4%; מק״ט עם אותו ממוצע בדיוק וסטיית תקן של 182 יחידות מקבל CV של 182%. המדד חסר יחידות, ולכן אפשר להשוות בו מק״ט שנמכר באלפים למק״ט שנמכר ביחידות.
מהם הספים המקובלים ל-X, ל-Y ול-Z?
X מתחת ל-10%, Y בין 10% ל-25%, Z מעל 25%. אלה ברירות מחדל מקובלות ולא חוקי טבע — בעסק עם ביקוש עונתי מובהק כמעט כל הקטלוג ייצא Y או Z בספים האלה, וכדאי להרחיב אותם. חשוב שהגבולות יהיו חצי-פתוחים: CV של 10% בדיוק שייך ל-Y ולא ל-X, אחרת אותו מק״ט נספר בשתי רצועות ושני מספרים סמוכים סותרים זה את זה.
כמה היסטוריה צריך כדי לסווג XYZ?
שישה חודשי ותק לפחות, ורצוי שנים-עשר. מק״ט חדש אינו "תנודתי" אלא חסר תצפיות, וסיווגו כ-Z הוא ניחוש. שימו לב להבחנה: הוותק נמדד מהחודש הראשון שבו הייתה מכירה, ולא ממספר החודשים שהיו בהם מכירות. מק״ט ותיק שנמכר בשלושה חודשים מתוך שנים-עשר הוא בדיוק הצורה הקלאסית של Z, ואסור להוציא אותו מהמדד.
חודש בלי מכירה — אפס או נתון חסר?
אפס. חודש בלי מכירה הוא ביקוש אפס, ולא תצפית חסרה. אם מדלגים עליו, התנודתיות מחושבת רק על החודשים המוצלחים, וה-CV של מק״ט ספורדי יוצא נמוך דווקא משום שהוא ספורדי — כלומר הפריט הכי בלתי צפוי בקטלוג מסווג X.