תכנון מול ביצוע בייצור (תפ״י) — איך מודדים עמידה בתוכנית
תפ״י הוא תכנון ופיקוח ייצור, והחלק השני נוטה להיעלם. כמעט כל מפעל יודע לומר כמה ייצר החודש; הרבה פחות יודעים לומר האם זה מה שתכננו לייצר. המדריך מסביר את שתי הנוסחאות שעונות על השאלה — עמידה בכמות ועמידה בתמהיל — למה אסור להציג אחת בלי השנייה, איך מודדים עמידה בתאריכי יעד בלי לרמות את עצמנו, ומה נחשב אחוז טוב.
מה בדיוק נמדד, ומול מה
המדידה נעשית ברמת פקודת עבודה: לכל פקודה יש כמות שתוכננה וכמות שיוצרה בפועל, ומהן נגזר הכול. זה אינו מבנה שצריך לבנות — מערכות ה-ERP כבר מייצאות את שני הנתונים באותה שורה, תחת שמות כמו דוח סטיית פקודת ייצור, Material Yield או Manufacturing Efficiency. מה שהן בדרך כלל לא עושות הוא לחשב מהם אחוז עמידה; שם נגמר הדוח ומתחיל הגיליון הידני.
לפני החישוב צריך להכריע בשאלה אחת: מהי יחידת המדידה. כשיש בקובץ מספר פקודה — מודדים פקודות. כשאין — מודדים מק״טים, וכל השורות של אותו פריט מצטברות לשורה אחת. שתי המדידות תקפות, אבל השנייה גסה יותר: שתי פקודות של אותו מק״ט, אחת בעודף ואחת בחוסר, מתקזזות ביניהן ומסתירות בדיוק את הפער שהמדד קיים כדי לחשוף.
וההכרעה השנייה היא מה נכנס למדגם. פקודה שיום היעד שלה עדיין בעתיד וטרם נסגרה אינה פספוס אלא עבודה בתהליך, והיא יוצאת מהחישוב. פקודה שיום היעד שלה כבר חלף וטרם נסגרה היא ממצא בפני עצמו — ועליה בסעיף התאריכים בהמשך.
שתי הנוסחאות: כמות ותמהיל
הנוסחה הראשונה היא זו שכולם מכירים, והיא שואלת אם הגעתם לנפח:
- הסכימה היא על כל הפקודות שנכנסו למדגם, ולא ממוצע של האחוזים פר-פקודה. ממוצע של יחסים נותן משקל זהה לפקודה של עשר יחידות ולפקודה של עשרת אלפים.
- תא ריק בכמות המתוכננת אינו אפס: שורה בלי תוכנית ובלי ביצוע אינה נכנסת לחישוב כלל.
- המינימום נלקח בכל פקודה בנפרד, ולכן עודף בפקודה אחת אינו יכול לכסות חוסר בפקודה אחרת.
- מכאן נובע שהעמידה בתמהיל לעולם אינה גבוהה מהעמידה בכמות. שוויון בין השתיים אומר שייצרתם בדיוק לפי התוכנית.
הנוסחה השנייה שואלת שאלה אחרת לגמרי — האם ייצרנו את מה שתכננו — והיא זו שמחזיקה את התשובה האמיתית:
שתי הנוסחאות מוצגות תמיד יחד, והפער ביניהן — ולא כל אחת מהן בנפרד — הוא מה שמניע את ההחלטה. שווה לשים לב שהמבנה הזה, סכום של מינימום, מופיע גם במדדים אחרים ומתכוון לדברים שונים: שיעור המילוי במכירות מודד מה סופק ללקוח מתוך מה שהוזמן, ומדד הזמינות במלאי מודד מה אפשר לספק עכשיו מהמדף. שלושתם סכום של מינימום, ושלושתם עונים על שאלות שונות — ערבוב ביניהם הוא באג בהמתנה.
דוגמה מספרית: אותו חודש, שתי מסקנות הפוכות
מפעל סיים חודש עם שלוש פקודות עבודה. אלה הנתונים כפי שהם יוצאים מהמערכת:
מי שקורא רק את השורה התחתונה רואה חודש מושלם: 5,000 מתוכננות, 5,000 מיוצרות, עמדנו ביעד. מי שקורא את טור המינימום רואה סיפור אחר לגמרי — שתים-עשרה נקודות הפער הן 600 יחידות של פריט ב׳ שלקוח כלשהו הזמין ולא יקבל, ו-600 יחידות עודפות של פריט א׳ שיישבו במלאי עד שיימצא להן ביקוש.
שני הצדדים עולים כסף, ואף אחד מהם אינו נראה במספר הכולל. וזה גם המצב הקלאסי שבו מנהל הייצור מדווח על עמידה ביעד ובאותו שבוע מנהל המכירות מדווח על חוסר אצל לקוח — שניהם צודקים, כי הם מסתכלים על שני מספרים שונים.
| פקודה | מתוכנן | יוצר בפועל | המינימום | יעד / סיום בפועל |
|---|---|---|---|---|
| MO-10231 | 2,000 | 2,600 | 2,000 | 20 באוגוסט / 19 באוגוסט — בזמן |
| MO-10232 | 2,000 | 1,400 | 1,400 | 24 באוגוסט / 27 באוגוסט — איחור |
| MO-10233 | 1,000 | 1,000 | 1,000 | 28 באוגוסט / 28 באוגוסט — בזמן |
עמידה בתאריכי היעד — שלוש הכרעות שקובעות את המספר
אחוז העמידה בתאריכים נראה כמו חישוב טריוויאלי, ובפועל שלוש הכרעות שקטות משנות אותו בעשרות אחוזים. הראשונה היא חלון ההשוואה: משווים ימים קלנדריים ולא שעות, כדי שפקודה שנסגרה בסוף יום היעד לא תיחשב איחור בגלל חותמת שעה. השנייה היא הסבילות: איחור הוא איחור מהיום הראשון, בלי חסד של יום-יומיים שמנקה בשקט את רוב האיחורים הקטנים.
השלישית היא ההכרעה החשובה מכולן — מה קורה לפקודה שיום היעד שלה חלף ואין לה עדיין תאריך סיום:
- פקודה פתוחה שחלף מועדה נשארת במכנה. הוצאתה משם הייתה משפרת את האחוז דווקא כשהביצוע גרוע יותר — ככל שיותר פקודות נתקעות, כך פחות פקודות נספרות.
- סיום מוקדם נספר כבזמן, אבל שיעור ההקדמות מדווח בנפרד: הקדמה שיטתית אינה הצלחה תפעולית אלא סימן לתכנון שמרני מדי, שמשלמים עליו במלאי ובזמן מכונה.
הפקודות שחלף מועדן וטרם נסגרו ראויות לרשימה משלהן, מגוילת לפי ותק. זו הרשימה שמסך ייצור רגיל אינו מראה: פקודה פתוחה אינה "מאחרת" בשום דוח, היא פשוט ממשיכה להיות פתוחה. וכדאי לדעת שפקודה ותיקה במיוחד היא לרוב שורה מתה בקובץ ולא עבודה שממתינה — שווה לבדוק אותה לפני שמתכננים סביבה.
פסולת ויעילות — שני מדדים שאסור לערבב עם העמידה
שיעור הפסולת נמדד כפסול חלקי סך מה שיצא מהמכונה, טוב ופסול יחד. הרף המקובל בייצור בדיד הוא סביב 2%, ומעליו הפסולת הופכת לסעיף עלות בפני עצמו. הטעות הנפוצה היא לנכות את הפסולת מהכמות שיוצרה, וזו טעות מהותית: פקודה שיוצרה במלואה עם פסולת גבוהה עמדה בתוכנית ויש לה בעיית איכות. שני ממצאים שונים, שתי החלטות שונות, שני מספרים.
היעילות מול שעות התקן היא סך שעות התקן חלקי סך השעות שדווחו בפועל, על הפקודות שיש בהן שני הנתונים. מעל 1 — הייצור מהיר מהתקן. מתחת ל-1 — הוא לוקח יותר זמן מהמתוכנן, וזו לעיתים קרובות הסיבה האמיתית לפספוס בכמות: לא חוסר חומר ולא תקלה, אלא תקן שכבר אינו משקף את המציאות בקו. בדוגמה שלמעלה, 36.5 שעות תקן מול 38.7 שעות בפועל נותנות יעילות של 0.94.
OEE — למה המדד המפורסם בתחום אינו מוצג אצלנו, ומה מוצג במקומו
OEE (Overall Equipment Effectiveness) הוא המדד המרכזי של עולם הייצור והמונח המחופש ביותר בתחום. הוא מוגדר כמכפלה של שלושה רכיבים — זמינות כפול ביצוע כפול איכות. זמינות היא זמן הריצה חלקי זמן הייצור המתוכנן, כלומר היא מודדת עצירות. ביצוע הוא זמן מחזור התקן כפול הכמות שיוצרה, חלקי זמן הריצה. ואיכות היא היחידות התקינות חלקי סך היחידות שיצאו.
מה שהשוק מספר על היעד: 85% מכונה "רמה עולמית", והוא עצמו מכפלה של 90% זמינות, 95% ביצוע ו-99% איכות. המציאות רחוקה משם. רוב המפעלים נמצאים סביב 60%, ויש יותר מפעלים מתחת ל-45% מאשר מעל 85%. בנתוני שדה של יותר מ-3,500 מכונות ביותר מחמישים מדינות, שיא ההתפלגות נמצא בין 55% ל-60%, ורק כשישה אחוזים מהארגונים מעל 85% — ולהערכת מי שפרסם את הנתונים, כשלושה אחוזים בלבד אחרי ניכוי שגיאות חישוב. המסקנה המעשית הפוכה מהאינטואיציה: מפעל שמדווח על 85% ראוי שיבדוק קודם כול את שיטת החישוב שלו.
ואצלנו OEE אינו מוצג, בכוונה, והסיבה יושבת ברכיב הראשון. זמינות דורשת מדידת עצירות — דיווח מהמכונה עצמה או שעון עבודה ברצפת הייצור. אנחנו עובדים מקובץ פקודות עבודה, ובקובץ אין עצירות. מכפלה של שלושה רכיבים שאחד מהם אינו נמדד אינה מדד חלקי אלא מספר שגוי; וגרוע מכך, מספר שנושא את השם המוכר ומחושב אחרת מזמין השוואה לבנצ׳מרק שאינה תקפה.
מה שכן ניתן לחשב מקובץ פקודות עבודה קיים במסך, בשלושה מקומות: יחס שעות התקן ושיעור הפסולת שנדונו בפרק הקודם; שכבת היתכנות הקיבולת, שמשווה את העומס שהתוכנית מטילה על כל משאב לקיבולת שהוצהרה לו; ושלישיית יעילות המשאב — ניצולת, יעילות ואיכות — שלושה מספרים ברמת המשאב, שכל אחד מהם מוצג בפני עצמו.
ויעד הניצולת אינו מספר אחד למפעל, וזו הנקודה שהכי קל לפספס: משאב שאינו צוואר בקבוק שרץ ב-95% אינו הישג אלא סימן שמייצרים למלאי, וצוואר בקבוק שרץ ב-60% הוא קצב המפעל שנזרק. לכן הניצולת נמדדת מול יעד שנגזר מתפקיד המשאב, והתפקיד עצמו נגזר מיחס העומס בשכבת ההיתכנות ואינו נשאל מכם. ומאותה סיבה הניצולת אינה מוצגת לבדה: לצידה מופיעה תמיד העמידה בכמות המתוכננת של אותו משאב, כי ניצולת גבוהה שהושגה מהעדפת ריצות ארוכות על פני התוכנית אינה הישג.
| רכיב ב-OEE | מה הוא מודד | מה נמדד אצלנו במקומו |
|---|---|---|
| זמינות | זמן ריצה מתוך זמן הייצור המתוכנן — כלומר העצירות | ניצולת: השעות שדווחו בפועל על המשאב, מתוך הקיבולת שהוצהרה לו לאותה תקופה. משפחת מדידה אחרת, ולכן אינה ברת-השוואה לזמינות |
| ביצוע | זמן מחזור התקן מול זמן הריצה בפועל | יעילות מול שעות התקן: סך שעות התקן חלקי סך השעות שדווחו, על הפקודות שיש בהן שני הנתונים |
| איכות | יחידות תקינות מתוך סך היחידות שיצאו | איכות באותה הגדרה בדיוק, ולצידה שיעור הפסולת — פסול מתוך כל מה שיצא מהמכונה, טוב ופסול יחד |
חמש טעויות שהופכות את המדד לחסר ערך
חמש טעויות שחוזרות כמעט בכל מפעל שמתחיל למדוד עמידה בתוכנית:
- מציגים עמידה בכמות בלי עמידה בתמהיל. זו הטעות היקרה ביותר, כי היא זו שמייצרת את הדיווח "עמדנו ביעד" בחודש שבו לקוח לא קיבל את ההזמנה שלו. שני המספרים או אף אחד מהם.
- מוציאים מהחישוב פקודות שחלף מועדן וטרם נסגרו. זה משפר את האחוז בדיוק כשהמצב מחמיר, והופך את המדד למראה שמחמיאה.
- מנכים את הפסולת מהכמות שיוצרה. זה מערבב בעיית עמידה בתוכנית עם בעיית איכות, ומקבל מספר אחד שאי אפשר לפעול לפיו.
- מודדים מול תוכנית שמתעדכנת. תוכנית שנקראת חיה מהקובץ ומשתנה כל שבוע אינה קו בסיס: העמידה של החודש שעבר תשתפר מעצמה ברגע שמישהו יעדכן את הקובץ. קו בסיס למדידה חייב להיות מוקפא במועד שבו נקבע. ולכן גם צריך לומר במפורש איזו תמונת מצב היא קו הבסיס: אצלנו זו התמונה המוקדמת ביותר שהפקודה מופיעה בה ולעולם לא האחרונה, תאריך התמונה מוצג במסך ליד כל כרטיס עמידה, וכשאין קו בסיס המסך אומר שהמספר נמדד מול הקובץ כפי שהוא היום.
- מציגים אחוז בלי המכנה שלו. אחוז עמידה שמחושב על שלוש פקודות מושפע יותר מפקודה בודדת מאשר מהביצוע עצמו. הרף המעשי הוא כחמש פקודות בחלון — מתחתיו זה סדר גודל, לא מדד — ולכן כל מספר צריך להצהיר על כמה פקודות הוא מחושב ובאיזה חלון.
מה נחשב אחוז טוב, ומה עושים עם המספר
אין לשאלה הזו תשובה שפורסמה בתקן: תקינה ומחקר מגדירים איך מודדים, ומספרי סף מגיעים כמעט תמיד מספקים ומחברות ייעוץ. הסולם שלהלן הוא הסיווג שאנחנו עומדים מאחוריו, והוא מוצג באותה צורה גם במסך עצמו. מעל 90% — התוכנית משקפת את הקיבולת בפועל, וסטיות הן אירועים נקודתיים. בין 80% ל-90% — קיימים פערי ביצוע שראוי לתחקר, אבל התוכנית עצמה עדיין שמישה. מתחת ל-80% — התוכנית אינה מתפקדת כהתחייבות תפעולית אלא כהצהרת כוונות, ותיקון ברצפת הייצור לא יסגור את הפער.
ולכן נכון לקרוא את הגבולות כייחוס לסדר גודל ולא כערך מדויק — הרף האמיתי משתנה בין ענפים, והכיוון לאורך זמן חשוב לא פחות מהרמה המוחלטת. מה שכן מדויק הוא כיוון ההחלטה: כשהפער מרוכז בסיבה אחת — חוסר חומר גלם, תקלת מכונה, שינוי עדיפויות — זו בעיה תפעולית שיש לה בעלים. כשהוא מפוזר על פני כל הסיבות ובכל החודשים, הבעיה היא בתכנון עצמו, וההחלטה הנכונה היא לתקן את התוכנית ולא את הביצוע.
ולכן העמודה שהכי משתלמת להוסיף לקובץ היא דווקא סיבת הסטייה. היא הופכת מספר יחיד לרשימת פעולות: 520 יחידות מאחורי חוסר חומר גלם הן שיחה עם הרכש, לא שיחה עם רצפת הייצור. במודול התפ״י של Dashboardim שתי הנוסחאות מוצגות זו לצד זו עם הפער ביניהן, לצד העמידה בתאריכים, הפיגור הפתוח ופילוח הפער לפי סיבה — כל אחד מהם פותח את שורות הפקודות שמאחוריו.
שאלות נפוצות
מה ההבדל בין עמידה בכמות לעמידה בתמהיל?
עמידה בכמות (Attainment) היא סך מה שיוצר חלקי סך מה שתוכנן — היא שואלת אם הגעתם לנפח. עמידה בתמהיל (Adherence) היא סכום המינימום בין הביצוע לתוכנית בכל פקודה בנפרד, חלקי סך התוכנית — היא שואלת אם ייצרתם את מה שתכננתם. ההבדל המבני הוא שבתמהיל עודף בפקודה אחת אינו מכסה חוסר בפקודה אחרת, ולכן הוא לעולם אינו עולה על העמידה בכמות.
מה נחשב אחוז עמידה טוב בייצור?
אין לכך תשובה שפורסמה בתקן — תקינה ומחקר מגדירים איך מודדים, ומספרי סף מגיעים מספקים ומיועצים. הסיווג שאנחנו עומדים מאחוריו, ומוצג ככזה גם במסך, הוא שלוש רמות: מעל 90% התוכנית משקפת את הקיבולת בפועל; בין 80% ל-90% קיימים פערי ביצוע; מתחת ל-80% התוכנית אינה מתפקדת כהתחייבות תפעולית אלא כהצהרת כוונות. הרף האמיתי משתנה בין ענפים, ולכן הכיוון לאורך זמן חשוב לא פחות מהרמה המוחלטת.
איך מודדים כשאין בקובץ מספר פקודת עבודה?
מודדים ברמת המק״ט: כל השורות של אותו פריט מצטברות לשורה אחת, והעמידה מחושבת עליה. זו מדידה תקפה, אבל היא גסה יותר — שתי פקודות של אותו מק״ט, אחת בעודף ואחת בחוסר, יתקזזו ביניהן ויסתירו בדיוק את הפער שהמדד קיים כדי לחשוף. לכן מספר הפקודה הוא העמודה הראשונה שכדאי להוסיף לייצוא.
כמה פקודות צריך כדי שהמספר יהיה מדד ולא סדר גודל?
מתחת לחמש פקודות בחלון המדידה, אחוז העמידה מושפע יותר מפקודה בודדת מאשר מהביצוע עצמו, וראוי לקרוא אותו כסדר גודל בלבד. זו גם הסיבה שמדד עמידה צריך תמיד להצהיר על כמה פקודות הוא מחושב ובאיזה חלון — מספר בלי המכנה שלו אינו ניתן לפעולה.
למה פקודה שאיחרה וטרם נסגרה נשארת בחישוב?
כי הוצאתה מהמכנה משפרת את האחוז דווקא כשהביצוע גרוע יותר: ככל שיותר פקודות נתקעות פתוחות, כך פחות פקודות נספרות — והמדד עולה. פקודה שיום היעד שלה חלף ואין לה תאריך סיום נספרת כפיגור פתוח ונשארת במכנה של העמידה בתאריכים.
מול איזו תמונת מצב של התוכנית נמדדת העמידה?
מול קו הבסיס, והכלל מוצהר במפורש: קו הבסיס הוא התמונה המוקדמת ביותר שהפקודה מופיעה בה, ולעולם לא האחרונה. יחידת קו הבסיס היא הפקודה ולא התקופה — פקודה שנפתחה אחרי התמונה הראשונה בסדרה נמדדת מול התמונה הראשונה שהיא עצמה מופיעה בה, ולא נספרת כתוכנית אפס על התחייבות שמעולם לא נאמרה. תאריך התמונה שממנה נלקח קו הבסיס מוצג במסך ליד כל כרטיס עמידה, יחד עם מספר התמונות בסדרה. וכשאין קו בסיס — ההקפאה כבויה, או שהתמונה היחידה נרשמה היום — המסך אומר זאת במפורש ואומר שהמספר נמדד מול הקובץ כפי שהוא היום; אין נפילה שקטה לתמונה האחרונה.