Merge remote-tracking branch 'origin/fix/audit-faq-contradiction' into fix/audit-all
This commit is contained in:
commit
b343f84784
3 changed files with 32 additions and 6 deletions
|
|
@ -16,6 +16,14 @@
|
|||
* единицу, которой её не мерили: подпись приведена к измеренному, а источник
|
||||
* назван прямо в ней, а не только в `note` под плиткой.
|
||||
*
|
||||
* ЗАГОЛОВОК БЕЗ СРОКА (аудит 30.08). Стояло «против двух месяцев вашей
|
||||
* жизни»: величина вписана в компонент руками, тогда как обе цифры секции
|
||||
* приходят из `/stats` с выборками, а «двух месяцев» нет ни в одном замере.
|
||||
* Подставить измеренную экспозицию вместо неё нельзя — это другая величина:
|
||||
* `median_listing_age_days` считается по объявлениям, которые ЕЩЁ ВИСЯТ
|
||||
* (цензурированная выборка, см. public-api.ts), и сроком продажи не является.
|
||||
* Поэтому срок убран, а не заменён числом.
|
||||
*
|
||||
* ЧЕГО ЗДЕСЬ БОЛЬШЕ НЕТ. Плитки «×2,4 дольше продаётся квартира с завышенной
|
||||
* ценой»: замер даёт ×1,04 (79 дней против 76), и это уже с цензурой в пользу
|
||||
* заявления. Её место заняла доля снижающих цену — измеренная величина про то
|
||||
|
|
@ -77,7 +85,7 @@ export function CostOfErrorV3({ stats }: { stats: LandingStats }) {
|
|||
ПОЧЕМУ ЭТО ВАЖНО
|
||||
</div>
|
||||
<h2 id="cost-v3-title" className={styles.costTitle}>
|
||||
{`${SERVICE_PRICE_RUB} ₽ против двух месяцев вашей жизни`}
|
||||
{`${SERVICE_PRICE_RUB} ₽ против ошибки в цене вашей квартиры`}
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,11 @@
|
|||
* похожие объявления УЖЕ висят (`deals.days_on_market` пуст, сверять прогноз
|
||||
* срока не с чем). Обещание приведено к этой величине.
|
||||
*
|
||||
* ПОДЗАГОЛОВОК БЕЗ СРОКА (аудит 30.08). Стояло «не зависли НА ПОЛГОДА» —
|
||||
* длительность, которой нет ни в одном замере; ближайшая измеренная величина
|
||||
* (медианная экспозиция активного объявления) считается по тем, кто ещё
|
||||
* висит, и сроком продажи не является. Срок убран, а не заменён числом.
|
||||
*
|
||||
* ЧЕГО В ТЕКСТЕ БОЛЬШЕ НЕТ: обещания «каждый такой прогноз мы потом сверяем с
|
||||
* фактом сделки». Контура сверки прогноза клиента с его сделкой в продукте не
|
||||
* существует (`trade_in_leads` — 4 строки без полей исхода), и обещать его
|
||||
|
|
@ -105,7 +110,7 @@ export function HeroV3({ stats }: { stats: LandingStats }) {
|
|||
|
||||
<p className={styles.heroLead}>
|
||||
Мы называем реальную цену вашей квартиры — чтобы вы не продали её
|
||||
дешевле и не зависли на полгода.
|
||||
дешевле рынка и не зависли в продаже.
|
||||
</p>
|
||||
|
||||
<div className={styles.heroChecklist}>
|
||||
|
|
|
|||
|
|
@ -8,9 +8,21 @@
|
|||
*
|
||||
* Ответы НЕ из макета (там реквизит рендера): собраны из уже выверенной
|
||||
* честной копии продукта — content.ts (FAQ), oferta/refund. Вопрос про факт
|
||||
* сделки отвечаем тем, что в продукте ЕСТЬ (сделки Росреестра + снятие
|
||||
* объявлений с публикации), а не макетной формулировкой про «отметки
|
||||
* продавцов», механики которых не существует.
|
||||
* сделки отвечаем тем, что в продукте ЕСТЬ (сделки Росреестра, сверка
|
||||
* прогноза с ценой ДКП), а не макетной формулировкой про «отметки продавцов»,
|
||||
* механики которых не существует.
|
||||
*
|
||||
* СНЯТИЕ ОБЪЯВЛЕНИЙ ОТСЮДА УБРАНО (аудит 30.08). Ответ обещал, что мы
|
||||
* «отслеживаем снятие объявлений с публикации» и считаем по этому расхождение
|
||||
* прогноза с реальностью. Ни одного из двух не происходит: расхождение
|
||||
* считается в `app/tasks/landing_showcase_deals.py` и
|
||||
* `backend/scripts/backtest_estimator.py`, и оба берут ТОЛЬКО цену ДКП;
|
||||
* признака снятия в данных нет вовсе — `listing_source_snapshot.py` не пишет
|
||||
* delisted/relisted намеренно (не выводимы при покрытии обхода 10-35%), на
|
||||
* проде 0 таких строк в `listing_source_events`, а `deals.days_on_market`
|
||||
* заполнена 0 из 108 623. Страница при этом сама себе и противоречила:
|
||||
* `AccuracyV3` двумя блоками выше зовёт ту же величину «медианной экспозицией
|
||||
* АКТИВНОГО объявления» именно потому, что снятие сделкой не является.
|
||||
*
|
||||
* ВЕСЬ `FAQ` ИЗ content.ts ИМПОРТИРУЕТСЯ, А НЕ ПЕРЕПИСЫВАЕТСЯ. Так было не
|
||||
* сразу: при переносе брались только `how-do-you-know` и `why-region`, а
|
||||
|
|
@ -74,7 +86,8 @@ const ITEMS: readonly Objection[] = [
|
|||
{
|
||||
q: "Откуда вы знаете факт сделки?",
|
||||
a: [
|
||||
"К объявлениям мы добавляем зарегистрированные сделки Росреестра и отслеживаем снятие объявлений с публикации. По этим данным считается расхождение прогноза с реальностью — и честно показывается, на скольких объектах построен каждый расчёт.",
|
||||
"Зарегистрированные сделки Росреестра — это цены договоров купли-продажи, а не пожелания продавцов. По ним же мы проверяем себя: прошлые сделки прогоняются через тот же расчёт, и прогноз сравнивается с ценой ДКП — медианное расхождение и число сделок, на которых оно посчитано, стоят в шапке этой страницы.",
|
||||
"Снятие объявления с публикации сделкой не считаем: по нашим данным нельзя отличить продажу от того, что объявление просто убрали или до него не дошёл обход. И в отчёте, и здесь честно показывается, на скольких объектах построен расчёт.",
|
||||
],
|
||||
},
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue