После C-5 fix (PR #487) Avito coords либо NULL либо реальные. Estimator
исключал source='avito' из radius search потому что раньше там был jitter
(±0.005°) от 5 anchor cron'ов. Сейчас:
- 3580 Avito + 641 Yandex + 106 N1 + 38 Cian listings без coords
- estimator._fetch_analogs ловил только cian/yandex/n1 = ~30% эффективной базы
Bundled fix:
1. app/tasks/geocode_missing.py — batch geocoder (Nominatim 1/s, dedup по address)
2. POST /admin/scrape/geocode-missing-listings + GET status — manual trigger
3. estimator.py: убран AND source <> 'avito' — после backfill Avito включён в radius
Result: после backfill +4166 Avito listings в radius search = +40% эффективной
data. Confidence "high" будет в ~70% случаев вместо ~30%.
Tests: 11 новых tests/tasks/test_geocode_missing.py — all pass.