אופטימיזציה של מחירי המוצרים הקמעונאיים

1. מבוא

עדכון אחרון: 15 בספטמבר 2021

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

dd8545e0c9156b13.png

  1. הערכת מקורות נתונים: קודם כול צריך להיות לכם מלאי של מקורות נתונים שישמשו ליצירת ה-CDM. בשלב הזה, המערכת משתמשת גם ב-Dataprep כדי לחקור ולזהות בעיות בנתוני הקלט. לדוגמה, ערכים חסרים או לא תואמים, ערכים לא עקביים של שמות, כפילויות, בעיות בתקינות הנתונים, חריגים חשודי טעות וכו'.
  2. קביעת סטנדרטיזציה: בשלב הבא, בעיות שזוהו בעבר מתוקנות כדי להבטיח שהנתונים יהיו מדויקים, תקינות, עקביות ושלמות. התהליך הזה יכול לכלול טרנספורמציות שונות ב-Dataprep, כמו פורמט תאריך, תקן לקביעת ערכים, המרת יחידות, סינון של שדות וערכים מיותרים ופיצול, איחוד או שכפול של נתוני המקור.
  3. איחוד במבנה אחד: בשלב הבא בצינור עיבוד הנתונים, כל מקור נתונים מצורפים לטבלה אחת רחבה ב-BigQuery, שמכילה את כל המאפיינים ברמה המפורטת ביותר. המבנה שעבר דה-נורמליזציה מאפשר לבצע שאילתות ניתוח יעילות שלא דורשות שאילתות איחוד (join).
  4. איך מעבירים ניתוח נתונים למידת מכונה/AI: אחרי שהנתונים נקיים ומעוצבים לניתוח, אנליסטים יכולים לעיין בנתונים היסטוריים כדי להבין את ההשפעה של שינויים קודמים במחירים. בנוסף, אפשר להשתמש ב-BigQuery ML כדי ליצור מודלים חזויים שמבצעים הערכה של המכירות העתידיות. אפשר לשלב את הפלט של המודלים האלה במרכזי בקרה ב-Looker כדי ליצור תרחישי "מה קורה אם" שבו משתמשים עסקיים יכולים לנתח איך מוצרים עשויים להיראות עם שינויים מסוימים במחיר.

בתרשים הבא מוצגים הרכיבים של Google Cloud שמשמשים לפיתוח צינור עיבוד הנתונים של Analytics לאופטימיזציית התמחור.

e5d74e43074eedf4.png

מה תפַתחו

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

מה תלמדו

  • איך לחבר את Dataprep למקורות נתונים לצורך ניתוח נתוני תמחור, שאפשר לאחסן במסדי נתונים רלציוניים, בקבצים שטוחים, ב-Google Sheets ובאפליקציות נתמכות אחרות.
  • איך יוצרים תהליך של Dataprep כדי ליצור טבלת CDM במחסן הנתונים (data warehouse) ב-BigQuery.
  • איך להשתמש ב-BigQuery ML כדי לחזות את ההכנסה העתידית.
  • איך ליצור דוחות ב-Looker כדי לנתח מגמות תמחור ומכירות, ולהבין את ההשפעה של שינויים עתידיים במחירים.

למה תזדקק?

2. יצירת ה-CDM ב-BigQuery

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

  1. פותחים את מסוף BigQuery.
  2. בוחרים את הפרויקט שבו רוצים להשתמש כדי לבדוק את תבנית ההפניה.
  3. משתמשים במערך נתונים קיים או יוצרים מערך נתונים ב-BigQuery. נותנים למערך הנתונים את השם Pricing_CDM.
  4. יוצרים את הטבלה:
create table `CDM_Pricing`
(
  Fiscal_Date DATETIME,
  Product_ID STRING,
  Client_ID INT64,
  Customer_Hierarchy STRING,
  Division STRING,
  Market STRING,
  Channel STRING,
  Customer_code INT64,
  Customer_Long_Description STRING,
  Key_Account_Manager INT64,
  Key_Account_Manager_Description STRING,
  Structure STRING,
  Invoiced_quantity_in_Pieces FLOAT64,
  Gross_Sales FLOAT64,
  Trade_Budget_Costs FLOAT64,
  Cash_Discounts_and_other_Sales_Deductions INT64,
  Net_Sales FLOAT64,
  Variable_Production_Costs_STD FLOAT64,
  Fixed_Production_Costs_STD FLOAT64,
  Other_Cost_of_Sales INT64,
  Standard_Gross_Margin FLOAT64,
  Transportation_STD FLOAT64,
  Warehouse_STD FLOAT64,
  Gross_Margin_After_Logistics FLOAT64,
  List_Price_Converged FLOAT64
);

