חיזוי ביקוש מבוסס בינה מלאכותית לקולקציות — דיוק ללא ייצור יתר

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

תחומי פיתוח AI

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1365
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

מדוע תחזית ביקוש ב-fashion נכשלת בשיאים העונתיים

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

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

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

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

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

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

מחשבים את האפקט מקו בסיס אחד: את תוכנית העונות הקודמות משווים לביצוע בפועל לפי שבועות, בנפרד ברמת הקולקציה וברמת הפריט. דיוק התכנון ברמת הקולקציה בדרך כלל נע סביב 60–70%, וברמת הפריט יורד עד 40% — תוכנית ידנית משטחת קבוצות ואינה רואה ביקוש מקומי בתוך העונה.

לאחר המעבר לתכנון מנוהל הדיוק בקולקציה מגיע ל-85–90%, וברמת הפריט — ל-70–75%. זה נראה מיד ברכישה: המלאי שלא נמכר מצטמצם מרבע מהנפח ל-10–12%, ועומק ההנחה במכירת סוף העונה מוגבל לדרגת הורדת המחיר הראשונה או השנייה במקום לאחרונה. המחזוריות של הקולקציה מואצת — הסחורה עוברת את העונה במקום לנדוד לזו שאחריה.

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

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

אפשרויות בנייה: היררכיית המוצרים, תדירות החישוב מחדש, האופק

את סכמת התחזית בוחרים לא לפי «דיוק המודל», אלא לפי הרמה שבה מתקבלות החלטות הרכש. אם התוכנית מאושרת לפי הקולקציה כולה — תחזית מפורטת לכל פריט רק מייצרת רעש; אם הרכש נעשה לפי מידות, מספר אחד לא יראה את המבנה.

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

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

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

כיצד מתבצעת ההטמעה: מאודיט נתונים ועד נוהל חישוב מחדש

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

  1. אודיט של נתוני המכירות. בודקים מה באמת קיים: ייצוא ממערכת החשבונות, מקופות, מהחנות המקוונת וממשלוחים סיטוניים. מסמנים חסרים, כפילויות, החזרות וקטעים שבהם מכירת סוף העונה עיוותה את ההיסטוריה.
  2. הכנת ההיסטוריה. מרכיבים סכמה אחודה: פריט, צבע, מידה, תאריך, ערוץ, מחיר ומלאי במחסן. מביאים הכול ללוח שנה אחד ומצליבים עם אספקות ותקופות פרומו.
  3. הגדרה ואימון. המודל לומד מההיסטוריה המוכנה, ומתחשב בנפרד בעונתיות, בפריטים חדשים ובמוצרים בלי רקע קודם — השקת קולקציה חדשה היא המקרה המסוכן ביותר.
  4. בדיקה רטרוספקטיבית. המודל «חוזה» עונה שכבר עברה, שבה התשובה ידועה. כך רואים את ההתנהגות בשיאים ובמכירות סוף עונה, ולא מדד מופשט.
  5. מדידת הסטיות. מפרקים את השגיאה לפי קטגוריות ופריטים: היכן הביקוש הוערך ביתר, היכן בחסר ומה הסיבה לכך.
  6. נוהל חישוב מחדש. קובעים לפי אילו אירועים ובאיזו תדירות התחזית מתעדכנת, מי מבצע התאמות ידניות וכיצד הן נלקחות בחשבון בהמשך.
  7. מסירה לצוות הלקוח. מוסרים את סכמת הנתונים, ההגדרות וההוראות ומאמנים את העובדים, כדי שהחישוב מחדש יתבצע בלי מעורבות שלנו.

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

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

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

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

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

מקרה בוחן: כיצד צומצם המלאי שלא נמכר בקולקציה עונתית

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

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

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

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

במהלך העונה השגיאה המשוקללת של התחזית ירדה מ-38% ל-19%, ושיעור הפריטים עם שגיאה מעל 30% — מ-46% ל-18%. המלאי שלא נמכר בסוף הקולקציה צומצם פי שלושה, והמכירות שהוחמצו בגלל היעדר מידות מבוקשות — מ-7% ל-2%. שיעור המכירות במחיר מלא עלה, ועומק הורדת המחיר פחת.

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

במה נבדלת תחזית לפי קולקציות מתחזית לפי פריטים?

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

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

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

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

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

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

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

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

שאלות טכניות נפוצות: נתונים, עונתיות, אימון מחדש

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

מה עושים אם לפריט יש רק שתיים-שלוש עונות מכירות?

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

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

מבצעים ומכירות סוף עונה מעוותים את ההיסטוריה — כיצד זה נלקח בחשבון?

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

הדיוק ירד על נתונים חיים — מה סדר הפעולות?

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

באיזו תדירות נדרש אימון מחדש וכיצד נשלטת התוצאה?

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

נדון במשימה: ממה נתחיל ומה להכין

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

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

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