בניית מודל פיננסי לחברות SaaS – כל מה שחשוב לדעת

מודל פיננסי חברות SaaS

פוסט חדש בנושא (דצמבר 2016): המדריך המקוצר להערכת שווי חברות SaaS

פוסט בנושא סליקה אצל חברות SaaS (ספטמבר 2018): המדריך המלא לסליקה באינטרנט עבור חברות SaaS – חלק א'

בין אם את מנהלת כספים בסטארט-אפ קטן או בינוני, רוב הסיכויים הם שאת מתחזקת מודל פיננסי שאמור לחזות את תוצאות החברה ב 3-5 השנים הקרובות. כשמדובר בחברה קטנה, אז הקליינט של המודל הוא משקיעים ו/או אנליסטים מקרנות הון סיכון עם יותר מדי זמן פנוי (זהירות! אלה מבזבזי הזמן הגדולים ביותר!). אם אתם כבר אחרי גיוס A אז צריך לתחזק מודל בשביל ישיבות הדירקטוריון, ישיבות תכנון לשנה הבאה וכמובן – התכוננות לסיבוב B (יש!). פוסט זה הולך לעסוק בטיפים מעשיים לבניית מודל פיננסי לחברות SaaS, ולמרבה השמחה – הפשטות של מודל ה-SaaS זולגת גם לאקסל עמו נעבוד. אני לא מתכוון להפוך את הפוסט הזה ל-SaaS Financial Modeling 101, כלומר אני מניח שאתם יודעים לעבוד עם אקסל, בניתם כמה מודלים בחיים שלכם ומעניין אתכם, כמו שעניין אותי בזמנו, לקבל כמה טיפים מעשיים שיעלו אתכם לשלב הבא מבחינת הידע שלכם בנושא זה.

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

שלב ראשון: בניית תחזית הכנסות לחברות SaaS

במרבית המקרים, ה-Funnel בחברות SaaS הוא די פשוט ואלגנטי. אצלנו ב-Atera ישנה תקופת ניסיון של 30 ימים שלאחריה המשתמשת מחליטה האם ברצונה להכניס פרטי כרטיס אשראי ולרכוש מנוי לפלטפורמה (הערת אגב: זה קצת מצחיק שהשתמשתי כאן בלשון נקבה מתוך רצון לשמור על תקינות פוליטית כי לדעתי אין לנו אפילו לקוחה אחת. הלקוחות שלנו הן חברות מחשוב שמספקות שירותי IT במיקור חוץ לעסקים קטנים ובינוניים. כלומר, הלקוחות שלנו הן אנשי מחשבים, ומה לעשות – הרוב המוחלט הוא אנשי ולא נשות). עד כאן הכל יחסית פשוט, ה-Funnel נראה כך:

Signups → Purchases

הפרמטר שיקבע כמה מתוך הנרשמים יחליטו לרכוש את המוצר נקרא שיעור המרה (Conversion Rate), מבטא בכך את שיעור ההרשמות ש"יומרו" ללקוחות קונים. השימוש במונח שיעור המרה נפוץ מאוד כשמדברים על SaaS ולכן חשוב לוודא שאתם מבינים מהי ההמרה שמדברים עליה בשיחה. זה יכול להיות סך הרכישות מתוך כלל ההרשמות (כמו כאן) וזה יכול גם להיות סך ההרשמות מתוך כלל המבקרים בדף הנחיתה. שיעור ההמרה לרוב יהיה אקסוגני למודל, כלומר יוזן ידנית, ויהפוך בכך את מספר הלקוחות הקונים לגודל אנדוגני, כלומר כזה שנקבע בתוך המודל.

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

האם יכול להיות שה-Funnel שלנו יהיה כל כך קצר? לא. יש דרייבר למבקרים שמחליטים להירשם לתקופת ניסיון, ובמקרה שלנו, אני בחרתי להשתמש בהוצאות השיווק. האם זה תמיד המצב? כמובן שלא, אבל זה כן חשוב לדאוג שיהיה דרייבר כלשהו לשלב הראשון ב-Funnel. אפשר גם להתחיל מאיזשהו מספר, נאמר 1,000, ואז להחליט על קצב צמיחה חודשי כלשהו ומשם להתקדם, אבל לדעתי זו לא דרך נכונה לפעול, מכמה סיבות. האחת, קשה יותר לבסס מספר מונפץ מאשר מספר שמבוסס על ניסיון עבר. כלומר, נגיד ויש לנו כיום 1,000 נרשמים בחודש, זה פחות מבוסס לומר שהמספר הזה הולך לצמוח בקצב מסוים, מאשר לומר משהו בסגנון של "על סמך ניסיון העבר אנו רואים ש-30,000 דולר הוצאות שיווק בחודש מביאות ל-1,000 הרשמות בחודש. אנו מניחים שאם נגדיל את הוצאות השיווק ב-X% הדבר יביא ל-Y הרשמות בחודש, תוך הנחה של 30 דולר עלות הרשמה". הסיבה השנייה היא נושא האיתות. אם השלב הראשון ב-Funnel הוא ההרשמות, אתם למעשה מאותתים למשקיעים שאתם לא ממש סגורים על האסטרטגיה שלכם – הרי אתם אפילו לא מסוגלים להצביע על הגורם שמביא לכם הרשמות מדי חודש. חשוב להדגיש שאני לאו דווקא ממליץ לנקוב בהוצאות השיווק כדרייבר להרשמות, אבל אני כן ממליץ לנקוב בדרייבר כלשהו.