3. הערכה של מקורות נתונים

במדריך הזה נשתמש במקורות נתונים לדוגמה ששמורים ב-Google Sheets וב-BigQuery.

  • גיליון העסקאות ב-Google Sheets שמכיל שורה אחת לכל עסקה. הדוח כולל פרטים כמו הכמות של כל מוצר שנמכר, סך המכירות ברוטו והעלויות המשויכות.
  • גיליון תמחור המוצרים ב-Google Sheets שכולל את המחיר של כל מוצר ללקוח נתון בכל חודש.
  • טבלת company_descriptions ב-BigQuery שמכילה מידע על לקוחות ספציפיים.

ניתן ליצור טבלה זו של company_descriptions ב-BigQuery באמצעות ההצהרה הבאה:

create table `Company_Descriptions`
(
 Customer_ID INT64,
 Customer_Long_Description STRING
);
insert into `Company_Descriptions` values (15458, 'ENELTEN');
insert into `Company_Descriptions` values (16080, 'NEW DEVICES CORP.');
insert into `Company_Descriptions` values (19913, 'ENELTENGAS');
insert into `Company_Descriptions` values (30108, 'CARTOON NT');
insert into `Company_Descriptions` values (32492, 'Thomas Ed Automobiles');

4. ליצור את הקצב

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

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

dd5213e4cf1e313f.png

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

7e4af3e82955343f.png

מחליפים את הערך הנוכחי בקישור שמפנה אל עסקאות ותמחור מוצרים ב-Google Sheets .

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

799bce35e0a60e87.png

  1. מגדירים טבלאות פלט של BigQuery:

בשלב הזה תשייך את המיקום של טבלת הפלט CDM_Pricing של BigQuery שתיטען בכל פעם שמריצים את משימת DataopRep.

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

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

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

ההגדרות עוברות בירושה מהיעדים הידניים ואין צורך לבצע שינויים. לוחצים על 'שמירת ההגדרות'.

5. סטנדרטיזציה של הנתונים

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

a033de41c68acc8b.png

6. לעיון במתכון של נתוני עסקאות

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

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

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

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

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

7. לעיון במתכון לנתוני תמחור המוצר

לאחר מכן, תוכלו לראות מה קורה ב'מתכון לנתוני תמחור מוצרים', שמצרף את נתוני העסקאות המוכנים לנתוני התמחור הנצברים.

לוחצים על תבנית עיצוב האופטימיזציה בחלק העליון של הדף כדי לסגור את דף הטרנספורמר ולחזור אל תצוגת הזרימה. משם לוחצים על האובייקט Product Pricing Data (נתוני תמחור מוצרים) ו-Edit the מתכון (עריכת המתכון).

  1. ביטול עמודות של מחירים חודשיים: לוחצים על המתכון בין 2 ל-3 השלבים כדי לראות איך הנתונים נראים לפני השלב של ביטול הציר. תוכלו לראות שהנתונים מכילים את ערך העסקה בעמודה נפרדת של כל חודש: יאן פברואר מרץ. הפורמט הזה לא נוח להחלת חישוב צבירה (כמו סכום, עסקה ממוצעת) ב-SQL. צריך לבטל את הסימון של הנתונים בציר כדי שכל עמודה תהפוך לשורה בטבלה של BigQuery. המתכון משתמש בפונקציה unpivot כדי להפוך את 3 העמודות לשורה אחת בכל חודש. כך קל יותר לבצע חישובים קבוצתיים.
  2. חישוב ערך העסקה הממוצע לפי לקוח, מוצר ותאריך: אנחנו רוצים לחשב את ערך העסקה הממוצע לכל לקוח, מוצר ונתונים. אפשר להשתמש בפונקציית הצבירה וליצור טבלה חדשה (האפשרות 'קיבוץ לפי כטבלה חדשה'). במקרה כזה, הנתונים נצברים ברמת הקבוצה, ואנחנו מאבדים את הפרטים של כל עסקה בנפרד. לחלופין, אנחנו יכולים לשמור גם את הפרטים וגם את הערכים המצטברים באותו מערך נתונים (האפשרות 'קיבוץ לפי עמודות חדשות') נוחה מאוד להחיל על יחס (כלומר, אחוז התרומה של קטגוריית מוצרים להכנסה הכוללת). כדי לנסות את ההתנהגות הזו, אפשר לערוך את שלב 7 של המתכון ולבחור באפשרות 'קיבוץ לפי טבלה חדשה' או "קיבוץ לפי עמודות חדשות" כדי לראות את ההבדלים.
  3. תאריך הצטרפות לתמחור: לבסוף, משתמשים בצירוף כדי לשלב כמה מערכי נתונים למערך נתונים גדול יותר, שמוסיף עמודות למערך הנתונים הראשוני. בשלב הזה, נתוני התמחור מצורפים לפלט של המתכון של נתוני העסקאות על סמך 'Pricing Data.Product Code' = נתוני עסקאות.SKU ו-'Pricing Data.Price Date' = 'נתוני עסקה.תאריך פיננסי'

