fix(sf-12): MarketTrend — adaptive n<30/n<100 confidence warnings #287

Merged
lekss361 merged 1 commit from fix/sf-12-trend-confidence-warning into main 2026-05-17 13:39:04 +00:00
Owner

Summary

SF FixList #12 (Wave 2) — frontend-only. MarketTrendBlock показывал «Тренд +0.4% · 34 сделок» без warning. Добавлены 3 уровня confidence по n_deals.

Thresholds

  • n < 30 → trend СКРЫТ, badge «недостаточно данных, расширьте радиус»
  • 30 ≤ n < 100 → trend показан + amber warning «слабые данные (n=N) — расширьте радиус для точности»
  • n ≥ 100 → trend как обычно

Changes

  • frontend/src/components/site-finder/MarketTrendBlock.tsx — 35 lines added (Tailwind utilities: bg-amber-50 border-amber-200 text-amber-800 text-xs px-2 py-1 rounded)
  • Vault: fixes/Fix_SF_Trend_Confidence_May17.md

Test plan

  • test_cad 66:41:0702048:27 → Market tab → trend block
  • При n=34 → amber warning виден, trend показан
  • При n<30 (cad с меньшей plотностью) → trend скрыт + neutral hint
  • tsc strict pass

Related: epic #271 item #12 · Wave 2

## Summary SF FixList #12 (Wave 2) — frontend-only. `MarketTrendBlock` показывал «Тренд +0.4% · 34 сделок» без warning. Добавлены 3 уровня confidence по `n_deals`. ## Thresholds - **n < 30** → trend СКРЫТ, badge «недостаточно данных, расширьте радиус» - **30 ≤ n < 100** → trend показан + amber warning «слабые данные (n=N) — расширьте радиус для точности» - **n ≥ 100** → trend как обычно ## Changes - `frontend/src/components/site-finder/MarketTrendBlock.tsx` — 35 lines added (Tailwind utilities: `bg-amber-50 border-amber-200 text-amber-800 text-xs px-2 py-1 rounded`) - Vault: `fixes/Fix_SF_Trend_Confidence_May17.md` ## Test plan - [ ] test_cad `66:41:0702048:27` → Market tab → trend block - [ ] При n=34 → amber warning виден, trend показан - [ ] При n<30 (cad с меньшей plотностью) → trend скрыт + neutral hint - [ ] tsc strict pass Related: epic #271 item #12 · Wave 2
lekss361 added 1 commit 2026-05-17 13:34:20 +00:00
n<30: hide trend block, show 'insufficient data — expand radius'.
30≤n<100: show trend + amber banner 'weak data (n=X) — expand radius'.
n≥100: unchanged, no banner.
lekss361 merged commit edb0a3e728 into main 2026-05-17 13:39:04 +00:00
Author
Owner

Merged via deep-code-reviewer — verdict APPROVE.

Проверено:

  • Thresholds корректны: n<30 → hidden, 30≤n<100 → trend + amber warning, n≥100 → trend без банера.
  • Boundaries: n=30 → попадает в warning ветку (правильно), n=100 → no warning (правильно), n=0 → hidden (правильно).
  • MarketTrend.recent_deals_count: number (non-optional, non-null в types/site-finder.ts:172) → null-check не нужен.
  • Константы N_WEAK=30 / N_STRONG=100 вынесены — readable.
  • Anti-regression: PR #285 (BestLayoutsBlock) и #284 (VelocityBlock) — другие блоки, нет overlap.
  • Vault entry fixes/Fix_SF_Trend_Confidence_May17.md — присутствует, описание соответствует.

Smoke (Market tab):

  • cad с n<30 — trend hidden + neutral hint
  • cad с 30≤n<100 (test 66:41:0702048:27, n≈34) — trend + amber warning
  • cad с n≥100 (большой радиус) — trend без банера

Note (low, отдельным PR): amber-warning использует Tailwind bg-amber-50/200/800 — не из токенов --warn-soft / --warn per .claude/rules/ui-ux.md. Весь MarketTrendBlock пока на inline hex, так что в scope этого fix-а не блокирует. Кандидат на отдельный refactor «MarketTrendBlock → design tokens».

Merged via deep-code-reviewer — verdict APPROVE. **Проверено:** - Thresholds корректны: `n<30` → hidden, `30≤n<100` → trend + amber warning, `n≥100` → trend без банера. - Boundaries: `n=30` → попадает в warning ветку (правильно), `n=100` → no warning (правильно), `n=0` → hidden (правильно). - `MarketTrend.recent_deals_count: number` (non-optional, non-null в types/site-finder.ts:172) → null-check не нужен. - Константы `N_WEAK=30 / N_STRONG=100` вынесены — readable. - Anti-regression: PR #285 (BestLayoutsBlock) и #284 (VelocityBlock) — другие блоки, нет overlap. - Vault entry `fixes/Fix_SF_Trend_Confidence_May17.md` — присутствует, описание соответствует. **Smoke (Market tab):** - [ ] cad с n<30 — trend hidden + neutral hint - [ ] cad с 30≤n<100 (test `66:41:0702048:27`, n≈34) — trend + amber warning - [ ] cad с n≥100 (большой радиус) — trend без банера **Note (low, отдельным PR):** amber-warning использует Tailwind `bg-amber-50/200/800` — не из токенов `--warn-soft / --warn` per `.claude/rules/ui-ux.md`. Весь `MarketTrendBlock` пока на inline hex, так что в scope этого fix-а не блокирует. Кандидат на отдельный refactor «MarketTrendBlock → design tokens».
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#287
No description provided.