אוקיי, אז אחרי שביססנו את הנקודה הזו, ה-Funnel שלנו נראה כרגע כך:

Signups Driver → Signups → Purchases

חשבו טוב-טוב מהם הדרייברים של ה-Funnel שלכם כי נקודת ההתחלה הזו הולכת לעבור בדיקה יסודית על ידי הקליינטים של המודל שלכם.

אני שב ומדגיש כי לכל חברה ה-Funnel שלה, מטרת הפוסט היא להדגים רצף לוגי מסוים שאמור להנחות אתכם בבניית המודל.

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

טוף, אז יש לנו רכישות, אבל פה זה נעשה טריקי, כי המעבר מרכישות להכנסות הוא מעבר שמורכב מה-מ-ו-ן הנחות, ביניהן:

  1. האם ישנה עלות הטמעה ראשונית? (ידועה גם כ-NRE)
  2. כמה מושבים נרכשו?
  3. איזה חבילה נרכשה? (סילבר, גולד, בלה בלה…)
  4. האם יש תוספות?
  5. איך הולכת החלוקה בין מנויים חודשיים לשנתיים? הרי מנויים שנתיים משלמים מראש על כל השנה, ויש לכך השפעה על תזרים המזומנים (שהוא אחת התוצאות הכי מעניינות במודל שאתם בונים).

כעת, ה-Funnel נראה כך:

Signups Driver → Signups → Purchases → Revenue

