# instinct: vvv-bots給与の単位正規化は「円→万変換した値」に百円単位補正を二重適用すると高額案件を誤補正する
vvv-bots `common_db.py` の給与正規化で、**段階の異なる補正を直列に重ねると誤爆する**。
**問題パターン** (PR#347 でcode-reviewerが発見したCRITICAL):
```python
if sal > 10000: # 円単位 → 万円に
sal = sal // 10000 # 50000000円 → 5000(万円)
sal = _sanitize_salary(sal) # ❌ 5000>1000 → //100 → 50。5000万円案件を50万に化けさせる
```
**正しい設計** — 補正は入力の単位前提ごとに**排他**で:
```python
if sal > 10000: # 円単位前提
sal = sal // 10000 # 変換のみ。sanitizeしない(変換済みは正規化済み)
else: # 万円単位前提
sal = _sanitize_salary(sal) # 百円単位混入(4800→48等)のみ補正
# 補正後に min>max 逆転したら両方破棄→_extract_salaryフォールバック
```
**教訓2点**:
- 「円→万変換」と「百円単位混入補正」は**別レイヤー**。同じ値に両方かけない
- 補正系は必ず **min>max 逆転ガード**をペアで入れる(片側だけ補正されると逆転する)
**Why:** salary_max>=80 の単価フィルタ(#546)が誤ヒットする。`videos.salary_min/max` は「万円/月」Integer規約。混入実例: group248 id=719101782 (75万→7500)。[[instinct-group-id-range-hardcode]]と同じ「単位/規約の取りこぼし」系。サブエージェント報告(「min/max順序逆転」)は誤りで、実機+別モデルレビューで真因に到達した。
---
(migrated from local memory/instinct_salary_double_normalization.md)
instinct: vvv-bots給与の単位正規化は「円→万変換した値」に百円単位補正を二重適用すると高額案件を誤補正する