Validating Financial Data
When to use this skill
- 強制觸發: 每次
collecting-market-data或scanning-macro-news執行完畢後,在數據進入任何分析技能之前。 - 當估值結論或建議涉及重大資金決策(如再平衡、大額建倉)。
- 當用戶要求事實查核(fact-check)特定數據點。
- 當上游數據出現 ⚠️ 或 🚨 標記時(異常值已被偵測但尚未驗證)。
- 當分析結論與直覺「感覺不對」時——觸發回溯驗證。
Workflow
- Plan
- 分類待驗證數據:
- 量化數據 (Quantitative): 股價、財務數字、經濟指標、匯率
- 質化資訊 (Qualitative): 新聞事件、管理層聲明、政策解讀、傳聞
- 衍生數據 (Derived): 估值倍數、成長率、排名、比較結論
- 確定驗證優先級:
- 🔴 高:直接影響買賣決策的數據(持倉股價、關鍵財務指標)
- 🟡 中:影響分析框架的數據(宏觀指標、產業數據)
- 🟢 低:背景資訊(歷史類比、一般性敘述)
- Execute — 三層驗證
Layer 1:多源交叉對標 (Multi-Source Cross-Referencing)
目的: 確保同一數據點在多個獨立來源中一致。
執行方法:
- 對每個關鍵量化數據點,至少查詢 2 個獨立來源。
- 搜尋模板:
- 股價:
"{TICKER} stock price"對比 Yahoo Finance / Google Finance / MarketWatch - 財務數據:SEC 10-Q/10-K vs 財經數據庫 vs 公司 IR 頁面
- 經濟指標:官方機構(BLS/BEA/FRED)vs 財經新聞引用值
- 台股:公開資訊觀測站 vs 證交所 vs Yahoo 奇摩股市
- 股價:
資訊源信譽分層:
| 層級 | 來源類型 | 信譽權重 | 範例 |
|---|---|---|---|
| T1(最高) | 官方公告/監管文件 | 100% | SEC filing, 公開資訊觀測站, 央行公告 |
| T2 | 專業通訊社/數據商 | 90% | Bloomberg, Reuters, FactSet, S&P Capital IQ |
| T3 | 主流財經網站 | 75% | Yahoo Finance, Google Finance, MarketWatch |
| T4 | 一般媒體/分析 | 50% | CNBC, 經濟日報, 財經部落格 |
| T5(最低) | 社群媒體/匿名 | 20% | Reddit, PTT, Twitter/X, 未署名文章 |
交叉驗證規則:
- 差異 ≤ 0.1%:✅ 通過(價格可能因收盤時間微差)
- 差異 0.1%-1%:⚠️ 標記,取 T1/T2 來源的值
- 差異 > 1%:🚨 阻斷,必須查明原因(可能是:股票分割、幣別錯誤、日期錯誤、數據延遲)
- 低信譽源(T4/T5)發出重大情報時: 必須觸發 T1/T2 來源的二次確認
Layer 2:統計異常偵測 (Statistical Anomaly Detection)
目的: 用量化方法自動過濾不合理的數據點。
執行方法:
a) 合理性邊界檢查 (Schema Validation)
| 數據類型 | 合理範圍 | 異常觸發 |
|---|---|---|
| 股價 | > $0, 單日漲跌 ≤ ±30% | 負值或超範圍 |
| PE Ratio | 0-200(正常);負值或 >1000 需檢查 | PE < 0 或 > 500 |
| 毛利率 | 0%-100%(一般);部分產業可 < 0% | > 100% |
| 營收成長率 | -100% 至 +500%(極端但可能) | > +500% 或數值異常 |
| 殖利率 | 0%-15%(一般) | > 20% 或 < 0% |
| 匯率 USD/TWD | 25-40(歷史區間) | 超出 20-50 |
| VIX | 8-90(歷史區間) | 超出此範圍 |
b) 離群值偵測 (Outlier Detection)
- Z-score 方法: 計算數據點相對於近 20 日均值的 Z-score。
- |Z| > 2:⚠️ 需要確認是真實波動還是數據錯誤
- |Z| > 3:🚨 高度可疑,強制二次驗證
- 適用場景: 成交量、價格變動、財務指標的季度變化
c) 一致性檢查 (Consistency Check)
- 同一公司的多個財務指標應內部一致:
- 營收 × 毛利率 ≈ 毛利(誤差 < 1%)
- EPS × 股數 ≈ 淨利(誤差 < 2%)
- 若 PE 為正但 EPS 為負 → 數據矛盾 🚨
- 時間序列一致性:
- 今年營收 vs 去年營收 + 營收成長率 → 是否算術一致
Layer 3:LLM 邏輯與真實性檢核 (AI-Driven Fact-Checking)
目的: 針對非結構化資訊(新聞、傳聞、管理層聲明)進行邏輯審查。
執行方法:
a) 多源一致性比對 (Cross-Source Consistency)
- 對同一事件,收集至少 3 篇獨立報導。
- 比對核心要素:日期、金額/數量、人名/公司名、因果關係。
- 若核心要素有衝突 → 標記為「⚠️ 待核實」並列出各版本。
b) LLM 幻覺過濾 (Hallucination Guard)
- 在使用 LLM 總結新聞/財報時,強制要求:
- 列出「原文直接引用」vs「LLM 推論」→ 明確區分事實與推測
- 若 LLM 聲稱某數字但原文中找不到 → 標記為「⚠️ 可能為模型補全」
- 自我檢查機制:
- 要求 LLM 對自己的總結提出「我最可能犯錯的地方是什麼?」
- 高風險聲明必須附帶原文 URL 與段落引用
c) 反向查證 (Reverse Verification)
- 對「傳聞」或「獨家」報導:
- 搜尋該公司的官方 IR / Press Release 頁面
- 搜尋監管機構公告(SEC EDGAR / 公開資訊觀測站)
- 若 T1 來源無法確認 → 標記為「未經證實傳聞 — 不可作為決策依據」
d) 時效性驗證 (Temporal Validation)
- 確認新聞/數據的發布時間與當前分析的相關性。
- 超過 7 天的新聞標記為「⚠️ 可能已過時」。
- 超過 30 天的數據標記為「🚨 陳舊數據 — 需更新」。
- Validate — 彙總驗證結果
- 計算整體數據品質分數。
- 識別哪些下游分析可能受到數據品質問題的影響。
- Synthesize — 產出驗證報告
- 將驗證結果結構化輸出。
- 對未通過驗證的數據提出「修正建議」或「阻斷建議」。
Instructions
- 本技能為強制閘門——不可跳過。 任何下游分析引用的數據必須標明驗證狀態。
- 驗證的深度與買賣決策的重要性成正比:
- 日常監控:Layer 1 交叉對標即可
- 估值分析:Layer 1 + Layer 2
- 重大資金決策(再平衡/建倉):Layer 1 + Layer 2 + Layer 3
- 不可僅報告「數據一致」——必須記錄驗證過程(使用了哪些來源、何時檢查的)。
- 發現矛盾時,絕不覆蓋原始數據——保留兩方數據並標記差異。
- 所有修正必須標註修正原因與修正前後的值。
數據品質分數
| 分數 | 等級 | 含義 | 下游行動 |
|---|---|---|---|
| 90-100 | A | 高品質 — 多源確認,無異常 | 可直接用於決策 |
| 75-89 | B | 良好 — 小差異但已校正 | 可用,附帶注意事項 |
| 60-74 | C | 可用但有疑慮 — 部分數據未完全驗證 | 降低分析信心度 |
| < 60 | D | 不可靠 — 重大矛盾或來源不足 | 🚨 阻斷下游分析,先修正數據 |
Output template
## 🔍 數據驗證報告 — <YYYY-MM-DD>
### 驗證摘要
- 數據點總數:<N>
- 驗證通過:<N> (XX%)
- 需注意:<N> (XX%)
- 已修正:<N> (XX%)
- 阻斷(不可用):<N> (XX%)
- **整體品質分數:<X> / 100 — 等級 <A/B/C/D>**
### Layer 1:多源交叉對標結果
| 數據點 | 來源 1 (T?) | 來源 2 (T?) | 差異 | 狀態 | 採用值 |
|---|---|---|---|---|---|
| <數據> | <值> (<來源>) | <值> (<來源>) | X.X% | ✅/⚠️/🚨 | <值> |
### Layer 2:統計異常偵測結果
| 數據點 | 原始值 | 合理範圍 | Z-score | 狀態 | 備註 |
|---|---|---|---|---|---|
| <數據> | <值> | <範圍> | <Z> | ✅/⚠️/🚨 | <說明> |
### Layer 3:LLM 邏輯檢核結果
| 資訊 | 來源數 | 一致性 | 官方確認 | 狀態 |
|---|---|---|---|---|
| <新聞/聲明> | <N> | 一致/衝突 | 是/否/未查 | ✅/⚠️/🚨 |
### 修正記錄
| 數據點 | 修正前 | 修正後 | 原因 | 來源 |
|---|---|---|---|---|
| <數據> | <舊值> | <新值> | <原因> | <來源> |
### 阻斷項目(下游分析不可使用)
- <列出不可用的數據點及原因>
### 下游影響評估
- 受影響的分析技能:<列出>
- 建議行動:<修正/重新收集/降低信心度>
Error handling
- 若 web_search 不可用(離線模式),將所有數據標記為「⚠️ 未驗證 — 離線模式」並將品質分數上限設為 60。
- 若某數據點在所有可用來源中都找不到 → 標記為「❓ 不可驗證」,不可用於高影響決策。
- 若 Layer 2 異常偵測觸發但 Layer 1 交叉對標通過 → 數據可能正確但不尋常,標記為「✅⚠️ 已確認的異常值」並搜尋原因。
- 若驗證過程中發現上游收集的數據有系統性錯誤(如幣別全部搞錯),立即阻斷並要求重新收集。
Resources
collecting-market-data(上游技能:提供待驗證的量化數據)scanning-macro-news(上游技能:提供待驗證的質化資訊)verifying-financial-conclusions(互補技能:本技能驗證「輸入數據」,後者驗證「輸出結論」)- 所有下游分析技能均依賴本技能的驗證結果