השלב הבא הוא להחליט מתי אתם הולכים לראות כסף מההכנסות שחזיתם, ובמודל SaaS זה יחסית פשוט, אלא אם יש לכם מוצר מורכב שגורר תנאי תשלום מורכבים. לרוב, תזרים המזומנים יהיה תוצר של תנאי התשלום שאתם נותנים ללקוחות שלכם ותנאי התשלום של ספק הסליקה מולכם. אגב, פה יש נקודה מעניינת ששווה להתעכב עליה, והיא מהו המודל המועדף, מבוסס שימושים או מבוסס מנוי. רוב החברות שאני מכיר עובדות במודל השני, כלומר נאמר והלקוח צורך שני מושבים במערכת, התשלום עבור המושבים יהיה מראש לתקופה (לא משנה אם מדובר במסלול חודשי או שנתי, ולא משנה אם הוא משתמש בפועל בכמות שנרכשה), ולא בתום התקופה בהסתמך על כמות המושבים שהוא צרך במהלך התקופה. אנחנו עבדנו בשתי השיטות והאמינו לי שתמחור מבוסס מנוי עדיף לאין שיעור על תמחור מבוסס שימושים בפועל. Having said that, לפעמים אין ברירה, ולכן רצוי לגבות על סמך השימוש בפועל בסוף הסייקל, ולא להתחיל לחשב ממוצע משוקלל של השימושים בכל יום בתקופה שעברה. כלומר, נאמר ואני מוכר נפח אחסון, עדיף לחייב פעם בחודש על סמך השימוש באותו רגע מאשר להתחיל לסכום 1/30 מהשימוש היומי לאורך החודש האחרון. רק במקרים שזה ממש משנה, כמו במקרה של שירותי ענן (AWS, Azure וכו') משתמשים בפירוק הזה כדי לחשב את החשבונית באופן מפורט ככל האפשר. הסיבה שקצת חפרתי עכשיו היא שבמקור רציתי לכתוב פוסט נפרד על הנושא הזה מאחר והוא יכול לעשות הבדל עצום בפשטות החיוב, ולכן גם בשקיפות מול הלקוחות שלכם, והרי פשטות ושקיפות הן כל המהות של מודל SaaS, לא?

בחזרה לפוסט, ה-Funnel הסופי בתחזית ההכנסות נראה כעת כך:

Signups Driver → Signups → Purchases → Revenue → Cash Flow

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

זהו זה, תם ונשלם גליון ההכנסות. לפני שנמשיך, הבא נזכור את ה-flow שלנו:

  1. הדרייבר של ההרשמות מוזן אקסוגנית, והעלות להרשמה, שגם היא מוזנת אקסוגנית, יחד קובעים את…
  2. ההרשמות. שיעור ההמרה האקסוגני מוכפל בכמות ההרשמות ומביא לחיזוי ה…
  3. רכישות. הנחות אקסוגניות על מספר המושבים, סוג החבילות וכו' מוכפלות בכמות הרכישות ומביאות לתחזית ה…
  4. הכנסות. תנאי התשלום שלנו מול הלקוחות ומול ספק הסליקה שלנו, המוזנים אקסוגנית, יקבעו את גובה…
  5. תזרים המזומנים מהכנסות.

שלב שני: בניית תחזית הוצאות לחברות SaaS

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

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

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

  1. להניח הנחה אקסוגנית על היחס שבין מספר העובדים במשרה זו לכמות הלקוחות, ואז לקשור את תחזית העובדים למספר הלקוחות;
  2. חיזוי אקסוגני על סמך החלטה אסטרטגית מסוימת. למשל, אם אנחנו חוזים שנפתח משרד בארה"ב בינואר 2018, אז החל בינואר 2018 יהיה לנו שם מנהלת טריטוריה, מספר אנשי מכירות וכו'. מכאן ואילך, גם את זה אפשר (ואפילו מומלץ) לקשור לתחזית הלקוחות תוך הנחה אקסוגנית של יחס מסוים.

איך יודעים שהתוצאה הגיונית? חכו שנגיע לחלק הבא בפוסט.

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

שלב שלישי: ניתוחי רגישות, בדיקות שפיות ושאר טיפים

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

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

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

בדיקות שפיות, Sanity Checks, צריכות להיעשות ביחס לבנצ'מרקים בתעשייה שלכם, וכאן חשוב להשיג כמה שיותר מידע, כי תהיו בטוחים שהקליינט של המודל הולך לנסות להתקיל אתכם כמה שהוא רק יכול. זו אגב הסיבה שיצרתי דף בנצ'מרק חברות SaaS ציבוריות. מבחינת תחזית מצבת כוח אדם, רצוי להשוות לחברות SaaS ציבוריות בעלות רמת הכנסות דומה לזו שאתם חוזים. מבחינת שיעור עלויות מסוימות, כמו עלויות מו"פ, גם כן רצוי להשוות את התחזית שלכם לבנצ'מרק כלשהו אבל גם לזכור שישנה שונות גבוהה בין חברות ה-SaaS השונות, בטח הציבוריות שבהן, כך שהכי טוב שתצליחו כנראה להוציא זה לוודא שאתם באזור סביר, לא הרבה יותר מזה. אגב, יש כאן קטע מעט משעשע, כי אם יותר מדי תנסו להתכנס במודל שלכם לממוצע בתעשייה אתם למעשה מייתרים את כל תחזית הכוח אדם – פשוט תכפלו את תחזית ההכנסות בפרמטר שאתם מכוונים אליו…

כמובן שאי אפשר לדבר על בדיקות שפיות מבלי לדבר על ה-פרמטרים החשובים ב-SaaS, שהם עלות רכישת לקוח (CAC), שווי לקוח (LTV), יחסי LTV/CAC, הכנסה ממוצעת מלקוח (ARPU) וכו'. אני ממליץ ליצור גליון נפרד שמראה כיצד הפרמטרים הללו נראים על פני זמן ולוודא שהם עושים שכל, גם באופן כללי וגם ביחס לתוצאות העבר שלכם. תרשו לי להמר שרוב הדיון על המודל יעסוק במטריקות המשתמעות ממנו ובמידת הסבירות שלהן.

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

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

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

סיכום

המודל הפיננסי שלכם הוא צורת הביטוי הנקייה ביותר של האסטרטגיה שלכם (איכס, אני שונא את המילה הזו). חושבים שתגדילו את ה-MRR לקראת 2018? איך? באמצעות גידול במושבים או תמהיל שונה של חבילות? אולי גם וגם? מה לגבי אסטרטגיית השיווק? האם אתם הולכים להתמקד בתוכן? אם כן, יעבור זמן עד שתראו תוצאות למהלך הזה, ובינתיים ה-CAC צפוי להרקיע שחקים…

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

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

נ.ב – השקתי ניוזלטר

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

2 תגובות כתיבת תגובה

  1. הי ערן, פוסט מעולה. אני מסכים איתך שבניית מודל הוא אחד הדברים החשובים ביותר. בחברות SAAS אני חושב שעיקר הדגש במודל צריך להיות על נושא ה-CHURN, ה-CAC וה-LTV והטרנדים צריכים לעשות שכל. להראות סתם שה-CAC וה-CHURN יורדים וה-LTV עולה זה נחמד ויפה אבל בלי ביסוס אמיתי וטרנד היסטורי זה סתם מצוץ מהאצבע.
    כמו כן, במודלים מורכבים אני ממליץ להשתמש בגליון הנחות בשילוב עם WATCH ואז ניתן לשנות את ההנחות ולראות בחלון את ההשפעה על הדברים שחשובים לך.
    ישר כוח.
    קובי

  2. הי ערן ,
    אני מסכים עם קובי.
    למרות הקושי היחסי שבהשגת המידע אוטומטי אודות עלויות השיווק של החברה (לפחות בחלק ממערכות ה-ERP), חשוב להציג את המידע הזה ברמה השוטפת כדי לזהות מגמות.
    אגב, בעיקר בחברות SAAS פרטיות (אבל לא רק), חשוב לשמור מידע חודשי היסטורי מכיוון שזה נדרש ע"י משקיעים במהלך DD (בעיקר VC למיניהן).
    פוסט מצוין,

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *