Skip to main content

workflow-data-outlier-detection

WHAT: Statistical outlier detection across financial datasets — univariate (z-score, IQR, p1/p99), cross-sectional (peer-relative), time-series (moving-average spike), and factor-residual methods. Outliers are flagged with a review_flag column; they are never silently deleted. WHEN: Invoke when a raw numeric dataset has been ingested and must be screened for implausible values before entering a financial model, or when a model run has produced implausible output and the upstream data feed is suspect.

ソース情報

リポジトリ
fall-development-rob/corp_finance
ソースの最終更新活動
2026年5月11日 14:10
検出された SKILL.md の言語
英語
スター
8
フォーク
2

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
workflow-data-outlier-detection
description
WHAT: Statistical outlier detection across financial datasets — univariate (z-score, IQR, p1/p99), cross-sectional (peer-relative), time-series (moving-average spike), and factor-residual methods. Outliers are flagged with a review_flag column; they are never silently deleted. WHEN: Invoke when a raw numeric dataset has been ingested and must be screened for implausible values before entering a financial model, or when a model run has produced implausible output and the upstream data feed is suspect.
# Data Outlier Detection ## What this skill covers Systematic identification and tagging of statistical outliers in financial datasets. Covers four detection methods: univariate (distribution-based), cross-sectional (peer comparison), time-series (trend deviation), and factor-residual (model-based). All flagged values are annotated in a `review_flag` column for analyst review — the analyst decides whether to retain, exclude, or winsorise. ## Inputs - A numeric dataset (columnar: each column is a series, each row is a period or entity) - Target columns to screen (or "all numeric columns") - Optional: peer/factor data for cross-sectional or factor-residual methods - Optional: preferred detection method (default: univariate p1/p99 or 3-sigma) ## Workflow ### Step 1 — Profile the numeric columns For each target column compute: - min, p1, p25, p50, p75, p99, max - mean and standard deviation - inferred distribution shape (roughly symmetric vs skewed) Select the appropriate threshold: use **p1/p99** for skewed distributions; use **3-sigma** for roughly symmetric distributions. Document the choice per column. ### Step 2 — Univariate outlier detection Flag any value that falls outside the chosen threshold (p1/p99 or ±3σ). Annotate the `review_flag` column with the method and threshold: ``` review_flag = "OUTLIER_UNI | method=p99 | threshold=[value] | review_required" ``` ### Step 3 — Cross-sectional outlier detection (comp datasets) When the dataset contains multiple companies or entities for the same period, flag any entity whose metric is more than 2 sigma from the peer median. Use `comps_analysis` to derive the peer distribution. ``` review_flag = "OUTLIER_CROSS | peer_median=[x] | sigma_dev=[y] | review_required" ``` ### Step 4 — Time-series outlier detection For each series with 5+ observations, flag any single-period value that deviates more than 50% from the trailing 4-period moving average. Call `rolling_forecast` to compute the baseline trend. ``` review_flag = "OUTLIER_TS | trailing_avg=[x] | deviation=[y%] | review_required" ``` ### Step 5 — Factor-residual outlier detection (optional) When peer or benchmark factor data is available, call `factor_model` to regress the suspect series against the benchmark. Flag residuals beyond ±2 sigma. ``` review_flag = "OUTLIER_FACTOR | factor=[name] | residual=[x] | sigma_dev=[y] | review_required" ``` ### Step 6 — Variance sanity check Call `variance_analysis` on actual vs prior-period values for every flagged column. Implausibly large period-over-period swings (>50%) often indicate upstream unit errors rather than true outliers — distinguish between the two in the flag annotation. ### Step 7 — Analyst review summary Produce a flag summary table: | Column | Row/Entity | Period | Flag Type | Value | Threshold | Recommended Action | |--------|-----------|--------|-----------|-------|-----------|-------------------| | Revenue | AAPL | Q2 2024 | OUTLIER_UNI | 94,000 | p99=85,000 | Verify source unit scale | The analyst reviews the table and marks each flag as: **retain** / **exclude** / **winsorise** / **investigate**. ## Output format 1. **Outlier flag table** — one row per flagged cell with flag type, threshold, and recommended action 2. **Annotated dataset** — original data plus `review_flag` column; unflagged cells have `review_flag = "CLEAN"` 3. **Detection method log** — per column: method chosen, threshold applied, count flagged 4. **Analyst decision column** — populated by analyst post-review: retain / exclude / winsorise ## Quality gates - [ ] Profile computed before any flag is applied - [ ] Detection method documented per column (p1/p99 vs 3-sigma with rationale) - [ ] Outliers flagged with structured annotation, never silently deleted or modified - [ ] `variance_analysis` run to distinguish unit-error outliers from true outliers - [ ] Analyst review summary presented before output is passed downstream ## Related skills - `workflow-data-unit-reconciliation` — unit/sign/frequency alignment (run before or in parallel with outlier detection) - `workflow-data-lineage-tracking` — provenance annotation for all flagged and cleaned values - `workflow-data-pre-modelling-checklist` — composite quality gate that calls this skill as one of its checks
GitHubで見る