למידע נוסף על הטרנספורמציות שאפשר להחיל באמצעות Dataprep, עיינו בגיליון מקוצר על עקיפת נתונים (Trifacta)

8. עיון במתכון למיפוי סכימה

המתכון האחרון, Schema Mapping מבטיח שטבלת ה-CDM שמתקבלת תואמת לסכימה של טבלת הפלט הקיימת ב-BigQuery. כאן, הפונקציונליות Rapid Target משמשת לעיצוב מחדש של מבנה הנתונים כך שיתאים לטבלה ב-BigQuery, באמצעות התאמה מטושטשת כדי להשוות בין שתי הסכימות ולהחיל שינויים אוטומטיים.

9. איחוד במבנה אחד

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

  1. הרצת פלט מיפוי סכימה: בתצוגת הזרימה, בוחרים באובייקט הפלט של מיפוי הסכימה ולוחצים על 'הפעלה' בחלונית 'פרטים'. בוחרים באפשרות 'טריפטה פוטון' סביבת הפעלה ומבטלים את הסימון של האפשרות 'התעלמות משגיאות מתכונים'. לאחר מכן, לוחצים על הלחצן 'הפעלה'. אם קיימת טבלת BigQuery שצוינה, Dataprep יוסיף שורות חדשות. אחרת, ייווצר טבלה חדשה.
  2. צפייה בסטטוס המשימה: Dataprep פותחת באופן אוטומטי את הדף Run Job כדי שתוכלו לעקוב אחר ביצוע המשימה. צריך לחכות כמה דקות עד שממשיכים וטוענים את הטבלה ב-BigQuery. כשהמשימה תושלם, פלט ה-CDM של התמחור ייטען ב-BigQuery בפורמט נקי, מובנה ומנורמל שמוכן לניתוח.

10. איך מספקים ניתוח נתונים למידת מכונה/AI

דרישות מוקדמות ל-Analytics

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

לוחצים על הלחצן '+ יצירת טבלה' ומגדירים את הפרמטרים הבאים:

  • יצירת טבלה מההעלאה ובחירה בקובץ CDM_Pricing_L_Table.csv
  • זיהוי אוטומטי של סכימה, בדיקת הפרמטרים של הסכימה והקלט
  • אפשרויות מתקדמות, העדפת כתיבה, החלפת טבלה

ff9ec8b9f580b139.png

  • לוחצים על 'יצירת טבלה'

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

93e4c05972af1999.png

11. הצגת ההשפעה של שינויים במחירים

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

  1. קודם כול יוצרים טבלה זמנית שכוללת שורה אחת בכל פעם שמחיר של מוצר משתנה. מידע לגבי התמחור של המוצר הרלוונטי, כמו מספר הפריטים שהוזמנו בכל מחיר וסכום המכירות נטו הכולל שמשויך למחיר הזה.
create temp table price_changes as (
select
       product_id,
       list_price_converged,
       total_ordered_pieces,
       total_net_sales,
       first_price_date,
       lag(list_price_converged) over(partition by product_id order by first_price_date asc) as previous_list,
       lag(total_ordered_pieces) over(partition by product_id order by first_price_date asc) as previous_total_ordered_pieces,
       lag(total_net_sales) over(partition by product_id order by first_price_date asc) as previous_total_net_sales,
       lag(first_price_date) over(partition by product_id order by first_price_date asc) as previous_first_price_date
       from (
           select
               product_id,list_price_converged,sum(invoiced_quantity_in_pieces) as total_ordered_pieces, sum(net_sales) as total_net_sales, min(fiscal_date) as first_price_date
           from `{{my_project}}.{{my_dataset}}.CDM_Pricing` AS cdm_pricing
           group by 1,2
           order by 1, 2 asc
       )
);
select * from price_changes where previous_list is not null order by product_id, first_price_date desc

