fix(tradein): Avito listing_date extraction (3 формата) #601
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#601
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/avito-listing-date-extraction"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Production reality: 100% Avito listings (9302/9302) имели
listing_date=NULL. Regex matched только\d+ unit назад, но Avito SERP теперь использует 3 формата — нашли через audit query.Поддерживаемые форматы
5 дней назад,2 недели назад,3 часа назад— без измененийсегодня в 12:30,вчера в 18:45,позавчера,только что18 мая,5 июня в 12:30— год inferred (текущий, с rollback на прошлый если month в будущем больше чем на 30 дней)Tests
10/10 pass (4 existing + 6 new):
Ruff clean. No new deps.
Impact на linkage rate
Это прямо разблокирует #564 linkage rate. Сейчас
/sales-vs-listingsпоказывает median 0-5% linkage потому что 60% всех listings без даты (Avito 100% NULL, N1 100% NULL, Yandex 60% NULL). Без даты невозможно сопоставить с ДКП в окне [-180d, +30d].После merge → следующий Avito sweep заполнит 9302 listings с listing_date. Existing rows будут backfilled при next periodic sweep (URL остался, can re-scrape).
Out of scope
Refs #564.
Real production state: **0/9302 (100%)** Avito listings имели NULL listing_date. Audit показал regex matched только relative numeric ("5 дней назад") — Avito SERP сейчас использует: - Keyword shortcuts «сегодня в 12:30», «вчера в 18:45», «позавчера», «только что» - Absolute «18 мая», «5 июня в 12:30» (year inferred — current, или rollback к прошлому году если month в будущем больше чем на 30d) Changes: - Expand _parse_relative_date(): * keyword check first (без \d+ regex match) * relative numeric (existing) — без изменений * absolute date regex с _RU_MONTHS dict + roll-back на prev year heuristic Tests: 10/10 pass (4 existing + 6 new). Ruff clean. Impact: 9302 Avito listings + new daily scrapes теперь будут иметь listing_date. Это **прямо повысит linkage rate в /sales-vs-listings** (PR K) с current ~5% до 30%+ (теоретически до 80% при listing_date плотности). Existing 9302 NULL — будут пересобраны при следующем full sweep после deploy. Backfill detail page для each — отдельный operation скрипт (out of scope, можно через docker exec ad-hoc). Refs #564 (linkage rate improvement).