# instinct: LLM誤抽出値の機械補正(÷12等)は実値と乖離する・異常値はnull化して再抽出に委ねる

LLM が誤抽出した数値を「年収混入だから÷12」のような**機械補正で正しい値に戻そうとするのは誤り**。

**実証 (vvv-bots#348, 2026-06-14)**:
- detail_llm が findy 案件の月額単価に `800` を保存(DB値)
- 実ページは「単価目安〜1,120,000円/月」=**月額112万円**
- 「800は年収だから÷12」と補正すると **66万円** → 実値112と不一致

LLM の誤抽出は年収・無関係な数値・桁ミスなど**パターンがバラバラ**で、単一の機械換算では正しい値に戻せない。

**正しい対処**:
- 異常値(月額>SALARY_REALISTIC_MAX=300 等の明確な範囲外)は**null化**して再抽出に委ねる
- 間違った値を残す < null(次回 detail_llm が正しく再取得)
- min/max は独立判定(min正常/max異常なら正常な min を保持)

**メタ教訓**: 補正方針を決める前に**実機で1件裏取りする**。「年収混入だろう」という推測で÷12補正をPR化(#349)したが、データ修正の点検段階で実ページを見て初めて欠陥に気づき方針転換(#350)した。サブエージェント報告も同様で、[[instinct-salary-double-normalization]]同様「実機+別モデルレビューで真因に到達」が効いた。

**Why:** videos.salary は単価フィルタ(salary_max>=80 #546)の根拠。誤った値は誤ヒットを生む。閾値 SALARY_REALISTIC_MAX は common_db.py で #341/#348 共有。

---
(migrated from local memory/instinct_llm_extraction_no_machine_correction.md)