b320ba40f0692826.png

  1. בשלב הבא, הטבלה הזמנית מאפשרת לחשב את השינוי הממוצע במחיר של כל המק"טים:
select avg((previous_list-list_price_converged)/nullif(previous_list,0))*100 as average_price_change from price_changes;
  1. לבסוף, אפשר לנתח את מה שקורה אחרי שינוי מחיר על ידי בחינת הקשר בין כל שינוי במחיר לבין הכמות הכוללת של הפריטים שהוזמנו:
select
(total_ordered_pieces-previous_total_ordered_pieces)/nullif(previous_total_ordered_pieces,0) 

כמו

price_changes_percent_ordered_change,
(list_price_converged-previous_list)/nullif(previous_list,0)  

כמו

price_changes_percent_price_change
from price_changes

12. פיתוח מודל חיזוי של סדרת זמנים

בשלב הבא, בעזרת היכולות המובְנות של BigQuery בלמידת מכונה, אפשר לפתח מודל לחיזוי של סדרת זמנים של ARIMA כדי לחזות את כמות הפריטים שיימכרו.

  1. תחילה יוצרים מודל ARIMA_PLUS
create or replace `{{my_project}}.{{my_dataset}}.bqml_arima`
options
 (model_type = 'ARIMA_PLUS',
  time_series_timestamp_col = 'fiscal_date',
  time_series_data_col = 'total_quantity',
  time_series_id_col = 'product_id',
  auto_arima = TRUE,
  data_frequency = 'AUTO_FREQUENCY',
  decompose_time_series = TRUE
 ) as
select
 fiscal_date,
 product_id,
 sum(invoiced_quantity_in_pieces) as total_quantity
from
 `{{my_project}}.{{my_dataset}}.CDM_Pricing` 
group by 1,2;
  1. בשלב הבא משתמשים בפונקציה ML.FORECAST כדי לחזות מכירות עתידיות בכל אחד מהמוצרים:
select
*
from
ML.FORECAST(model testing.bqml_arima,
            struct(30 as horizon, 0.8 as confidence_level));
  1. כשהתחזיות האלה זמינות, אתם יכולים לנסות להבין מה עשוי לקרות אם מעלים את המחירים. לדוגמה, אם אתם מעלים את המחיר של כל מוצר ב-15%, תוכלו לחשב את ההכנסה הכוללת המשוערת לחודש הבא באמצעות שאילתה כזו:
select
sum(forecast_value * list_price) as total_revenue
from ml.forecast(mode testing.bqml_arima,
            struct(30 as horizon, 0.8 as confidence_level)) forecasts
left join (select product_id,
                array_agg(list_price_converged
                       order by fiscal_date desc limit 1)[offset(0)] as list_price
                from `leigha-bq-dev.retail.cdm_pricing` group by 1)  recent_prices
using (product_id);

13. יצירת דוח

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

אם כבר יש לכם מכונה של Looker, אתם יכולים להשתמש ב-LookML במאגר הזה ב-GitHub כדי להתחיל לנתח את נתוני התמחור של הדפוס הזה. פשוט יוצרים פרויקט חדש ב-Looker, מוסיפים את LookML ומחליפים את שמות החיבור והטבלאות בכל אחד מקובצי ה-view בהתאם להגדרות שלכם ב-BigQuery.

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

view: price_changes {
    derived_table: {
      sql: select
        product_id,
        list_price_converged,
        total_ordered_pieces,
        total_net_sales,
        first_price_date,
        lag(list_price_converged) over(partition by product_id order by first_price_date asc) as previous_list,
        lag(total_ordered_pieces) over(partition by product_id order by first_price_date asc) as previous_total_ordered_pieces,
        lag(total_net_sales) over(partition by product_id order by first_price_date asc) as previous_total_net_sales,
        lag(first_price_date) over(partition by product_id order by first_price_date asc) as previous_first_price_date
        from (
      select
         product_id,list_price_converged,sum(invoiced_quantity_in_pieces) as total_ordered_pieces, sum(net_sales) as total_net_sales, min(fiscal_date) as first_price_date
      from ${cdm_pricing.SQL_TABLE_NAME}  AS cdm_pricing
      group by 1,2
      order by 1, 2 asc
      )
       ;;
    }
...
}

