這個系列主要記錄我在工作中遇到的數據分析專案,不僅能幫助自己整理經驗(也能用來準備面試),同時也希望能讓讀者了解數據分析師的日常工作,以及在遇到分析問題時可以如何處理。
如果覺得文章對你有幫助,歡迎在留言區留言分享你的想法!
這篇文章的主題是財務報告,主要指大家常聽到的財務三表(損益表、資產負債表、現金流量表)。不過,在我們公司的分工下,我實際需要計算的部分主要是損益表中的獲利與支出,其他部分則由財務同事負責整理。
與數據分析師常見的其他數據報告相比,財務報告有一個關鍵特性:
財務報告交出去的數字不能變動
在一般產品分析中,例如監測某個功能的使用情況,即使數據來源有所變動,導致歷史數據略有調整,通常影響不大,因為我們關心的是趨勢,而非特定時間點的絕對數字。
然而,財務報告則不同。一旦提交就不能回頭修改過去的數據。如果因為定義調整或其他因素導致歷史數據變動,這些變動必須體現在未來的月份中。這個特性使得財務報告在計算上需要特別小心。
在進一步探討財務報告的計算細節前,先來簡單區分一下常見的數據報告類型:
由於財務數據不可變更,在計算時需要特別留意避免常見的錯誤。以下是幾個我曾遇到的「雷區」:
舉例來說,假設財務報告會排除所有標記為 "cancelled" 的交易,並且是根據 created_at
來決定認列時間。
如果某筆交易的狀態後來從 "cancelled" 變更為 "completed",這筆交易將突然出現在歷史數據中,導致數字不一致。
解法:
updated_at
作為認列時間某些數據表會使用 updated_at
記錄最後一次修改時間,但如果財務報告以此作為認列依據,可能會遇到以下問題:
updated_at
變動而重新出現在報表中。解法:
updated_at
作為財務數據的認列時間,應改用不會變動的欄位(如 created_at
或 confirmed_at
)。在一般產品分析中,計算淨營收時可能會簡單地使用「總付款 - 總退款」來計算。但在財務報告中,時間點非常重要:
解法:
如果用戶刪除了帳號,我們不能單純根據 deleted
來決定該筆數據是否應該保留。例如:
deleted
被標記為刪除就移除。解法:
deleted
狀態來決定數據是否保留,而應確保刪除帳號前的數據仍可回溯。由於財務報告的數據不能變動,如果在更新新一個月數據時,發現使用相同邏輯計算的歷史數據有變動,就需要追查原因,並評估是否需修正計算邏輯。
然而,如果問題是由於狀態變更導致的(例如某筆交易從被認列變成未被認列,或反之),那麼在計算當下很難回溯當時的數據狀況。
解法:
希望上述的分享對你們有幫助!如果對於其他數據分析主題有興趣,也歡迎參考我的職場心得沙龍~