פיתוח מערכת AI לחיזוי ביקוש למסעדות

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

תחומי פיתוח AI

שאלות נפוצות

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

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

חיזוי ביקוש למסעדה: היכן נשבר התכנון הידני

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

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

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

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

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

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

מה נותנת מערכת החיזוי: אפקט ברכש, במשמרות ובמחיקות

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

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

התחזית נבנית על היסטוריית מכירות מקופות — לרוב אלו iiko, r_keeper או בסיס נתונים עצמאי.

שיטות חיזוי: סטטיסטיקה, מודל למידה, מצב היברידי

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

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

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

בודקים על תקופה נפרדת: טעות ממוצעת לפי ימים ובנפרד לפי ימי חג ושיא. אם הסטטיסטיקה מחזיקה 15–20%, וההיברידי מוריד ל-8–12% — המעבר מוצדק.

שלבי הטמעה: מניתוח היסטוריית מכירות ועד עבודה במשמרת

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

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

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

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

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

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

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

איך תיכננו לפני

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

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

מה הראו המדדים

טעות התחזית בטווח יומי קטנה מ-28–30% ל-12–14%, שיעור התיקונים הידניים בהזמנות — מ-100% ל-18–20%. המחיקות ירדו מ-7% ל-3% מהמחזור, רשימות העצירה בפריטים נמכרים כמעט נעלמו, והזמן לתכנון הצטמצם מכמה שעות בשבוע לחצי שעה.

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

במה שונה תחזית ביקוש יומית מתחזית לפי משמרת?

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

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

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

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

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

ספקות נפוצים לפני הטמעת תחזית מכירות

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

היסטוריית המכירות קצרה משנה — למודל לא יספיקו נתונים?

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

איך התחזית תתחבר למערכת החשבונאית?

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

חגים וזינוקים חד-פעמיים לא ישברו את התחזית?

שיאים חד-פעמיים מסמנים כאירועים ומוציאים מהעונתיות הבסיסית — אחרת אירוע חד-פעמי "ילמד" כנורמה. ימים כאלה נחשבים בתרחיש נפרד לפי לוח האירועים של הסניף, ולא נמשכים לממוצע.

מי מתחזק את המודל אחרי ההפעלה?

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

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

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

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

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

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