בנוסף למודל ARIMA של BigQuery ML שהצגנו קודם, לצורך חיזוי של המכירות העתידיות ( בקובץ התצוגה המפורטת הזה)

view: arima_model {
  derived_table: {
    persist_for: "24 hours"
    sql_create:
      create or replace model ${sql_table_name}
            options
              (model_type = 'arima_plus',
               time_series_timestamp_col = 'fiscal_date',
               time_series_data_col = 'total_quantity',
               time_series_id_col = 'product_id',
               auto_arima = true,
               data_frequency = 'auto_frequency',
               decompose_time_series = true
              ) as
            select
              fiscal_date,
              product_id,
              sum(invoiced_quantity_in_pieces) as total_quantity
            from
              ${cdm_pricing.sql_table_name}
            group by 1,2 ;;
          }
   }
...
}

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

b531e169b192c111.png

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

6a98666697aa7a1.gif

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

d3a9d37c89c39b99.gif

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

14. התאמה למערכות התמחור

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

  1. צרו עותק של התהליך ב-Dataprep (לוחצים על הלחצן **... '**עוד' בצד שמאל ובוחרים באפשרות 'שכפול') שניתן להתאים אישית, או פשוט להתחיל מאפס באמצעות תהליך Dataprep חדש.
  2. מתחברים למערך נתוני תמחור משלכם. Dataprep תומך בפורמטים של קבצים כמו Excel, CSV, Google Sheets ו-JSON. אפשר גם להתחבר למערכות אחרות באמצעות מחברי Dataprep.
  3. חלק את נכסי הנתונים שלך לקטגוריות הטרנספורמציה השונות שזיהית. יוצרים מתכון אחד לכל קטגוריה. אתם יכולים לקבל קצת השראה מהזרימה שמסופקת בדפוס העיצוב הזה כדי לשנות את הנתונים ולכתוב מתכונים משלכם. אם נתקעת, אל דאגה, אפשר לבקש עזרה בתיבת הדו-שיח של הצ'אט בפינה השמאלית התחתונה של מסך Dataprep.
  4. מחברים את המתכון למכונה של BigQuery. אין צורך לדאוג לגבי יצירת הטבלאות באופן ידני ב-BigQuery, Dataprep יטפל בזה בשבילכם באופן אוטומטי. כדאי להוסיף את הפלט לזרימה, לבחור יעד ידני ולשחרר את הטבלה בכל הרצה. בדוק כל מתכון בנפרד, עד לנקודה שבה תקבל את התוצאות הצפויות. בסיום הבדיקה, המערכת תמיר את הפלט לטבלה 'הוספה לטבלה' בכל הפעלה כדי להימנע ממחיקת הנתונים הקודמים.
  5. אפשר לשייך את הזרימה כדי שהיא תפעל לפי לוח הזמנים. זה שימושי אם התהליך צריך לפעול ברציפות. אפשר להגדיר לוח זמנים לטעינת התשובה מדי יום או מדי שעה על סמך הרענון הנדרש. אם תחליטו להפעיל את הזרימה לפי לוח זמנים, תצטרכו להוסיף פלט של יעד תזמון לכל מתכון.

שינוי מודל למידת המכונה של BigQuery

המדריך הזה מספק מודל ARIMA לדוגמה. עם זאת, יש פרמטרים נוספים שבהם תוכלו לשלוט בזמן פיתוח המודל כדי לוודא שהוא מתאים לנתונים שלכם בצורה הטובה ביותר. פרטים נוספים מופיעים בדוגמה במסמכים שלנו כאן. בנוסף, אפשר להשתמש בפונקציות ML.ARIMA_EVALUATE, ML.ARIMA_COEFFICIENTS ו-ML.EXPLAIN_FORECAST של BigQuery כדי לקבל פרטים נוספים על המודל ולקבל החלטות בנוגע לאופטימיזציה.

עריכת הדוחות של Looker

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

15. מזל טוב

עכשיו אנחנו יודעים מהם השלבים העיקריים שצריך לבצע כדי לשפר את הביצועים של המוצרים הקמעונאיים שלך התמחור!

מה השלב הבא?

עוד דפוסי עזר של ניתוח נתונים חכם

קריאה נוספת