一人顧問公司的銷售預測
銷售預測除了把去年的業績直接增加 5% 之外,還可以怎麼做?
之前在 Taipei dbt Meetup 對講者提問時,我提問了講者。
『可以談談,你們公司的銷售預測怎麼做嗎?』
富有政治敏感度的講者先是暫停了錄影。
『嗯,不好意思,這段麻煩不錄。』
然後說了老實話
『我待過的每家公司,要做下個年度的銷售預測時的作法,都是把去年的業績增加個 5% 。』
即便 Taipei dbt Meetup 也是台灣資料應用領域的專業社群之一,我的提問依舊未能獲得滿意的回應,我後來沒事就研究了一下這個問題。也順便思考,能否將銷售預測用於自己經營的一人顧問公司?
對銷售預測的思考與建模
真的要講的話,銷售預測就是把去年的業績加個 5% 其實也不見得有什麼大錯,至少通常不會差太多。另一方面,利用資料與模型做出的預測,由於可以減少人類主觀偏見的影響,在決策上確實有其價值。
我一開始找到的參考資料,建議的方法論是這樣:
由公司歷史經營資料,找出關鍵營收影響因子。
將歷史業績與營收影響因子做出線性回歸。
如果以一人顧問公司來舉例說明
關鍵營收影響因子有兩個:
業務拜訪數 (active outreach)
主動找上門的潛在客戶數 (inbound leads)。
歷史資料與歷史業績部分:
過去 5 年,每年的業務拜訪數為:[15, 18, 20, 22]
過去 5 年,每年的主動找上門的客戶數為:[5, 6, 7, 6, 8]
過去 5 年,每年的成交案數為:[10, 12, 14, 16, 18]
於是就可以將成交案數 (Sale) 與業務拜訪數 (Visit) 和主動找上門的客戶數 (Leads) 做成線性迴歸曲線。
Sale = alpha * Visit + beta * Leads + gamma
其中,alpha, beta, gamma 是線性迴歸曲線的參數。如果只是照著書做,一人顧問公司的銷售預測一下子就做完了。很可惜,我經營一人顧問公司時,雖然有完整的歷史經營資料,但是資料的長相並不像書上的舉例那麼漂亮。比方說,有幾個欄位很不巧地都是零。也因此,做出的銷售預測迴歸曲線,並沒有比把去年的業績增加 5% 好到哪裡去。
在模型中考慮不確定性
後來,重新將這個模型與現實做比較之後,我將模型改成:
Sale = visit-conversion-rate * visit + lead-conversion-rate * leads業務拜訪的轉換率和主動找上門客戶的轉換率其實相對穩定,可以推估成固定的數值。另一方面,每年的業務拜訪數和主動找上門的客戶數,它的本質都充滿了不確定性,除了高度變動之外,還都是偏小的數值。
最後,又查了一些資料之後,我將「業務拜訪數」和「主動找上門的客戶數」都用 Poisson Distribution 來建模,並且用蒙地卡羅法來跑模擬,如此就可以將不確定性也納入模型。
程式碼參考這邊
最終,我得到了更符合我經營經驗的預測結果,明年即可驗證其準確度。此外,看著這個新模型,我對於接下來該怎麼做,又有了一些不同的看法。
延伸與反思
前述的銷售預測模型雖然已經捕捉到經營的本質,但仍有改進空間,像是可以進一步細化模型參數。比方說,業務拜訪的轉換率不應該是單一的數值,而是在不同的產業或是不同公司規模,會是不同的數值。
另一方面,最後完成的模型雖然簡單,只有不到 50 行的程式碼,但是,過程之中要把模型從迴歸曲線進展到可以容許變數有高度不確定性,這一段則讓我卡關了好一陣子。大概就是因為從迴歸曲線進展到蒙地卡羅法,需要滿大的跳躍性思考,大多數無法單純套用迴歸曲線的中小企業還是把去年的業績增加 5% 就搞定了。


