PowerBI PVM 模型 - 數(shù)學推導與 DAX 實現(xiàn)的完美展示
在 Power BI 中實現(xiàn) PVM 模型,是一個將理論用于模型的良好示范,它展示精確的數(shù)據(jù)理論計算以及在 Power BI 數(shù)據(jù)模型的加持下,如何實現(xiàn)大規(guī)模計算。
在 2021 年 3 月的文章,我們寫了本文的第一篇,并留了思考題:DAX 如何實現(xiàn)以及 Mix 到底代表了什么,本文給出全部答案。
價格銷量混合模型(Price-Volume-Mix),是分析企業(yè)營收差異變化原因的高級分析模型,其標準實現(xiàn)以及擴展變化可能形成多種實際形態(tài)。
模型的可視化

考慮某年(AC)相對去年(PY)的增長的構成如下:
由于價格提升,帶來的增長。
由于銷量提升,帶來的增長。
由于新品,帶來的增長。
由于下架,帶來的損失。
模型的擴展
如果使用小多圖,將整套業(yè)務拆到更細粒度,則有:

可以看出,新品的力量是顯著的。
當然也可以看看不同銷售人員的表現(xiàn),如下:

可以看出,銷售經(jīng)理們的業(yè)績改變也主要依賴新老產(chǎn)品的交替,能夠更好的把握新品的推廣,顯著促進增長;而對原有銷售規(guī)模比較大的經(jīng)理,由于暫時無法全面替換,導致新品對比老品下架的增長是有限的。
我們當然在 Power BI 中有詳細的計算,如下:

問題來了,我們?nèi)绾螌崿F(xiàn)在 Power BI 數(shù)據(jù)模型中的大規(guī)模準確計算呢?
基本思想
從微觀的角度,對于某種產(chǎn)品,如:《BI 真經(jīng)》有其定價,該定價與市場的客戶心理預期有一種隱含的關系,他們通常表現(xiàn)為:
如果價格普遍高于心理預期,銷量下降;
如果價格普遍低于心理預期,銷量上升。
如何找到產(chǎn)品服務與客戶心理預期的最佳匹配點是實現(xiàn)理論最大營收的關鍵所在。
同一產(chǎn)品的價格可能會得到調(diào)整,表現(xiàn)如下:
如果合適的降價而帶來大幅銷量提升導致整體業(yè)績提升,記作:A;
如果合適的漲價而銷量并未顯著降低導致整體業(yè)績提升,記作:B。
那么,
如果 A > B,則降低價格提升銷量的策略更好;
如果 A < B,則上調(diào)價格業(yè)績提升的策略更好;
同時,價格調(diào)整與銷量變化的平衡點可以在這個過程中拿捏。
這個思想其實是業(yè)務邏輯常識,雖然簡單,卻可以將營收的差異分解為:價格變化,銷量變化的結構化。
微觀恒等式
對于一筆交易(Transaction),也就是在訂單(Order)中的行,有:
本訂單內(nèi)某產(chǎn)品服務帶來的毛利(Gross Margin)= 本訂單內(nèi)該產(chǎn)品服務的折后單價(Price)* 本訂單內(nèi)該產(chǎn)品服務的被購買數(shù)量(Volume)
產(chǎn)品和服務的本質(zhì)都是產(chǎn)品,下面統(tǒng)稱為產(chǎn)品。
盡管如此,但同一產(chǎn)品可能存在不同的打折方式,而導致在不同的交易中,產(chǎn)品表現(xiàn)出來的價格不同。
于是有:
在一段時間范圍,某產(chǎn)品的平均折后售價 = 該產(chǎn)品的總毛利 / 該產(chǎn)品的總銷量
Price-Volume-Mix 模型
首先需要對模型進行簡化,假設所有的產(chǎn)品 SKU 在兩年內(nèi)都有銷售,不存在新品和下架的情況,對重要的三個量給出推導過程,如下:

PDF 高清版可私信獲取。
DAX 實現(xiàn)
根據(jù)上述思想以及嚴格的數(shù)學理論推導,在 DAX 中實現(xiàn)如下:
PVM.Volume.AC =
SUM( 'Order'[數(shù)量] )
PVM.Volume.PY =
CALCULATE( [PVM.Volume.AC] , DATEADD( Clendar[日期] , -1 , YEAR ) )
PVM.Revenue.AC =
SUM( 'Order'[LineSellout] )
PVM.Revenue.PY =
CALCULATE( [PVM.Revenue.AC] , DATEADD( 'Clendar'[日期] , -1 , YEAR ) )
PVM.Price.AC =
[PVM.Revenue.AC] / [PVM.Volume.AC]
PVM.Price.PY =
[PVM.Revenue.PY] / [PVM.Volume.PY]
// 以下給出三大重要計算,理論依據(jù)已經(jīng)如上嚴格證明。
// 由于價格上漲,帶來的增長:
PVM.Revenue.Δ.Price =
SUMX(
VALUES( 'Product'[產(chǎn)品ID] ) ,
IF(
[PVM.Price.AC] * [PVM.Price.PY] <> 0 ,
( [PVM.Price.AC] - [PVM.Price.PY] ) * [PVM.Volume.PY]
)
)
// 由于銷量上升,帶來的增長:
PVM.Revenue.Δ.Volume =
SUMX(
VALUES( 'Product'[產(chǎn)品ID] ) ,
IF(
[PVM.Price.AC] * [PVM.Price.PY] <> 0 ,
( [PVM.Volume.AC] - [PVM.Volume.PY] ) * [PVM.Price.PY]
)
)
// 由于價格上漲和銷量上升,其混合效應帶來的增長:
PVM.Revenue.Δ.Mix =
SUMX(
VALUES( 'Product'[產(chǎn)品ID] ) ,
IF(
[PVM.Price.AC] * [PVM.Price.PY] <> 0 ,
( [PVM.Volume.AC] - [PVM.Volume.PY] ) * ( [PVM.Price.AC] - [PVM.Price.PY] )
)
)
實現(xiàn)完畢。
更多解釋
由于產(chǎn)品 SKU 是眾多的,在 DAX 數(shù)據(jù)模型中,可以借助強大的計算能力,對每個 SKU 獨立計算再累加。因此,這里的?SUMX?函數(shù)就起到了重要作用。
Mix 是很費解的一個量,它表示綜合考慮價格和銷量變化后的混合效應,再累加到所有的 SKU 上的結果。
由于度量值的計算是獨立的,當給出的篩選上下文不同時,就會在不同的業(yè)務板塊進行計算,使得這個模型具有很強的擴展性。
總結
價格銷量混合模型(Price-Volume-Mix),的確是研究營收差異原因的重要模型,可以從價格,銷量的核心因素給出重要詮釋。而價量混合模型不僅僅使用于產(chǎn)品分析,還適用于客戶分析等擴展場景。在后續(xù)文章中,我們會展開這些探討。
在訂閱了BI佐羅講授的《BI真經(jīng)》之《BI進行時》課程區(qū),可以下載本文案例。

學習《BI真經(jīng)》得真功夫

BI真經(jīng) - 讓數(shù)據(jù)真正成為你的力量
掃碼與精英一起討論 Power BI,驗證碼:data2021
點擊“閱讀原文”進入學習中心
↙
