準確的影響估算可以決定你的商業計畫成功與否。
然而,儘管這很重要,大多數團隊仍使用過於簡化的計算,這可能導致預測數字過高。這些隨便估算的數字不僅會破壞與利益相關者的信任,還可能導致資源錯配和計畫失敗。但有一種更好的方法可以預測逐步獲得客戶的影響,而不需要繁瑣的 Excel 表格和容易出錯的公式。
在這篇文章結束時,你將能夠計算準確的年度預測,並實施可擴展的 Python 解決方案來進行三角預測。
不準確預測的隱藏成本
當被要求提供年度影響估算時,產品團隊經常會過高估計影響,因為他們對客戶群體採取一刀切的方法。團隊通常會選擇簡單的計算方式:
將每月收入(或其他相關指標)乘以十二來估算年度影響。
雖然這個計算很簡單,但這個公式忽略了一個基本前提,這對大多數企業都適用:
客戶的獲取是逐步進行的。
所有客戶對年度估算的貢獻並不相等,因為後來獲得的客戶貢獻的收入月份較少。
三角預測可以通過考慮客戶獲取時間表的影響來減少預測誤差。
讓我們用一個簡單的例子來探討這個概念。假設你正在推出一項新的訂閱服務:
每月訂閱費用:每位客戶 $100
每月客戶獲取目標:100 位新客戶
目標:計算一年的總收入
一個過於簡化的乘法計算建議第一年的收入為 $1,440,000(= 100 位新客戶/月 * 12 個月 * 每月 $100)。
實際數字只有 $780,000!
這46%的過高估計就是為什麼影響估算經常無法通過利益相關者的檢驗。
準確的預測不僅僅是數學——
它是一種幫助你建立信任的工具,讓你的計畫更快獲得批准,而不會有過度承諾和未能實現的風險。
此外,數據專業人員花費數小時在 Excel 中建立手動預測,這些預測不穩定,可能導致公式錯誤,並且難以進行迭代。
擁有一種標準化、可解釋的方法論可以幫助簡化這個過程。
介紹三角預測
三角預測是一種系統的數學方法,用於估算當客戶逐步獲取時的年度影響。它考慮到新客戶在不同時間點加入你的產品,對年度影響的貢獻不同。
這種方法特別適用於:
- 新產品推出:當客戶獲取是逐步進行的時候
- 訂閱收入預測:為基於訂閱的產品提供準確的收入預測
- 分階段推出:估算逐步推出的累積影響
- 獲取計畫:設置現實的每月獲取目標以達成年度目標
三角預測中的“三角形”是指個別客戶群體貢獻的可視化。客戶群體是指客戶獲取的月份。三角形中的每一條柱子代表一個客戶群體對年度影響的貢獻。早期的客戶群體柱子較長,因為他們貢獻的時間較長。
要計算新計畫、模型或功能在第一年的影響:
- 對於每個月份 (m):
- 計算獲得的客戶數 (Am)
- 計算每位客戶的平均每月支出/影響 (S)
- 計算剩餘的月份 (Rm = 13-m)
- 每月客戶群體影響 = Am × S × Rm
- 總年度影響 = 所有每月客戶群體影響的總和
建立你的第一個三角預測
讓我們計算我們的訂閱服務的實際收入:
一月:100 位客戶 × $100 × 12 個月 = $120,000
二月:100 位客戶 × $100 × 11 個月 = $110,000
三月:100 位客戶 × $100 × 10 個月 = $100,000
依此類推……
在 Excel 中計算,我們得到:
總年度收入等於 $780,000——比過於簡化的估算低46%!
💡 專業小提示:將電子表格計算保存為模板,以便在不同情況下重用。
需要在沒有完美數據的情況下建立估算?請閱讀我關於“在數據不完美時建立可辯護的影響估算”的指南。
將理論付諸實踐:實施指南
雖然我們可以使用上述方法在 Excel 中實施三角預測,但這些電子表格變得難以維護或快速修改。產品負責人也難以在假設或時間表變更時快速更新預測。
這裡是如何在幾分鐘內使用 Python 進行相同預測的方法:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def triangle_forecast(monthly_acquisition_rate, monthly_spend_per_customer):
"""
使用三角預測方法計算年度影響。
"""
# 創建計算的 DataFrame
months = range(1, 13)
df = pd.DataFrame(index=months,
columns=['month', 'new_customers',
'months_contributing', 'total_impact'])
# 如果是單一數字則轉換為列表,否則使用提供的列表
acquisitions = [monthly_acquisition_rate] * 12 if type(monthly_acquisition_rate) in [int, float] else monthly_acquisition_rate
# 計算每個客戶群體的影響
for month in months:
df.loc[month, 'month'] = f'月份 {month}'
df.loc[month, 'new_customers'] = acquisitions[month-1]
df.loc[month, 'months_contributing'] = 13 - month
df.loc[month, 'total_impact'] = (
acquisitions[month-1] *
monthly_spend_per_customer *
(13 - month)
)
total_yearly_impact = df['total_impact'].sum()
return df, total_yearly_impact
繼續我們之前的訂閱服務例子,每月客戶群體的收入可以可視化如下:
# 例子
monthly_acquisitions = 100 # 每月 100 位新客戶
monthly_spend = 100 # 每位客戶每月 $100
# 計算預測
df, total_impact = triangle_forecast(monthly_acquisitions, monthly_spend)
# 打印結果
print("每月明細:")
print(df)
print(f"\n總年度影響: ${total_impact:,.2f}")
我們還可以利用 Python 將客戶群體貢獻可視化為條形圖。注意隨著月份的推移,影響是如何線性減少的。
使用這段 Python 代碼,你現在可以快速有效地生成和迭代年度影響估算,而不必手動進行崩潰的電子表格版本控制。
超越基本預測
雖然上述例子很簡單,假設每月的獲取和支出在所有月份都是固定的,但這不一定是事實。三角預測可以輕鬆調整和擴展,以考慮:
- 根據支出層級變化的每月支出,為每個客戶群體創建不同的三角預測,然後將各個客戶群體的影響進行匯總以計算總年度影響。
- 變化的獲取率
通常,企業在整個年度內並不以固定的速度獲取客戶。獲取可能會在開始時緩慢,隨著行銷推廣的展開而加速,或者我們可能會有一波早期採用者,隨後增長放緩。要處理變化的獲取率,請傳遞一個每月目標的列表,而不是單一的速率:
# 例子:逐步增加的獲取
varying_acquisitions = [50, 75, 100, 150, 200, 250,
300, 300, 300, 250, 200, 150]
df, total_impact = triangle_forecast(varying_acquisitions, monthly_spend)
為了考慮季節性,將每個月份的影響乘以其對應的季節因子(例如,高峰月份如十二月為1.2,低峰月份如二月為0.8等),然後再計算總影響。
以下是如何修改 Python 代碼以考慮季節性變化:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def triangle_forecast(monthly_acquisitions, monthly_spend_per_customer, seasonal_factors = None):
"""
使用三角預測方法計算年度影響。
"""
# 創建計算的 DataFrame
months = range(1, 13)
df = pd.DataFrame(index=months,
columns=['month', 'new_customers',
'months_contributing', 'total_impact'])
# 如果是單一數字則轉換為列表,否則使用提供的列表
acquisitions = [monthly_acquisitions] * 12 if type(monthly_acquisitions) in [int, float] else monthly_acquisitions
if seasonal_factors is None:
seasonality = [1] * 12
else:
seasonality = [seasonal_factors] * 12 if type(seasonal_factors) in [int, float] else seasonal_factors
# 計算每個客戶群體的影響
for month in months:
df.loc[month, 'month'] = f'月份 {month}'
df.loc[month, 'new_customers'] = acquisitions[month-1]
df.loc[month, 'months_contributing'] = 13 - month
df.loc[month, 'total_impact'] = (
acquisitions[month-1] *
monthly_spend_per_customer *
(13 - month)*
seasonality[month-1]
)
total_yearly_impact = df['total_impact'].sum()
return df, total_yearly_impact
# 考慮季節性的例子
monthly_acquisitions = 100 # 每月 100 位新客戶
monthly_spend = 100 # 每位客戶每月 $100
seasonal_factors = [1.2, # 一月 (新年)
0.8, # 二月 (假期後)
0.9, # 三月
1.0, # 四月
1.1, # 五月
1.2, # 六月 (夏季)
1.2, # 七月 (夏季)
1.0, # 八月
0.9, # 九月
1.1, # 十月 (萬聖節)
1.2, # 十一月 (假期前)
1.5 # 十二月 (假期)
]
# 計算預測
df, total_impact = triangle_forecast(monthly_acquisitions,
monthly_spend,
seasonal_factors)
這些自定義可以幫助你建模不同的增長情境,包括:
- 推出早期階段的逐步增長
- 基於促銷活動的階段性增長
- 客戶獲取的季節性變化
結論
擁有可靠且直觀的預測可以決定你的計畫是否成功。
但這還不是全部——三角預測還可以應用於收入預測以外的其他計算,包括:
- 客戶啟動
- 投資組合損失率
- 信用卡支出
準備好深入了解了嗎?下載上面分享的 Python 模板,並在 15 分鐘內建立你的第一個三角預測!
- 輸入你的每月獲取目標
- 設置你預期的每月客戶影響
- 通過自動可視化來可視化你的年度軌跡
現實中的估算通常需要處理不完美或不完整的數據。請查看我的文章“在數據不完美時建立可辯護的影響估算”,以獲得在這種情況下建立可辯護估算的框架。
感謝:
感謝我的優秀導師 Kathryne Maurer,開發了三角預測方法的核心概念和第一個版本,並允許我通過方程和代碼進行擴展。
我隨時歡迎對如何使這些指南對你更有價值的反饋和建議。祝你閱讀愉快!
本文由 AI 台灣 運用 AI 技術編撰,內容僅供參考,請自行核實相關資訊。
歡迎加入我們的 AI TAIWAN 台灣人工智慧中心 FB 社團,
隨時掌握最新 AI 動態與實用資訊!